diff --git a/lib/config.ts b/lib/config.ts index 7a73d9234bde9d..2d9292702faec9 100644 --- a/lib/config.ts +++ b/lib/config.ts @@ -285,8 +285,8 @@ export type Config = { authToken?: string[]; }; uestc: { - bbs_cookie?: string; - bbs_auth_str?: string; + bbsCookie?: string; + bbsAuthStr?: string; }; weibo: { app_key?: string; diff --git a/lib/routes/yamap/articles.ts b/lib/routes/yamap/articles.ts new file mode 100644 index 00000000000000..ec36a4457cbb53 --- /dev/null +++ b/lib/routes/yamap/articles.ts @@ -0,0 +1,62 @@ +import { Route } from '@/types'; +import cache from '@/utils/cache'; +import got from '@/utils/got'; +import { load } from 'cheerio'; +import { parseDate } from '@/utils/parse-date'; +import timezone from '@/utils/timezone'; + +const baseUrl = 'https://yamap.com/activities/'; +const host = 'https://api.yamap.com/v3/activities?page=1&per=24'; + +export const route: Route = { + path: '/', + categories: ['travel'], + example: '/yamap', + parameters: {}, + features: { + requireConfig: false, + requirePuppeteer: false, + antiCrawler: false, + supportBT: false, + supportPodcast: false, + supportScihub: false, + }, + name: '文章', + maintainers: ['valuex'], + handler, + description: '', +}; + +async function handler() { + const link = host; + const response = await got(link); + const metadata = response.data; + // const recordNum = metadata.activities.length - 1 ; + + const lists = metadata.activities.map((item) => ({ + title: item.title, + link: baseUrl + item.id.toString(), + pubDate: parseDate(item.created_at), + location: item.map.name || 'Japan', + })); + + const items = await Promise.all( + lists.map((item) => + cache.tryGet(item.link, async () => { + const response = await got(item.link); + const $ = load(response.data); + item.title = item.title + '-' + item.location; + item.description = $('div.ActivitiesId__Body main').html(); + item.pubDate = timezone(parseDate($('span[class=ActivityDetailTabLayout__Middle__Date]').text()), 8); + return item; + }) + ) + ); + + return { + title: 'Yamap', + link: baseUrl, + description: 'Yamap', + item: items, + }; +} diff --git a/lib/routes/yamap/namespace.ts b/lib/routes/yamap/namespace.ts new file mode 100644 index 00000000000000..1c0ffd0d05b0a3 --- /dev/null +++ b/lib/routes/yamap/namespace.ts @@ -0,0 +1,6 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: 'YAMAP', + url: 'yamap.com', +};