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(),
+ })),
+ }
+};