mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-11 23:59:56 +08:00
feat: add 755 (#3557)
This commit is contained in:
@@ -4,6 +4,12 @@ pageClass: routes
|
|||||||
|
|
||||||
# 社交媒体
|
# 社交媒体
|
||||||
|
|
||||||
|
## 755
|
||||||
|
|
||||||
|
### 用户时间线
|
||||||
|
|
||||||
|
<Route author="hoilc" example="/755/user/akimoto-manatsu" path="/755/user/:username" :paramsDesc="['用户名, 可在 URL 中找到']"/>
|
||||||
|
|
||||||
## bilibili
|
## bilibili
|
||||||
|
|
||||||
::: tip Tiny Tiny RSS 用户请注意
|
::: tip Tiny Tiny RSS 用户请注意
|
||||||
|
|||||||
@@ -2024,6 +2024,9 @@ router.get('/bahamut/creation_index/:category?/:subcategory?/:type?', require('.
|
|||||||
// CentBrowser
|
// CentBrowser
|
||||||
router.get('/centbrowser/history', require('./routes/centbrowser/history'));
|
router.get('/centbrowser/history', require('./routes/centbrowser/history'));
|
||||||
|
|
||||||
|
// 755
|
||||||
|
router.get('/755/user/:username', require('./routes/755/user'));
|
||||||
|
|
||||||
// Mastodon
|
// Mastodon
|
||||||
router.get('/mastodon/timeline/:site/:only_media?', require('./routes/mastodon/timeline'));
|
router.get('/mastodon/timeline/:site/:only_media?', require('./routes/mastodon/timeline'));
|
||||||
|
|
||||||
|
|||||||
71
lib/routes/755/user.js
Normal file
71
lib/routes/755/user.js
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
const got = require('@/utils/got');
|
||||||
|
|
||||||
|
const postTypes = {
|
||||||
|
1: '文字',
|
||||||
|
2: '表情',
|
||||||
|
3: '纯图片',
|
||||||
|
4: '评论',
|
||||||
|
5: '转发',
|
||||||
|
6: '纯视频',
|
||||||
|
7: '图片文字',
|
||||||
|
8: '视频文字',
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = async (ctx) => {
|
||||||
|
const username = ctx.params.username;
|
||||||
|
|
||||||
|
const url = `https://api.7gogo.jp/web/v2/talks/${username}/posts?talkId=${username}&direction=PREV`;
|
||||||
|
|
||||||
|
const response = await got.get(url);
|
||||||
|
const list = response.data.data;
|
||||||
|
|
||||||
|
const user_display_name = list[0].user.name;
|
||||||
|
const user_description = list[0].user.description;
|
||||||
|
const user_image = list[0].user.coverImageUrl;
|
||||||
|
|
||||||
|
const GetContent = (post) =>
|
||||||
|
post.body &&
|
||||||
|
post.body
|
||||||
|
.map((item) => {
|
||||||
|
switch (item.bodyType) {
|
||||||
|
case 1:
|
||||||
|
return `<p>${item.text.replace(/\n/gm, '<br/>')}</p>`;
|
||||||
|
case 2:
|
||||||
|
return `<img src="${item.image}">`;
|
||||||
|
case 3:
|
||||||
|
return `<img src="${item.image}">`;
|
||||||
|
case 4:
|
||||||
|
return `<blockquote>${item.comment.user.name}:<br/>${item.comment.comment.body.replace(/\n/gm, '<br/>')}</blockquote>`;
|
||||||
|
case 7:
|
||||||
|
return `<blockquote>${item.talk.name}:<br/>${GetContent(item.post)}</blockquote>`;
|
||||||
|
case 8:
|
||||||
|
return `<video src="${item.movieUrlHq}" poster="${item.thumbnailUrl}" controls loop>Video</video>`;
|
||||||
|
default:
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.join('');
|
||||||
|
|
||||||
|
const GetTitle = (post) => {
|
||||||
|
const texts = post.body.filter((s) => s.bodyType === 1);
|
||||||
|
const type_name = postTypes[post.postType];
|
||||||
|
return texts.length !== 0 ? texts[0].text.split('\n')[0] : type_name;
|
||||||
|
};
|
||||||
|
|
||||||
|
const ProcessFeed = (data) =>
|
||||||
|
data.slice(0, 20).map((item) => ({
|
||||||
|
title: GetTitle(item.post),
|
||||||
|
author: user_display_name,
|
||||||
|
description: GetContent(item.post),
|
||||||
|
pubDate: new Date(item.post.time * 1000).toUTCString(),
|
||||||
|
link: `https://7gogo.jp/${username}/${item.post.postId}`,
|
||||||
|
}));
|
||||||
|
|
||||||
|
ctx.state.data = {
|
||||||
|
title: `${user_display_name} - 755`,
|
||||||
|
image: user_image,
|
||||||
|
description: user_description,
|
||||||
|
link: `https://7gogo.jp/${username}`,
|
||||||
|
item: ProcessFeed(list),
|
||||||
|
};
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user