Files
RSSHub/lib/v2/line/today.js
Tony e17a1ae316 feat(route): line today publisher (#12208)
* feat(route): line today publisher

* fix: th parsing
2023-03-31 01:34:51 +08:00

45 lines
1.6 KiB
JavaScript

const got = require('@/utils/got');
const { baseUrl: rootUrl, parseList, parseItems } = require('./utils');
module.exports = async (ctx) => {
const edition = ctx.params.edition || 'tw';
const tab = ctx.params.tab || 'top';
const tabUrl = `${rootUrl}/webapi/portal/page/${tab}?country=${edition}`;
const recommendationUrl = `${rootUrl}/webapi/api/v6/recommendation/articles/listings/mytoday_rec:id?offset=0&length=50&country=${edition}&gender=&age=&excludeNoThumbnail=0&containMainSnapshot=0`;
const currentUrl = `${rootUrl}/${edition}/v2/tab/${tab}`;
let title = 'Recommendation',
moduleUrl;
if (tab !== 'recommendation') {
const moduleResponse = await got({
method: 'get',
url: tabUrl,
});
const listing = moduleResponse.data.modules.filter((item) => item.source === 'CATEGORY_MOST_VIEW').pop().listings[0];
title = moduleResponse.data.name;
moduleUrl =
`${rootUrl}/webapi/trending/category/mostView/listings/${listing.id}?` +
`offset=0&length=50&country=${edition}&targetContent=${listing.params.targetContent}` +
`&categories=${listing.params.categories}&trendingEventPeriod=${listing.params.trendingEventPeriod}`;
}
const response = await got({
method: 'get',
url: tab === 'recommendation' ? recommendationUrl : moduleUrl,
});
const list = parseList(response.data.items);
const items = await parseItems(list, ctx.cache.tryGet);
ctx.state.data = {
title: `${title} - Line Today`,
link: currentUrl,
item: items,
};
};