mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-03 02:28:23 +08:00
* feat(route): support medium * docs(route): support medium * feat(medium): add radar.js * Update docs/blog.md Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update docs/blog.md Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update docs/blog.md Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update docs/blog.md Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update docs/en/blog.md Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/medium/tag.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/medium/router.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/medium/maintainer.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update docs/en/blog.md Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update docs/en/blog.md Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update docs/en/blog.md Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/medium/following.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/medium/for-you.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * Update lib/v2/medium/list.js Co-authored-by: Tony <TonyRL@users.noreply.github.com> * chore(medium): update graphql --------- Co-authored-by: Tony <TonyRL@users.noreply.github.com>
32 lines
922 B
JavaScript
32 lines
922 B
JavaScript
const config = require('@/config').value;
|
|
|
|
const parseArticle = require('./parse-article.js');
|
|
const { getWebInlineRecommendedFeedQuery } = require('./graphql.js');
|
|
|
|
module.exports = async (ctx) => {
|
|
const user = ctx.params.user;
|
|
|
|
const cookie = config.medium.cookies[user];
|
|
if (cookie === undefined) {
|
|
throw Error(`缺少 Medium 用户 ${user} 登录后的 Cookie 值`);
|
|
}
|
|
|
|
const posts = await getWebInlineRecommendedFeedQuery(user, cookie);
|
|
ctx.state.json = posts;
|
|
|
|
if (!posts) {
|
|
// login failed
|
|
throw Error(`Medium 用户 ${user} 的 Cookie 无效或已过期`);
|
|
}
|
|
|
|
const urls = posts.items.map((data) => data.post.mediumUrl);
|
|
|
|
const parsedArticles = await Promise.all(urls.map((url) => parseArticle(ctx, url)));
|
|
|
|
ctx.state.data = {
|
|
title: `${user} Medium For You`,
|
|
link: 'https://medium.com/',
|
|
item: parsedArticles,
|
|
};
|
|
};
|