rsshub 1.0.0-master.f7c0247 → 1.0.0-master.f7c4a93

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 (478) hide show
  1. package/lib/config.js +11 -1
  2. package/lib/middleware/anti-hotlink.js +90 -22
  3. package/lib/middleware/cache/redis.js +7 -2
  4. package/lib/middleware/onerror.js +2 -1
  5. package/lib/middleware/parameter.js +76 -35
  6. package/lib/middleware/templates/iframe.art +14 -0
  7. package/lib/radar-rules.js +0 -163
  8. package/lib/router.js +79 -94
  9. package/lib/routes/agefans/update.js +1 -1
  10. package/lib/routes/index.js +1 -1
  11. package/lib/routes/novel/biqugeinfo.js +2 -2
  12. package/lib/routes/universities/uestc/sice.js +12 -33
  13. package/lib/routes/weibo/user.js +20 -28
  14. package/lib/utils/cf-email.js +36 -0
  15. package/lib/utils/parse-date.js +4 -2
  16. package/lib/utils/puppeteer.js +22 -0
  17. package/lib/utils/wechat-mp.js +1 -0
  18. package/lib/v2/19lou/index.js +74 -0
  19. package/lib/v2/19lou/maintainer.js +3 -0
  20. package/lib/v2/19lou/radar.js +29 -0
  21. package/lib/v2/19lou/router.js +3 -0
  22. package/lib/v2/7mmtv/index.js +86 -0
  23. package/lib/v2/7mmtv/maintainer.js +4 -0
  24. package/lib/v2/7mmtv/radar.js +19 -0
  25. package/lib/v2/7mmtv/router.js +3 -0
  26. package/lib/v2/7mmtv/templates/description.art +11 -0
  27. package/lib/v2/91porn/index.js +58 -0
  28. package/lib/v2/91porn/maintainer.js +3 -0
  29. package/lib/v2/91porn/radar.js +13 -0
  30. package/lib/v2/91porn/router.js +3 -0
  31. package/lib/v2/91porn/templates/index.art +1 -0
  32. package/lib/v2/9to5/maintainer.js +3 -0
  33. package/lib/v2/9to5/radar.js +35 -0
  34. package/lib/v2/9to5/router.js +3 -0
  35. package/lib/{routes → v2}/9to5/subsite.js +20 -17
  36. package/lib/{routes → v2}/9to5/utils.js +4 -1
  37. package/lib/{routes → v2}/aliyun/database_month.js +8 -13
  38. package/lib/{routes → v2}/aliyun/developer/group.js +6 -1
  39. package/lib/v2/aliyun/maintainer.js +5 -0
  40. package/lib/{routes → v2}/aliyun/notice.js +13 -21
  41. package/lib/v2/aliyun/radar.js +32 -0
  42. package/lib/v2/aliyun/router.js +5 -0
  43. package/lib/v2/apnews/maintainer.js +3 -0
  44. package/lib/v2/apnews/radar.js +13 -0
  45. package/lib/v2/apnews/router.js +3 -0
  46. package/lib/v2/apnews/templates/description.art +14 -0
  47. package/lib/v2/apnews/topics.js +44 -0
  48. package/lib/{routes → v2}/asiantolick/index.js +20 -17
  49. package/lib/v2/asiantolick/maintainer.js +6 -0
  50. package/lib/v2/asiantolick/radar.js +31 -0
  51. package/lib/v2/asiantolick/router.js +3 -0
  52. package/lib/v2/asiantolick/templates/description.art +3 -0
  53. package/lib/v2/behance/maintainer.js +3 -0
  54. package/lib/v2/behance/radar.js +26 -0
  55. package/lib/v2/behance/router.js +3 -0
  56. package/lib/v2/behance/user.js +67 -0
  57. package/lib/v2/caareviews/book.js +14 -0
  58. package/lib/v2/caareviews/essay.js +14 -0
  59. package/lib/v2/caareviews/exhibition.js +14 -0
  60. package/lib/v2/caareviews/maintainer.js +5 -0
  61. package/lib/v2/caareviews/radar.js +25 -0
  62. package/lib/v2/caareviews/router.js +5 -0
  63. package/lib/v2/caareviews/templates/utils.art +2 -0
  64. package/lib/v2/caareviews/utils.js +49 -0
  65. package/lib/v2/ccac/news.js +12 -3
  66. package/lib/v2/chinanews/index.js +4 -3
  67. package/lib/v2/cn-healthcare/index.js +31 -0
  68. package/lib/v2/cn-healthcare/maintainer.js +3 -0
  69. package/lib/v2/cn-healthcare/radar.js +13 -0
  70. package/lib/v2/cn-healthcare/router.js +3 -0
  71. package/lib/v2/cncf/index.js +43 -0
  72. package/lib/v2/cncf/maintainer.js +3 -0
  73. package/lib/v2/cncf/radar.js +31 -0
  74. package/lib/v2/cncf/reports.js +38 -0
  75. package/lib/v2/cncf/router.js +4 -0
  76. package/lib/v2/cnjxol/index.js +94 -0
  77. package/lib/v2/cnjxol/maintainer.js +4 -0
  78. package/lib/v2/cnjxol/radar.js +19 -0
  79. package/lib/v2/cnjxol/router.js +3 -0
  80. package/lib/v2/cnjxol/templates/description.art +2 -0
  81. package/lib/v2/cntheory/maintainer.js +3 -0
  82. package/lib/v2/cntheory/paper.js +93 -0
  83. package/lib/v2/cntheory/radar.js +13 -0
  84. package/lib/v2/cntheory/router.js +3 -0
  85. package/lib/v2/cntheory/templates/description.art +2 -0
  86. package/lib/v2/cscse/maintainer.js +3 -0
  87. package/lib/v2/cscse/radar.js +13 -0
  88. package/lib/v2/cscse/router.js +3 -0
  89. package/lib/v2/cscse/tzgg.js +54 -0
  90. package/lib/v2/diandong/ddh.js +51 -0
  91. package/lib/v2/diandong/maintainer.js +4 -0
  92. package/lib/v2/diandong/news.js +50 -0
  93. package/lib/v2/diandong/radar.js +19 -0
  94. package/lib/v2/diandong/router.js +4 -0
  95. package/lib/v2/domp4/detail.js +67 -0
  96. package/lib/v2/domp4/latest.js +31 -0
  97. package/lib/v2/domp4/maintainer.js +4 -0
  98. package/lib/v2/domp4/radar.js +25 -0
  99. package/lib/v2/domp4/router.js +4 -0
  100. package/lib/v2/domp4/utils.js +72 -0
  101. package/lib/v2/douyin/hashtag.js +133 -0
  102. package/lib/v2/douyin/radar.js +6 -0
  103. package/lib/v2/douyin/router.js +1 -0
  104. package/lib/v2/douyin/user.js +10 -1
  105. package/lib/{routes → v2}/earthquake/ceic.js +3 -1
  106. package/lib/{routes → v2}/earthquake/index.js +5 -3
  107. package/lib/v2/earthquake/maintainer.js +4 -0
  108. package/lib/v2/earthquake/radar.js +24 -0
  109. package/lib/v2/earthquake/router.js +4 -0
  110. package/lib/{routes/the-economist → v2/economist}/download.js +0 -0
  111. package/lib/v2/economist/espresso.js +50 -0
  112. package/lib/v2/economist/full.js +42 -0
  113. package/lib/v2/economist/gre-vocabulary.js +19 -0
  114. package/lib/v2/economist/maintainer.js +6 -0
  115. package/lib/v2/economist/radar.js +27 -0
  116. package/lib/v2/economist/router.js +6 -0
  117. package/lib/v2/elasticsearch-cn/index.js +57 -0
  118. package/lib/v2/elasticsearch-cn/maintainer.js +3 -0
  119. package/lib/v2/elasticsearch-cn/radar.js +13 -0
  120. package/lib/v2/elasticsearch-cn/router.js +3 -0
  121. package/lib/v2/elsevier/issue.js +62 -0
  122. package/lib/v2/elsevier/journal.js +72 -0
  123. package/lib/v2/elsevier/maintainer.js +2 -2
  124. package/lib/v2/elsevier/radar.js +5 -5
  125. package/lib/v2/elsevier/router.js +4 -2
  126. package/lib/v2/elsevier/templates/description.art +5 -5
  127. package/lib/v2/epicgames/index.js +45 -11
  128. package/lib/v2/feng/forum.js +42 -0
  129. package/lib/v2/feng/radar.js +13 -0
  130. package/lib/v2/feng/router.js +3 -0
  131. package/lib/v2/feng/templates/deleted.art +2 -0
  132. package/lib/v2/feng/templates/img.art +6 -0
  133. package/lib/v2/feng/utils.js +80 -0
  134. package/lib/v2/fx-markets/channel.js +56 -0
  135. package/lib/v2/fx-markets/maintainer.js +3 -0
  136. package/lib/v2/fx-markets/radar.js +31 -0
  137. package/lib/v2/fx-markets/router.js +3 -0
  138. package/lib/v2/gcores/category.js +5 -1
  139. package/lib/v2/gcores/tag.js +5 -1
  140. package/lib/v2/getitfree/index.js +54 -0
  141. package/lib/v2/getitfree/maintainer.js +3 -0
  142. package/lib/v2/getitfree/radar.js +13 -0
  143. package/lib/v2/getitfree/router.js +3 -0
  144. package/lib/v2/gitee/maintainer.js +6 -0
  145. package/lib/v2/gitee/radar.js +31 -0
  146. package/lib/v2/gitee/repos/commits.js +40 -0
  147. package/lib/v2/gitee/repos/events.js +66 -0
  148. package/lib/v2/gitee/repos/releases.js +33 -0
  149. package/lib/v2/gitee/router.js +6 -0
  150. package/lib/v2/gitee/users/events.js +84 -0
  151. package/lib/v2/gov/beijing/jw/tzgg.js +58 -0
  152. package/lib/v2/gov/customs/list.js +80 -0
  153. package/lib/v2/gov/customs/utils.js +21 -0
  154. package/lib/v2/gov/maintainer.js +4 -1
  155. package/lib/v2/gov/miit/wjgs.js +50 -41
  156. package/lib/v2/gov/miit/zcjd.js +50 -41
  157. package/lib/v2/gov/pbc/goutongjiaoliu.js +20 -15
  158. package/lib/v2/gov/pbc/tradeAnnouncement.js +18 -14
  159. package/lib/v2/gov/radar.js +45 -26
  160. package/lib/v2/gov/router.js +2 -0
  161. package/lib/v2/gumroad/index.js +35 -0
  162. package/lib/v2/gumroad/maintainer.js +3 -0
  163. package/lib/v2/gumroad/radar.js +17 -0
  164. package/lib/v2/gumroad/router.js +3 -0
  165. package/lib/v2/gumroad/templates/products.art +7 -0
  166. package/lib/v2/hackertalk/index.js +23 -0
  167. package/lib/v2/hackertalk/maintainer.js +3 -0
  168. package/lib/v2/hackertalk/radar.js +13 -0
  169. package/lib/v2/hackertalk/router.js +3 -0
  170. package/lib/v2/hashnode/blog.js +62 -0
  171. package/lib/v2/hashnode/maintainer.js +3 -0
  172. package/lib/v2/hashnode/radar.js +13 -0
  173. package/lib/v2/hashnode/router.js +3 -0
  174. package/lib/v2/hashnode/templates/description.art +2 -0
  175. package/lib/v2/heu/gx/list.js +2 -2
  176. package/lib/v2/heu/job/list.js +2 -2
  177. package/lib/v2/heu/uae/list.js +2 -2
  178. package/lib/v2/heu/yjsy/list.js +2 -2
  179. package/lib/v2/hk01/channel.js +40 -0
  180. package/lib/{routes → v2}/hk01/hot.js +2 -1
  181. package/lib/v2/hk01/issue.js +41 -0
  182. package/lib/v2/hk01/maintainer.js +7 -0
  183. package/lib/v2/hk01/radar.js +37 -0
  184. package/lib/v2/hk01/router.js +7 -0
  185. package/lib/{routes → v2}/hk01/tag.js +2 -1
  186. package/lib/{routes → v2}/hk01/zone.js +3 -2
  187. package/lib/v2/hotukdeals/index.js +1 -1
  188. package/lib/{routes → v2}/huxiu/article.js +1 -1
  189. package/lib/{routes → v2}/huxiu/author.js +18 -6
  190. package/lib/{routes → v2}/huxiu/collection.js +1 -2
  191. package/lib/v2/huxiu/maintainer.js +7 -0
  192. package/lib/v2/huxiu/radar.js +35 -0
  193. package/lib/v2/huxiu/router.js +7 -0
  194. package/lib/{routes → v2}/huxiu/search.js +0 -0
  195. package/lib/{routes → v2}/huxiu/tag.js +0 -0
  196. package/lib/{routes → v2}/huxiu/utils.js +3 -4
  197. package/lib/v2/ieee/journal.js +78 -0
  198. package/lib/v2/ieee/maintainer.js +2 -2
  199. package/lib/v2/ieee/radar.js +4 -4
  200. package/lib/v2/ieee/{latestdate.js → recent.js} +34 -42
  201. package/lib/v2/ieee/router.js +4 -2
  202. package/lib/v2/ieee/templates/description.art +5 -5
  203. package/lib/v2/ielts/index.js +32 -26
  204. package/lib/v2/itch/devlog.js +62 -0
  205. package/lib/v2/itch/index.js +56 -0
  206. package/lib/v2/itch/maintainer.js +5 -0
  207. package/lib/v2/itch/posts.js +41 -0
  208. package/lib/v2/itch/radar.js +28 -0
  209. package/lib/v2/itch/router.js +5 -0
  210. package/lib/v2/itch/templates/description.art +4 -0
  211. package/lib/v2/jike/utils.js +32 -1
  212. package/lib/{routes → v2}/juejin/books.js +2 -1
  213. package/lib/{routes → v2}/juejin/category.js +1 -1
  214. package/lib/{routes → v2}/juejin/collection.js +0 -0
  215. package/lib/{routes → v2}/juejin/column.js +0 -0
  216. package/lib/{routes → v2}/juejin/favorites.js +0 -0
  217. package/lib/v2/juejin/maintainer.js +13 -0
  218. package/lib/v2/juejin/news.js +25 -0
  219. package/lib/{routes → v2}/juejin/pins.js +3 -2
  220. package/lib/{routes → v2}/juejin/posts.js +0 -0
  221. package/lib/v2/juejin/radar.js +61 -0
  222. package/lib/v2/juejin/router.js +13 -0
  223. package/lib/{routes → v2}/juejin/shares.js +0 -0
  224. package/lib/{routes → v2}/juejin/tag.js +0 -0
  225. package/lib/{routes → v2}/juejin/trending.js +0 -0
  226. package/lib/{routes → v2}/juejin/utils.js +15 -7
  227. package/lib/v2/kcna/maintainer.js +3 -0
  228. package/lib/v2/kcna/news.js +81 -0
  229. package/lib/v2/kcna/radar.js +61 -0
  230. package/lib/v2/kcna/router.js +3 -0
  231. package/lib/v2/kcna/templates/news.art +9 -0
  232. package/lib/v2/kcna/utils.js +64 -0
  233. package/lib/v2/keep/maintainer.js +3 -0
  234. package/lib/v2/keep/radar.js +13 -0
  235. package/lib/v2/keep/router.js +3 -0
  236. package/lib/v2/keep/templates/user.art +16 -0
  237. package/lib/{routes → v2}/keep/user.js +14 -4
  238. package/lib/v2/laohu8/maintainer.js +3 -0
  239. package/lib/v2/laohu8/personal.js +32 -0
  240. package/lib/v2/laohu8/radar.js +13 -0
  241. package/lib/v2/laohu8/router.js +3 -0
  242. package/lib/v2/lever/index.js +28 -0
  243. package/lib/v2/lever/maintainer.js +3 -0
  244. package/lib/v2/lever/radar.js +13 -0
  245. package/lib/v2/lever/router.js +3 -0
  246. package/lib/v2/mdpi/journal.js +65 -0
  247. package/lib/v2/mdpi/maintainer.js +3 -0
  248. package/lib/v2/mdpi/radar.js +13 -0
  249. package/lib/v2/mdpi/router.js +3 -0
  250. package/lib/v2/mdpi/templates/description.art +12 -0
  251. package/lib/v2/mihoyo/bbs.js +1 -0
  252. package/lib/v2/mihoyo/radar.js +2 -2
  253. package/lib/v2/mirror/index.js +34 -0
  254. package/lib/v2/mirror/maintainer.js +3 -0
  255. package/lib/v2/mirror/radar.js +17 -0
  256. package/lib/v2/mirror/router.js +3 -0
  257. package/lib/v2/mobilism/forums.js +75 -0
  258. package/lib/v2/mobilism/maintainer.js +4 -0
  259. package/lib/v2/mobilism/portal.js +54 -0
  260. package/lib/v2/mobilism/radar.js +23 -0
  261. package/lib/v2/mobilism/router.js +4 -0
  262. package/lib/{routes → v2}/mp4er/index.js +1 -1
  263. package/lib/v2/mp4er/maintainer.js +3 -0
  264. package/lib/v2/mp4er/radar.js +13 -0
  265. package/lib/v2/mp4er/router.js +3 -0
  266. package/lib/v2/mysql/maintainer.js +3 -0
  267. package/lib/v2/mysql/radar.js +13 -0
  268. package/lib/v2/mysql/release.js +55 -0
  269. package/lib/v2/mysql/router.js +3 -0
  270. package/lib/v2/nbd/radar.js +2 -2
  271. package/lib/v2/ncwu/maintainer.js +3 -0
  272. package/lib/v2/ncwu/notice.js +27 -0
  273. package/lib/v2/ncwu/radar.js +13 -0
  274. package/lib/v2/ncwu/router.js +3 -0
  275. package/lib/v2/nhk/news.js +41 -0
  276. package/lib/{routes → v2}/nhk/news_web_easy.js +20 -20
  277. package/lib/v2/nhk/radar.js +19 -0
  278. package/lib/v2/nhk/router.js +4 -0
  279. package/lib/v2/nhk/templates/news.art +5 -0
  280. package/lib/v2/nju/rczp.js +34 -24
  281. package/lib/v2/njust/utils.js +4 -0
  282. package/lib/v2/nuaa/utils/pypasswaf.js +4 -5
  283. package/lib/v2/nytimes/daily_briefing_chinese.js +66 -41
  284. package/lib/v2/nytimes/index.js +3 -3
  285. package/lib/v2/nytimes/maintainer.js +1 -1
  286. package/lib/v2/nytimes/templates/image.art +4 -0
  287. package/lib/v2/nytimes/utils.js +7 -1
  288. package/lib/v2/oceanengine/arithmeticIndex.js +145 -0
  289. package/lib/v2/oceanengine/maintainer.js +3 -0
  290. package/lib/v2/oceanengine/radar.js +13 -0
  291. package/lib/v2/oceanengine/router.js +3 -0
  292. package/lib/v2/oceanengine/templates/content.art +14 -0
  293. package/lib/v2/openwrt/maintainer.js +3 -0
  294. package/lib/v2/openwrt/radar.js +13 -0
  295. package/lib/v2/openwrt/releases.js +25 -0
  296. package/lib/v2/openwrt/router.js +3 -0
  297. package/lib/v2/orcid/index.js +1 -1
  298. package/lib/v2/orcid/templates/description.art +2 -2
  299. package/lib/v2/panewslab/{column.js → author.js} +11 -23
  300. package/lib/v2/panewslab/index.js +24 -17
  301. package/lib/v2/panewslab/maintainer.js +3 -1
  302. package/lib/v2/panewslab/news.js +28 -0
  303. package/lib/v2/panewslab/radar.js +2 -2
  304. package/lib/v2/panewslab/router.js +4 -2
  305. package/lib/v2/panewslab/topic.js +7 -14
  306. package/lib/v2/pincong/hot.js +28 -0
  307. package/lib/{routes → v2}/pincong/index.js +6 -12
  308. package/lib/v2/pincong/maintainer.js +5 -0
  309. package/lib/v2/pincong/radar.js +35 -0
  310. package/lib/v2/pincong/router.js +5 -0
  311. package/lib/v2/pincong/topic.js +25 -0
  312. package/lib/v2/pincong/utils.js +22 -0
  313. package/lib/v2/pku/maintainer.js +1 -0
  314. package/lib/v2/pku/nsd.js +69 -0
  315. package/lib/v2/pku/radar.js +8 -0
  316. package/lib/v2/pku/router.js +1 -0
  317. package/lib/v2/playno1/av.js +41 -0
  318. package/lib/v2/playno1/maintainer.js +4 -0
  319. package/lib/v2/playno1/radar.js +21 -0
  320. package/lib/v2/playno1/router.js +4 -0
  321. package/lib/v2/playno1/st.js +36 -0
  322. package/lib/v2/playno1/utils.js +32 -0
  323. package/lib/v2/pmthinking/index.js +61 -0
  324. package/lib/v2/pmthinking/maintainer.js +3 -0
  325. package/lib/v2/pmthinking/radar.js +13 -0
  326. package/lib/v2/pmthinking/router.js +3 -0
  327. package/lib/v2/pmthinking/templates/description.art +4 -0
  328. package/lib/v2/prestige-av/maintainer.js +3 -0
  329. package/lib/v2/prestige-av/radar.js +18 -0
  330. package/lib/v2/prestige-av/router.js +3 -0
  331. package/lib/{routes → v2}/prestige-av/series.js +8 -5
  332. package/lib/v2/qipamaijia/index.js +26 -0
  333. package/lib/v2/qipamaijia/maintainer.js +3 -0
  334. package/lib/v2/qipamaijia/radar.js +13 -0
  335. package/lib/v2/qipamaijia/router.js +3 -0
  336. package/lib/v2/reuters/common.js +54 -0
  337. package/lib/v2/reuters/investigates.js +39 -0
  338. package/lib/v2/reuters/maintainer.js +6 -0
  339. package/lib/v2/reuters/migration_prompt.js +3 -0
  340. package/lib/v2/reuters/radar.js +19 -0
  341. package/lib/v2/reuters/router.js +6 -0
  342. package/lib/v2/sciencedirect/journal.js +8 -1
  343. package/lib/v2/{jasa/latest.js → scitation/journal.js} +24 -27
  344. package/lib/v2/scitation/maintainer.js +4 -0
  345. package/lib/v2/scitation/radar.js +19 -0
  346. package/lib/v2/scitation/router.js +4 -0
  347. package/lib/v2/scitation/section.js +90 -0
  348. package/lib/v2/scitation/templates/description.art +11 -0
  349. package/lib/v2/sis001/forum.js +62 -0
  350. package/lib/v2/sis001/maintainer.js +3 -0
  351. package/lib/v2/sis001/radar.js +13 -0
  352. package/lib/v2/sis001/router.js +3 -0
  353. package/lib/{routes → v2}/sobooks/date.js +1 -1
  354. package/lib/{routes → v2}/sobooks/index.js +1 -1
  355. package/lib/v2/sobooks/maintainer.js +5 -0
  356. package/lib/v2/sobooks/radar.js +25 -0
  357. package/lib/v2/sobooks/router.js +5 -0
  358. package/lib/{routes → v2}/sobooks/tag.js +1 -1
  359. package/lib/{routes → v2}/sobooks/utils.js +3 -2
  360. package/lib/v2/springer/journal.js +72 -0
  361. package/lib/v2/springer/maintainer.js +3 -0
  362. package/lib/v2/springer/radar.js +13 -0
  363. package/lib/v2/springer/router.js +3 -0
  364. package/lib/v2/springer/templates/description.art +12 -0
  365. package/lib/v2/sspai/maintainer.js +1 -0
  366. package/lib/v2/sspai/radar.js +6 -0
  367. package/lib/v2/sspai/router.js +1 -0
  368. package/lib/v2/sspai/seriesUpdate.js +36 -0
  369. package/lib/v2/supchina/index.js +67 -0
  370. package/lib/v2/supchina/maintainer.js +4 -0
  371. package/lib/v2/supchina/podcasts.js +66 -0
  372. package/lib/v2/supchina/radar.js +19 -0
  373. package/lib/v2/supchina/router.js +4 -0
  374. package/lib/v2/techflow520/index.js +34 -0
  375. package/lib/v2/techflow520/maintainer.js +4 -0
  376. package/lib/v2/techflow520/newsflash.js +32 -0
  377. package/lib/v2/techflow520/radar.js +19 -0
  378. package/lib/v2/techflow520/router.js +4 -0
  379. package/lib/v2/tencent/cloud/column.js +51 -0
  380. package/lib/v2/tencent/maintainer.js +1 -0
  381. package/lib/v2/tencent/radar.js +11 -0
  382. package/lib/v2/tencent/router.js +1 -0
  383. package/lib/v2/test/index.js +23 -2
  384. package/lib/v2/tiktok/maintainer.js +3 -0
  385. package/lib/v2/tiktok/radar.js +13 -0
  386. package/lib/v2/tiktok/router.js +3 -0
  387. package/lib/v2/tiktok/templates/user.art +3 -0
  388. package/lib/v2/tiktok/user.js +89 -0
  389. package/lib/v2/tingshuitz/dalian.js +29 -0
  390. package/lib/{routes → v2}/tingshuitz/dongguan.js +2 -1
  391. package/lib/{routes → v2}/tingshuitz/guangzhou.js +0 -0
  392. package/lib/{routes → v2}/tingshuitz/hangzhou.js +0 -0
  393. package/lib/v2/tingshuitz/maintainer.js +11 -0
  394. package/lib/{routes → v2}/tingshuitz/nanjing.js +9 -11
  395. package/lib/v2/tingshuitz/radar.js +68 -0
  396. package/lib/v2/tingshuitz/router.js +11 -0
  397. package/lib/v2/tingshuitz/wuhan.js +32 -0
  398. package/lib/{routes → v2}/tingshuitz/xian.js +1 -1
  399. package/lib/{routes → v2}/tingshuitz/xiaoshan.js +0 -0
  400. package/lib/{routes → v2}/tingshuitz/yangjiang.js +6 -8
  401. package/lib/v2/trending/allTrending.js +169 -0
  402. package/lib/v2/trending/maintainer.js +3 -0
  403. package/lib/v2/trending/radar.js +35 -0
  404. package/lib/v2/trending/router.js +3 -0
  405. package/lib/v2/trending/templates/content.art +24 -0
  406. package/lib/v2/uraaka-joshi/uraaka-joshi-user.js +7 -1
  407. package/lib/v2/uraaka-joshi/uraaka-joshi.js +8 -1
  408. package/lib/v2/usts/jwch.js +56 -0
  409. package/lib/v2/usts/maintainer.js +3 -0
  410. package/lib/v2/usts/radar.js +25 -0
  411. package/lib/v2/usts/router.js +3 -0
  412. package/lib/v2/wallpaperhub/index.js +28 -0
  413. package/lib/v2/wallpaperhub/maintainer.js +3 -0
  414. package/lib/v2/wallpaperhub/radar.js +13 -0
  415. package/lib/v2/wallpaperhub/router.js +3 -0
  416. package/lib/v2/wallpaperhub/templates/description.art +1 -0
  417. package/lib/{routes → v2}/xiaohongshu/board.js +8 -6
  418. package/lib/v2/xiaohongshu/maintainer.js +4 -0
  419. package/lib/v2/xiaohongshu/radar.js +25 -0
  420. package/lib/v2/xiaohongshu/router.js +4 -0
  421. package/lib/{routes → v2}/xiaohongshu/user.js +9 -11
  422. package/lib/v2/xiaohongshu/util.js +32 -0
  423. package/lib/v2/xiaozhuanlan/column.js +52 -0
  424. package/lib/v2/xiaozhuanlan/maintainer.js +3 -0
  425. package/lib/v2/xiaozhuanlan/radar.js +13 -0
  426. package/lib/v2/xiaozhuanlan/router.js +3 -0
  427. package/lib/v2/xidian/jwc.js +54 -0
  428. package/lib/v2/xidian/maintainer.js +3 -0
  429. package/lib/v2/xidian/radar.js +13 -0
  430. package/lib/v2/xidian/router.js +3 -0
  431. package/lib/{routes → v2}/youtube/channel.js +9 -5
  432. package/lib/v2/youtube/maintainer.js +6 -0
  433. package/lib/{routes → v2}/youtube/playlist.js +6 -10
  434. package/lib/v2/youtube/radar.js +31 -0
  435. package/lib/v2/youtube/router.js +6 -0
  436. package/lib/v2/youtube/subscriptions.js +56 -0
  437. package/lib/v2/youtube/templates/description.art +7 -0
  438. package/lib/{routes → v2}/youtube/user.js +4 -5
  439. package/lib/v2/youtube/utils.js +141 -0
  440. package/lib/v2/zhihu/activities.js +36 -0
  441. package/lib/v2/zyshow/index.js +46 -0
  442. package/lib/v2/zyshow/maintainer.js +3 -0
  443. package/lib/v2/zyshow/radar.js +17 -0
  444. package/lib/v2/zyshow/router.js +3 -0
  445. package/lib/v2/zyshow/templates/description.art +16 -0
  446. package/package.json +21 -20
  447. package/lib/routes/apnews/topics.js +0 -43
  448. package/lib/routes/behance/index.js +0 -58
  449. package/lib/routes/gov/customs/list.js +0 -77
  450. package/lib/routes/hk01/channel.js +0 -22
  451. package/lib/routes/hk01/issue.js +0 -22
  452. package/lib/routes/mirror/entries.js +0 -80
  453. package/lib/routes/mobilism/release.js +0 -42
  454. package/lib/routes/pincong/hot.js +0 -33
  455. package/lib/routes/pincong/topic.js +0 -32
  456. package/lib/routes/reuters/channel.js +0 -155
  457. package/lib/routes/reuters/theWire.js +0 -45
  458. package/lib/routes/reuters/utils.js +0 -72
  459. package/lib/routes/the-economist/full.js +0 -48
  460. package/lib/routes/the-economist/gre-vocabulary.js +0 -27
  461. package/lib/routes/tingshuitz/dalian.js +0 -34
  462. package/lib/routes/tingshuitz/wuhan.js +0 -34
  463. package/lib/routes/universities/ncwu/notice.js +0 -42
  464. package/lib/routes/universities/xidian/jwc.js +0 -70
  465. package/lib/routes/waijiedanao/article.js +0 -78
  466. package/lib/routes/wallpaperhub/index.js +0 -22
  467. package/lib/routes/xiaohongshu/util.js +0 -18
  468. package/lib/routes/youtube/utils.js +0 -90
  469. package/lib/routes/zyshow/index.js +0 -42
  470. package/lib/v2/elsevier/latest.js +0 -87
  471. package/lib/v2/elsevier/volume.js +0 -75
  472. package/lib/v2/ieee/latestvol.js +0 -87
  473. package/lib/v2/jasa/maintainer.js +0 -4
  474. package/lib/v2/jasa/radar.js +0 -19
  475. package/lib/v2/jasa/router.js +0 -4
  476. package/lib/v2/jasa/section.js +0 -95
  477. package/lib/v2/jasa/templates/description.art +0 -11
  478. package/lib/v2/panewslab/newsflash.js +0 -35
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsshub",
3
- "version": "1.0.0-master.f7c0247",
3
+ "version": "1.0.0-master.f7c4a93",
4
4
  "description": "Make RSS Great Again!",
5
5
  "main": "lib/pkg.js",
6
6
  "files": [
@@ -43,22 +43,22 @@
43
43
  "devDependencies": {
44
44
  "@napi-rs/pinyin": "1.7.0",
45
45
  "@types/koa": "2.13.4",
46
- "@vercel/nft": "0.18.2",
46
+ "@vercel/nft": "0.20.0",
47
47
  "@vuepress/plugin-back-to-top": "1.9.7",
48
48
  "@vuepress/plugin-google-analytics": "1.9.7",
49
49
  "@vuepress/plugin-pwa": "1.9.7",
50
50
  "@vuepress/shared-utils": "1.9.7",
51
51
  "cross-env": "7.0.3",
52
- "eslint": "8.15.0",
52
+ "eslint": "8.18.0",
53
53
  "eslint-config-prettier": "8.5.0",
54
54
  "eslint-plugin-prettier": "4.0.0",
55
- "eslint-plugin-yml": "0.15.0",
55
+ "eslint-plugin-yml": "1.0.0",
56
56
  "fs-extra": "10.1.0",
57
- "jest": "28.1.0",
57
+ "jest": "28.1.1",
58
58
  "mockdate": "3.0.5",
59
- "nock": "13.2.4",
59
+ "nock": "13.2.7",
60
60
  "nodemon": "2.0.16",
61
- "prettier": "2.6.2",
61
+ "prettier": "2.7.1",
62
62
  "prettier-check": "2.0.0",
63
63
  "pretty-quick": "3.1.3",
64
64
  "remark": "13.0.0",
@@ -79,31 +79,31 @@
79
79
  "dependencies": {
80
80
  "@koa/router": "10.1.1",
81
81
  "@postlight/mercury-parser": "2.2.1",
82
- "@sentry/node": "6.19.7",
82
+ "@sentry/node": "7.2.0",
83
83
  "aes-js": "3.1.2",
84
84
  "art-template": "4.13.2",
85
85
  "bbcodejs": "0.0.4",
86
- "cheerio": "1.0.0-rc.10",
86
+ "cheerio": "1.0.0-rc.11",
87
87
  "chrono-node": "2.3.8",
88
88
  "city-timezones": "1.2.0",
89
89
  "crypto-js": "4.1.1",
90
- "currency-symbol-map": "5.0.1",
91
- "dayjs": "1.11.2",
90
+ "currency-symbol-map": "5.1.0",
91
+ "dayjs": "1.11.3",
92
92
  "dotenv": "16.0.1",
93
93
  "emailjs-imap-client": "3.1.0",
94
94
  "entities": "3.0.1",
95
95
  "etag": "1.8.1",
96
96
  "fanfou-sdk": "4.2.0",
97
97
  "git-rev-sync": "3.0.2",
98
- "googleapis": "100.0.0",
99
- "got": "11.8.3",
98
+ "googleapis": "104.0.0",
99
+ "got": "11.8.5",
100
100
  "https-proxy-agent": "5.0.1",
101
101
  "iconv-lite": "0.6.3",
102
102
  "instagram-private-api": "1.45.3",
103
- "ioredis": "5.0.4",
103
+ "ioredis": "5.0.6",
104
104
  "ip-regex": "4.3.0",
105
105
  "is-localhost-ip": "1.4.0",
106
- "jsdom": "19.0.0",
106
+ "jsdom": "20.0.0",
107
107
  "json-bigint": "1.0.0",
108
108
  "json5": "2.2.1",
109
109
  "koa": "2.13.4",
@@ -119,21 +119,22 @@
119
119
  "pidusage": "3.0.0",
120
120
  "plist": "3.0.5",
121
121
  "puppeteer": "13.7.0",
122
- "puppeteer-extra": "3.2.3",
123
- "puppeteer-extra-plugin-stealth": "2.9.0",
122
+ "puppeteer-extra": "3.3.0",
123
+ "puppeteer-extra-plugin-stealth": "2.10.1",
124
124
  "query-string": "7.1.1",
125
- "rand-user-agent": "1.0.63",
125
+ "rand-user-agent": "1.0.68",
126
+ "re2": "1.17.7",
126
127
  "require-all": "3.0.0",
127
128
  "rss-parser": "3.12.0",
128
129
  "showdown": "2.1.0",
129
130
  "simplecc-wasm": "0.1.4",
130
- "socks-proxy-agent": "6.2.0",
131
+ "socks-proxy-agent": "7.0.0",
131
132
  "string-similarity": "4.0.4",
132
133
  "tiny-async-pool": "2.1.0",
133
134
  "torrent-search-api": "2.1.4",
134
135
  "tough-cookie": "4.0.0",
135
136
  "tunnel": "0.0.6",
136
- "twitter-api-v2": "1.12.0",
137
+ "twitter-api-v2": "1.12.2",
137
138
  "winston": "3.7.2",
138
139
  "xml2js": "0.4.23"
139
140
  },
@@ -1,43 +0,0 @@
1
- const cheerio = require('cheerio');
2
-
3
- const HOME_PAGE = 'https://apnews.com';
4
-
5
- module.exports = async (ctx) => {
6
- const topic = ctx.params.topic;
7
-
8
- const browser = await require('@/utils/puppeteer')();
9
- const page = await browser.newPage();
10
- const url_link = `${HOME_PAGE}/hub/${topic}`;
11
- await page.goto(url_link);
12
- const html = await page.evaluate(() => document.documentElement.innerHTML);
13
- browser.close();
14
-
15
- const $ = cheerio.load(html);
16
-
17
- const list = $('div.FeedCard');
18
-
19
- ctx.state.data = {
20
- title: $('.Body div').find('h1[class^=hubTitle]').text(),
21
- link: HOME_PAGE,
22
- item: list
23
- .slice(0, 5)
24
- .map((index, item) => {
25
- item = $(item);
26
- const title = item.find('h3[class^=Component-heading-]').text();
27
- const link = item.find('a[class^=Component-headline-]').attr('href');
28
- const pubDate = item.find('span[class^=Timestamp]').attr('title');
29
- const text = item.find('div[class^=content]').text();
30
- const imageUrl = item.find('img[class^=image-]').attr('src');
31
- const author = item.find('span[class^=Component-bylines-]').text().slice(3);
32
-
33
- return {
34
- title,
35
- description: `<img src="${imageUrl}">` + text,
36
- link: `${HOME_PAGE}${link}`,
37
- pubDate,
38
- author,
39
- };
40
- })
41
- .get(),
42
- };
43
- };
@@ -1,58 +0,0 @@
1
- const got = require('@/utils/got');
2
- const cheerio = require('cheerio');
3
- const dayjs = require('dayjs');
4
-
5
- module.exports = async (ctx) => {
6
- const user = ctx.params.user || '';
7
- const type = ctx.params.type || 'projects';
8
-
9
- const response = await got({
10
- method: 'get',
11
- url: `https://www.behance.net/${user}/${type}`, // 接口只获取12个项目
12
- headers: {
13
- 'X-Requested-With': 'XMLHttpRequest',
14
- },
15
- });
16
- const data = response.data;
17
- const list = data.profile.activeSection.work.projects;
18
- const articledata = await Promise.all(
19
- list.map(async (item) => {
20
- if (type !== 'projects') {
21
- item = item.project;
22
- }
23
- const url = `${item.url}?ilo0=1`;
24
- const cache = await ctx.cache.get(url);
25
- if (cache) {
26
- return Promise.resolve(JSON.parse(cache));
27
- }
28
- const response2 = await got({
29
- method: 'get',
30
- url,
31
- });
32
- const articleHtml = response2.data;
33
- const $2 = cheerio.load(articleHtml);
34
-
35
- const content = $2('div.project-styles').html();
36
- const single = {
37
- content,
38
- };
39
- ctx.cache.set(url, JSON.stringify(single));
40
- return Promise.resolve(single);
41
- })
42
- );
43
- ctx.state.data = {
44
- title: `${data.profile.owner.first_name} ${data.profile.owner.last_name}'s Work`,
45
- link: data.profile.owner.url,
46
- item: list.map((item, index) => {
47
- if (type !== 'projects') {
48
- item = item.project;
49
- }
50
- return {
51
- title: item.name,
52
- description: articledata[index].content,
53
- link: item.url,
54
- pubDate: dayjs.unix(item.published_on).format(),
55
- };
56
- }),
57
- };
58
- };
@@ -1,77 +0,0 @@
1
- const got = require('@/utils/got');
2
- const cheerio = require('cheerio');
3
- const url = require('url');
4
- const host = 'http://www.customs.gov.cn/';
5
- module.exports = async (ctx) => {
6
- const gchannel = ctx.params.gchannel;
7
- let channelName = ``;
8
- let link = `http://www.customs.gov.cn/customs/302249/2476857/302309/index.html`;
9
-
10
- switch (gchannel) {
11
- case 'paimai':
12
- channelName = '拍卖信息';
13
- link = `http://www.customs.gov.cn/customs/302249/302309/index.html`;
14
-
15
- break;
16
- case 'fagui':
17
- channelName = '海关法规';
18
- link = `http://www.customs.gov.cn/customs/302249/302266/index.html`;
19
- break;
20
- default:
21
- break;
22
- }
23
- const response = await got({
24
- method: 'get',
25
- url: link,
26
- headers: {
27
- Referer: host,
28
- },
29
- });
30
- const $ = cheerio.load(response.data);
31
-
32
- const list = $('[class^="conList_ul"] li')
33
- .map(function () {
34
- const info = {
35
- title: $(this).find('a').text(),
36
- link: $(this).find('a').attr('href'),
37
- date: $(this).find('span').text(),
38
- };
39
- return info;
40
- })
41
- .get();
42
- const out = await Promise.all(
43
- list.map(async (info) => {
44
- const title = info.title;
45
- const date = info.date;
46
- const itemUrl = url.resolve(host, info.link);
47
- const cache = await ctx.cache.get(itemUrl);
48
- if (cache) {
49
- return Promise.resolve(JSON.parse(cache));
50
- }
51
- const response = await got({
52
- method: 'get',
53
- url: itemUrl,
54
- headers: {
55
- Referer: host,
56
- },
57
- });
58
- const $ = cheerio.load(response.data);
59
- $('.easysite-news-operation').remove();
60
- const description = $('.easysite-news-peruse').html();
61
-
62
- const single = {
63
- title,
64
- link: itemUrl,
65
- description,
66
- pubDate: new Date(date).toDateString(),
67
- };
68
- ctx.cache.set(itemUrl, JSON.stringify(single));
69
- return Promise.resolve(single);
70
- })
71
- );
72
- ctx.state.data = {
73
- title: `中国海关-${channelName}`,
74
- link,
75
- item: out,
76
- };
77
- };
@@ -1,22 +0,0 @@
1
- const got = require('@/utils/got');
2
-
3
- module.exports = async (ctx) => {
4
- const id = ctx.params.id;
5
-
6
- const response = await got(`https://web-data.api.hk01.com/v2/page/category/${id}`);
7
- const data = response.data;
8
- const list = data.sections[0].items;
9
-
10
- ctx.state.data = {
11
- title: `香港01 - ${data.category.publishName}`,
12
- description: data.meta.metaDesc,
13
- link: data.category.publishUrl,
14
- item: list.map((item) => ({
15
- title: item.data.title,
16
- author: item.data.authors && item.data.authors.map((e) => e.publishName).join(', '),
17
- description: `<p>${item.data.description}…</p><img style="width: 100%" src="${item.data.mainImage.cdnUrl}" />`,
18
- pubDate: new Date(item.data.lastModifyTime * 1000),
19
- link: item.data.canonicalUrl,
20
- })),
21
- };
22
- };
@@ -1,22 +0,0 @@
1
- const got = require('@/utils/got');
2
-
3
- module.exports = async (ctx) => {
4
- const id = ctx.params.id;
5
-
6
- const response = await got(`https://web-data.api.hk01.com/v2/page/issue/${id}`);
7
- const data = response.data;
8
- const list = data.issue.blocks[0].articles;
9
-
10
- ctx.state.data = {
11
- title: `香港01 - ${data.issue.title}`,
12
- description: data.meta.metaDesc,
13
- link: data.issue.publishUrl,
14
- item: list.map((item) => ({
15
- title: item.data.title,
16
- author: item.data.authors && item.data.authors.map((e) => e.publishName).join(', '),
17
- description: `<p>${item.data.description}…</p><img style="width: 100%" src="${item.data.mainImage.cdnUrl}" />`,
18
- pubDate: new Date(item.data.lastModifyTime * 1000),
19
- link: item.data.canonicalUrl,
20
- })),
21
- };
22
- };
@@ -1,80 +0,0 @@
1
- const got = require('@/utils/got');
2
- const cheerio = require('cheerio');
3
-
4
- module.exports = async (ctx) => {
5
- const id = ctx.params.id;
6
- let link;
7
- let subDomain = 0;
8
- if (id.endsWith('.eth') || id.length === 42 || id.length === 40) {
9
- link = 'https://mirror.xyz/' + id;
10
- } else {
11
- link = 'https://' + id + '.mirror.xyz';
12
- subDomain = 1;
13
- }
14
-
15
- const response = await got({
16
- method: 'get',
17
- url: link,
18
- });
19
-
20
- const data = response.body;
21
- const $ = cheerio.load(data);
22
-
23
- const author = $('div#__next > div.GlobalNavigation > div.GlobalNavigationContainer > div > div > div > div > div > a').text();
24
-
25
- // 标题
26
- const article = $('h1')
27
- .map(function () {
28
- return $(this).text();
29
- })
30
- .get();
31
-
32
- // 地址
33
- const addr = $('h1')
34
- .parent()
35
- .parent()
36
- .parent()
37
- .map(function () {
38
- return $(this).attr('href');
39
- })
40
- .get();
41
-
42
- // 发布日期
43
- const date = $('div#__next > div > div > div > div > div > div > div > div > div')
44
- .map(function () {
45
- return $(this).text();
46
- })
47
- .get();
48
-
49
- // 摘要
50
- const des = $('h1')
51
- .parent()
52
- .parent()
53
- .parent()
54
- .parent()
55
- .next()
56
- .next()
57
- .map(function () {
58
- return $(this).text();
59
- })
60
- .get();
61
-
62
- const items = [];
63
- article.forEach((item, index) => {
64
- items.push({
65
- title: item,
66
- author,
67
- description: des[index],
68
- pubDate: date[index],
69
- link: subDomain ? link + addr[index] : 'https://mirror.xyz' + addr[index],
70
- });
71
- });
72
-
73
- const title = author + ' - Mirror';
74
- ctx.state.data = {
75
- title,
76
- link,
77
- allowEmpty: true,
78
- item: items,
79
- };
80
- };
@@ -1,42 +0,0 @@
1
- const url = require('url');
2
- const got = require('@/utils/got');
3
- const cheerio = require('cheerio');
4
-
5
- module.exports = async (ctx) => {
6
- const currentUrl = `https://forum.mobilism.org/viewforum.php?f=19`;
7
- const response = await got({
8
- method: 'get',
9
- url: currentUrl,
10
- });
11
- const $ = cheerio.load(response.data);
12
- const list = $('tbody')
13
- .eq(1)
14
- .find('tr')
15
- .map((_, item) => {
16
- item = $(item);
17
- const a = item.find('a');
18
- return {
19
- title: a.text(),
20
- link: url.resolve(`https://forum.mobilism.org`, a.attr('href')),
21
- };
22
- })
23
- .get();
24
-
25
- const items = await Promise.all(
26
- list.map((item) =>
27
- ctx.cache.tryGet(item.link, async () => {
28
- const res = await got({ method: 'get', url: item.link });
29
- const content = cheerio.load(res.data);
30
-
31
- item.description = content('div.content').html();
32
- return item;
33
- })
34
- )
35
- );
36
-
37
- ctx.state.data = {
38
- title: 'Mobilism - eBook Releases',
39
- link: currentUrl,
40
- item: items,
41
- };
42
- };
@@ -1,33 +0,0 @@
1
- const cheerio = require('cheerio');
2
-
3
- module.exports = async (ctx) => {
4
- let url = 'https://pincong.rocks/hot/list/';
5
-
6
- url += ctx.params.category ? 'category-' + ctx.params.category : 'category-0';
7
-
8
- // use Puppeteer due to the obstacle by cloudflare challenge
9
- const browser = await require('@/utils/puppeteer')();
10
- const page = await browser.newPage();
11
- await page.goto(url);
12
- const html = await page.evaluate(
13
- // eslint-disable-next-line no-undef
14
- () => document.documentElement.innerHTML
15
- );
16
-
17
- browser.close();
18
-
19
- const $ = cheerio.load(html);
20
- const list = $('div.aw-item');
21
-
22
- ctx.state.data = {
23
- title: '品葱 - 精选',
24
- link: 'https://pincong.rocks/hot/',
25
- item: list
26
- .map((_, item) => ({
27
- title: $(item).find('h2 a').text().trim(),
28
- description: $(item).find('div.markitup-box').html(),
29
- link: 'https://pincong.rocks' + $(item).find('div.mod-head h2 a').attr('href'),
30
- }))
31
- .get(),
32
- };
33
- };
@@ -1,32 +0,0 @@
1
- const cheerio = require('cheerio');
2
-
3
- module.exports = async (ctx) => {
4
- const url = 'https://pincong.rocks/topic/' + ctx.params.topic;
5
-
6
- // use Puppeteer due to the obstacle by cloudflare challenge
7
- const browser = await require('@/utils/puppeteer')();
8
- const page = await browser.newPage();
9
- await page.goto(url);
10
- const html = await page.evaluate(
11
- () =>
12
- // eslint-disable-next-line no-undef
13
- (document.querySelector('div.aw-common-list') && document.querySelector('div.aw-common-list').innerHTML) || ''
14
- );
15
-
16
- browser.close();
17
-
18
- const $ = cheerio.load(html);
19
- const list = $('div.aw-item');
20
-
21
- ctx.state.data = {
22
- title: `品葱 - ${ctx.params.topic}`,
23
- link: url,
24
- item: list
25
- .map((_, item) => ({
26
- title: $(item).find('h4 a').text().trim(),
27
- link: 'https://pincong.rocks' + $(item).find('h4 a').attr('href'),
28
- pubDate: new Date($(item).attr('data-timestamp') * 1000).toISOString(),
29
- }))
30
- .get(),
31
- };
32
- };
@@ -1,155 +0,0 @@
1
- const got = require('@/utils/got');
2
- const cheerio = require('cheerio');
3
- const utils = require('./utils');
4
-
5
- module.exports = async (ctx) => {
6
- const { site } = ctx.params || 'cn';
7
- const homePage = `https://${site === 'us' ? 'www' : site}.reuters.com`;
8
-
9
- let title = 'Reuters ',
10
- link = `https://${site === 'us' ? 'www' : site}.reuters.com/news/`,
11
- linkSelector;
12
-
13
- const { channel } = ctx.params;
14
-
15
- if (channel) {
16
- if (site === 'cn') {
17
- title = '路透社 ';
18
- linkSelector = '.inlineLinks a';
19
- switch (channel) {
20
- case 'china':
21
- title += '中国财经';
22
- break;
23
- case 'internationalbusiness':
24
- title += '国际财经';
25
- break;
26
- case 'newsmaker':
27
- title += '新闻人物';
28
- break;
29
- case 'opinions':
30
- title += '财经视点';
31
- break;
32
- case 'analyses':
33
- title += '深度分析';
34
- break;
35
- case 'generalnews':
36
- title += '时事要闻';
37
- break;
38
- case 'CnColumn':
39
- title += '中国财经专栏';
40
- break;
41
- case 'ComColumn':
42
- title += '大宗商品专栏';
43
- break;
44
- case 'IntColumn':
45
- title += '国际财经专栏';
46
- break;
47
- case 'investing':
48
- title += '投资';
49
- link = homePage + '/';
50
- break;
51
- case 'life':
52
- title += '生活';
53
- link = homePage + '/';
54
- break;
55
- default:
56
- break;
57
- }
58
- } else if (site === 'uk') {
59
- title += 'UK ';
60
- linkSelector = '.story-content a';
61
- switch (channel) {
62
- case 'business':
63
- title += 'Business';
64
- link = homePage;
65
- break;
66
- case 'markets':
67
- linkSelector = '.moduleBody a, .story-content a';
68
- title += 'Markets';
69
- link = 'https://uk.reuters.com/business/';
70
- break;
71
- case 'world':
72
- title += 'World';
73
- break;
74
- case 'uk':
75
- title += 'UK';
76
- break;
77
- case 'technology':
78
- title += 'Tech';
79
- break;
80
- case 'personalFinance':
81
- title += 'Money';
82
- link = 'https://uk.reuters.com/business';
83
- break;
84
- case 'breakingviews':
85
- title += 'Breakingviews';
86
- link = homePage;
87
- break;
88
- case 'sports':
89
- linkSelector = '.story-content a, .story-title a';
90
- title += 'Sport';
91
- break;
92
- case 'lifestyle':
93
- title += 'Life';
94
- break;
95
- default:
96
- break;
97
- }
98
- } else if (site === 'us') {
99
- linkSelector = '.story-content a';
100
- switch (channel) {
101
- case 'business':
102
- title += 'Business';
103
- link = homePage;
104
- break;
105
- case 'markets':
106
- linkSelector = '.moduleBody a, .story-content a';
107
- title += 'Markets';
108
- link = 'https://www.reuters.com/finance/';
109
- break;
110
- case 'world':
111
- title += 'World';
112
- break;
113
- case 'politics':
114
- title += 'Politics';
115
- link = 'https://www.reuters.com/';
116
- break;
117
- case 'technology':
118
- title += 'Tech';
119
- break;
120
- case 'breakingviews':
121
- title += 'Breakingviews';
122
- link = homePage;
123
- break;
124
- case 'wealth':
125
- linkSelector = '.story-content a, .story-title a';
126
- title += 'Wealth';
127
- link = 'https://www.reuters.com/finance/';
128
- break;
129
- case 'lifestyle':
130
- title += 'Life';
131
- break;
132
- default:
133
- break;
134
- }
135
- }
136
- link += channel;
137
- }
138
-
139
- const response = await got.get(link);
140
-
141
- const $ = cheerio.load(response.data);
142
-
143
- const links = $(linkSelector)
144
- .map((i, e) => homePage + e.attribs.href)
145
- .splice(0, 10);
146
-
147
- const items = await Promise.all(links.map((link) => ctx.cache.tryGet(link, () => utils.ProcessFeed(link))));
148
-
149
- ctx.state.data = {
150
- title,
151
- link,
152
- description: title,
153
- item: items,
154
- };
155
- };