diff --git a/docs/README.md b/docs/README.md
index 29ca92164..c7a72b9b4 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1830,6 +1830,14 @@ IATA 国际航空运输协会机场代码, 参见[维基百科 国际航空运
+### GNN.tw 游戏新闻
+
+
+
+### a9vgNews 游戏新闻
+
+
+
## 小说·文学·阅读
### 观止(每日一文)
diff --git a/router.js b/router.js
index decb33ea5..1e63fa766 100644
--- a/router.js
+++ b/router.js
@@ -753,6 +753,12 @@ router.get('/hko/weather', require('./routes/hko/weather'));
// sankakucomplex
router.get('/sankakucomplex/post', require('./routes/sankakucomplex/post'));
+// gnn游戏新闻
+router.get('/gnn/gnn', require('./routes/gnn/gnn'));
+
+// a9vg游戏新闻
+router.get('/a9vg/a9vg', require('./routes/a9vg/a9vg'));
+
// IT桔子
router.get('/itjuzi/invest', require('./routes/itjuzi/invest'));
router.get('/itjuzi/merge', require('./routes/itjuzi/merge'));
diff --git a/routes/a9vg/a9vg.js b/routes/a9vg/a9vg.js
new file mode 100644
index 000000000..bd0936b01
--- /dev/null
+++ b/routes/a9vg/a9vg.js
@@ -0,0 +1,36 @@
+const axios = require('../../utils/axios');
+const cheerio = require('cheerio');
+
+module.exports = async (ctx) => {
+ const response = await axios({
+ method: 'get',
+ url: 'http://www.a9vg.com/news/',
+ headers: {
+ Referer: 'http://www.a9vg.com/news/',
+ },
+ });
+
+ const data = response.data;
+
+ const $ = cheerio.load(data);
+ const list = $('.txt-r-img.combine2 dl');
+
+ ctx.state.data = {
+ title: 'A9VG电玩部落',
+ link: 'http://www.a9vg.com/news/',
+ description: '电玩资讯_电玩动态- A9VG电玩部落',
+ item:
+ list &&
+ list
+ .map((index, item) => {
+ item = $(item);
+ return {
+ title: item.find('.img-scale').attr('title'),
+ description: item.find('p').text() + '
',
+ pubDate: new Date(item.find('.time').data('shared-at')).toUTCString(),
+ link: item.find('.img-scale').attr('href'),
+ };
+ })
+ .get(),
+ };
+};
diff --git a/routes/gnn/gnn.js b/routes/gnn/gnn.js
new file mode 100644
index 000000000..9253ffee1
--- /dev/null
+++ b/routes/gnn/gnn.js
@@ -0,0 +1,36 @@
+const axios = require('../../utils/axios');
+const cheerio = require('cheerio');
+
+module.exports = async (ctx) => {
+ const response = await axios({
+ method: 'get',
+ url: 'https://gnn.gamer.com.tw/',
+ headers: {
+ Referer: 'hhttps://gnn.gamer.com.tw/',
+ },
+ });
+
+ const data = response.data;
+
+ const $ = cheerio.load(data);
+ const list = $('.GN-lbox2 .GN-lbox2B');
+
+ ctx.state.data = {
+ title: 'GNN 新聞網 - 巴哈姆特 edited by monner',
+ link: 'https://gnn.gamer.com.tw/',
+ description: '巴 哈 姆 特 電 玩 資 訊 站 https://www.gamer.com.tw',
+ item:
+ list &&
+ list
+ .map((index, item) => {
+ item = $(item);
+ return {
+ title: item.find('.GN-lbox2D').text(),
+ description: item.find('.GN-lbox2C').text() + '
',
+ pubDate: new Date(item.find('.time').data('shared-at')).toUTCString(),
+ link: item.find('.GN-lbox2D a').attr('href'),
+ };
+ })
+ .get(),
+ };
+};