feat(route): add tophub list 将榜单条目集合到一个列表中,可避免推送大量条目,更符合阅读习惯且有热度排序 (#14056)
* feat(route): add fxiaoke.com blog * Update lib/v2/fxiaoke/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/fxiaoke/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/fxiaoke/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/fxiaoke/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/fxiaoke/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/fxiaoke/radar.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/fxiaoke/crm.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * gen exact pubdate * feat(route): add tophub list * fix: guid * fix: use art to render rank ---------
This commit is contained in:
parent
4cf17c004c
commit
92c89367c8
|
|
@ -0,0 +1,40 @@
|
|||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
const config = require('@/config').value;
|
||||
const path = require('path');
|
||||
const { art } = require('@/utils/render');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const id = ctx.params.id;
|
||||
const link = `https://tophub.today/n/${id}`;
|
||||
const response = await got.get(link, {
|
||||
headers: {
|
||||
Referer: 'https://tophub.today',
|
||||
Cookie: config.tophub.cookie,
|
||||
},
|
||||
});
|
||||
const $ = cheerio.load(response.data);
|
||||
const title = $('div.Xc-ec-L.b-L').text().trim();
|
||||
const items = $('div.Zd-p-Sc > div:nth-child(1) tr')
|
||||
.toArray()
|
||||
.map((e) => ({
|
||||
title: $(e).find('td.al a').text().trim(),
|
||||
link: $(e).find('td.al a').attr('href'),
|
||||
heatRate: $(e).find('td:nth-child(3)').text().trim(),
|
||||
}));
|
||||
const combinedTitles = items.map((item) => item.title).join('');
|
||||
const renderRank = art(path.join(__dirname, 'templates/rank.art'), { items });
|
||||
|
||||
ctx.state.data = {
|
||||
title,
|
||||
link,
|
||||
item: [
|
||||
{
|
||||
title,
|
||||
link,
|
||||
description: renderRank,
|
||||
guid: combinedTitles,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
module.exports = {
|
||||
'/:id': ['LogicJake'],
|
||||
'/list/:id': ['akynazh'],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -8,6 +8,12 @@ module.exports = {
|
|||
source: ['/n/:id'],
|
||||
target: '/tophub/:id',
|
||||
},
|
||||
{
|
||||
title: '榜单列表',
|
||||
docs: 'https://docs.rsshub.app/routes/new-media#jin-ri-re-bang-bang-dan-lie-biao',
|
||||
source: ['/n/:id'],
|
||||
target: '/tophub/list/:id',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
module.exports = (router) => {
|
||||
router.get('/:id', require('./'));
|
||||
router.get('/list/:id', require('./list'));
|
||||
};
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>排名</th>
|
||||
<th>标题</th>
|
||||
<th>热度</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{each items}}
|
||||
<tr>
|
||||
<td>{{ $index + 1 }}</td>
|
||||
<td>
|
||||
<a href="{{ $value.link }}">
|
||||
{{ $value.title }}
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ $value.heatRate }}</td>
|
||||
</tr>
|
||||
{{/each}}
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -3423,6 +3423,14 @@ IPFS 网关有可能失效,那时候换成其他网关。
|
|||
|
||||
<Route author="LogicJake" example="/tophub/Om4ejxvxEN" path="/tophub/:id" paramsDesc={['榜单id,可在 URL 中找到']} />
|
||||
|
||||
### 榜单列表 {#jin-ri-re-bang-bang-dan-lie-biao}
|
||||
|
||||
<Route author="akynazh" example="/tophub/list/Om4ejxvxEN" path="/tophub/list/:id" paramsDesc={['榜单id,可在 URL 中找到']} />
|
||||
|
||||
:::tip
|
||||
将榜单条目集合到一个列表中,可避免推送大量条目,更符合阅读习惯且有热度排序,推荐使用。
|
||||
:::
|
||||
|
||||
## 今日头条 {#jin-ri-tou-tiao}
|
||||
|
||||
### 关键词 {#jin-ri-tou-tiao-guan-jian-ci}
|
||||
|
|
|
|||
Loading…
Reference in New Issue