From 0473cb1ceb0539ade7e3cf0edd091458aed128a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=99=8E=E6=95=85=E6=B4=9E?= <55782476+TigerCubDen@users.noreply.github.com> Date: Sun, 14 Feb 2021 19:20:47 +0800 Subject: [PATCH 1/5] Update router.js --- lib/router.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/router.js b/lib/router.js index 17e97da5d2..87f1b40fdd 100644 --- a/lib/router.js +++ b/lib/router.js @@ -3942,6 +3942,7 @@ router.get('/furaffinity/home/:type?/:nsfw?', require('./routes/furaffinity/home router.get('/furaffinity/browse/:nsfw?', require('./routes/furaffinity/browse')); router.get('/furaffinity/status', require('./routes/furaffinity/status')); router.get('/furaffinity/search/:keyword/:nsfw?', require('./routes/furaffinity/search')); +router.get('/furaffinity/user/:username', require('./routes/furaffinity/user')); router.get('/furaffinity/watching/:username', require('./routes/furaffinity/watching')); router.get('/furaffinity/watchers/:username', require('./routes/furaffinity/watchers')); router.get('/furaffinity/commissions/:username', require('./routes/furaffinity/commissions')); @@ -3950,4 +3951,4 @@ router.get('/furaffinity/gallery/:username/:nsfw?', require('./routes/furaffinit router.get('/furaffinity/scraps/:username/:nsfw?', require('./routes/furaffinity/scraps')); router.get('/furaffinity/favorites/:username/:nsfw?', require('./routes/furaffinity/favorites')); -module.exports = router; \ No newline at end of file +module.exports = router; From a6f455b82f79b611bc9f41643b08fac1029a1e78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=99=8E=E6=95=85=E6=B4=9E?= <55782476+TigerCubDen@users.noreply.github.com> Date: Sun, 14 Feb 2021 19:30:29 +0800 Subject: [PATCH 2/5] Create user.js --- lib/routes/furaffinity/user.js | 103 +++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 lib/routes/furaffinity/user.js diff --git a/lib/routes/furaffinity/user.js b/lib/routes/furaffinity/user.js new file mode 100644 index 0000000000..17d0aefa2c --- /dev/null +++ b/lib/routes/furaffinity/user.js @@ -0,0 +1,103 @@ +const got = require('@/utils/got'); +const JSONbig = require('json-bigint'); + +// 发起 HTTP GET 请求 +module.exports = async (ctx) => { + //传入参数 + const username = String(ctx.params.username); + //添加参数username + const response = await got({ + method: 'get', + url: `https://faexport.spangle.org.uk/user/${username}.json`, + headers: { + Referer: `https://faexport.spangle.org.uk/`, + }, + }); + + const data = response.data; + + //收集传入的数据 + const id = data.id; + const name = data.name; + const profile = data.profile; + const account_type = data.profile; + const avatar = ``; + const full_name = data.full_name; + const artist_type = data.artist_type; + const user_title = data.user_title; + const registered_since = data.registered_since; + const registered_at = data.registered_at; + const current_mood = data.current_mood; + const artist_profile = data.artist_profile; + const pageviews = data.pageviews; + const submissions = data.submissions; + const comments_received = data.comments_received; + const comments_given = data.comments_given; + const journals = data.journals; + const favorite = data.favorites; + const watchers_count = data.watchers.count; + const watching_count = data.watching.count; + + const artist_information = data.artist_information; + const species = artist_information['Species']; + const personal_quote = artist_information['Personal Quote']; + const music_type_genre = artist_information['Music Type/Genre']; + const favorites_movie = artist_information['Favorite Movie']; + const favorites_game = artist_information['Favorite Game']; + const favorites_game_platform = artist_information['Favorite Game Platform']; + const favorites_artist = artist_information['Favorite Artist']; + const favorites_animal = artist_information['Favorite Animal']; + const favorites_website = artist_information['Favorite Website']; + const favorites_food = artist_information['Favorite Food']; + + const contact_information = data.contact_information; + let contact_result = "null"; + + //对一个或多个联系方式进行遍历 + if (contact_information != null) { + contact_result = ""; + for (var i = 0; i < contact_information.length; i++) { + for (var j in contact_information[i]) { + if (j == "title") { + contact_result += `Title: ${contact_information[i][j]}
` + } + else if (j == "name") { + contact_result += `Name: ${contact_information[i][j]}
` + } + else if (j == "link") { + contact_result += `Link: ${contact_information[i][j]}
` + } + } + contact_result += `
`; + } + } + + const description = `Id: ${id}
Name: ${name}
Profile: ${profile}
Account Type: ${account_type}
+ Avatar: ${avatar}
Full Name: ${full_name}
Artist Type: ${artist_type}
User Title: ${user_title}
+ Registered Since: ${registered_since}
Registered at: ${registered_at}
Current Mood: ${current_mood}

Artist Profile:
${artist_profile}

+ Pageviews: ${pageviews}
Submissions: ${submissions}
Comments_Received: ${comments_received}
Comments Given: ${comments_given}
+ Journals: ${journals}
Favorite: ${favorite}

Artist Information:
Species: ${species}
Personal Quote: ${personal_quote}
Music Type/Genre: ${music_type_genre}
+ Favorite Movie: ${favorites_movie}
Favorite Game: ${favorites_game}
Favorite Game Platform: ${favorites_game_platform}
Favorite Artist: ${favorites_artist}
+ Favorite Animal: ${favorites_animal}
Favorite Website: ${favorites_website}
Favorite Food: ${favorites_food}

Contact Information:
${contact_result} + Watchers Count: ${watchers_count}
Watching Count: ${watching_count} `; + + const item = []; + item.push({ + title: `${data.name}'s Current Profile`, + description, + link: `https://www.furaffinity.net/user/${username}/`, + }); + + + ctx.state.data = { + // 源标题 + title: `Userpage of ${data.name}`, + // 源链接 + link: `https://www.furaffinity.net/`, + // 源说明 + description: `Fur Affinity Userpage Profile of ${data.name}`, + + item: item, + }; + +}; From 354195ce0135ba8e9cc3c175b7ec254898f6ce25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=99=8E=E6=95=85=E6=B4=9E?= <55782476+TigerCubDen@users.noreply.github.com> Date: Sun, 14 Feb 2021 20:01:07 +0800 Subject: [PATCH 3/5] Create journals.js --- lib/routes/furaffinity/journals.js | 49 ++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 lib/routes/furaffinity/journals.js diff --git a/lib/routes/furaffinity/journals.js b/lib/routes/furaffinity/journals.js new file mode 100644 index 0000000000..ca2af0cef2 --- /dev/null +++ b/lib/routes/furaffinity/journals.js @@ -0,0 +1,49 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +// 发起 HTTP GET 请求 +module.exports = async (ctx) => { + //传入参数 + const username = String(ctx.params.username); + + //添加参数username + const response = await got({ + method: 'get', + url: `https://faexport.spangle.org.uk/user/${username}/journals.rss`, + headers: { + Referer: `https://faexport.spangle.org.uk/`, + }, + }); + + // 使用 cheerio 加载返回的 HTML + const data = response.data; + const $ = cheerio.load(data, { + xmlMode: true + }); + + const list = $('item'); + + ctx.state.data = { + // 源标题 + title: `${username}'s Journals`, + // 源链接 + link: `https://www.furaffinity.net/journals/${username}/`, + // 源说明 + description: `Fur Affinity ${username}'s Journals`, + + //遍历此前获取的数据 + item: + list && + list.map((index, item) => { + item = $(item); + return { + title: item.find("title").text(), + description: item.find("description").text(), + link: item.find("link").text(), + pubDate: new Date(item.find("pubDate").text()).toUTCString(), + author: username, + }; + }) + .get(), + } +}; From cb8298a8bfc25430b2244e843489d2610f7ab141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=99=8E=E6=95=85=E6=B4=9E?= <55782476+TigerCubDen@users.noreply.github.com> Date: Sun, 14 Feb 2021 21:25:26 +0800 Subject: [PATCH 4/5] Create submission_comments.js --- lib/routes/furaffinity/submission_comments.js | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 lib/routes/furaffinity/submission_comments.js diff --git a/lib/routes/furaffinity/submission_comments.js b/lib/routes/furaffinity/submission_comments.js new file mode 100644 index 0000000000..2bcd454d54 --- /dev/null +++ b/lib/routes/furaffinity/submission_comments.js @@ -0,0 +1,50 @@ +const got = require('@/utils/got'); + +module.exports = async (ctx) => { + //传入参数 + const id = String(ctx.params.id); + + // 发起 HTTP GET 请求 + const response = await got({ + method: 'get', + url: `https://faexport.spangle.org.uk/submission/${id}/comments.json`, + headers: { + Referer: `https://faexport.spangle.org.uk/`, + }, + }); + + //发起第二个 HTTP GET 请求,用于获取该作品的标题 + const response2 = await got({ + method: 'get', + url: `https://faexport.spangle.org.uk/submission/${id}.json`, + headers: { + Referer: `https://faexport.spangle.org.uk/`, + }, + }); + + const data = response.data; + const data2 = response2.data; + + ctx.state.data = { + // 源标题 + title: `${data2.title} - Submission Comments`, + // 源链接 + link: `https://www.furaffinity.net/view/${id}/`, + // 源说明 + description: `Fur Affinity ${data2.title} - Submission Comments`, + + //遍历此前获取的数据 + item: data.map((item) => ({ + // 标题 + title: item.text, + // 正文 + description: `
${item.name}: ${item.text}`, + // 链接 + link: `https://www.furaffinity.net/view/${id}/`, + //作者 + author: item.name, + //日期 + pubDate: new Date(item.posted_at).toUTCString(), + })), + } +}; From af8fc30fe7909c96b34d86c996fda803f64f415e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=99=8E=E6=95=85=E6=B4=9E?= <55782476+TigerCubDen@users.noreply.github.com> Date: Sun, 14 Feb 2021 21:26:23 +0800 Subject: [PATCH 5/5] Create journal_comments.js --- lib/routes/furaffinity/journal_comments.js | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 lib/routes/furaffinity/journal_comments.js diff --git a/lib/routes/furaffinity/journal_comments.js b/lib/routes/furaffinity/journal_comments.js new file mode 100644 index 0000000000..f2bba0d289 --- /dev/null +++ b/lib/routes/furaffinity/journal_comments.js @@ -0,0 +1,50 @@ +const got = require('@/utils/got'); + +module.exports = async (ctx) => { + //传入参数 + const id = String(ctx.params.id); + + // 发起 HTTP GET 请求 + const response = await got({ + method: 'get', + url: `https://faexport.spangle.org.uk/journal/${id}/comments.json`, + headers: { + Referer: `https://faexport.spangle.org.uk/`, + }, + }); + + //发起第二个 HTTP GET 请求,用于获取该日记的标题 + const response2 = await got({ + method: 'get', + url: `https://faexport.spangle.org.uk/journal/${id}.json`, + headers: { + Referer: `https://faexport.spangle.org.uk/`, + }, + }); + + const data = response.data; + const data2 = response2.data; + + ctx.state.data = { + // 源标题 + title: `${data2.title} - Journal Comments`, + // 源链接 + link: `https://www.furaffinity.net/journal/${id}/`, + // 源说明 + description: `Fur Affinity ${data2.title} - Journal Comments`, + + //遍历此前获取的数据 + item: data.map((item) => ({ + // 标题 + title: item.text, + // 正文 + description: `
${item.name}: ${item.text}`, + // 链接 + link: `https://www.furaffinity.net/journal/${id}/`, + //作者 + author: item.name, + //日期 + pubDate: new Date(item.posted_at).toUTCString(), + })), + } +};