diff --git a/assets/radar-rules.js b/assets/radar-rules.js index 48b5292ecb..fa7db4e66b 100644 --- a/assets/radar-rules.js +++ b/assets/radar-rules.js @@ -1187,7 +1187,7 @@ target: (params, url) => { const id = new URL(url).hash.match(/home\?id=(.*)/)[1]; return id ? `/ncm/user/playlist/${id}` : ''; - } + }, }, { title: '云音乐 - 歌单歌曲', @@ -1196,7 +1196,7 @@ target: (params, url) => { const id = new URL(url).hash.match(/playlist\?id=(.*)/)[1]; return id ? `/ncm/playlist/${id}` : ''; - } + }, }, { title: '云音乐 - 歌手专辑', @@ -1205,7 +1205,7 @@ target: (params, url) => { const id = new URL(url).hash.match(/album\?id=(.*)/)[1]; return id ? `/ncm/artist/${id}` : ''; - } + }, }, { title: '云音乐 - 电台节目', @@ -1214,7 +1214,7 @@ target: (params, url) => { const id = new URL(url).hash.match(/djradio\?id=(.*)/)[1]; return id ? `/ncm/djradio/${id}` : ''; - } + }, }, ], }, @@ -2004,9 +2004,9 @@ target: (params) => { const id = params.id.match('(.*).html')[1]; return id ? `/tencentvideo/playlist/${id}` : ''; - } + }, }, - ] + ], }, 'javbus.com': { _name: 'JavBus', @@ -2745,7 +2745,6 @@ docs: 'https://docs.rsshub.app/social-media.html#fur-affinity', source: '/browse/', target: '/furaffinity/browse', - }, { title: '站点状态', diff --git a/docs/blog.md b/docs/blog.md index bf44861002..0886f67be6 100644 --- a/docs/blog.md +++ b/docs/blog.md @@ -118,12 +118,6 @@ pageClass: routes -## 敬维博客 - -### 文章 - - - ## 劍心.回憶 ### 分类 @@ -172,6 +166,12 @@ pageClass: routes +## 敬维博客 + +### 文章 + + + ## 每日安全 ### 推送 diff --git a/docs/en/new-media.md b/docs/en/new-media.md index 79f5347040..9aa969c501 100644 --- a/docs/en/new-media.md +++ b/docs/en/new-media.md @@ -35,18 +35,18 @@ Compared to the official one, the RSS feed generated by RSSHub not only has more -## ASML Holding N.V. - -### Press releases & announcements - - - ## American Federation of Labor and Congress of Industrial Organizations ### Blog +## ASML Holding N.V. + +### Press releases & announcements + + + ## Bell Labs ### Event and News diff --git a/docs/finance.md b/docs/finance.md index 0a046d2e82..589b939c09 100644 --- a/docs/finance.md +++ b/docs/finance.md @@ -10,6 +10,18 @@ pageClass: routes +## DT 财经 + +### 数据侠专栏 + + + +| 侠创 | 纽约数据科学学院 | RS 实验所 | 阿里云天池 | +| ---- | ---------------- | --------- | ---------- | +| 5 | 6 | 9 | 10 | + + + ## finviz ### 美股股票新闻 @@ -127,18 +139,6 @@ pageClass: routes -## DT 财经 - -### 数据侠专栏 - - - -| 侠创 | 纽约数据科学学院 | RS 实验所 | 阿里云天池 | -| ---- | ---------------- | --------- | ---------- | -| 5 | 6 | 9 | 10 | - - - ## 淘股吧股票论坛 ### 论坛总版 diff --git a/docs/multimedia.md b/docs/multimedia.md index bcf9144b76..cf16ff51af 100644 --- a/docs/multimedia.md +++ b/docs/multimedia.md @@ -126,6 +126,31 @@ pageClass: routes 见 [#AGE 动漫](/anime.html#age-dong-man) +## AV01(av01.tv) + +### 演员 + +::: tip 提示 +当没有给定排序类型时,默认为按上传时间排序及 mr + +::: + + + +| 按上传时间排序 | 按上市时间排序 | 按观看次数排序 | 按评分排序 | 按时长排序 | +| -------------- | -------------- | -------------- | ---------- | ---------- | +| mr | rd | bw | tr | lg | + + + +### 分类 + + + +例如,路由 `/av01/tag/中出し` 应该输出 的排行榜单 + + + ## Avgle ### 视频列表 @@ -1023,29 +1048,3 @@ Tiny Tiny RSS 会给所有 iframe 元素添加 `sandbox="allow-scripts"` 属性 例如,路由 `/zimuzu/top/week/movie` 应该输出 的排行榜单 - -## AV01(av01.tv) - -### 演员 - -::: tip 提示 -当没有给定排序类型时,默认为按上传时间排序及mr - -::: - - - - -| 按上传时间排序 | 按上市时间排序 | 按观看次数排序| 按评分排序|按时长排序| -| -------- | -------- |-------- |-------- |--------| -| mr | rd | bw | tr | lg | - - - -### 分类 - - - -例如,路由 `/av01/tag/中出し` 应该输出 的排行榜单 - - diff --git a/docs/new-media.md b/docs/new-media.md index e8049c8dfa..8c302c8370 100644 --- a/docs/new-media.md +++ b/docs/new-media.md @@ -2174,6 +2174,12 @@ column 为 third 时可选的 category: +## 亿欧网 + +### 资讯 + + + ## 有趣天文奇观 ### 首页 @@ -2297,9 +2303,3 @@ QueryString: ### 全文 - -## 亿欧网 - -### 资讯 - - diff --git a/docs/social-media.md b/docs/social-media.md index 84c66be6a6..63cc80d944 100644 --- a/docs/social-media.md +++ b/docs/social-media.md @@ -328,8 +328,8 @@ Tiny Tiny RSS 会给所有 iframe 元素添加 `sandbox="allow-scripts"` 属性 类型 type -| 艺术品 | 手工 | 音乐 | 写作 | -| ---- | ---- | ---- | ---- | +| 艺术品 | 手工 | 音乐 | 写作 | +| ------- | ------ | ----- | ------- | | artwork | crafts | music | writing | @@ -362,7 +362,7 @@ Tiny Tiny RSS 会给所有 iframe 元素添加 `sandbox="allow-scripts"` 属性 -### 用户的Shouts留言 +### 用户的 Shouts 留言 @@ -374,7 +374,7 @@ Tiny Tiny RSS 会给所有 iframe 元素添加 `sandbox="allow-scripts"` 属性 -### 用户的零碎(非正式)作品 +### 用户的零碎 (非正式) 作品 diff --git a/lib/router.js b/lib/router.js index 40b5adefe3..9b22df7c39 100644 --- a/lib/router.js +++ b/lib/router.js @@ -642,7 +642,6 @@ router.get('/hit/today/:category', require('./routes/universities/hit/today')); // 哈尔滨工业大学(深圳) router.get('/hitsz/article/:category?', require('./routes/universities/hitsz/article')); - // 哈尔滨工业大学(威海) router.get('/hitwh/today', require('./routes/universities/hitwh/today')); @@ -2678,7 +2677,6 @@ router.get('/sustyjs', require('./routes/universities/sustyjs/sustyjs')); router.get('/sustech/newshub-zh', require('./routes/universities/sustech/newshub-zh')); router.get('/sustech/bidding', require('./routes/universities/sustech/bidding')); - // 广州大学 router.get('/gzyjs', require('./routes/universities/gzyjs/gzyjs')); @@ -3970,5 +3968,4 @@ router.get('/iyiou', require('./routes/iyiou')); // 香港商报 router.get('/hkcd/pdf', require('./routes/hkcd/pdf')); - module.exports = router; diff --git a/lib/routes/bilibili/followings_dynamic.js b/lib/routes/bilibili/followings_dynamic.js index 5ada6c0b1a..f20153f7b1 100644 --- a/lib/routes/bilibili/followings_dynamic.js +++ b/lib/routes/bilibili/followings_dynamic.js @@ -109,24 +109,24 @@ module.exports = async (ctx) => { data_content = data_content.replace( new RegExp(`\\${item.text}`, 'g'), `${item.text}` - ); - }); - } + ); + }); + } // 作者信息 - let author = "哔哩哔哩番剧"; - if (item.desc.user_profile) { - author = item.desc.user_profile.info.uname;} + let author = '哔哩哔哩番剧'; + if (item.desc.user_profile) { + author = item.desc.user_profile.info.uname; + } return { title: getTitle(data), - author : author, + author: author, description: `${parsed.new_desc || data_content || getDes(data)}${ origin && getOriginName(origin) ? `

//转发自: @${getOriginName(origin)}: ${getOriginTitle(origin.item || origin)}${getDes(origin.item || origin)}` : `${getOriginDes(origin)}` }${getIframe(data)}${getIframe(origin)}${imgHTML ? `
${imgHTML}` : ''}${videoHTML ? `
${videoHTML}` : ''}`, pubDate: new Date(item.desc.timestamp * 1000).toUTCString(), link: link, - }; }), }; -}; \ No newline at end of file +}; diff --git a/lib/routes/furaffinity/favorites.js b/lib/routes/furaffinity/favorites.js index 98aad063ea..08d3810d58 100644 --- a/lib/routes/furaffinity/favorites.js +++ b/lib/routes/furaffinity/favorites.js @@ -25,7 +25,7 @@ module.exports = async (ctx) => { const data = response.data; const $ = cheerio.load(data, { - xmlMode: true + xmlMode: true, }); const list = $('item'); @@ -41,15 +41,16 @@ module.exports = async (ctx) => { // 遍历此前获取的数据 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(), - }; - }) - .get(), + 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(), + }; + }) + .get(), }; }; diff --git a/lib/routes/furaffinity/gallery.js b/lib/routes/furaffinity/gallery.js index c924bab54f..c3ff94d2b8 100644 --- a/lib/routes/furaffinity/gallery.js +++ b/lib/routes/furaffinity/gallery.js @@ -24,7 +24,7 @@ module.exports = async (ctx) => { const data = response.data; const $ = cheerio.load(data, { - xmlMode: true + xmlMode: true, }); const list = $('item'); @@ -40,16 +40,17 @@ module.exports = async (ctx) => { // 遍历此前获取的数据 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(), + 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(), }; }; diff --git a/lib/routes/furaffinity/home.js b/lib/routes/furaffinity/home.js index af439384a3..a12d3223c0 100644 --- a/lib/routes/furaffinity/home.js +++ b/lib/routes/furaffinity/home.js @@ -25,8 +25,7 @@ module.exports = async (ctx) => { // 判断传入的参数type,分别为:artwork、crafts、music、writing if (type === 'artwork') { data = data.artwork; - } - else if (type === 'crafts') { + } else if (type === 'crafts') { data = data.crafts; } else if (type === 'music') { data = data.music; diff --git a/lib/routes/furaffinity/journals.js b/lib/routes/furaffinity/journals.js index d62b961042..74862de0f8 100644 --- a/lib/routes/furaffinity/journals.js +++ b/lib/routes/furaffinity/journals.js @@ -32,17 +32,18 @@ module.exports = async (ctx) => { // 遍历此前获取的数据 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(), + 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(), }; }; diff --git a/lib/routes/furaffinity/scraps.js b/lib/routes/furaffinity/scraps.js index f3581f4d04..6c8f687360 100644 --- a/lib/routes/furaffinity/scraps.js +++ b/lib/routes/furaffinity/scraps.js @@ -24,7 +24,7 @@ module.exports = async (ctx) => { // 使用 cheerio 加载返回的 HTML const data = response.data; const $ = cheerio.load(data, { - xmlMode: true + xmlMode: true, }); const list = $('item'); @@ -40,16 +40,17 @@ module.exports = async (ctx) => { // 遍历此前获取的数据 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(), + 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(), }; }; diff --git a/lib/routes/furaffinity/search.js b/lib/routes/furaffinity/search.js index 536799709b..d295dd7e68 100644 --- a/lib/routes/furaffinity/search.js +++ b/lib/routes/furaffinity/search.js @@ -24,7 +24,7 @@ module.exports = async (ctx) => { // 使用 cheerio 加载返回的 HTML const data = response.data; const $ = cheerio.load(data, { - xmlMode: true + xmlMode: true, }); const list = $('item'); @@ -39,17 +39,18 @@ module.exports = async (ctx) => { // 遍历此前获取的数据 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(), - // 由于源API未提供作者信息,故无author - }; - }) - .get(), + 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(), + // 由于源API未提供作者信息,故无author + }; + }) + .get(), }; }; diff --git a/lib/routes/furaffinity/shouts.js b/lib/routes/furaffinity/shouts.js index 01651aeba9..ca3685c029 100644 --- a/lib/routes/furaffinity/shouts.js +++ b/lib/routes/furaffinity/shouts.js @@ -3,7 +3,7 @@ const got = require('@/utils/got'); module.exports = async (ctx) => { // 传入参数 const username = String(ctx.params.username); - + // 发起 HTTP GET 请求 const response = await got({ method: 'get', diff --git a/lib/routes/furaffinity/status.js b/lib/routes/furaffinity/status.js index 2ec4566a6f..9d8ec598aa 100644 --- a/lib/routes/furaffinity/status.js +++ b/lib/routes/furaffinity/status.js @@ -14,10 +14,10 @@ module.exports = async (ctx) => { const status = data.online; let description = ''; - if (Object.keys(data)[0] === "online") { + if (Object.keys(data)[0] === 'online') { description = `Status: ${Object.keys(data)[0]}
Guests: ${status.guests}
Registered: ${status.registered}
Other: ${status.other}
Total: ${status.total}
Fa Server Time: ${data.fa_server_time}`; } else { - description = "offline"; + description = 'offline'; } const item = []; item.push({ @@ -26,7 +26,6 @@ module.exports = async (ctx) => { link: `https://www.furaffinity.net/`, }); - ctx.state.data = { // 源标题 title: `Fur Affinity Status`, @@ -37,5 +36,4 @@ module.exports = async (ctx) => { item: item, }; - }; diff --git a/lib/routes/furaffinity/user.js b/lib/routes/furaffinity/user.js index 9d0b731ef1..e1a5f0833e 100644 --- a/lib/routes/furaffinity/user.js +++ b/lib/routes/furaffinity/user.js @@ -48,20 +48,18 @@ module.exports = async (ctx) => { const favorites_food = artist_information['Favorite Food']; const contact_information = data.contact_information; - let contact_result = "null"; + let contact_result = 'null'; // 对一个或多个用户联系方式进行遍历 - if (contact_information !== "null") { - contact_result = ""; + if (contact_information !== 'null') { + contact_result = ''; for (let i = 0; i < contact_information.length; i++) { for (const j in contact_information[i]) { - if (j === "title") { + if (j === 'title') { contact_result += `Title: ${contact_information[i][j]}
`; - } - else if (j === "name") { + } else if (j === 'name') { contact_result += `Name: ${contact_information[i][j]}
`; - } - else if (j === "link") { + } else if (j === 'link') { contact_result += `Link: ${contact_information[i][j]}
`; } } @@ -85,7 +83,6 @@ module.exports = async (ctx) => { link: `https://www.furaffinity.net/user/${username}/`, }); - ctx.state.data = { // 源标题 title: `Userpage of ${data.name}`, @@ -96,5 +93,4 @@ module.exports = async (ctx) => { item: item, }; - }; diff --git a/lib/routes/novel/zhaishuyuan.js b/lib/routes/novel/zhaishuyuan.js index 819bc414c9..6a21578594 100644 --- a/lib/routes/novel/zhaishuyuan.js +++ b/lib/routes/novel/zhaishuyuan.js @@ -3,23 +3,23 @@ const cheerio = require('cheerio'); const iconv = require('iconv-lite'); const encodeMap = { - "$$$": "7", - "$$$$": "f", - "$$$_": "e", - "$$_": "6", - "$$_$": "d", - "$$__": "c", - "$_$": "5", - "$_$$": "b", - "$_$_": "a", - "$__": "4", - "$__$": "9", - "$___": "8", - "_": "u", - "_$$": "3", - "_$_": "2", - "__$": "1", - "___": "0", + $$$: '7', + $$$$: 'f', + $$$_: 'e', + $$_: '6', + $$_$: 'd', + $$__: 'c', + $_$: '5', + $_$$: 'b', + $_$_: 'a', + $__: '4', + $__$: '9', + $___: '8', + _: 'u', + _$$: '3', + _$_: '2', + __$: '1', + ___: '0', }; const tokenPattern = /[A-Z]\.([$_]+)|(\/?\\+)/g; const contentPattern = /\\74\\160\\76[0-9a-fu/\\]+?\\74\/\\160\\76/g; @@ -55,22 +55,24 @@ module.exports = async (ctx) => { if (encoded) { // 提取编码后的正文内容进行复原 const rawText = html; - let rawContent = ""; + let rawContent = ''; for (const match of rawText.matchAll(tokenPattern)) { if (match[1] in encodeMap) { rawContent += encodeMap[match[1]]; } if (match[2]) { - rawContent += match[2].replace("\\\\\\\\", "\\").replace("\\\\", "\\"); + rawContent += match[2].replace('\\\\\\\\', '\\').replace('\\\\', '\\'); } } const decodedContentArr = []; for (const contentPar of rawContent.matchAll(contentPattern)) { - const decodedStr = contentPar[0].replace(regex16, function (match, grp) { - return String.fromCharCode(parseInt(grp, 16)); - }).replace(regex8, function (match, grp) { - return String.fromCharCode(parseInt(grp, 8)); - }); + const decodedStr = contentPar[0] + .replace(regex16, function (match, grp) { + return String.fromCharCode(parseInt(grp, 16)); + }) + .replace(regex8, function (match, grp) { + return String.fromCharCode(parseInt(grp, 8)); + }); decodedContentArr.push(decodedStr); } encoded.before(decodedContentArr); diff --git a/lib/routes/pixiv/token.js b/lib/routes/pixiv/token.js index e51700a2ff..b3907738e5 100644 --- a/lib/routes/pixiv/token.js +++ b/lib/routes/pixiv/token.js @@ -9,7 +9,7 @@ let token = null; const authorizationInfo = { client_id: 'MOBrBDS8blbauoSck0ZfDbtuzpyT', client_secret: 'lsACyCD94FhDUtGTXi3QzcFE2uU1hqtDaKeqrdwj', - hash_secret: '28c1fdd170a5204386cb1313c7077b34f83e4aaf4aa829ce78c231e05b0bae2c' + hash_secret: '28c1fdd170a5204386cb1313c7077b34f83e4aaf4aa829ce78c231e05b0bae2c', }; async function refreshToken() {