From 031b4e8d88b5542de387c21428c4e3bb79437db8 Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 8 Mar 2024 10:05:44 +0800 Subject: [PATCH] fix(route): recover a9vg (#14710) docs: rename author #1066 --- lib/router.js | 2 +- lib/routes-deprecated/a9vg/a9vg.js | 36 ------------------------------ lib/routes/a9vg/a9vg.ts | 30 +++++++++++++++++++++++++ lib/routes/a9vg/maintainer.ts | 3 +++ lib/routes/a9vg/radar.ts | 13 +++++++++++ lib/routes/a9vg/router.ts | 3 +++ website/docs/routes/game.mdx | 8 +++---- 7 files changed, 54 insertions(+), 41 deletions(-) delete mode 100644 lib/routes-deprecated/a9vg/a9vg.js create mode 100644 lib/routes/a9vg/a9vg.ts create mode 100644 lib/routes/a9vg/maintainer.ts create mode 100644 lib/routes/a9vg/radar.ts create mode 100644 lib/routes/a9vg/router.ts diff --git a/lib/router.js b/lib/router.js index d25d903cd..fe2bfa7f9 100644 --- a/lib/router.js +++ b/lib/router.js @@ -388,7 +388,7 @@ router.get('/blogread/newest', lazyloadRouteHandler('./routes/blogread/newest')) router.get('/gnn/gnn', lazyloadRouteHandler('./routes/gnn/gnn')); // a9vg游戏新闻 -router.get('/a9vg/a9vg', lazyloadRouteHandler('./routes/a9vg/a9vg')); +// router.get('/a9vg/a9vg', lazyloadRouteHandler('./routes/a9vg/a9vg')); // The Guardian router.get('/guardian/:type', lazyloadRouteHandler('./routes/guardian/guardian')); diff --git a/lib/routes-deprecated/a9vg/a9vg.js b/lib/routes-deprecated/a9vg/a9vg.js deleted file mode 100644 index 29e07ee4c..000000000 --- a/lib/routes-deprecated/a9vg/a9vg.js +++ /dev/null @@ -1,36 +0,0 @@ -const got = require('@/utils/got'); -const cheerio = require('cheerio'); - -module.exports = async (ctx) => { - const response = await got({ - method: 'get', - url: 'http://www.a9vg.com/list/news', - headers: { - Referer: 'http://www.a9vg.com/list/news', - }, - }); - - const data = response.data; - - const $ = cheerio.load(data); - const list = $('.a9-rich-card-list li'); - - ctx.state.data = { - title: 'A9VG电玩部落', - link: 'http://www.a9vg.com/list/news/', - description: '电玩资讯_电玩动态- A9VG电玩部落', - item: - list && - list - .map((index, item) => { - item = $(item); - return { - title: item.find('.a9-rich-card-list_label').text(), - description: item.find('.a9-rich-card-list_summary').text() + '', - pubDate: new Date(item.find('.a9-rich-card-list_infos').text()).toUTCString(), - link: 'http://www.a9vg.com' + item.find('.a9-rich-card-list_item').attr('href'), - }; - }) - .get(), - }; -}; diff --git a/lib/routes/a9vg/a9vg.ts b/lib/routes/a9vg/a9vg.ts new file mode 100644 index 000000000..6dddbaa52 --- /dev/null +++ b/lib/routes/a9vg/a9vg.ts @@ -0,0 +1,30 @@ +import got from '@/utils/got'; +import * as cheerio from 'cheerio'; +import { parseDate } from '@/utils/parse-date'; +import timezone from '@/utils/timezone'; + +export default async (ctx) => { + const baseUrl = 'http://www.a9vg.com'; + const link = `${baseUrl}/list/news`; + const { data } = await got(link); + + const $ = cheerio.load(data); + const list = $('.a9-rich-card-list li') + .toArray() + .map((elem) => { + const item = $(elem); + return { + title: item.find('.a9-rich-card-list_label').text(), + description: `
${item.find('.a9-rich-card-list_summary').text().trim()}`, + pubDate: timezone(parseDate(item.find('.a9-rich-card-list_infos').text().trim(), 'YYYY-MM-DD HH:mm:ss'), 8), + link: `${baseUrl}${item.find('.a9-rich-card-list_item').attr('href')}`, + }; + }); + + ctx.set('data', { + title: 'A9VG 电玩部落', + link, + description: $('meta[name="description"]').attr('content'), + item: list, + }); +}; diff --git a/lib/routes/a9vg/maintainer.ts b/lib/routes/a9vg/maintainer.ts new file mode 100644 index 000000000..dd5f32e74 --- /dev/null +++ b/lib/routes/a9vg/maintainer.ts @@ -0,0 +1,3 @@ +export default { + '/': ['monnerHenster'], +}; diff --git a/lib/routes/a9vg/radar.ts b/lib/routes/a9vg/radar.ts new file mode 100644 index 000000000..ca9d0898a --- /dev/null +++ b/lib/routes/a9vg/radar.ts @@ -0,0 +1,13 @@ +export default { + 'a9vg.com': { + _name: 'A9VG 电玩部落', + '.': [ + { + title: '游戏新闻', + docs: 'https://docs.rsshub.app/routes/game#a9vg-dian-wan-bu-luo', + source: ['/list/news', '/'], + target: '/a9vg', + }, + ], + }, +}; diff --git a/lib/routes/a9vg/router.ts b/lib/routes/a9vg/router.ts new file mode 100644 index 000000000..052f98ba3 --- /dev/null +++ b/lib/routes/a9vg/router.ts @@ -0,0 +1,3 @@ +export default (router) => { + router.get('/', './a9vg'); +}; diff --git a/website/docs/routes/game.mdx b/website/docs/routes/game.mdx index b78c9d2be..37a7df309 100644 --- a/website/docs/routes/game.mdx +++ b/website/docs/routes/game.mdx @@ -42,11 +42,11 @@ -## a9vgNews 游戏新闻 {#a9vgnews-you-xi-xin-wen} +## A9VG 电玩部落 {#a9vg-dian-wan-bu-luo} -### a9vgNews 游戏新闻 {#a9vgnews-you-xi-xin-wen-a9vgnews-you-xi-xin-wen} +### 游戏新闻 {#a9vg-dian-wan-bu-luo-you-xi-xin-wen} - + ## Blizzard {#blizzard} @@ -236,7 +236,7 @@ ### GNN.tw 游戏新闻 {#gnn-tw-you-xi-xin-wen-gnn-tw-you-xi-xin-wen} - + ## HoYoLAB {#hoyolab}