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}