diff --git a/lib/routes/appstare/comments.ts b/lib/routes/appstare/comments.ts new file mode 100644 index 000000000..8db1faf2f --- /dev/null +++ b/lib/routes/appstare/comments.ts @@ -0,0 +1,57 @@ +import { Route } from '@/types'; +import ofetch from '@/utils/ofetch'; + +export const handler = async (ctx) => { + const country = ctx.req.param('country'); + const appid = ctx.req.param('appid'); + const url = `https://monitor.appstare.net/spider/appComments?country=${country}&appId=${appid}`; + const data = await ofetch(url); + + const items = data.map((item) => ({ + title: item.title, + description: ` +
${'⭐️'.repeat(Math.floor(item.rating))}
+

${item.review}

+ `, + pubDate: new Date(item.date).toUTCString(), + })); + + const link = `https://appstare.net/data/app/comment/${appid}/${country}`; + + return { + title: 'App Comments', + appID: appid, + country, + item: items, + link, + allowEmpty: true, + }; +}; + +export const route: Route = { + path: '/comments/:country/:appid', + name: 'Comments', + url: 'appstare.net/', + example: '/appstare/comments/cn/989673964', + maintainers: ['zhixideyu'], + handler, + parameters: { + country: 'App Store country code, e.g., US, CN', + appid: 'Unique App Store application identifier (app id)', + }, + categories: ['program-update'], + features: { + requireConfig: false, + requirePuppeteer: false, + antiCrawler: false, + supportBT: false, + supportPodcast: false, + supportScihub: false, + }, + radar: [ + { + source: ['appstare.net/'], + }, + ], + description: 'Retrieve only the comments of the app from the past 7 days.', +}; diff --git a/lib/routes/appstare/namespace.ts b/lib/routes/appstare/namespace.ts new file mode 100644 index 000000000..3efc0382b --- /dev/null +++ b/lib/routes/appstare/namespace.ts @@ -0,0 +1,6 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: 'AppStare', + url: 'appstare.net', +};