mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-15 01:30:33 +08:00
@@ -133,6 +133,7 @@ router.get('/juejin/posts/:id', require('./routes/juejin/posts'));
|
||||
router.get('/juejin/collections/:userId', require('./routes/juejin/favorites'));
|
||||
router.get('/juejin/collection/:collectionId', require('./routes/juejin/collection'));
|
||||
router.get('/juejin/shares/:userId', require('./routes/juejin/shares'));
|
||||
router.get('/juejin/column/:id', require('./routes/juejin/column'));
|
||||
|
||||
// 自如
|
||||
router.get('/ziroom/room/:city/:iswhole/:room/:keyword', require('./routes/ziroom/room'));
|
||||
|
||||
31
lib/routes/juejin/column.js
Normal file
31
lib/routes/juejin/column.js
Normal file
@@ -0,0 +1,31 @@
|
||||
const got = require('@/utils/got');
|
||||
const util = require('./utils');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const { id } = ctx.params;
|
||||
const detail = await got({
|
||||
method: 'get',
|
||||
url: `https://api.juejin.cn/content_api/v1/column/detail?column_id=${id}`,
|
||||
});
|
||||
const response = await got({
|
||||
method: 'post',
|
||||
url: 'https://api.juejin.cn/content_api/v1/column/articles_cursor',
|
||||
json: {
|
||||
column_id: id,
|
||||
limit: 20,
|
||||
cursor: '0',
|
||||
sort: 0,
|
||||
},
|
||||
});
|
||||
const { data } = response.data;
|
||||
const detailData = detail.data.data;
|
||||
const columnName = detailData && detailData.column_version && detailData.column_version.title;
|
||||
const resultItems = await util.ProcessFeed(data, ctx.cache);
|
||||
|
||||
ctx.state.data = {
|
||||
title: `掘金专栏-${columnName}`,
|
||||
link: `https://juejin.cn/column/${id}`,
|
||||
description: `掘金专栏-${columnName}`,
|
||||
item: resultItems,
|
||||
};
|
||||
};
|
||||
@@ -1,4 +1,6 @@
|
||||
const got = require('@/utils/got');
|
||||
const { parseDate } = require('@/utils/parse-date');
|
||||
const timezone = require('@/utils/timezone');
|
||||
const cheerio = require('cheerio');
|
||||
|
||||
// 加载文章页
|
||||
@@ -30,14 +32,13 @@ async function load(link) {
|
||||
const ProcessFeed = async (list, caches) =>
|
||||
await Promise.all(
|
||||
list.map(async (item) => {
|
||||
// 解析时间,补偿时区offset
|
||||
const pubdate = new Date(parseInt(item.article_info.ctime) * 1000 - 8 * 60 * 60 * 1000);
|
||||
const pubdate = timezone(parseDate(parseInt(item.article_info.ctime) * 1000), +8);
|
||||
const link = `https://juejin.cn/post/${item.article_id}`;
|
||||
// 列表上提取到的信息
|
||||
const single = {
|
||||
title: item.article_info.title,
|
||||
description: `${(item.content || item.summaryInfo || '无描述').replace(/[\x00-\x08\x0b-\x0c\x0e-\x1f\x7f]/g, '')}`,
|
||||
pubDate: pubdate.toUTCString(),
|
||||
pubDate: pubdate,
|
||||
author: item.author_user_info.user_name,
|
||||
link,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user