mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-02 01:58:11 +08:00
46 lines
2.0 KiB
JavaScript
46 lines
2.0 KiB
JavaScript
const got = require('@/utils/got');
|
|
const { art } = require('@/utils/render');
|
|
const path = require('path');
|
|
|
|
module.exports = async (ctx) => {
|
|
const name = ctx.request.url.split('package/')[1];
|
|
const packageDownloadLastMonthAPI = `https://api.npmjs.org/downloads/point/last-month/${name}`; // 按月统计
|
|
const packageDownloadLastWeekAPI = `https://api.npmjs.org/downloads/point/last-week/${name}`; // 按周统计
|
|
const packageDownloadLastDayAPI = `https://api.npmjs.org/downloads/point/last-day/${name}`; // 按天统计
|
|
const packageVersionAPI = `https://registry.npmjs.org/${name}`; // 包基本信息
|
|
|
|
const downloadCountLastMonthRes = await got(packageDownloadLastMonthAPI).json();
|
|
const downloadCountLastWeekRes = await got(packageDownloadLastWeekAPI).json();
|
|
const downloadCountLastDayRes = await got(packageDownloadLastDayAPI).json();
|
|
const packageVersionRes = await got(packageVersionAPI).json();
|
|
|
|
const packageVersion = packageVersionRes.time;
|
|
const packageVersionList = [];
|
|
for (const key in packageVersion) {
|
|
packageVersionList.push({
|
|
version: key,
|
|
time: packageVersion[key],
|
|
});
|
|
}
|
|
packageVersionList.reverse();
|
|
|
|
ctx.state.data = {
|
|
title: `${name} - npm`,
|
|
link: `https://www.npmjs.com/package/${name}`,
|
|
description: `${name} - npm`,
|
|
item: [
|
|
{
|
|
title: `${name} - npm`,
|
|
description: art(path.join(__dirname, 'templates/package.art'), {
|
|
packageDownloadCountLastMonth: downloadCountLastMonthRes.downloads,
|
|
packageDownloadCountLastWeek: downloadCountLastWeekRes.downloads,
|
|
packageDownloadCountLastDay: downloadCountLastDayRes.downloads,
|
|
packageVersion: packageVersionList,
|
|
}),
|
|
link: `https://www.npmjs.com/package/${name}`,
|
|
guid: `https://www.npmjs.com/package/${name}${packageVersion.modified}`,
|
|
},
|
|
],
|
|
};
|
|
};
|