diff --git a/docs/README.md b/docs/README.md
index a232c6ed4a..bcbe2dbed9 100755
--- a/docs/README.md
+++ b/docs/README.md
@@ -2267,6 +2267,8 @@ category 对应的关键词有
+
+
### 停电通知
获取未来一天的停电通知
@@ -2275,6 +2277,8 @@ category 对应的关键词有
> 以上参数可从[查询页面](http://m.95598.cn/95598/woutageNotice/winitOutageNotice)打开控制台抓包获得
+
+
### 中央气象台
diff --git a/lib/router.js b/lib/router.js
index 16236aee6c..b9b97eb056 100755
--- a/lib/router.js
+++ b/lib/router.js
@@ -386,6 +386,7 @@ router.get('/tingshuitz/guangzhou', require('./routes/tingshuitz/guangzhou'));
router.get('/tingshuitz/dongguan', require('./routes/tingshuitz/dongguan'));
router.get('/tingshuitz/xian', require('./routes/tingshuitz/xian'));
router.get('/tingshuitz/yangjiang', require('./routes/tingshuitz/yangjiang'));
+router.get('/tingshuitz/nanjing', require('./routes/tingshuitz/nanjing'));
// MIUI 更新
router.get('/miui/:device/:type?/:region?', require('./routes/miui/index'));
@@ -998,6 +999,7 @@ router.get('/bihu/activaties/:id', require('./routes/bihu/activaties'));
// 停电通知
router.get('/tingdiantz/95598/:orgNo/:provinceNo/:outageStartTime/:outageEndTime/:scope?', require('./routes/tingdiantz/95598'));
router.get('/tingdiantz/95598/:orgNo/:provinceNo/:scope?', require('./routes/tingdiantz/95598'));
+router.get('/tingdiantz/nanjing', require('./routes/tingdiantz/nanjing'));
// 36kr
router.get('/36kr/search/article/:keyword', require('./routes/36kr/search/article'));
diff --git a/lib/routes/tingdiantz/nanjing.js b/lib/routes/tingdiantz/nanjing.js
new file mode 100644
index 0000000000..5c923fbc4d
--- /dev/null
+++ b/lib/routes/tingdiantz/nanjing.js
@@ -0,0 +1,36 @@
+const axios = require('../../utils/axios');
+const cheerio = require('cheerio');
+
+const HOME_PAGE = 'http://www.js.sgcc.com.cn';
+
+module.exports = async (ctx) => {
+ const url = `${HOME_PAGE}/html/njgdgs/col152/column_152_1.html`;
+ const response = await axios.get(url);
+
+ const data = response.data;
+ const $ = cheerio.load(data);
+ const list = $('.rightarea ul li');
+
+ ctx.state.data = {
+ title: $('head title').text(),
+ link: url,
+ item: list
+ .map((index, item) => {
+ const $item = $(item);
+ const $aTag = $item.find('a');
+ const link = $aTag.attr('href');
+ const title = $aTag.text();
+
+ let pubDate = $item.find('span').text();
+ pubDate = new Date(pubDate).toUTCString();
+
+ return {
+ title,
+ description: '南京市停电通知',
+ link: `${HOME_PAGE}${link}`,
+ pubDate,
+ };
+ })
+ .get(),
+ };
+};
diff --git a/lib/routes/tingshuitz/nanjing.js b/lib/routes/tingshuitz/nanjing.js
new file mode 100644
index 0000000000..5beac4fbef
--- /dev/null
+++ b/lib/routes/tingshuitz/nanjing.js
@@ -0,0 +1,35 @@
+const axios = require('../../utils/axios');
+const cheerio = require('cheerio');
+
+const HOME_PAGE = 'http://www.jlwater.com/';
+
+module.exports = async (ctx) => {
+ const url = `${HOME_PAGE}portal.do?method=news&subjectchildid=8`;
+ const response = await axios.get(url);
+
+ const data = response.data;
+ const $ = cheerio.load(data);
+ const list = $('.maincol-list ul li');
+
+ ctx.state.data = {
+ title: $('head title').text(),
+ link: url,
+ item: list
+ .map((index, item) => {
+ const $item = $(item);
+ const $title = $item.find('.rtitle');
+ const link = $title.find('a').attr('href');
+
+ let pubDate = $item.find('.rtime').text();
+ pubDate = new Date(pubDate.substring(1, pubDate.length - 1)).toUTCString();
+
+ return {
+ title: $title.text(),
+ description: '南京市停水通知',
+ link: `${HOME_PAGE}${link}`,
+ pubDate,
+ };
+ })
+ .get(),
+ };
+};