rsshub 1.0.0-master.fe69819 → 1.0.0-master.fee75c6

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 (276) hide show
  1. package/lib/config.js +4 -0
  2. package/lib/radar-rules.js +0 -162
  3. package/lib/router.js +82 -83
  4. package/lib/routes/dsndsht23/index.js +2 -1
  5. package/lib/routes/ehentai/ehapi.js +16 -6
  6. package/lib/routes/ehentai/favorites.js +14 -7
  7. package/lib/routes/ehentai/search.js +14 -5
  8. package/lib/routes/ehentai/tag.js +14 -5
  9. package/lib/routes/mofish/index.js +21 -9
  10. package/lib/routes/mofish/templates/description.art +4 -0
  11. package/lib/routes/or/index.js +1 -1
  12. package/lib/routes/prestige-av/series.js +3 -6
  13. package/lib/routes/tencent/wechat/tgchannel.js +84 -29
  14. package/lib/routes/weibo/timeline.js +18 -1
  15. package/lib/routes/weibo/user.js +19 -3
  16. package/lib/routes/weibo/utils.js +113 -5
  17. package/lib/routes/zhihu/hot.js +3 -2
  18. package/lib/v2/36kr/maintainer.js +7 -0
  19. package/lib/{routes → v2}/36kr/motif.js +2 -1
  20. package/lib/v2/36kr/news.js +56 -0
  21. package/lib/{routes → v2}/36kr/newsflashes.js +2 -1
  22. package/lib/v2/36kr/radar.js +37 -0
  23. package/lib/v2/36kr/router.js +7 -0
  24. package/lib/{routes → v2}/36kr/search/article.js +3 -2
  25. package/lib/{routes → v2}/36kr/user.js +2 -1
  26. package/lib/v2/52hrtt/index.js +57 -0
  27. package/lib/v2/52hrtt/maintainer.js +4 -0
  28. package/lib/v2/52hrtt/radar.js +19 -0
  29. package/lib/v2/52hrtt/router.js +4 -0
  30. package/lib/v2/52hrtt/symposium.js +57 -0
  31. package/lib/v2/8kcos/article.js +24 -0
  32. package/lib/v2/8kcos/cat.js +22 -0
  33. package/lib/{routes → v2}/8kcos/const.js +0 -0
  34. package/lib/v2/8kcos/latest.js +23 -0
  35. package/lib/v2/8kcos/maintainer.js +5 -0
  36. package/lib/v2/8kcos/radar.js +25 -0
  37. package/lib/v2/8kcos/router.js +5 -0
  38. package/lib/v2/8kcos/tag.js +23 -0
  39. package/lib/{routes → v2}/95mm/category.js +5 -3
  40. package/lib/v2/95mm/maintainer.js +5 -0
  41. package/lib/v2/95mm/radar.js +25 -0
  42. package/lib/v2/95mm/router.js +5 -0
  43. package/lib/v2/95mm/tab.js +9 -0
  44. package/lib/v2/95mm/tag.js +9 -0
  45. package/lib/v2/95mm/templates/description.art +3 -0
  46. package/lib/v2/95mm/utils.js +59 -0
  47. package/lib/v2/abskoop/index.js +52 -0
  48. package/lib/v2/abskoop/maintainer.js +3 -0
  49. package/lib/v2/abskoop/radar.js +13 -0
  50. package/lib/v2/abskoop/router.js +3 -0
  51. package/lib/v2/abskoop/templates/description.art +3 -0
  52. package/lib/v2/apple/exchange_repair.js +40 -0
  53. package/lib/v2/apple/maintainer.js +3 -0
  54. package/lib/v2/apple/radar.js +13 -0
  55. package/lib/v2/apple/router.js +3 -0
  56. package/lib/{routes/apple → v2}/appstore/gofans.js +3 -3
  57. package/lib/{routes/apple → v2}/appstore/in-app-purchase.js +0 -0
  58. package/lib/v2/appstore/maintainer.js +7 -0
  59. package/lib/{routes/apple → v2}/appstore/price.js +0 -0
  60. package/lib/v2/appstore/radar.js +41 -0
  61. package/lib/v2/appstore/router.js +7 -0
  62. package/lib/{routes/apple → v2}/appstore/update.js +0 -0
  63. package/lib/{routes/apple → v2}/appstore/xianmian.js +3 -2
  64. package/lib/{routes/universities → v2}/bjfu/grs.js +0 -0
  65. package/lib/v2/bjfu/it/index.js +49 -0
  66. package/lib/v2/bjfu/it/utils.js +64 -0
  67. package/lib/{routes/universities → v2}/bjfu/jwc/index.js +0 -0
  68. package/lib/{routes/universities → v2}/bjfu/jwc/utils.js +10 -9
  69. package/lib/{routes/universities → v2}/bjfu/kjc.js +0 -0
  70. package/lib/v2/bjfu/maintainer.js +7 -0
  71. package/lib/{routes/universities → v2}/bjfu/news/index.js +0 -0
  72. package/lib/{routes/universities → v2}/bjfu/news/utils.js +10 -9
  73. package/lib/v2/bjfu/radar.js +45 -0
  74. package/lib/v2/bjfu/router.js +7 -0
  75. package/lib/v2/dahecube/index.js +66 -0
  76. package/lib/v2/dahecube/maintainer.js +3 -0
  77. package/lib/v2/dahecube/radar.js +23 -0
  78. package/lib/v2/dahecube/router.js +3 -0
  79. package/lib/v2/dahecube/utils.js +47 -0
  80. package/lib/v2/dhu/jiaowu/news.js +37 -0
  81. package/lib/v2/dhu/maintainer.js +4 -0
  82. package/lib/v2/dhu/radar.js +17 -0
  83. package/lib/v2/dhu/router.js +4 -0
  84. package/lib/v2/dhu/xxgk/news.js +32 -0
  85. package/lib/v2/douban/people/wish.js +2 -1
  86. package/lib/{routes → v2}/dtcj/datahero.js +3 -2
  87. package/lib/v2/dtcj/datainsight.js +53 -0
  88. package/lib/v2/dtcj/maintainer.js +4 -0
  89. package/lib/v2/dtcj/radar.js +25 -0
  90. package/lib/v2/dtcj/router.js +4 -0
  91. package/lib/v2/eastday/24.js +90 -0
  92. package/lib/v2/eastday/maintainer.js +2 -0
  93. package/lib/v2/eastday/radar.js +16 -0
  94. package/lib/v2/eastday/router.js +2 -0
  95. package/lib/{routes → v2}/eastday/sh.js +6 -11
  96. package/lib/v2/eastmoney/radar.js +13 -0
  97. package/lib/v2/eastmoney/router.js +3 -0
  98. package/lib/v2/eastmoney/ttjj/user.js +65 -0
  99. package/lib/v2/ems/apple.js +42 -0
  100. package/lib/v2/ems/maintainer.js +4 -0
  101. package/lib/{routes → v2}/ems/news.js +0 -0
  102. package/lib/v2/ems/radar.js +19 -0
  103. package/lib/v2/ems/router.js +4 -0
  104. package/lib/v2/ems/templates/apple.art +6 -0
  105. package/lib/{routes → v2}/flyert/creditcard.js +0 -0
  106. package/lib/v2/flyert/maintainer.js +4 -0
  107. package/lib/{routes → v2}/flyert/preferential.js +0 -0
  108. package/lib/v2/flyert/radar.js +19 -0
  109. package/lib/v2/flyert/router.js +4 -0
  110. package/lib/{routes → v2}/flyert/utils.js +2 -1
  111. package/lib/v2/hdu/cs/index.js +57 -0
  112. package/lib/v2/hdu/maintainer.js +3 -0
  113. package/lib/v2/hdu/radar.js +13 -0
  114. package/lib/v2/hdu/router.js +4 -0
  115. package/lib/v2/hellobtc/information.js +51 -0
  116. package/lib/v2/hellobtc/kepu.js +64 -0
  117. package/lib/v2/hellobtc/maintainer.js +6 -0
  118. package/lib/v2/hellobtc/news.js +29 -0
  119. package/lib/v2/hellobtc/radar.js +85 -0
  120. package/lib/v2/hellobtc/router.js +6 -0
  121. package/lib/v2/hellobtc/topic.js +43 -0
  122. package/lib/v2/ielts/index.js +58 -0
  123. package/lib/v2/ielts/maintainer.js +3 -0
  124. package/lib/v2/ielts/radar.js +13 -0
  125. package/lib/v2/ielts/router.js +3 -0
  126. package/lib/{routes → v2}/javbus/genre.js +0 -0
  127. package/lib/{routes → v2}/javbus/home.js +0 -0
  128. package/lib/v2/javbus/label.js +7 -0
  129. package/lib/v2/javbus/maintainer.js +16 -0
  130. package/lib/v2/javbus/radar.js +99 -0
  131. package/lib/v2/javbus/router.js +16 -0
  132. package/lib/{routes → v2}/javbus/series.js +0 -0
  133. package/lib/{routes → v2}/javbus/star.js +0 -0
  134. package/lib/v2/javbus/studio.js +7 -0
  135. package/lib/{routes → v2}/javbus/uncensored/genre.js +0 -0
  136. package/lib/{routes → v2}/javbus/uncensored/home.js +0 -0
  137. package/lib/{routes → v2}/javbus/uncensored/series.js +0 -0
  138. package/lib/{routes → v2}/javbus/uncensored/star.js +0 -0
  139. package/lib/{routes → v2}/javbus/util.js +5 -9
  140. package/lib/{routes → v2}/javbus/western/genre.js +0 -0
  141. package/lib/{routes → v2}/javbus/western/home.js +0 -0
  142. package/lib/{routes → v2}/javbus/western/series.js +0 -0
  143. package/lib/{routes → v2}/javbus/western/star.js +0 -0
  144. package/lib/v2/javlibrary/utils.js +1 -1
  145. package/lib/v2/kbs/maintainer.js +4 -0
  146. package/lib/v2/kbs/news.js +67 -0
  147. package/lib/v2/kbs/radar.js +19 -0
  148. package/lib/v2/kbs/router.js +4 -0
  149. package/lib/{routes → v2}/kbs/today.js +1 -1
  150. package/lib/v2/lofter/maintainer.js +4 -0
  151. package/lib/v2/lofter/radar.js +17 -0
  152. package/lib/v2/lofter/router.js +4 -0
  153. package/lib/{routes → v2}/lofter/tag.js +4 -4
  154. package/lib/v2/lofter/user.js +52 -0
  155. package/lib/v2/lvv2/maintainer.js +4 -0
  156. package/lib/v2/lvv2/news.js +75 -0
  157. package/lib/v2/lvv2/radar.js +79 -0
  158. package/lib/v2/lvv2/router.js +4 -0
  159. package/lib/v2/lvv2/templates/outlink.art +1 -0
  160. package/lib/v2/lvv2/top.js +77 -0
  161. package/lib/v2/nbd/article.js +50 -0
  162. package/lib/{routes → v2}/nbd/index.js +8 -5
  163. package/lib/v2/nbd/maintainer.js +4 -0
  164. package/lib/v2/nbd/radar.js +19 -0
  165. package/lib/v2/nbd/router.js +4 -0
  166. package/lib/v2/njnu/ceai/ceai.js +44 -0
  167. package/lib/v2/njnu/ceai/utils.js +55 -0
  168. package/lib/v2/njnu/jwc/jwc.js +43 -0
  169. package/lib/v2/njnu/jwc/utils.js +59 -0
  170. package/lib/v2/njnu/maintainer.js +4 -0
  171. package/lib/v2/njnu/radar.js +21 -0
  172. package/lib/v2/njnu/router.js +4 -0
  173. package/lib/v2/nltimes/maintainer.js +3 -0
  174. package/lib/v2/nltimes/news.js +89 -0
  175. package/lib/v2/nltimes/radar.js +19 -0
  176. package/lib/v2/nltimes/router.js +3 -0
  177. package/lib/{routes → v2}/nowcoder/discuss.js +17 -22
  178. package/lib/v2/nowcoder/experience.js +48 -0
  179. package/lib/{routes → v2}/nowcoder/jobcenter.js +0 -0
  180. package/lib/v2/nowcoder/maintainer.js +7 -0
  181. package/lib/v2/nowcoder/radar.js +40 -0
  182. package/lib/{routes → v2}/nowcoder/recommend.js +1 -1
  183. package/lib/v2/nowcoder/router.js +7 -0
  184. package/lib/{routes → v2}/nowcoder/schedule.js +4 -3
  185. package/lib/v2/odaily/post.js +10 -8
  186. package/lib/v2/oilchem/index.js +67 -0
  187. package/lib/v2/oilchem/maintainer.js +3 -0
  188. package/lib/v2/oilchem/radar.js +11 -0
  189. package/lib/v2/oilchem/router.js +3 -0
  190. package/lib/v2/oilchem/routes.js +671 -0
  191. package/lib/v2/picuki/maintainer.js +3 -0
  192. package/lib/v2/picuki/profile.js +167 -0
  193. package/lib/v2/picuki/radar.js +13 -0
  194. package/lib/v2/picuki/router.js +3 -0
  195. package/lib/v2/picuki/templates/post.art +7 -0
  196. package/lib/v2/qq88/index.js +60 -0
  197. package/lib/v2/qq88/maintainer.js +3 -0
  198. package/lib/v2/qq88/radar.js +13 -0
  199. package/lib/v2/qq88/router.js +3 -0
  200. package/lib/v2/readhub/index.js +106 -0
  201. package/lib/v2/readhub/maintainer.js +3 -0
  202. package/lib/v2/readhub/radar.js +13 -0
  203. package/lib/v2/readhub/router.js +6 -0
  204. package/lib/v2/shmeea/maintainer.js +1 -0
  205. package/lib/v2/shmeea/radar.js +6 -0
  206. package/lib/v2/shmeea/router.js +2 -1
  207. package/lib/v2/shmeea/self-study.js +61 -0
  208. package/lib/{routes/universities/sysu/sdcs.js → v2/sysu/cse.js} +3 -3
  209. package/lib/v2/sysu/maintainer.js +3 -0
  210. package/lib/v2/sysu/radar.js +13 -0
  211. package/lib/v2/sysu/router.js +3 -0
  212. package/lib/v2/telegram/channel.js +446 -112
  213. package/lib/v2/telegram/maintainer.js +1 -1
  214. package/lib/v2/telegram/router.js +1 -1
  215. package/lib/v2/telegram/templates/video.art +3 -1
  216. package/lib/v2/tencent/maintainer.js +3 -0
  217. package/lib/v2/tencent/qq/sdk/changelog.js +56 -0
  218. package/lib/v2/tencent/radar.js +56 -0
  219. package/lib/v2/tencent/router.js +3 -0
  220. package/lib/v2/tokeninsight/blog.js +52 -0
  221. package/lib/v2/tokeninsight/bulletin.js +44 -0
  222. package/lib/v2/tokeninsight/maintainer.js +5 -0
  223. package/lib/v2/tokeninsight/radar.js +25 -0
  224. package/lib/v2/tokeninsight/report.js +52 -0
  225. package/lib/v2/tokeninsight/router.js +5 -0
  226. package/lib/v2/txrjy/fornumtopic.js +72 -0
  227. package/lib/v2/txrjy/maintainer.js +3 -0
  228. package/lib/v2/txrjy/radar.js +17 -0
  229. package/lib/v2/txrjy/router.js +3 -0
  230. package/lib/v2/txrjy/templates/fornumtopic.art +6 -0
  231. package/lib/v2/wfu/jwc.js +54 -0
  232. package/lib/v2/wfu/maintainer.js +4 -0
  233. package/lib/v2/wfu/news.js +96 -0
  234. package/lib/v2/wfu/radar.js +21 -0
  235. package/lib/v2/wfu/router.js +4 -0
  236. package/lib/v2/who/maintainer.js +5 -0
  237. package/lib/v2/who/news-room.js +76 -0
  238. package/lib/{routes → v2}/who/news.js +1 -1
  239. package/lib/v2/who/radar.js +25 -0
  240. package/lib/v2/who/router.js +5 -0
  241. package/lib/{routes → v2}/who/speeches.js +0 -0
  242. package/lib/v2/wikinews/index.js +43 -0
  243. package/lib/v2/wikinews/maintainer.js +3 -0
  244. package/lib/v2/wikinews/radar.js +13 -0
  245. package/lib/v2/wikinews/router.js +4 -0
  246. package/lib/{routes → v2}/wsj/index.js +6 -4
  247. package/lib/v2/wsj/maintainer.js +3 -0
  248. package/lib/v2/wsj/radar.js +21 -0
  249. package/lib/v2/wsj/router.js +3 -0
  250. package/lib/v2/xiaoyuzhou/maintainer.js +1 -1
  251. package/lib/v2/xiaoyuzhou/podcast.js +1 -1
  252. package/lib/v2/xmanhua/index.js +74 -0
  253. package/lib/v2/xmanhua/radar.js +13 -0
  254. package/lib/v2/xmanhua/router.js +3 -0
  255. package/lib/{routes → v2}/zhibo8/forum.js +8 -16
  256. package/lib/v2/zhibo8/maintainer.js +5 -0
  257. package/lib/v2/zhibo8/more.js +82 -0
  258. package/lib/{routes → v2}/zhibo8/post.js +1 -1
  259. package/lib/v2/zhibo8/radar.js +27 -0
  260. package/lib/v2/zhibo8/router.js +5 -0
  261. package/package.json +10 -9
  262. package/lib/routes/36kr/news.js +0 -94
  263. package/lib/routes/8kcos/article.js +0 -17
  264. package/lib/routes/8kcos/cat.js +0 -28
  265. package/lib/routes/8kcos/latest.js +0 -27
  266. package/lib/routes/95mm/tab.js +0 -9
  267. package/lib/routes/95mm/tag.js +0 -7
  268. package/lib/routes/95mm/utils.js +0 -51
  269. package/lib/routes/apple/exchange_repair.js +0 -47
  270. package/lib/routes/eastmoney/user.js +0 -30
  271. package/lib/routes/lofter/posts.js +0 -54
  272. package/lib/routes/nbd/article.js +0 -60
  273. package/lib/routes/picuki/profile.js +0 -90
  274. package/lib/routes/readhub/category.js +0 -102
  275. package/lib/routes/who/news-room.js +0 -56
  276. package/lib/routes/zhibo8/more.js +0 -45
package/lib/config.js CHANGED
@@ -209,6 +209,7 @@ const calculateValue = () => {
209
209
  ipb_member_id: envs.EH_IPB_MEMBER_ID,
210
210
  ipb_pass_hash: envs.EH_IPB_PASS_HASH,
211
211
  sk: envs.EH_SK,
212
+ igneous: envs.EH_IGNEOUS,
212
213
  },
213
214
  infzm: {
214
215
  cookie: envs.INFZM_COOKIE,
@@ -224,6 +225,9 @@ const calculateValue = () => {
224
225
  password: envs.IG_PASSWORD,
225
226
  proxy: envs.IG_PROXY,
226
227
  },
228
+ douban: {
229
+ cookie: envs.DOUBAN_COOKIE,
230
+ },
227
231
  };
228
232
  };
229
233
  calculateValue();
@@ -1658,134 +1658,6 @@ module.exports = {
1658
1658
  },
1659
1659
  ],
1660
1660
  },
1661
- 'qq.com': {
1662
- _name: '腾讯',
1663
- 'mp.weixin': [
1664
- {
1665
- title: '微信公众号栏目',
1666
- docs: 'https://docs.rsshub.app/new-media.html#gong-zhong-hao-lan-mu-fei-tui-song-li-shi-xiao-xi',
1667
- source: '/mp/homepage',
1668
- target: (params, url) => `/wechat/mp/homepage/${new URL(url).searchParams.get('__biz')}/${new URL(url).searchParams.get('hid')}/${new URL(url).searchParams.get('cid') ? new URL(url).searchParams.get('cid') : ''}`,
1669
- },
1670
- {
1671
- title: '微信公众号话题',
1672
- docs: 'https://docs.rsshub.app/new-media.html#wei-xin-gong-zhong-hao-wen-zhang-hua-ti-tag',
1673
- source: '/mp/appmsgalbum',
1674
- target: (params, url) => `/wechat/mp/msgalbum/${new URL(url).searchParams.get('__biz')}/${new URL(url).searchParams.get('album_id')}`,
1675
- },
1676
- ],
1677
- egame: [
1678
- {
1679
- title: '企鹅电竞直播间',
1680
- docs: 'https://docs.rsshub.app/live.html#qi-e-dian-jing-zhi-bo-jian-kai-bo',
1681
- source: '/:id',
1682
- target: (params) => {
1683
- if (params.id.match(/^\d+$/)) {
1684
- return '/egameqq/room/:id';
1685
- }
1686
- },
1687
- },
1688
- ],
1689
- v: [
1690
- {
1691
- title: '视频 - 播放列表',
1692
- docs: 'https://docs.rsshub.app/multimedia.html#teng-xun-shi-pin',
1693
- source: '/x/cover/:id',
1694
- target: (params) => {
1695
- const id = params.id.match('(.*).html')[1];
1696
- return id ? `/tencentvideo/playlist/${id}` : '';
1697
- },
1698
- },
1699
- {
1700
- title: '视频 - 播放列表',
1701
- docs: 'https://docs.rsshub.app/multimedia.html#teng-xun-shi-pin',
1702
- source: '/x/cover/:id/:detail',
1703
- target: '/tencentvideo/playlist/:id',
1704
- },
1705
- ],
1706
- },
1707
- 'javbus.com': {
1708
- _name: 'JavBus',
1709
- www: [
1710
- {
1711
- title: '首页',
1712
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1713
- source: '/',
1714
- target: '/javbus/home',
1715
- },
1716
- {
1717
- title: '分类',
1718
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1719
- source: '/genre/:gid',
1720
- target: '/javbus/genre/:gid',
1721
- },
1722
- {
1723
- title: '演员',
1724
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1725
- source: '/star/:sid',
1726
- target: '/javbus/star/:sid',
1727
- },
1728
- {
1729
- title: '系列',
1730
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1731
- source: '/series/:seriesid',
1732
- target: '/javbus/series/:seriesid',
1733
- },
1734
- {
1735
- title: '首页 / 步兵',
1736
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1737
- source: '/uncensored',
1738
- target: '/javbus/uncensored/home',
1739
- },
1740
- {
1741
- title: '分类 / 步兵',
1742
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1743
- source: '/uncensored/genre/:gid',
1744
- target: '/javbus/uncensored/genre/:gid',
1745
- },
1746
- {
1747
- title: '演员 / 步兵',
1748
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1749
- source: '/uncensored/star/:sid',
1750
- target: '/javbus/uncensored/star/:sid',
1751
- },
1752
- {
1753
- title: '系列 / 步兵',
1754
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1755
- source: '/uncensored/series/:seriesid',
1756
- target: '/javbus/uncensored/series/:seriesid',
1757
- },
1758
- ],
1759
- },
1760
- 'javbus.one': {
1761
- _name: 'JavBus',
1762
- www: [
1763
- {
1764
- title: '首页 / 欧陆风云',
1765
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1766
- source: '/',
1767
- target: '/javbus/western/home',
1768
- },
1769
- {
1770
- title: '分类 / 欧陆风云',
1771
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1772
- source: '/genre/:gid',
1773
- target: '/javbus/western/genre/:gid',
1774
- },
1775
- {
1776
- title: '演员 / 欧陆风云',
1777
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1778
- source: '/star/:sid',
1779
- target: '/javbus/western/star/:sid',
1780
- },
1781
- {
1782
- title: '系列 / 欧陆风云',
1783
- docs: 'https://docs.rsshub.app/multimedia.html#javbus',
1784
- source: '/series/:seriesid',
1785
- target: '/javbus/western/series/:seriesid',
1786
- },
1787
- ],
1788
- },
1789
1661
  'onejav.com': {
1790
1662
  _name: 'OneJAV BT',
1791
1663
  '.': [
@@ -1977,18 +1849,6 @@ module.exports = {
1977
1849
  },
1978
1850
  ],
1979
1851
  },
1980
- 'lofter.com': {
1981
- _name: 'Lofter',
1982
- www: [
1983
- {
1984
- title: '话题 (标签)',
1985
- docs: 'https://docs.rsshub.app/social-media.html#lofter',
1986
- source: ['/tag/:name', '/tag/:name/:type'],
1987
- target: (params) => `/lofter/tag/${params.name}/${params.type || ''}`,
1988
- },
1989
- ],
1990
- },
1991
-
1992
1852
  'yuque.com': {
1993
1853
  _name: '语雀',
1994
1854
  www: [
@@ -2095,17 +1955,6 @@ module.exports = {
2095
1955
  },
2096
1956
  ],
2097
1957
  },
2098
- 'ems.com.cn': {
2099
- _name: '中国邮政速递物流',
2100
- www: [
2101
- {
2102
- title: '新闻',
2103
- docs: 'https://docs.rsshub.app/other.html#zhong-guo-you-zheng-su-di-wu-liu',
2104
- source: '/aboutus/xin_wen_yu_shi_jian.html',
2105
- target: '/ems/news',
2106
- },
2107
- ],
2108
- },
2109
1958
  'popiapp.cn': {
2110
1959
  _name: 'Popi 提问箱',
2111
1960
  www: [
@@ -2169,17 +2018,6 @@ module.exports = {
2169
2018
  },
2170
2019
  ],
2171
2020
  },
2172
- 'picuki.com': {
2173
- _name: 'Picuki',
2174
- www: [
2175
- {
2176
- title: '用户',
2177
- docs: 'https://docs.rsshub.app/social-media.html#picuki-yong-hu',
2178
- source: '/profile/:id',
2179
- target: '/picuki/profile/:id',
2180
- },
2181
- ],
2182
- },
2183
2021
  'jjmhw.cc': {
2184
2022
  _name: '漫小肆',
2185
2023
  www: [
package/lib/router.js CHANGED
@@ -242,8 +242,9 @@ router.get('/v2ex/topics/:type', lazyloadRouteHandler('./routes/v2ex/topics'));
242
242
  router.get('/v2ex/post/:postid', lazyloadRouteHandler('./routes/v2ex/post'));
243
243
  router.get('/v2ex/tab/:tabid', lazyloadRouteHandler('./routes/v2ex/tab'));
244
244
 
245
- // readhub
246
- router.get('/readhub/category/:category', lazyloadRouteHandler('./routes/readhub/category'));
245
+ // Readhub migrated to v2
246
+ // router.get('/readhub/category/:category?', lazyloadRouteHandler('./routes/readhub/index'));
247
+ // router.get('/readhub/:category?', lazyloadRouteHandler('./routes/readhub/index'));
247
248
 
248
249
  // f-droid
249
250
  router.get('/fdroid/apprelease/:app', lazyloadRouteHandler('./routes/fdroid/apprelease'));
@@ -466,7 +467,7 @@ router.get('/wechat/csm/:id', lazyloadRouteHandler('./routes/tencent/wechat/csm'
466
467
  router.get('/wechat/ce/:id', lazyloadRouteHandler('./routes/tencent/wechat/ce'));
467
468
  router.get('/wechat/announce', lazyloadRouteHandler('./routes/tencent/wechat/announce'));
468
469
  router.get('/wechat/miniprogram/plugins', lazyloadRouteHandler('./routes/tencent/wechat/miniprogram/plugins'));
469
- router.get('/wechat/tgchannel/:id/:mpName?', lazyloadRouteHandler('./routes/tencent/wechat/tgchannel'));
470
+ router.get('/wechat/tgchannel/:id/:mpName?/:searchQueryType?', lazyloadRouteHandler('./routes/tencent/wechat/tgchannel'));
470
471
  router.get('/wechat/uread/:userid', lazyloadRouteHandler('./routes/tencent/wechat/uread'));
471
472
  router.get('/wechat/ershicimi/:id', lazyloadRouteHandler('./routes/tencent/wechat/ershcimi'));
472
473
  router.get('/wechat/wjdn/:id', lazyloadRouteHandler('./routes/tencent/wechat/wjdn'));
@@ -487,13 +488,6 @@ router.get('/nvidia/webdriverupdate', lazyloadRouteHandler('./routes/nvidia/webd
487
488
  // 每日环球展览 iMuseum
488
489
  router.get('/imuseum/:city/:type?', lazyloadRouteHandler('./routes/imuseum'));
489
490
 
490
- // AppStore
491
- router.get('/appstore/update/:country/:id', lazyloadRouteHandler('./routes/apple/appstore/update'));
492
- router.get('/appstore/price/:country/:type/:id', lazyloadRouteHandler('./routes/apple/appstore/price'));
493
- router.get('/appstore/iap/:country/:id', lazyloadRouteHandler('./routes/apple/appstore/in-app-purchase'));
494
- router.get('/appstore/xianmian', lazyloadRouteHandler('./routes/apple/appstore/xianmian'));
495
- router.get('/appstore/gofans', lazyloadRouteHandler('./routes/apple/appstore/gofans'));
496
-
497
491
  // Hopper
498
492
  router.get('/hopper/:lowestOnly/:from/:to?', lazyloadRouteHandler('./routes/hopper/index'));
499
493
 
@@ -536,11 +530,12 @@ router.get('/sayhuahuo', lazyloadRouteHandler('./routes/galgame/sayhuahuo'));
536
530
  // 终点分享
537
531
  router.get('/zdfx', lazyloadRouteHandler('./routes/galgame/zdfx'));
538
532
 
539
- // 北京林业大学
540
- router.get('/bjfu/grs', lazyloadRouteHandler('./routes/universities/bjfu/grs'));
541
- router.get('/bjfu/kjc', lazyloadRouteHandler('./routes/universities/bjfu/kjc'));
542
- router.get('/bjfu/jwc/:type', lazyloadRouteHandler('./routes/universities/bjfu/jwc/index'));
543
- router.get('/bjfu/news/:type', lazyloadRouteHandler('./routes/universities/bjfu/news/index'));
533
+ // 北京林业大学 migrated to v2
534
+ // router.get('/bjfu/grs', lazyloadRouteHandler('./routes/universities/bjfu/grs'));
535
+ // router.get('/bjfu/kjc', lazyloadRouteHandler('./routes/universities/bjfu/kjc'));
536
+ // router.get('/bjfu/jwc/:type', lazyloadRouteHandler('./routes/universities/bjfu/jwc/index'));
537
+ // router.get('/bjfu/news/:type', lazyloadRouteHandler('./routes/universities/bjfu/news/index'));
538
+ // router.get('/bjfu/it/:type', lazyloadRouteHandler('./routes/universities/bjfu/it/index'));
544
539
 
545
540
  // 北京理工大学
546
541
  router.get('/bit/jwc', lazyloadRouteHandler('./routes/universities/bit/jwc/jwc'));
@@ -747,6 +742,10 @@ router.get('/kmust/job/jobfairs', lazyloadRouteHandler('./routes/universities/km
747
742
  router.get('/whu/cs/:type', lazyloadRouteHandler('./routes/universities/whu/cs'));
748
743
  router.get('/whu/news/:type?', lazyloadRouteHandler('./routes/universities/whu/news'));
749
744
 
745
+ // 潍坊学院 migrated to v2
746
+ // router.get('/wfu/news/:type?', require('./routes/universities/wfu/news'));
747
+ // router.get('/wfu/jwc', require('./routes/universities/wfu/jwc'));
748
+
750
749
  // 华中科技大学
751
750
  router.get('/hust/auto/notice/:type?', lazyloadRouteHandler('./routes/universities/hust/aia/notice'));
752
751
  router.get('/hust/auto/news', lazyloadRouteHandler('./routes/universities/hust/aia/news'));
@@ -865,9 +864,6 @@ router.get('/guokr/:channel', lazyloadRouteHandler('./routes/guokr/calendar'));
865
864
  // router.get('/zaobao/:type/:section', lazyloadRouteHandler('./routes/zaobao/index'));
866
865
  // router.get('/zaobao/interactive-graphics', lazyloadRouteHandler('./routes/zaobao/interactive'));
867
866
 
868
- // Apple
869
- router.get('/apple/exchange_repair/:country?', lazyloadRouteHandler('./routes/apple/exchange_repair'));
870
-
871
867
  // IPSW.me
872
868
  router.get('/ipsw/index/:ptype/:pname', lazyloadRouteHandler('./routes/ipsw/index'));
873
869
 
@@ -1133,22 +1129,24 @@ router.get('/nga/post/:tid', lazyloadRouteHandler('./routes/nga/post'));
1133
1129
  // Nautilus
1134
1130
  router.get('/nautilus/topic/:tid', lazyloadRouteHandler('./routes/nautilus/topics'));
1135
1131
 
1136
- // JavBus
1137
- router.get('/javbus/home', lazyloadRouteHandler('./routes/javbus/home'));
1138
- router.get('/javbus/genre/:gid', lazyloadRouteHandler('./routes/javbus/genre'));
1139
- router.get('/javbus/star/:sid', lazyloadRouteHandler('./routes/javbus/star'));
1140
- router.get('/javbus/series/:seriesid', lazyloadRouteHandler('./routes/javbus/series'));
1141
- router.get('/javbus/uncensored/home', lazyloadRouteHandler('./routes/javbus/uncensored/home'));
1142
- router.get('/javbus/uncensored/genre/:gid', lazyloadRouteHandler('./routes/javbus/uncensored/genre'));
1143
- router.get('/javbus/uncensored/star/:sid', lazyloadRouteHandler('./routes/javbus/uncensored/star'));
1144
- router.get('/javbus/uncensored/series/:seriesid', lazyloadRouteHandler('./routes/javbus/uncensored/series'));
1145
- router.get('/javbus/western/home', lazyloadRouteHandler('./routes/javbus/western/home'));
1146
- router.get('/javbus/western/genre/:gid', lazyloadRouteHandler('./routes/javbus/western/genre'));
1147
- router.get('/javbus/western/star/:sid', lazyloadRouteHandler('./routes/javbus/western/star'));
1148
- router.get('/javbus/western/series/:seriesid', lazyloadRouteHandler('./routes/javbus/western/series'));
1132
+ // JavBus migrated to v2
1133
+ // router.get('/javbus/home', lazyloadRouteHandler('./routes/javbus/home'));
1134
+ // router.get('/javbus/genre/:gid', lazyloadRouteHandler('./routes/javbus/genre'));
1135
+ // router.get('/javbus/star/:sid', lazyloadRouteHandler('./routes/javbus/star'));
1136
+ // router.get('/javbus/series/:seriesid', lazyloadRouteHandler('./routes/javbus/series'));
1137
+ // router.get('/javbus/studio/:studioid', lazyloadRouteHandler('./routes/javbus/studio'));
1138
+ // router.get('/javbus/label/:labelid', lazyloadRouteHandler('./routes/javbus/label'));
1139
+ // router.get('/javbus/uncensored/home', lazyloadRouteHandler('./routes/javbus/uncensored/home'));
1140
+ // router.get('/javbus/uncensored/genre/:gid', lazyloadRouteHandler('./routes/javbus/uncensored/genre'));
1141
+ // router.get('/javbus/uncensored/star/:sid', lazyloadRouteHandler('./routes/javbus/uncensored/star'));
1142
+ // router.get('/javbus/uncensored/series/:seriesid', lazyloadRouteHandler('./routes/javbus/uncensored/series'));
1143
+ // router.get('/javbus/western/home', lazyloadRouteHandler('./routes/javbus/western/home'));
1144
+ // router.get('/javbus/western/genre/:gid', lazyloadRouteHandler('./routes/javbus/western/genre'));
1145
+ // router.get('/javbus/western/star/:sid', lazyloadRouteHandler('./routes/javbus/western/star'));
1146
+ // router.get('/javbus/western/series/:seriesid', lazyloadRouteHandler('./routes/javbus/western/series'));
1149
1147
 
1150
1148
  // 中山大学
1151
- router.get('/sysu/sdcs', lazyloadRouteHandler('./routes/universities/sysu/sdcs'));
1149
+ // router.get('/sysu/cse', lazyloadRouteHandler('./routes/universities/sysu/cse'));
1152
1150
 
1153
1151
  // 動畫瘋
1154
1152
  router.get('/anigamer/new_anime', lazyloadRouteHandler('./routes/anigamer/new_anime'));
@@ -1202,12 +1200,12 @@ router.get('/bihu/activaties/:id', lazyloadRouteHandler('./routes/bihu/activatie
1202
1200
  router.get('/tingdiantz/nanjing', lazyloadRouteHandler('./routes/tingdiantz/nanjing'));
1203
1201
  router.get('/tingdiantz/95598/:province/:city/:district?', lazyloadRouteHandler('./routes/tingdiantz/95598'));
1204
1202
 
1205
- // 36kr
1206
- router.get('/36kr/search/article/:keyword', lazyloadRouteHandler('./routes/36kr/search/article'));
1207
- router.get('/36kr/newsflashes', lazyloadRouteHandler('./routes/36kr/newsflashes'));
1208
- router.get('/36kr/news/:caty', lazyloadRouteHandler('./routes/36kr/news'));
1209
- router.get('/36kr/user/:uid', lazyloadRouteHandler('./routes/36kr/user'));
1210
- router.get('/36kr/motif/:mid', lazyloadRouteHandler('./routes/36kr/motif'));
1203
+ // 36kr migrated to v2
1204
+ // router.get('/36kr/search/article/:keyword', lazyloadRouteHandler('./routes/36kr/search/article'));
1205
+ // router.get('/36kr/newsflashes', lazyloadRouteHandler('./routes/36kr/newsflashes'));
1206
+ // router.get('/36kr/news/:category?', lazyloadRouteHandler('./routes/36kr/news'));
1207
+ // router.get('/36kr/user/:uid', lazyloadRouteHandler('./routes/36kr/user'));
1208
+ // router.get('/36kr/motif/:mid', lazyloadRouteHandler('./routes/36kr/motif'));
1211
1209
 
1212
1210
  // PMCAFF
1213
1211
  router.get('/pmcaff/list/:typeid', lazyloadRouteHandler('./routes/pmcaff/list'));
@@ -1389,11 +1387,11 @@ router.get('/hupu/bbs/:id/:order?', lazyloadRouteHandler('./routes/hupu/bbs'));
1389
1387
  router.get('/hupu/all/:caty', lazyloadRouteHandler('./routes/hupu/all'));
1390
1388
  router.get('/hupu/dept/:dept', lazyloadRouteHandler('./routes/hupu/dept'));
1391
1389
 
1392
- // 牛客网
1393
- router.get('/nowcoder/discuss/:type/:order', lazyloadRouteHandler('./routes/nowcoder/discuss'));
1394
- router.get('/nowcoder/schedule/:propertyId?/:typeId?', lazyloadRouteHandler('./routes/nowcoder/schedule'));
1395
- router.get('/nowcoder/recommend', lazyloadRouteHandler('./routes/nowcoder/recommend'));
1396
- router.get('/nowcoder/jobcenter/:recruitType?/:city?/:type?/:order?/:latest?', lazyloadRouteHandler('./routes/nowcoder/jobcenter'));
1390
+ // 牛客网 migrated to v2
1391
+ // router.get('/nowcoder/discuss/:type/:order', lazyloadRouteHandler('./routes/nowcoder/discuss'));
1392
+ // router.get('/nowcoder/schedule/:propertyId?/:typeId?', lazyloadRouteHandler('./routes/nowcoder/schedule'));
1393
+ // router.get('/nowcoder/recommend', lazyloadRouteHandler('./routes/nowcoder/recommend'));
1394
+ // router.get('/nowcoder/jobcenter/:recruitType?/:city?/:type?/:order?/:latest?', lazyloadRouteHandler('./routes/nowcoder/jobcenter'));
1397
1395
 
1398
1396
  // Xiaomi.eu
1399
1397
  router.get('/xiaomieu/releases', lazyloadRouteHandler('./routes/xiaomieu/releases'));
@@ -1614,10 +1612,10 @@ router.get('/nintendo/news/china', lazyloadRouteHandler('./routes/nintendo/news_
1614
1612
  router.get('/nintendo/direct', lazyloadRouteHandler('./routes/nintendo/direct'));
1615
1613
  router.get('/nintendo/system-update', lazyloadRouteHandler('./routes/nintendo/system-update'));
1616
1614
 
1617
- // 世界卫生组织
1618
- router.get('/who/news-room/:type', lazyloadRouteHandler('./routes/who/news-room'));
1619
- router.get('/who/speeches/:language?', lazyloadRouteHandler('./routes/who/speeches'));
1620
- router.get('/who/news/:language?', lazyloadRouteHandler('./routes/who/news'));
1615
+ // 世界卫生组织 migrated to v2
1616
+ // router.get('/who/news-room/:category?/:language?', lazyloadRouteHandler('./routes/who/news-room'));
1617
+ // router.get('/who/speeches/:language?', lazyloadRouteHandler('./routes/who/speeches'));
1618
+ // router.get('/who/news/:language?', lazyloadRouteHandler('./routes/who/news'));
1621
1619
 
1622
1620
  // 福利资源-met.red
1623
1621
  router.get('/metred/fuli', lazyloadRouteHandler('./routes/metred/fuli'));
@@ -1781,13 +1779,14 @@ router.get('/polimi/news/:language?', lazyloadRouteHandler('./routes/polimi/news
1781
1779
  // dekudeals
1782
1780
  router.get('/dekudeals/:type', lazyloadRouteHandler('./routes/dekudeals'));
1783
1781
 
1784
- // 直播吧
1785
- router.get('/zhibo8/forum/:id', lazyloadRouteHandler('./routes/zhibo8/forum'));
1786
- router.get('/zhibo8/post/:id', lazyloadRouteHandler('./routes/zhibo8/post'));
1787
- router.get('/zhibo8/more/:caty', lazyloadRouteHandler('./routes/zhibo8/more'));
1782
+ // 直播吧 migrated to v2
1783
+ // router.get('/zhibo8/forum/:id', lazyloadRouteHandler('./routes/zhibo8/forum'));
1784
+ // router.get('/zhibo8/post/:id', lazyloadRouteHandler('./routes/zhibo8/post'));
1785
+ // router.get('/zhibo8/more/:category?', lazyloadRouteHandler('./routes/zhibo8/more'));
1788
1786
 
1789
- // 东方网-上海
1790
- router.get('/eastday/sh', lazyloadRouteHandler('./routes/eastday/sh'));
1787
+ // 东方网 migrated to v2
1788
+ // router.get('/eastday/sh', require('./routes/eastday/sh'));
1789
+ // router.get('/eastday/24/:category?', require('./routes/eastday/24'));
1791
1790
 
1792
1791
  // Metacritic
1793
1792
  router.get('/metacritic/release/:platform/:type/:sort?', lazyloadRouteHandler('./routes/metacritic/release'));
@@ -1808,10 +1807,10 @@ router.get('/aiyanxishe/:id/:sort?', lazyloadRouteHandler('./routes/aiyanxishe/h
1808
1807
  router.get('/huodongxing/explore', lazyloadRouteHandler('./routes/hdx/explore'));
1809
1808
 
1810
1809
  // 飞客茶馆优惠信息
1811
- router.get('/flyert/preferential', lazyloadRouteHandler('./routes/flyert/preferential'));
1812
- router.get('/flyert/creditcard/:bank', lazyloadRouteHandler('./routes/flyert/creditcard'));
1813
- router.get('/flyertea/preferential', lazyloadRouteHandler('./routes/flyert/preferential'));
1814
- router.get('/flyertea/creditcard/:bank', lazyloadRouteHandler('./routes/flyert/creditcard'));
1810
+ // router.get('/flyert/preferential', lazyloadRouteHandler('./routes/flyert/preferential'));
1811
+ // router.get('/flyert/creditcard/:bank', lazyloadRouteHandler('./routes/flyert/creditcard'));
1812
+ // router.get('/flyertea/preferential', lazyloadRouteHandler('./routes/flyert/preferential'));
1813
+ // router.get('/flyertea/creditcard/:bank', lazyloadRouteHandler('./routes/flyert/creditcard'));
1815
1814
 
1816
1815
  // 中国广播
1817
1816
  router.get('/radio/:channelname/:name', lazyloadRouteHandler('./routes/radio/radio'));
@@ -2172,9 +2171,9 @@ router.get('/taptap/topic/:id/:label?', lazyloadRouteHandler('./routes/taptap/to
2172
2171
  router.get('/taptap/changelog/:id', lazyloadRouteHandler('./routes/taptap/changelog'));
2173
2172
  router.get('/taptap/review/:id/:order?', lazyloadRouteHandler('./routes/taptap/review'));
2174
2173
 
2175
- // lofter
2176
- router.get('/lofter/tag/:name?/:type?', lazyloadRouteHandler('./routes/lofter/tag'));
2177
- router.get('/lofter/user/:username', lazyloadRouteHandler('./routes/lofter/posts'));
2174
+ // lofter migrated to v2
2175
+ // router.get('/lofter/tag/:name?/:type?', lazyloadRouteHandler('./routes/lofter/tag'));
2176
+ // router.get('/lofter/user/:name?', lazyloadRouteHandler('./routes/lofter/user'));
2178
2177
 
2179
2178
  // 米坛社区表盘
2180
2179
  router.get('/watchface/:watch_type?/:list_type?', lazyloadRouteHandler('./routes/watchface/update'));
@@ -2193,9 +2192,9 @@ router.get('/wineyun/:category', lazyloadRouteHandler('./routes/wineyun'));
2193
2192
  router.get('/xiaohongshu/user/:user_id/:category', lazyloadRouteHandler('./routes/xiaohongshu/user'));
2194
2193
  router.get('/xiaohongshu/board/:board_id', lazyloadRouteHandler('./routes/xiaohongshu/board'));
2195
2194
 
2196
- // 每经网
2197
- router.get('/nbd/daily', lazyloadRouteHandler('./routes/nbd/article'));
2198
- router.get('/nbd/:id?', lazyloadRouteHandler('./routes/nbd/index'));
2195
+ // 每经网 migrated to v2
2196
+ // router.get('/nbd/daily', lazyloadRouteHandler('./routes/nbd/article'));
2197
+ // router.get('/nbd/:id?', lazyloadRouteHandler('./routes/nbd/index'));
2199
2198
 
2200
2199
  // 快知
2201
2200
  router.get('/kzfeed/topic/:id', lazyloadRouteHandler('./routes/kzfeed/topic'));
@@ -2682,8 +2681,8 @@ router.get('/ccnuwu', lazyloadRouteHandler('./routes/universities/ccnu/ccnuwu'))
2682
2681
  // WEEX
2683
2682
  router.get('/weexcn/news/:typeid', lazyloadRouteHandler('./routes/weexcn/index'));
2684
2683
 
2685
- // 天天基金
2686
- router.get('/eastmoney/user/:uid', lazyloadRouteHandler('./routes/eastmoney/user'));
2684
+ // 天天基金 migrated to v2
2685
+ // router.get('/eastmoney/ttjj/user/:uid', lazyloadRouteHandler('./routes/eastmoney/ttjj/user'));
2687
2686
 
2688
2687
  // 紳士漫畫
2689
2688
  router.get('/ssmh', lazyloadRouteHandler('./routes/ssmh'));
@@ -3009,9 +3008,6 @@ router.get('/open163/latest', lazyloadRouteHandler('./routes/netease/open/latest
3009
3008
  // Boston.com
3010
3009
  router.get('/boston/:tag?', lazyloadRouteHandler('./routes/boston/index'));
3011
3010
 
3012
- // 中国邮政速递物流
3013
- router.get('/ems/news', lazyloadRouteHandler('./routes/ems/news'));
3014
-
3015
3011
  // 场库
3016
3012
  router.get('/changku', lazyloadRouteHandler('./routes/changku/index'));
3017
3013
  router.get('/changku/cate/:postid', lazyloadRouteHandler('./routes/changku/index'));
@@ -3115,9 +3111,6 @@ router.get('/behance/:user/:type?', lazyloadRouteHandler('./routes/behance/index
3115
3111
  // 北京物资学院
3116
3112
  router.get('/bwu/news', lazyloadRouteHandler('./routes/universities/bwu/news'));
3117
3113
 
3118
- // Picuki
3119
- router.get('/picuki/profile/:id/:displayVideo?', lazyloadRouteHandler('./routes/picuki/profile'));
3120
-
3121
3114
  // 新榜
3122
3115
  router.get('/newrank/wechat/:wxid', lazyloadRouteHandler('./routes/newrank/wechat'));
3123
3116
  router.get('/newrank/douyin/:dyid', lazyloadRouteHandler('./routes/newrank/douyin'));
@@ -3335,9 +3328,9 @@ router.get('/huawei/xinsheng/:caty?/:order?/:keyword?', lazyloadRouteHandler('./
3335
3328
  router.get('/ow/patch', lazyloadRouteHandler('./routes/ow/patch'));
3336
3329
 
3337
3330
  // MM范
3338
- router.get('/95mm/tab/:tab?', lazyloadRouteHandler('./routes/95mm/tab'));
3339
- router.get('/95mm/tag/:tag', lazyloadRouteHandler('./routes/95mm/tag'));
3340
- router.get('/95mm/category/:category', lazyloadRouteHandler('./routes/95mm/category'));
3331
+ // router.get('/95mm/tab/:tab?', lazyloadRouteHandler('./routes/95mm/tab'));
3332
+ // router.get('/95mm/tag/:tag', lazyloadRouteHandler('./routes/95mm/tag'));
3333
+ // router.get('/95mm/category/:category', lazyloadRouteHandler('./routes/95mm/category'));
3341
3334
 
3342
3335
  // 中国工程科技知识中心
3343
3336
  router.get('/cktest/app/:ctgroup?/:domain?', lazyloadRouteHandler('./routes/cktest/app'));
@@ -3444,8 +3437,8 @@ router.get('/liquipedia/dota2/matches/:id', lazyloadRouteHandler('./routes/liqui
3444
3437
  // 哈尔滨市科技局
3445
3438
  router.get('/gov/harbin/kjj', lazyloadRouteHandler('./routes/gov/harbin/kjj'));
3446
3439
 
3447
- // WSJ
3448
- router.get('/wsj/:lang/:category?', lazyloadRouteHandler('./routes/wsj/index'));
3440
+ // WSJ migrated to v2
3441
+ // router.get('/wsj/:lang/:category?', lazyloadRouteHandler('./routes/wsj/index'));
3449
3442
 
3450
3443
  // China File
3451
3444
  router.get('/chinafile/:category?', lazyloadRouteHandler('./routes/chinafile/index'));
@@ -3471,9 +3464,10 @@ router.get('/dedao/:caty?', lazyloadRouteHandler('./routes/dedao/index'));
3471
3464
  // 未名新闻
3472
3465
  router.get('/mitbbs/:caty?', lazyloadRouteHandler('./routes/mitbbs/index'));
3473
3466
 
3474
- // 8kcos
3475
- router.get('/8kcos/', lazyloadRouteHandler('./routes/8kcos/latest'));
3476
- router.get('/8kcos/cat/:cat*', lazyloadRouteHandler('./routes/8kcos/cat'));
3467
+ // 8kcos migrated to v2
3468
+ // router.get('/8kcos/', lazyloadRouteHandler('./routes/8kcos/latest'));
3469
+ // router.get('/8kcos/cat/:cat*', lazyloadRouteHandler('./routes/8kcos/cat'));
3470
+ // router.get('/8kcos/tag/:tag', lazyloadRouteHandler('./routes/8kcos/tag'));
3477
3471
 
3478
3472
  // 贾真的电商108将
3479
3473
  router.get('/jiazhen108', lazyloadRouteHandler('./routes/jiazhen108/index'));
@@ -3604,6 +3598,9 @@ router.get('/esquirehk/tag/:id', lazyloadRouteHandler('./routes/esquirehk/tag'))
3604
3598
  // 国家普通话测试 杭州市
3605
3599
  router.get('/putonghua', lazyloadRouteHandler('./routes/putonghua/hangzhou'));
3606
3600
 
3601
+ // 国家自学考试 上海市 migrated to v2 /shmeea/self-study
3602
+ // router.get('/self-study/shanghai', require('./routes/self-study/shanghai'));
3603
+
3607
3604
  // 有道云笔记
3608
3605
  router.get('/youdao/xueba', lazyloadRouteHandler('./routes/youdao/xueba'));
3609
3606
  router.get('/youdao/latest', lazyloadRouteHandler('./routes/youdao/latest'));
@@ -3891,8 +3888,9 @@ router.get('/jlbtc/kyc/:category?', lazyloadRouteHandler('./routes/universities/
3891
3888
  router.get('/jlbtc/jwc/:id?', lazyloadRouteHandler('./routes/universities/jlbtc/jwc'));
3892
3889
  router.get('/jlbtc/:category?', lazyloadRouteHandler('./routes/universities/jlbtc/index'));
3893
3890
 
3894
- // DT 财经
3895
- router.get('/dtcj/datahero/:category?', lazyloadRouteHandler('./routes/dtcj/datahero'));
3891
+ // DT 财经 migrated to v2
3892
+ // router.get('/dtcj/datahero/:category?', lazyloadRouteHandler('./routes/dtcj/datahero'));
3893
+ // router.get('/dtcj/datainsight/:id?', lazyloadRouteHandler('./routes/dtcj/datainsight'));
3896
3894
 
3897
3895
  // 劍心.回憶
3898
3896
  router.get('/kenshin/:category?/:type?', lazyloadRouteHandler('./routes/kenshin/index'));
@@ -4174,8 +4172,9 @@ router.get('/fashionnetwork/headline/:country?', lazyloadRouteHandler('./routes/
4174
4172
  // mirror.xyz
4175
4173
  router.get('/mirror/:id', lazyloadRouteHandler('./routes/mirror/entries'));
4176
4174
 
4177
- // KBS
4178
- router.get('/kbs/today/:language?', lazyloadRouteHandler('./routes/kbs/today'));
4175
+ // KBS migrated to v2
4176
+ // router.get('/kbs/today/:language?', lazyloadRouteHandler('./routes/kbs/today'));
4177
+ // router.get('/kbs/news/:category?/:language?', lazyloadRouteHandler('./routes/kbs/news'));
4179
4178
 
4180
4179
  // Deprecated: DO NOT ADD ANY NEWS ROUTES HERE
4181
4180
 
@@ -22,13 +22,14 @@ const forumIdMaps = {
22
22
  yzxa: '48',
23
23
  omxa: '49',
24
24
  ktdm: '117',
25
+ zhtlq: '95',
25
26
  };
26
27
 
27
28
  module.exports = async (ctx) => {
28
29
  const subformName = ctx.params.subforumid || 'gqzwzm';
29
30
  const subformId = subformName in forumIdMaps ? forumIdMaps[subformName] : subformName;
30
31
  const typefilter = ctx.params.type ? `&filter=typeid&typeid=${ctx.params.type}` : '';
31
- const link = `${host}forum.php?mod=forumdisplay&fid=${subformId}${typefilter}`;
32
+ const link = `${host}forum.php?mod=forumdisplay&orderby=dateline&fid=${subformId}${typefilter}`;
32
33
  const headers = {
33
34
  'Accept-Encoding': 'gzip, deflate, br',
34
35
  'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
@@ -3,14 +3,24 @@ const cheerio = require('cheerio');
3
3
  const config = require('@/config').value.ehentai;
4
4
 
5
5
  const headers = {};
6
- const has_cookie = config.ipb_member_id && config.ipb_pass_hash && config.sk;
6
+ const has_cookie = config.ipb_member_id && config.ipb_pass_hash && (config.sk || config.igneous);
7
+ const from_ex = has_cookie && config.igneous;
7
8
  if (has_cookie) {
8
- const { ipb_member_id, ipb_pass_hash, sk } = config;
9
- headers.cookie = `ipb_member_id=${ipb_member_id};ipb_pass_hash=${ipb_pass_hash};sk=${sk}`;
9
+ if (from_ex) {
10
+ const { ipb_member_id, ipb_pass_hash, igneous } = config;
11
+ headers.cookie = `ipb_member_id=${ipb_member_id};ipb_pass_hash=${ipb_pass_hash};igneous=${igneous}`;
12
+ } else {
13
+ const { ipb_member_id, ipb_pass_hash, sk } = config;
14
+ headers.cookie = `ipb_member_id=${ipb_member_id};ipb_pass_hash=${ipb_pass_hash};sk=${sk}`;
15
+ }
10
16
  }
11
17
 
12
18
  function ehgot(url) {
13
- return got({ method: 'get', url: `https://e-hentai.org/${url}`, headers });
19
+ if (from_ex) {
20
+ return got({ method: 'get', url: `https://exhentai.org/${url}`, headers });
21
+ } else {
22
+ return got({ method: 'get', url: `https://e-hentai.org/${url}`, headers });
23
+ }
14
24
  }
15
25
 
16
26
  async function parsePage(cache, data, get_bittorrent = false) {
@@ -26,7 +36,7 @@ async function parsePage(cache, data, get_bittorrent = false) {
26
36
  const el_img = el.find('td.gl2c div.glthumb div img');
27
37
  const title = el_a.find('div.glink').html();
28
38
  const thumbnail = el_img.attr('data-src') ? el_img.attr('data-src') : el_img.attr('src');
29
- const description = `<img src='${thumbnail}'>`;
39
+ const description = `<img src='${thumbnail}' alt='thumbnail'>`;
30
40
  const pubDate = el.find('div[id^="posted_"]').html();
31
41
  const link = el_a.attr('href');
32
42
  if (title && link) {
@@ -130,4 +140,4 @@ function getTagItems(cache, tag, page, get_bittorrent = false) {
130
140
  return gatherItemsByPage(cache, `tag/${tag}/${page}`, get_bittorrent);
131
141
  }
132
142
 
133
- module.exports = { getFavoritesItems, getSearchItems, getTagItems };
143
+ module.exports = { getFavoritesItems, getSearchItems, getTagItems, has_cookie, from_ex };
@@ -1,8 +1,7 @@
1
1
  const EhAPI = require('./ehapi');
2
- const config = require('@/config').value;
3
2
 
4
3
  module.exports = async (ctx) => {
5
- if (!config.ehentai || !config.ehentai.ipb_member_id || !config.ehentai.ipb_pass_hash || !config.ehentai.sk) {
4
+ if (!EhAPI.has_cookie) {
6
5
  throw 'Ehentai favorites RSS is disabled due to the lack of <a href="https://docs.rsshub.app/install/#pei-zhi-bu-fen-rss-mo-kuai-pei-zhi">relevant config</a>';
7
6
  }
8
7
  const favcat = ctx.params.favcat ? parseInt(ctx.params.favcat) : 0;
@@ -11,9 +10,17 @@ module.exports = async (ctx) => {
11
10
  const inline_set = ctx.params.order === 'posted' ? 'fs_p' : 'fs_f';
12
11
  const items = await EhAPI.getFavoritesItems(ctx.cache, page, favcat, inline_set, bittorrent);
13
12
 
14
- ctx.state.data = {
15
- title: 'E-Hentai Favorites',
16
- link: `https://e-hentai.org/favorites.php?favcat=${favcat}&inline_set=${inline_set}`,
17
- item: items,
18
- };
13
+ if (EhAPI.from_ex) {
14
+ ctx.state.data = {
15
+ title: 'ExHentai Favorites',
16
+ link: `https://exhentai.org/favorites.php?favcat=${favcat}&inline_set=${inline_set}`,
17
+ item: items,
18
+ };
19
+ } else {
20
+ ctx.state.data = {
21
+ title: 'E-Hentai Favorites',
22
+ link: `https://e-hentai.org/favorites.php?favcat=${favcat}&inline_set=${inline_set}`,
23
+ item: items,
24
+ };
25
+ }
19
26
  };