diff --git a/docs/README.md b/docs/README.md index 0f594f093..e687cb74d 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1427,6 +1427,8 @@ Category 列表: + + ### 中央气象台 diff --git a/router.js b/router.js index 4145de3c7..85629f517 100644 --- a/router.js +++ b/router.js @@ -335,6 +335,7 @@ router.get('/bjnews/:cat', require('./routes/bjnews/news')); router.get('/tingshuitz/hangzhou', require('./routes/tingshuitz/hangzhou')); router.get('/tingshuitz/xiaoshan', require('./routes/tingshuitz/xiaoshan')); router.get('/tingshuitz/dalian', require('./routes/tingshuitz/dalian')); +router.get('/tingshuitz/guangzhou', require('./routes/tingshuitz/guangzhou')); // MIUI 更新 router.get('/miui/:device/:type?', require('./routes/miui/index')); diff --git a/routes/tingshuitz/guangzhou.js b/routes/tingshuitz/guangzhou.js new file mode 100644 index 000000000..e9440bcff --- /dev/null +++ b/routes/tingshuitz/guangzhou.js @@ -0,0 +1,37 @@ +const axios = require('../../utils/axios'); +const cheerio = require('cheerio'); +const iconv = require('iconv-lite'); + +module.exports = async (ctx) => { + const url = 'http://www.gzwatersupply.com/stop/stopgl.html2?tab=9'; + const response = await axios({ + responseType: 'arraybuffer', + method: 'get', + url: url, + }); + + const data = response.data; + const $ = cheerio.load(iconv.decode(data, 'gb2312')); + const list = $('table') + .eq(37) + .find('tr'); + + ctx.state.data = { + title: '停水通知 - 广州市自来水公司', + link: 'http://www.gzwatersupply.com/stop/stopgl.html2?tab=9', + item: + list && + list + .map((index, item) => { + item = $(item); + + const title = item.text(); + return { + title, + description: `广州市停水通知:${title}`, + link: `http://www.gzwatersupply.com/stop/${item.find('.new2').attr('href')}`, + }; + }) + .get(), + }; +};