rsshub 1.0.0-master.f4abc22 → 1.0.0-master.f51bfae

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/lib/config.js +13 -0
  2. package/lib/protected_router.js +1 -1
  3. package/lib/radar-rules.js +0 -258
  4. package/lib/router.js +32 -81
  5. package/lib/routes/copymanga/comic.js +7 -1
  6. package/lib/routes/coronavirus/dxy-data.js +1 -1
  7. package/lib/routes/coronavirus/dxy.js +2 -2
  8. package/lib/routes/ehentai/ehapi.js +0 -1
  9. package/lib/routes/gov/suzhou/doc.js +2 -2
  10. package/lib/routes/gov/suzhou/news.js +28 -23
  11. package/lib/routes/gov/suzhou/utils.js +1 -1
  12. package/lib/routes/instagram/index.js +3 -2
  13. package/lib/routes/instagram/utils.js +4 -3
  14. package/lib/routes/ncm/djradio.js +59 -44
  15. package/lib/routes/ncm/templates/djradio-content.art +11 -0
  16. package/lib/routes/tencent/wechat/tgchannel.js +3 -0
  17. package/lib/routes/universities/bwu/news.js +1 -1
  18. package/lib/routes/universities/bwu/utils.js +14 -17
  19. package/lib/routes/weibo/timeline.js +72 -124
  20. package/lib/routes/weibo/user.js +1 -0
  21. package/lib/routes/weibo/utils.js +38 -8
  22. package/lib/routes/zhihu/topic.js +10 -2
  23. package/lib/v2/12306/index.js +108 -0
  24. package/lib/v2/12306/maintainer.js +4 -0
  25. package/lib/v2/12306/radar.js +28 -0
  26. package/lib/v2/12306/router.js +4 -0
  27. package/lib/v2/12306/templates/train.art +31 -0
  28. package/lib/{routes → v2}/12306/zxdt.js +0 -0
  29. package/lib/v2/50forum/maintainer.js +3 -0
  30. package/lib/v2/50forum/radar.js +13 -0
  31. package/lib/v2/50forum/router.js +3 -0
  32. package/lib/v2/50forum/zhuanjia.js +51 -0
  33. package/lib/v2/app-center/maintainer.js +3 -0
  34. package/lib/v2/app-center/radar.js +13 -0
  35. package/lib/v2/app-center/release.js +120 -0
  36. package/lib/v2/app-center/router.js +3 -0
  37. package/lib/v2/app-center/templates/description.art +24 -0
  38. package/lib/v2/audiobar/latest.js +53 -0
  39. package/lib/v2/audiobar/maintainer.js +3 -0
  40. package/lib/v2/audiobar/radar.js +13 -0
  41. package/lib/v2/audiobar/router.js +3 -0
  42. package/lib/v2/bandcamp/maintainer.js +2 -0
  43. package/lib/v2/bandcamp/radar.js +12 -0
  44. package/lib/v2/bandcamp/router.js +2 -0
  45. package/lib/{routes → v2}/bandcamp/tag.js +0 -0
  46. package/lib/v2/bandcamp/templates/weekly.art +1 -0
  47. package/lib/v2/bandcamp/weekly.js +29 -0
  48. package/lib/v2/baozimh/index.js +8 -2
  49. package/lib/v2/baozimh/templates/desc.art +3 -0
  50. package/lib/{routes → v2}/bioone/featured.js +9 -8
  51. package/lib/v2/bioone/journal.js +58 -0
  52. package/lib/v2/bioone/maintainer.js +4 -0
  53. package/lib/v2/bioone/radar.js +19 -0
  54. package/lib/v2/bioone/router.js +4 -0
  55. package/lib/v2/cahkms/index.js +69 -0
  56. package/lib/v2/cahkms/maintainer.js +3 -0
  57. package/lib/v2/cahkms/radar.js +13 -0
  58. package/lib/v2/cahkms/router.js +3 -0
  59. package/lib/v2/cahkms/templates/description.art +15 -0
  60. package/lib/v2/ccreports/index.js +41 -0
  61. package/lib/v2/ccreports/maintainer.js +3 -0
  62. package/lib/v2/ccreports/radar.js +13 -0
  63. package/lib/v2/ccreports/router.js +3 -0
  64. package/lib/v2/cdi/index.js +61 -0
  65. package/lib/v2/cdi/maintainer.js +3 -0
  66. package/lib/v2/cdi/radar.js +13 -0
  67. package/lib/v2/cdi/router.js +3 -0
  68. package/lib/v2/ciidbnu/index.js +58 -0
  69. package/lib/v2/ciidbnu/maintainer.js +3 -0
  70. package/lib/v2/ciidbnu/radar.js +13 -0
  71. package/lib/v2/ciidbnu/router.js +3 -0
  72. package/lib/v2/cntv/column.js +29 -0
  73. package/lib/v2/cntv/maintainer.js +3 -0
  74. package/lib/v2/cntv/radar.js +13 -0
  75. package/lib/v2/cntv/router.js +3 -0
  76. package/lib/v2/cntv/templates/column.art +4 -0
  77. package/lib/v2/disinfo/maintainer.js +3 -0
  78. package/lib/v2/disinfo/publications.js +56 -0
  79. package/lib/v2/disinfo/radar.js +13 -0
  80. package/lib/v2/disinfo/router.js +3 -0
  81. package/lib/v2/disinformationindex/blog.js +49 -0
  82. package/lib/v2/disinformationindex/maintainer.js +4 -0
  83. package/lib/v2/disinformationindex/radar.js +19 -0
  84. package/lib/v2/disinformationindex/research.js +45 -0
  85. package/lib/v2/disinformationindex/router.js +4 -0
  86. package/lib/v2/disinformationindex/templates/description.art +7 -0
  87. package/lib/{routes → v2}/dockerhub/build.js +3 -1
  88. package/lib/v2/dockerhub/maintainer.js +4 -0
  89. package/lib/v2/dockerhub/radar.js +19 -0
  90. package/lib/v2/dockerhub/router.js +4 -0
  91. package/lib/v2/dockerhub/tag.js +33 -0
  92. package/lib/v2/dockerhub/utils.js +10 -0
  93. package/lib/v2/douban/other/explore.js +24 -7
  94. package/lib/v2/douban/templates/explore.art +7 -0
  95. package/lib/v2/epicgames/supportedList.js +1 -1
  96. package/lib/{routes → v2}/ff14/ff14_global.js +9 -3
  97. package/lib/{routes → v2}/ff14/ff14_zh.js +11 -4
  98. package/lib/v2/ff14/maintainer.js +4 -0
  99. package/lib/v2/ff14/router.js +7 -0
  100. package/lib/v2/ff14/templates/description.art +4 -0
  101. package/lib/{routes → v2}/github/branches.js +0 -0
  102. package/lib/v2/github/comments.js +1 -1
  103. package/lib/{routes → v2}/github/contributors.js +0 -0
  104. package/lib/{routes → v2}/github/file.js +0 -0
  105. package/lib/{routes → v2}/github/follower.js +0 -0
  106. package/lib/{routes → v2}/github/issue.js +0 -0
  107. package/lib/v2/github/maintainer.js +12 -0
  108. package/lib/{routes → v2}/github/pulls.js +0 -0
  109. package/lib/v2/github/radar.js +66 -0
  110. package/lib/{routes → v2}/github/repos.js +0 -0
  111. package/lib/v2/github/router.js +12 -0
  112. package/lib/{routes → v2}/github/search.js +0 -0
  113. package/lib/{routes → v2}/github/star.js +0 -0
  114. package/lib/{routes → v2}/github/starred_repos.js +0 -0
  115. package/lib/{routes → v2}/github/topic.js +0 -0
  116. package/lib/{routes → v2}/github/trending.js +3 -3
  117. package/lib/v2/gocn/maintainer.js +3 -0
  118. package/lib/v2/gocn/radar.js +13 -0
  119. package/lib/v2/gocn/router.js +3 -0
  120. package/lib/v2/gocn/topics.js +28 -0
  121. package/lib/{routes → v2}/google/album.js +0 -0
  122. package/lib/{routes → v2}/google/citations.js +0 -0
  123. package/lib/{routes → v2}/google/doodles.js +0 -0
  124. package/lib/v2/google/fonts.js +43 -0
  125. package/lib/v2/google/maintainer.js +8 -0
  126. package/lib/{routes → v2}/google/news.js +0 -0
  127. package/lib/v2/google/radar.js +64 -0
  128. package/lib/v2/google/router.js +8 -0
  129. package/lib/{routes → v2}/google/scholar.js +0 -0
  130. package/lib/{routes → v2}/google/sites.js +0 -0
  131. package/lib/v2/google/templates/fonts.art +15 -0
  132. package/lib/v2/gov/beijing/kw/index.js +1 -1
  133. package/lib/v2/gov/huizhou/zwgk/index.js +58 -0
  134. package/lib/v2/gov/maintainer.js +2 -0
  135. package/lib/v2/gov/radar.js +58 -4
  136. package/lib/v2/gov/router.js +3 -0
  137. package/lib/v2/gov/shanghai/wsjkw/yqtb/index.js +33 -0
  138. package/lib/v2/gov/sichuan/deyang/govpulicinfo.js +115 -0
  139. package/lib/v2/gov/sichuan/deyang/templates/govPublicInfo.art +41 -0
  140. package/lib/v2/hackernews/index.js +9 -3
  141. package/lib/v2/hackernews/maintainer.js +1 -1
  142. package/lib/v2/hackernews/radar.js +1 -1
  143. package/lib/v2/hackernews/router.js +1 -1
  144. package/lib/v2/hizu/index.js +76 -0
  145. package/lib/v2/hizu/maintainer.js +3 -0
  146. package/lib/v2/hizu/radar.js +13 -0
  147. package/lib/v2/hizu/router.js +3 -0
  148. package/lib/v2/informs/templates/content.art +1 -1
  149. package/lib/v2/iresearch/maintainer.js +3 -0
  150. package/lib/v2/iresearch/radar.js +13 -0
  151. package/lib/v2/iresearch/report.js +60 -0
  152. package/lib/v2/iresearch/router.js +3 -0
  153. package/lib/v2/iresearch/templates/report.art +5 -0
  154. package/lib/{routes → v2}/ithome/index.js +3 -0
  155. package/lib/v2/ithome/maintainer.js +3 -0
  156. package/lib/v2/ithome/radar.js +97 -1
  157. package/lib/{routes → v2}/ithome/ranking.js +0 -0
  158. package/lib/v2/ithome/router.js +3 -0
  159. package/lib/v2/ithome/tag.js +48 -0
  160. package/lib/v2/javdb/utils.js +1 -1
  161. package/lib/v2/javlibrary/bestrated.js +9 -0
  162. package/lib/v2/javlibrary/bestreviews.js +9 -0
  163. package/lib/v2/javlibrary/genre.js +10 -0
  164. package/lib/v2/javlibrary/maintainer.js +11 -0
  165. package/lib/v2/javlibrary/mostwanted.js +9 -0
  166. package/lib/v2/javlibrary/newentries.js +8 -0
  167. package/lib/v2/javlibrary/newrelease.js +9 -0
  168. package/lib/v2/javlibrary/radar.js +79 -0
  169. package/lib/v2/javlibrary/router.js +19 -0
  170. package/lib/v2/javlibrary/star.js +10 -0
  171. package/lib/v2/javlibrary/templates/description.art +17 -0
  172. package/lib/v2/javlibrary/update.js +8 -0
  173. package/lib/v2/javlibrary/user.js +10 -0
  174. package/lib/v2/javlibrary/utils.js +98 -0
  175. package/lib/v2/lanqiao/author.js +0 -2
  176. package/lib/v2/lanqiao/courses.js +25 -8
  177. package/lib/v2/lanqiao/maintainer.js +1 -1
  178. package/lib/v2/lanqiao/questions.js +5 -5
  179. package/lib/v2/lanqiao/radar.js +4 -4
  180. package/lib/v2/lanqiao/router.js +1 -1
  181. package/lib/v2/lkong/forum.js +54 -0
  182. package/lib/v2/lkong/maintainer.js +4 -0
  183. package/lib/v2/lkong/query.js +82 -0
  184. package/lib/v2/lkong/radar.js +19 -0
  185. package/lib/v2/lkong/router.js +4 -0
  186. package/lib/v2/lkong/templates/content.art +18 -0
  187. package/lib/v2/lkong/templates/quote.art +23 -0
  188. package/lib/v2/lkong/thread.js +57 -0
  189. package/lib/v2/nikkei-asia/index.js +40 -0
  190. package/lib/v2/nikkei-asia/maintainer.js +3 -0
  191. package/lib/v2/nikkei-asia/radar.js +13 -0
  192. package/lib/v2/nikkei-asia/router.js +3 -0
  193. package/lib/v2/nogizaka46/blog.js +29 -0
  194. package/lib/v2/nogizaka46/maintainer.js +4 -0
  195. package/lib/v2/nogizaka46/news.js +33 -0
  196. package/lib/v2/nogizaka46/radar.js +21 -0
  197. package/lib/v2/nogizaka46/router.js +4 -0
  198. package/lib/v2/odaily/utils.js +1 -1
  199. package/lib/v2/orcid/index.js +54 -0
  200. package/lib/v2/orcid/maintainer.js +3 -0
  201. package/lib/v2/orcid/radar.js +13 -0
  202. package/lib/v2/orcid/router.js +3 -0
  203. package/lib/v2/orcid/templates/description.art +3 -0
  204. package/lib/v2/panewslab/column.js +60 -0
  205. package/lib/v2/panewslab/index.js +56 -0
  206. package/lib/v2/panewslab/maintainer.js +6 -0
  207. package/lib/v2/panewslab/newsflash.js +35 -0
  208. package/lib/v2/panewslab/radar.js +31 -0
  209. package/lib/v2/panewslab/router.js +6 -0
  210. package/lib/v2/panewslab/topic.js +55 -0
  211. package/lib/v2/polkaworld/home.js +24 -0
  212. package/lib/v2/polkaworld/maintainer.js +3 -0
  213. package/lib/v2/polkaworld/radar.js +13 -0
  214. package/lib/v2/polkaworld/router.js +3 -0
  215. package/lib/v2/producthunt/maintainer.js +3 -0
  216. package/lib/v2/producthunt/radar.js +13 -0
  217. package/lib/v2/producthunt/router.js +3 -0
  218. package/lib/v2/producthunt/templates/descImg.art +5 -0
  219. package/lib/v2/producthunt/today.js +41 -0
  220. package/lib/v2/rsshub/maintainer.js +4 -0
  221. package/lib/v2/rsshub/radar.js +19 -0
  222. package/lib/v2/rsshub/router.js +6 -0
  223. package/lib/{routes → v2}/rsshub/routes.js +12 -10
  224. package/lib/{routes → v2}/rsshub/sponsors.js +0 -0
  225. package/lib/v2/sicau/dky.js +53 -0
  226. package/lib/v2/sicau/maintainer.js +2 -0
  227. package/lib/v2/sicau/radar.js +14 -0
  228. package/lib/v2/sicau/router.js +2 -0
  229. package/lib/v2/sicau/yan.js +53 -0
  230. package/lib/v2/spotify/artist.js +41 -0
  231. package/lib/v2/spotify/maintainer.js +7 -0
  232. package/lib/v2/spotify/playlist.js +31 -0
  233. package/lib/v2/spotify/radar.js +37 -0
  234. package/lib/v2/spotify/router.js +7 -0
  235. package/lib/v2/spotify/saved.js +30 -0
  236. package/lib/v2/spotify/top.js +24 -0
  237. package/lib/v2/spotify/utils.js +62 -0
  238. package/lib/v2/stcn/index.js +71 -0
  239. package/lib/v2/stcn/maintainer.js +6 -0
  240. package/lib/v2/stcn/radar.js +31 -0
  241. package/lib/v2/stcn/router.js +3 -0
  242. package/lib/v2/swpu/bgw.js +58 -0
  243. package/lib/v2/swpu/dean.js +59 -0
  244. package/lib/v2/swpu/dxy.js +61 -0
  245. package/lib/v2/swpu/maintainer.js +6 -0
  246. package/lib/v2/swpu/radar.js +31 -0
  247. package/lib/v2/swpu/router.js +6 -0
  248. package/lib/v2/swpu/scs.js +58 -0
  249. package/lib/v2/swpu/utils.js +22 -0
  250. package/lib/v2/taobao/maintainer.js +3 -0
  251. package/lib/v2/taobao/radar.js +117 -0
  252. package/lib/v2/taobao/router.js +3 -0
  253. package/lib/v2/taobao/templates/zhongchou.art +4 -0
  254. package/lib/{routes → v2}/taobao/zhongchou.js +6 -7
  255. package/lib/v2/telegram/channel.js +13 -9
  256. package/lib/v2/telegram/templates/video.art +5 -0
  257. package/lib/v2/tisi/index.js +38 -0
  258. package/lib/v2/tisi/maintainer.js +3 -0
  259. package/lib/v2/tisi/radar.js +17 -0
  260. package/lib/v2/tisi/router.js +3 -0
  261. package/lib/v2/ustb/maintainer.js +24 -0
  262. package/lib/v2/ustb/radar.js +13 -0
  263. package/lib/v2/ustb/router.js +3 -0
  264. package/lib/v2/ustb/yjsy/news.js +464 -0
  265. package/lib/v2/verfghbw/maintainer.js +3 -0
  266. package/lib/{routes → v2}/verfghbw/press.js +13 -5
  267. package/lib/v2/verfghbw/radar.js +13 -0
  268. package/lib/v2/verfghbw/router.js +3 -0
  269. package/lib/v2/wallhaven/index.js +55 -0
  270. package/lib/v2/wallhaven/maintainer.js +4 -0
  271. package/lib/v2/wallhaven/radar.js +53 -0
  272. package/lib/v2/wallhaven/router.js +4 -0
  273. package/lib/v2/wallstreetcn/live.js +16 -7
  274. package/lib/v2/whitehouse/briefing-room.js +50 -0
  275. package/lib/v2/whitehouse/maintainer.js +3 -0
  276. package/lib/v2/whitehouse/radar.js +13 -0
  277. package/lib/v2/whitehouse/router.js +3 -0
  278. package/lib/v2/wyzxwk/article.js +65 -0
  279. package/lib/v2/wyzxwk/maintainer.js +3 -0
  280. package/lib/v2/wyzxwk/radar.js +13 -0
  281. package/lib/v2/wyzxwk/router.js +3 -0
  282. package/lib/v2/xiaoyuzhou/maintainer.js +4 -0
  283. package/lib/{routes → v2}/xiaoyuzhou/pickup.js +0 -0
  284. package/lib/v2/xiaoyuzhou/podcast.js +36 -0
  285. package/lib/v2/xiaoyuzhou/radar.js +19 -0
  286. package/lib/v2/xiaoyuzhou/router.js +4 -0
  287. package/lib/v2/youku/channel.js +56 -0
  288. package/lib/v2/youku/maintainer.js +3 -0
  289. package/lib/v2/youku/radar.js +13 -0
  290. package/lib/v2/youku/router.js +3 -0
  291. package/lib/v2/youku/templates/channel.art +5 -0
  292. package/lib/v2/youzhiyouxing/maintainer.js +3 -0
  293. package/lib/v2/youzhiyouxing/materials.js +46 -0
  294. package/lib/v2/youzhiyouxing/radar.js +73 -0
  295. package/lib/v2/youzhiyouxing/router.js +3 -0
  296. package/lib/{routes → v2}/yxdzqb/index.js +7 -3
  297. package/lib/v2/yxdzqb/maintainer.js +3 -0
  298. package/lib/v2/yxdzqb/radar.js +13 -0
  299. package/lib/v2/yxdzqb/router.js +3 -0
  300. package/lib/v2/yxdzqb/templates/description.art +2 -0
  301. package/lib/v2/zaobao/index.js +2 -2
  302. package/lib/v2/zaobao/maintainer.js +1 -1
  303. package/lib/v2/zaobao/realtime.js +1 -1
  304. package/lib/v2/zaobao/router.js +2 -2
  305. package/lib/v2/zaobao/templates/zaobao.art +1 -1
  306. package/lib/v2/zhubai/index.js +29 -0
  307. package/lib/v2/zhubai/maintainer.js +3 -0
  308. package/lib/v2/zhubai/radar.js +12 -0
  309. package/lib/v2/zhubai/router.js +3 -0
  310. package/package.json +39 -34
  311. package/lib/routes/ccreports/index.js +0 -40
  312. package/lib/routes/cntv/cntv.js +0 -24
  313. package/lib/routes/iresearch/report.js +0 -63
  314. package/lib/routes/javlibrary/bestreviews.js +0 -11
  315. package/lib/routes/javlibrary/stars.js +0 -9
  316. package/lib/routes/javlibrary/users.js +0 -22
  317. package/lib/routes/javlibrary/utils.js +0 -68
  318. package/lib/routes/javlibrary/videos.js +0 -9
  319. package/lib/routes/lkong/forum.js +0 -75
  320. package/lib/routes/lkong/thread.js +0 -56
  321. package/lib/routes/nogizaka46/news.js +0 -35
  322. package/lib/routes/producthunt/today.js +0 -24
  323. package/lib/routes/stcn/data.js +0 -84
  324. package/lib/routes/stcn/kuaixun.js +0 -91
  325. package/lib/routes/stcn/news.js +0 -85
  326. package/lib/routes/youku/channel.js +0 -56
  327. package/lib/routes/youzhiyouxing/materials.js +0 -29
package/lib/config.js CHANGED
@@ -63,6 +63,11 @@ const calculateValue = () => {
63
63
  disqus: {
64
64
  api_key: envs.DISQUS_API_KEY,
65
65
  },
66
+ spotify: {
67
+ clientId: envs.SPOTIFY_CLIENT_ID,
68
+ clientSecret: envs.SPOTIFY_CLIENT_SECRET,
69
+ refreshToken: envs.SPOTIFY_REFRESHTOKEN,
70
+ },
66
71
  twitter: {
67
72
  consumer_key: envs.TWITTER_CONSUMER_KEY,
68
73
  consumer_secret: envs.TWITTER_CONSUMER_SECRET,
@@ -211,6 +216,14 @@ const calculateValue = () => {
211
216
  wenku8: {
212
217
  cookie: envs.WENKU8_COOKIE,
213
218
  },
219
+ google: {
220
+ fontsApiKey: envs.GOOGLE_FONTS_API_KEY,
221
+ },
222
+ instagram: {
223
+ username: envs.IG_USERNAME,
224
+ password: envs.IG_PASSWORD,
225
+ proxy: envs.IG_PROXY,
226
+ },
214
227
  };
215
228
  };
216
229
  calculateValue();
@@ -6,6 +6,6 @@ const config = require('./config').value;
6
6
  router.use('/(.*)', auth(config.authentication));
7
7
 
8
8
  // RSSHub
9
- router.get('/rsshub/routes', require('./routes/rsshub/routes'));
9
+ router.get('/rsshub/routes/:lang?', require('./v2/rsshub/routes'));
10
10
 
11
11
  module.exports = router;
@@ -243,77 +243,6 @@ module.exports = {
243
243
  },
244
244
  ],
245
245
  },
246
- 'github.com': {
247
- _name: 'GitHub',
248
- '.': [
249
- {
250
- title: '用户仓库',
251
- docs: 'https://docs.rsshub.app/programming.html#github',
252
- source: '/:user',
253
- target: '/github/repos/:user',
254
- },
255
- {
256
- title: '用户 Followers',
257
- docs: 'https://docs.rsshub.app/programming.html#github',
258
- source: '/:user',
259
- target: '/github/user/followers/:user',
260
- },
261
- {
262
- title: 'Trending',
263
- docs: 'https://docs.rsshub.app/programming.html#github',
264
- source: '/trending',
265
- target: '/github/trending/:since',
266
- },
267
- {
268
- title: 'Trending',
269
- docs: 'https://docs.rsshub.app/programming.html#github',
270
- source: '/topics',
271
- target: '/github/topics/:name/:qs?',
272
- },
273
- {
274
- title: '仓库 Issue',
275
- docs: 'https://docs.rsshub.app/programming.html#github',
276
- source: ['/:user/:repo/issues', '/:user/:repo/issues/:id', '/:user/:repo'],
277
- target: '/github/issue/:user/:repo',
278
- },
279
- {
280
- title: '仓库 Pull Requests',
281
- docs: 'https://docs.rsshub.app/programming.html#github',
282
- source: ['/:user/:repo/pulls', '/:user/:repo/pulls/:id', '/:user/:repo'],
283
- target: '/github/pull/:user/:repo',
284
- },
285
- {
286
- title: '仓库 Stars',
287
- docs: 'https://docs.rsshub.app/programming.html#github',
288
- source: ['/:user/:repo/stargazers', '/:user/:repo'],
289
- target: '/github/stars/:user/:repo',
290
- },
291
- {
292
- title: '仓库 Branches',
293
- docs: 'https://docs.rsshub.app/programming.html#github',
294
- source: ['/:user/:repo/branches', '/:user/:repo'],
295
- target: '/github/branches/:user/:repo',
296
- },
297
- {
298
- title: '文件 Commits',
299
- docs: 'https://docs.rsshub.app/programming.html#github',
300
- source: '/:user/:repo/blob/:branch/*filepath',
301
- target: '/github/file/:user/:repo/:branch/:filepath',
302
- },
303
- {
304
- title: '用户 Starred Repositories',
305
- docs: 'https://docs.rsshub.app/programming.html#github',
306
- source: '/:user',
307
- target: '/github/starred_repos/:user',
308
- },
309
- {
310
- title: '仓库 Contributors',
311
- docs: 'https://docs.rsshub.app/programming.html#github',
312
- source: ['/:user/:repo/graphs/contributors', '/:user/:repo'],
313
- target: '/github/contributors/:user/:repo',
314
- },
315
- ],
316
- },
317
246
  'zhihu.com': {
318
247
  _name: '知乎',
319
248
  www: [
@@ -437,23 +366,6 @@ module.exports = {
437
366
  },
438
367
  ],
439
368
  },
440
- 'rsshub.app': {
441
- _name: 'RSSHub',
442
- docs: [
443
- {
444
- title: '有新路由啦',
445
- docs: 'https://docs.rsshub.app/program-update.html#rsshub',
446
- source: ['', '/*tpath'],
447
- target: '/rsshub/routes',
448
- },
449
- {
450
- title: '有新赞助商啦',
451
- docs: 'https://docs.rsshub.app/program-update.html#rsshub',
452
- source: ['', '/*tpath'],
453
- target: '/rsshub/sponsors',
454
- },
455
- ],
456
- },
457
369
  'ximalaya.com': {
458
370
  _name: '喜马拉雅',
459
371
  '.': [
@@ -786,17 +698,6 @@ module.exports = {
786
698
  },
787
699
  ],
788
700
  },
789
- 'docker.com': {
790
- _name: 'Docker',
791
- hub: [
792
- {
793
- title: '镜像有新 Build',
794
- docs: 'https://docs.rsshub.app/program-update.html#docker-hub',
795
- source: ['/r/:owner/:image', '/r/:owner/:image/tags', '/_/:image'],
796
- target: (params) => `/dockerhub/build/${params.owner ? params.owner : 'library'}/${params.image}`,
797
- },
798
- ],
799
- },
800
701
  'nga.cn': {
801
702
  _name: 'NGA',
802
703
  bbs: [
@@ -1057,94 +958,6 @@ module.exports = {
1057
958
  ],
1058
959
  },
1059
960
 
1060
- 'ithome.com': {
1061
- _name: 'IT 之家',
1062
- '.': [
1063
- {
1064
- title: '24 小时阅读榜',
1065
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1066
- source: ['', '/*'],
1067
- target: '/ithome/ranking/24h',
1068
- },
1069
- {
1070
- title: '7 天最热',
1071
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1072
- source: ['', '/*'],
1073
- target: '/ithome/ranking/7days',
1074
- },
1075
- {
1076
- title: '月榜',
1077
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1078
- source: ['', '/*'],
1079
- target: '/ithome/ranking/monthly',
1080
- },
1081
- ],
1082
- it: [
1083
- {
1084
- title: 'IT 资讯',
1085
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1086
- source: '/',
1087
- target: '/ithome/it',
1088
- },
1089
- ],
1090
- soft: [
1091
- {
1092
- title: '软件之家',
1093
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1094
- source: '/',
1095
- target: '/ithome/soft',
1096
- },
1097
- ],
1098
- win10: [
1099
- {
1100
- title: 'win10 之家',
1101
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1102
- source: '/',
1103
- target: '/ithome/win10',
1104
- },
1105
- ],
1106
- iphone: [
1107
- {
1108
- title: 'iphone 之家',
1109
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1110
- source: '/',
1111
- target: '/ithome/iphone',
1112
- },
1113
- ],
1114
- ipad: [
1115
- {
1116
- title: 'ipad 之家',
1117
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1118
- source: '/',
1119
- target: '/ithome/ipad',
1120
- },
1121
- ],
1122
- android: [
1123
- {
1124
- title: 'android 之家',
1125
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1126
- source: '/',
1127
- target: '/ithome/android',
1128
- },
1129
- ],
1130
- digi: [
1131
- {
1132
- title: '数码之家',
1133
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1134
- source: '/',
1135
- target: '/ithome/digi',
1136
- },
1137
- ],
1138
- next: [
1139
- {
1140
- title: '智能时代',
1141
- docs: 'https://docs.rsshub.app/new-media.html#it-zhi-jia',
1142
- source: '/',
1143
- target: '/ithome/next',
1144
- },
1145
- ],
1146
- },
1147
-
1148
961
  'govopendata.com': {
1149
962
  _name: '新闻联播文字版',
1150
963
  cn: [
@@ -1416,77 +1229,6 @@ module.exports = {
1416
1229
  },
1417
1230
  ],
1418
1231
  },
1419
- 'javlibrary.com': {
1420
- _name: 'javlibrary',
1421
- www: [
1422
- {
1423
- title: '新话题',
1424
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1425
- source: '/cn',
1426
- target: '/javlibrary/videos/update',
1427
- },
1428
- {
1429
- title: '新发行',
1430
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1431
- source: '/cn',
1432
- target: '/javlibrary/videos/newrelease',
1433
- },
1434
- {
1435
- title: '新加入',
1436
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1437
- source: '/cn',
1438
- target: '/javlibrary/videos/newentries',
1439
- },
1440
- {
1441
- title: '最想要',
1442
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1443
- source: '/cn',
1444
- target: '/javlibrary/videos/mostwanted',
1445
- },
1446
- {
1447
- title: '高评价',
1448
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1449
- source: '/cn',
1450
- target: '/javlibrary/videos/bestrated',
1451
- },
1452
- {
1453
- title: '最佳评论',
1454
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1455
- source: '/cn',
1456
- target: '/javlibrary/bestreviews',
1457
- },
1458
- {
1459
- title: '影星',
1460
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1461
- source: '/cn/vl_star.php',
1462
- target: (params, url) => `/javlibrary/stars/${new URL(url).searchParams.get('s')}`,
1463
- },
1464
- {
1465
- title: '用户文章',
1466
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1467
- source: ['/cn/user.php', '/cn/userposts.php', '/cn/userwateched.php', '/cn/userowned.php', '/cn/userwanted.php'],
1468
- target: (params, url) => `/javlibrary/users/${new URL(url).searchParams.get('u')}/userposts`,
1469
- },
1470
- {
1471
- title: '用户拥有',
1472
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1473
- source: ['/cn/user.php', '/cn/userposts.php', '/cn/userwateched.php', '/cn/userowned.php', '/cn/userwanted.php'],
1474
- target: (params, url) => `/javlibrary/users/${new URL(url).searchParams.get('u')}/userowned`,
1475
- },
1476
- {
1477
- title: '用户看过',
1478
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1479
- source: ['/cn/user.php', '/cn/userposts.php', '/cn/userwateched.php', '/cn/userowned.php', '/cn/userwanted.php'],
1480
- target: (params, url) => `/javlibrary/users/${new URL(url).searchParams.get('u')}/userwatched`,
1481
- },
1482
- {
1483
- title: '用户想要',
1484
- docs: 'https://docs.rsshub.app/multimedia.html#javlibrary',
1485
- source: ['/cn/user.php', '/cn/userposts.php', '/cn/userwateched.php', '/cn/userowned.php', '/cn/userwanted.php'],
1486
- target: (params, url) => `/javlibrary/users/${new URL(url).searchParams.get('u')}/userwanted`,
1487
- },
1488
- ],
1489
- },
1490
1232
  'qidian.com': {
1491
1233
  _name: '起点',
1492
1234
  book: [
package/lib/router.js CHANGED
@@ -14,12 +14,12 @@ const lazyloadRouteHandler = (routeHandlerPath) => (ctx) => {
14
14
  return handler(ctx);
15
15
  };
16
16
 
17
- // Deprecated: DO NOT ADD ROUTE HERE
17
+ // Deprecated: DO NOT ADD ANY NEW ROUTES HERE
18
18
 
19
- // RSSHub
20
- router.get('/rsshub/rss', lazyloadRouteHandler('./routes/rsshub/routes')); // 弃用
21
- router.get('/rsshub/routes', lazyloadRouteHandler('./routes/rsshub/routes'));
22
- router.get('/rsshub/sponsors', lazyloadRouteHandler('./routes/rsshub/sponsors'));
19
+ // RSSHub migrated to v2
20
+ // router.get('/rsshub/rss', lazyloadRouteHandler('./routes/rsshub/routes')); // 弃用
21
+ // router.get('/rsshub/routes', lazyloadRouteHandler('./routes/rsshub/routes'));
22
+ // router.get('/rsshub/sponsors', lazyloadRouteHandler('./routes/rsshub/sponsors'));
23
23
 
24
24
  // 1draw
25
25
  router.get('/1draw', lazyloadRouteHandler('./routes/1draw/index'));
@@ -245,20 +245,6 @@ router.get('/v2ex/tab/:tabid', lazyloadRouteHandler('./routes/v2ex/tab'));
245
245
  // readhub
246
246
  router.get('/readhub/category/:category', lazyloadRouteHandler('./routes/readhub/category'));
247
247
 
248
- // GitHub
249
- router.get('/github/repos/:user', lazyloadRouteHandler('./routes/github/repos'));
250
- router.get('/github/trending/:since/:language?/:spoken_language?', lazyloadRouteHandler('./routes/github/trending'));
251
- router.get('/github/issue/:user/:repo/:state?/:labels?', lazyloadRouteHandler('./routes/github/issue'));
252
- router.get('/github/pull/:user/:repo', lazyloadRouteHandler('./routes/github/pulls'));
253
- router.get('/github/user/followers/:user', lazyloadRouteHandler('./routes/github/follower'));
254
- router.get('/github/stars/:user/:repo', lazyloadRouteHandler('./routes/github/star'));
255
- router.get('/github/search/:query/:sort?/:order?', lazyloadRouteHandler('./routes/github/search'));
256
- router.get('/github/branches/:user/:repo', lazyloadRouteHandler('./routes/github/branches'));
257
- router.get('/github/file/:user/:repo/:branch/:filepath+', lazyloadRouteHandler('./routes/github/file'));
258
- router.get('/github/starred_repos/:user', lazyloadRouteHandler('./routes/github/starred_repos'));
259
- router.get('/github/contributors/:user/:repo/:order?/:anon?', lazyloadRouteHandler('./routes/github/contributors'));
260
- router.get('/github/topics/:name/:qs?', lazyloadRouteHandler('./routes/github/topic'));
261
-
262
248
  // f-droid
263
249
  router.get('/fdroid/apprelease/:app', lazyloadRouteHandler('./routes/fdroid/apprelease'));
264
250
 
@@ -498,13 +484,6 @@ router.get('/fir/update/:id', lazyloadRouteHandler('./routes/fir/update'));
498
484
  // Nvidia Web Driver
499
485
  router.get('/nvidia/webdriverupdate', lazyloadRouteHandler('./routes/nvidia/webdriverupdate'));
500
486
 
501
- // Google
502
- router.get('/google/citations/:id', lazyloadRouteHandler('./routes/google/citations'));
503
- router.get('/google/scholar/:query', lazyloadRouteHandler('./routes/google/scholar'));
504
- router.get('/google/doodles/:language?', lazyloadRouteHandler('./routes/google/doodles'));
505
- router.get('/google/album/:id', lazyloadRouteHandler('./routes/google/album'));
506
- router.get('/google/sites/:id', lazyloadRouteHandler('./routes/google/sites'));
507
-
508
487
  // 每日环球展览 iMuseum
509
488
  router.get('/imuseum/:city/:type?', lazyloadRouteHandler('./routes/imuseum'));
510
489
 
@@ -1016,9 +995,6 @@ router.get('/xidian/jwc/:category?', lazyloadRouteHandler('./routes/universities
1016
995
  // Westore
1017
996
  router.get('/westore/new', lazyloadRouteHandler('./routes/westore/new'));
1018
997
 
1019
- // 优酷
1020
- router.get('/youku/channel/:channelId/:embed?', lazyloadRouteHandler('./routes/youku/channel'));
1021
-
1022
998
  // 油价
1023
999
  router.get('/oilprice/:area', lazyloadRouteHandler('./routes/oilprice'));
1024
1000
 
@@ -1247,9 +1223,6 @@ router.get('/patchwork.kernel.org/comments/:id', lazyloadRouteHandler('./routes/
1247
1223
  // 京东众筹
1248
1224
  router.get('/jingdong/zhongchou/:type/:status/:sort', lazyloadRouteHandler('./routes/jingdong/zhongchou'));
1249
1225
 
1250
- // 淘宝众筹
1251
- router.get('/taobao/zhongchou/:type?', lazyloadRouteHandler('./routes/taobao/zhongchou'));
1252
-
1253
1226
  // All Poetry
1254
1227
  router.get('/allpoetry/:order?', lazyloadRouteHandler('./routes/allpoetry/order'));
1255
1228
 
@@ -1379,9 +1352,6 @@ router.get('/meipai/user/:uid', lazyloadRouteHandler('./routes/meipai/user'));
1379
1352
  // 多知网
1380
1353
  router.get('/duozhi', lazyloadRouteHandler('./routes/duozhi'));
1381
1354
 
1382
- // Docker Hub
1383
- router.get('/dockerhub/build/:owner/:image/:tag?', lazyloadRouteHandler('./routes/dockerhub/build'));
1384
-
1385
1355
  // 人人都是产品经理
1386
1356
  router.get('/woshipm/popular', lazyloadRouteHandler('./routes/woshipm/popular'));
1387
1357
  router.get('/woshipm/wen', lazyloadRouteHandler('./routes/woshipm/wen'));
@@ -1452,9 +1422,6 @@ router.get('/ui-cn/user/:id', lazyloadRouteHandler('./routes/ui-cn/user'));
1452
1422
  // Dcard
1453
1423
  router.get('/dcard/:section/:type?', lazyloadRouteHandler('./routes/dcard/section'));
1454
1424
 
1455
- // 12306
1456
- router.get('/12306/zxdt/:id?', lazyloadRouteHandler('./routes/12306/zxdt'));
1457
-
1458
1425
  // 北京天文馆每日一图
1459
1426
  router.get('/bjp/apod', lazyloadRouteHandler('./routes/bjp/apod'));
1460
1427
 
@@ -1576,9 +1543,6 @@ router.get('/infoq/topic/:id', lazyloadRouteHandler('./routes/infoq/topic'));
1576
1543
  // checkee
1577
1544
  router.get('/checkee/:dispdate', lazyloadRouteHandler('./routes/checkee/index'));
1578
1545
 
1579
- // 艾瑞
1580
- router.get('/iresearch/report', lazyloadRouteHandler('./routes/iresearch/report'));
1581
-
1582
1546
  // ZAKER migrated to v2
1583
1547
  // router.get('/zaker/:type/:id', lazyloadRouteHandler('./routes/zaker/source'));
1584
1548
  // router.get('/zaker/focusread', lazyloadRouteHandler('./routes/zaker/focusread'));
@@ -1801,7 +1765,7 @@ router.get('/gov/veterans/hebei/:type', lazyloadRouteHandler('./routes/gov/veter
1801
1765
  router.get('/dilbert/strip', lazyloadRouteHandler('./routes/dilbert/strip'));
1802
1766
 
1803
1767
  // 游戏打折情报
1804
- router.get('/yxdzqb/:type', lazyloadRouteHandler('./routes/yxdzqb'));
1768
+ // router.get('/yxdzqb/:type', lazyloadRouteHandler('./routes/yxdzqb'));
1805
1769
 
1806
1770
  // 怪物猎人
1807
1771
  router.get('/monsterhunter/update', lazyloadRouteHandler('./routes/mhw/update'));
@@ -1951,9 +1915,9 @@ router.get('/arknights/japan', lazyloadRouteHandler('./routes/arknights/japan'))
1951
1915
  // 塞壬唱片
1952
1916
  router.get('/siren/news', lazyloadRouteHandler('./routes/siren/index'));
1953
1917
 
1954
- // ff14
1955
- router.get('/ff14/ff14_zh/:type', lazyloadRouteHandler('./routes/ff14/ff14_zh'));
1956
- router.get('/ff14/ff14_global/:lang/:type', lazyloadRouteHandler('./routes/ff14/ff14_global'));
1918
+ // ff14 migrated to v2
1919
+ // router.get('/ff14/ff14_zh/:type', lazyloadRouteHandler('./routes/ff14/ff14_zh'));
1920
+ // router.get('/ff14/ff14_global/:lang/:type', lazyloadRouteHandler('./routes/ff14/ff14_global'));
1957
1921
 
1958
1922
  // 学堂在线
1959
1923
  router.get('/xuetangx/course/:cid/:type', lazyloadRouteHandler('./routes/xuetangx/course_info'));
@@ -1990,13 +1954,12 @@ router.get('/yidoutang/case/:type', lazyloadRouteHandler('./routes/yidoutang/cas
1990
1954
  router.get('/kaiyan/index', lazyloadRouteHandler('./routes/kaiyan/index'));
1991
1955
 
1992
1956
  // 龙空
1993
- router.get('/lkong/forum/:id/:digest?', lazyloadRouteHandler('./routes/lkong/forum'));
1994
- router.get('/lkong/thread/:id', lazyloadRouteHandler('./routes/lkong/thread'));
1957
+ // router.get('/lkong/forum/:id/:digest?', lazyloadRouteHandler('./routes/lkong/forum'));
1958
+ // router.get('/lkong/thread/:id', lazyloadRouteHandler('./routes/lkong/thread'));
1995
1959
  // router.get('/lkong/user/:id', lazyloadRouteHandler('./routes/lkong/user'));
1996
1960
 
1997
1961
  // 坂道系列资讯
1998
1962
  // 坂道系列官网新闻
1999
- router.get('/nogizaka46/news', lazyloadRouteHandler('./routes/nogizaka46/news'));
2000
1963
  router.get('/keyakizaka46/news', lazyloadRouteHandler('./routes/keyakizaka46/news'));
2001
1964
  router.get('/hinatazaka46/news', lazyloadRouteHandler('./routes/hinatazaka46/news'));
2002
1965
  router.get('/keyakizaka46/blog', lazyloadRouteHandler('./routes/keyakizaka46/blog'));
@@ -2093,8 +2056,7 @@ router.get('/weidian/goods/:id', lazyloadRouteHandler('./routes/weidian/goods'))
2093
2056
 
2094
2057
  // 有赞
2095
2058
  router.get('/youzan/goods/:id', lazyloadRouteHandler('./routes/youzan/goods'));
2096
- // 有知有行
2097
- router.get('/youzhiyouxing/materials', lazyloadRouteHandler('./routes/youzhiyouxing/materials'));
2059
+
2098
2060
  // 币世界快讯
2099
2061
  router.get('/bishijie/kuaixun', lazyloadRouteHandler('./routes/bishijie/kuaixun'));
2100
2062
 
@@ -2203,7 +2165,7 @@ router.get('/reuters/channel/:site/:channel', lazyloadRouteHandler('./routes/reu
2203
2165
  router.get('/pgyer/:app?', lazyloadRouteHandler('./routes/pgyer/app'));
2204
2166
 
2205
2167
  // 微博个人时间线
2206
- router.get('/weibo/timeline/:uid/:feature?', lazyloadRouteHandler('./routes/weibo/timeline'));
2168
+ router.get('/weibo/timeline/:uid/:feature?/:routeParams?', lazyloadRouteHandler('./routes/weibo/timeline'));
2207
2169
 
2208
2170
  // TAPTAP
2209
2171
  router.get('/taptap/topic/:id/:label?', lazyloadRouteHandler('./routes/taptap/topic'));
@@ -2390,10 +2352,6 @@ router.get('/nyaa/search/:query?', lazyloadRouteHandler('./routes/nyaa/search'))
2390
2352
  // 片源网
2391
2353
  router.get('/pianyuan/:media?', lazyloadRouteHandler('./routes/pianyuan/app'));
2392
2354
 
2393
- // ITHome
2394
- router.get('/ithome/:caty', lazyloadRouteHandler('./routes/ithome/index'));
2395
- router.get('/ithome/ranking/:type', lazyloadRouteHandler('./routes/ithome/ranking'));
2396
-
2397
2355
  // 巴哈姆特
2398
2356
  router.get('/bahamut/creation/:author/:category?', lazyloadRouteHandler('./routes/bahamut/creation'));
2399
2357
  router.get('/bahamut/creation_index/:category?/:subcategory?/:type?', lazyloadRouteHandler('./routes/bahamut/creation_index'));
@@ -2429,9 +2387,6 @@ router.get('/blogs/paulgraham', lazyloadRouteHandler('./routes/blogs/paulgraham'
2429
2387
  // invisionapp
2430
2388
  router.get('/invisionapp/inside-design', lazyloadRouteHandler('./routes/invisionapp/inside-design'));
2431
2389
 
2432
- // producthunt
2433
- router.get('/producthunt/today', lazyloadRouteHandler('./routes/producthunt/today'));
2434
-
2435
2390
  // mlog.club
2436
2391
  router.get('/mlog-club/topics/:node', lazyloadRouteHandler('./routes/mlog-club/topics'));
2437
2392
  router.get('/mlog-club/projects', lazyloadRouteHandler('./routes/mlog-club/projects'));
@@ -2518,7 +2473,7 @@ router.get('/weixin/miniprogram/framework', lazyloadRouteHandler('./routes/tence
2518
2473
  router.get('/weixin/miniprogram/devtools', lazyloadRouteHandler('./routes/tencent/wechat/miniprogram/devtools')); // 开发者工具更新日志
2519
2474
  router.get('/weixin/miniprogram/wxcloud/:caty?', lazyloadRouteHandler('./routes/tencent/wechat/miniprogram/wxcloud')); // 云开发更新日志
2520
2475
 
2521
- // 武汉肺炎疫情动态
2476
+ // 新冠肺炎疫情动态
2522
2477
  router.get('/coronavirus/caixin', lazyloadRouteHandler('./routes/coronavirus/caixin'));
2523
2478
  router.get('/coronavirus/dxy/data/:province?/:city?', lazyloadRouteHandler('./routes/coronavirus/dxy-data'));
2524
2479
  router.get('/coronavirus/dxy', lazyloadRouteHandler('./routes/coronavirus/dxy'));
@@ -2547,10 +2502,10 @@ router.get('/letterboxd/user/diary/:username', lazyloadRouteHandler('./routes/le
2547
2502
  router.get('/letterboxd/user/followingdiary/:username', lazyloadRouteHandler('./routes/letterboxd/followingdiary'));
2548
2503
 
2549
2504
  // javlibrary
2550
- router.get('/javlibrary/users/:uid/:utype', lazyloadRouteHandler('./routes/javlibrary/users'));
2551
- router.get('/javlibrary/videos/:vtype', lazyloadRouteHandler('./routes/javlibrary/videos'));
2552
- router.get('/javlibrary/stars/:sid', lazyloadRouteHandler('./routes/javlibrary/stars'));
2553
- router.get('/javlibrary/bestreviews', lazyloadRouteHandler('./routes/javlibrary/bestreviews'));
2505
+ // router.get('/javlibrary/users/:uid/:utype', lazyloadRouteHandler('./routes/javlibrary/users'));
2506
+ // router.get('/javlibrary/videos/:vtype', lazyloadRouteHandler('./routes/javlibrary/videos'));
2507
+ // router.get('/javlibrary/stars/:sid', lazyloadRouteHandler('./routes/javlibrary/stars'));
2508
+ // router.get('/javlibrary/bestreviews', lazyloadRouteHandler('./routes/javlibrary/bestreviews'));
2554
2509
 
2555
2510
  // Last.FM
2556
2511
  router.get('/lastfm/recent/:user', lazyloadRouteHandler('./routes/lastfm/recent'));
@@ -2792,9 +2747,6 @@ router.get('/adnmb/:pid', lazyloadRouteHandler('./routes/adnmb/index'));
2792
2747
  // MIT科技评论
2793
2748
  router.get('/mittrchina/:type', lazyloadRouteHandler('./routes/mittrchina'));
2794
2749
 
2795
- // 消费者报道
2796
- router.get('/ccreports/article', lazyloadRouteHandler('./routes/ccreports'));
2797
-
2798
2750
  // iYouPort
2799
2751
  router.get('/iyouport/article', lazyloadRouteHandler('./routes/iyouport'));
2800
2752
  router.get('/iyouport/:category?', lazyloadRouteHandler('./routes/iyouport'));
@@ -3176,8 +3128,9 @@ router.get('/manxiaosi/book/:id', lazyloadRouteHandler('./routes/manxiaosi/book'
3176
3128
  // 吉林大学校内通知
3177
3129
  router.get('/jlu/oa', lazyloadRouteHandler('./routes/universities/jlu/oa'));
3178
3130
 
3179
- // 小宇宙
3180
- router.get('/xiaoyuzhou', lazyloadRouteHandler('./routes/xiaoyuzhou/pickup'));
3131
+ // 小宇宙 migrated to v2
3132
+ // router.get('/xiaoyuzhou', lazyloadRouteHandler('./routes/xiaoyuzhou/pickup'));
3133
+ // router.get('/xiaoyuzhou/podcast/:id', lazyloadRouteHandler('./routes/xiaoyuzhou/podcast'));
3181
3134
 
3182
3135
  // 合肥工业大学
3183
3136
  router.get('/hfut/tzgg', lazyloadRouteHandler('./routes/universities/hfut/tzgg'));
@@ -3453,9 +3406,9 @@ router.get('/allnow/user/:id', lazyloadRouteHandler('./routes/allnow/user'));
3453
3406
  router.get('/allnow', lazyloadRouteHandler('./routes/allnow/index'));
3454
3407
 
3455
3408
  // 证券时报网
3456
- router.get('/stcn/news/:id?', lazyloadRouteHandler('./routes/stcn/news'));
3457
- router.get('/stcn/data/:id?', lazyloadRouteHandler('./routes/stcn/data'));
3458
- router.get('/stcn/kuaixun/:id?', lazyloadRouteHandler('./routes/stcn/kuaixun'));
3409
+ // router.get('/stcn/news/:id?', lazyloadRouteHandler('./routes/stcn/news'));
3410
+ // router.get('/stcn/data/:id?', lazyloadRouteHandler('./routes/stcn/data'));
3411
+ // router.get('/stcn/kuaixun/:id?', lazyloadRouteHandler('./routes/stcn/kuaixun'));
3459
3412
 
3460
3413
  // dev.to
3461
3414
  router.get('/dev.to/top/:period', lazyloadRouteHandler('./routes/dev.to/top'));
@@ -3500,9 +3453,6 @@ router.get('/chinafile/:category?', lazyloadRouteHandler('./routes/chinafile/ind
3500
3453
  // 科技島讀
3501
3454
  router.get('/daodu/:caty?', lazyloadRouteHandler('./routes/daodu/index'));
3502
3455
 
3503
- // CNTV
3504
- router.get('/cntv/:column', lazyloadRouteHandler('./routes/cntv/cntv'));
3505
-
3506
3456
  // Grand-Challenge
3507
3457
  router.get('/grandchallenge/user/:id', lazyloadRouteHandler('./routes/grandchallenge/user'));
3508
3458
  router.get('/grandchallenge/challenges', lazyloadRouteHandler('./routes/grandchallenge/challenges'));
@@ -3931,7 +3881,7 @@ router.get('/sznews/ranking', lazyloadRouteHandler('./routes/sznews/ranking'));
3931
3881
  router.get('/shuax/project/:name?', lazyloadRouteHandler('./routes/shuax/project'));
3932
3882
 
3933
3883
  // BioOne
3934
- router.get('/bioone/featured', lazyloadRouteHandler('./routes/bioone/featured'));
3884
+ // router.get('/bioone/featured', lazyloadRouteHandler('./routes/bioone/featured'));
3935
3885
 
3936
3886
  // Obsidian
3937
3887
  router.get('/obsidian/announcements', lazyloadRouteHandler('./routes/obsidian/announcements'));
@@ -4032,8 +3982,8 @@ router.get('/liyuan-forums/threads/user/:user_id', lazyloadRouteHandler('./route
4032
3982
  // router.get('/jisilu/reply/:user', lazyloadRouteHandler('./routes/jisilu/reply'));
4033
3983
  // router.get('/jisilu/topic/:user', lazyloadRouteHandler('./routes/jisilu/topic'));
4034
3984
 
4035
- // Constitutional Court of Baden-Württemberg (Germany)
4036
- router.get('/verfghbw/press/:keyword?', lazyloadRouteHandler('./routes/verfghbw/press'));
3985
+ // Constitutional Court of Baden-Württemberg (Germany) migrated to v2
3986
+ // router.get('/verfghbw/press/:keyword?', lazyloadRouteHandler('./routes/verfghbw/press'));
4037
3987
 
4038
3988
  // Topbook
4039
3989
  router.get('/topbook/overview/:id?', lazyloadRouteHandler('./routes/topbook/overview'));
@@ -4050,8 +4000,9 @@ router.get('/wanwansub/:id?', lazyloadRouteHandler('./routes/wanwansub/index'));
4050
4000
  router.get('/zimuxia/portfolio/:id', lazyloadRouteHandler('./routes/zimuxia/portfolio'));
4051
4001
  router.get('/zimuxia/:category?', lazyloadRouteHandler('./routes/zimuxia/index'));
4052
4002
 
4053
- // Bandcamp
4054
- router.get('/bandcamp/tag/:tag?', lazyloadRouteHandler('./routes/bandcamp/tag'));
4003
+ // Bandcamp migrated to v2
4004
+ // router.get('/bandcamp/tag/:tag?', lazyloadRouteHandler('./routes/bandcamp/tag'));
4005
+ // router.get('/bandcamp/weekly', lazyloadRouteHandler('./routes/bandcamp/weekly'));
4055
4006
 
4056
4007
  // Hugo 更新日志
4057
4008
  router.get('/hugo/releases', lazyloadRouteHandler('./routes/hugo/releases'));
@@ -4223,9 +4174,9 @@ router.get('/fashionnetwork/headline/:country?', lazyloadRouteHandler('./routes/
4223
4174
  // mirror.xyz
4224
4175
  router.get('/mirror/:id', lazyloadRouteHandler('./routes/mirror/entries'));
4225
4176
 
4226
- // Deprecated: DO NOT ADD ROUTE HERE
4227
-
4228
4177
  // KBS
4229
4178
  router.get('/kbs/today/:language?', lazyloadRouteHandler('./routes/kbs/today'));
4230
4179
 
4180
+ // Deprecated: DO NOT ADD ANY NEWS ROUTES HERE
4181
+
4231
4182
  module.exports = router;
@@ -59,10 +59,16 @@ module.exports = async (ctx) => {
59
59
  `.trim(),
60
60
  });
61
61
 
62
+ let itemsLen = chapterArray.length;
63
+
64
+ if (chapterCnt > 0) {
65
+ itemsLen = chapterCnt;
66
+ }
67
+
62
68
  ctx.state.data = {
63
69
  title: `拷贝漫画 - ${bookTitle}`,
64
70
  link: `https://copymanga.com/comic/${id}`,
65
71
  description: bookIntro,
66
- item: chapterArray.map(genResult).slice(0, chapterCnt),
72
+ item: chapterArray.map(genResult).slice(0, itemsLen),
67
73
  };
68
74
  };
@@ -5,7 +5,7 @@ module.exports = async (ctx) => {
5
5
  const PROVINCE = ctx.params.province || '国内';
6
6
  let CITY = ctx.params.city || '';
7
7
 
8
- const link = 'https://3g.dxy.cn/newh5/view/pneumonia';
8
+ const link = 'https://ncov.dxy.cn/ncovh5/view/pneumonia';
9
9
 
10
10
  const response = await got({
11
11
  method: 'get',