diff --git a/lib/v2/huggingface/daily-papers.js b/lib/v2/huggingface/daily-papers.js index af9fb54136..7cf802ceed 100644 --- a/lib/v2/huggingface/daily-papers.js +++ b/lib/v2/huggingface/daily-papers.js @@ -4,17 +4,23 @@ const { parseDate } = require('@/utils/parse-date'); module.exports = async (ctx) => { const { body: response } = await got('https://huggingface.co/papers'); + const sortby = ctx.params.sortby || 'time'; const $ = cheerio.load(response); const papers = $('main > div[data-target="DailyPapers"]').data('props'); - const items = papers.dailyPapers.map((item) => ({ + let items = papers.dailyPapers.map((item) => ({ title: item.title, link: `https://arxiv.org/abs/${item.paper.id}`, description: item.paper.summary.replaceAll('\n', ' '), - pubDate: parseDate(item.publishedAt), + pubDate: sortby === 'time' ? parseDate(item.publishedAt) : undefined, author: item.paper.authors.map((author) => author.name).join(', '), + upvotes: item.paper.upvotes, })); + if (sortby === 'votes') { + items = items.sort((a, b) => b.upvotes - a.upvotes); + } + ctx.state.data = { title: 'Huggingface Daily Papers', link: 'https://huggingface.co/papers', diff --git a/lib/v2/huggingface/router.js b/lib/v2/huggingface/router.js index 5c62ff5f13..81d8d7bff3 100644 --- a/lib/v2/huggingface/router.js +++ b/lib/v2/huggingface/router.js @@ -1,4 +1,4 @@ module.exports = (router) => { router.get('/blog-zh', require('./blog-zh')); - router.get('/daily-papers', require('./daily-papers')); + router.get('/daily-papers/:sortby?', require('./daily-papers')); }; diff --git a/website/docs/routes/programming.mdx b/website/docs/routes/programming.mdx index 96d250d894..3d804d1c83 100644 --- a/website/docs/routes/programming.mdx +++ b/website/docs/routes/programming.mdx @@ -490,7 +490,11 @@ Subscribe to the updates (threads and submission) from a paritcular Hacker News ### Daily Papers {#huggingface-daily-papers} - + + | 时间 | upvotes | + | ---- | ------- | + | time | votes | + ### 中文博客 {#huggingface-zhong-wen-bo-ke}