rsshub 1.0.0-master.f7add90 → 1.0.0-master.f7bfacc

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 (474) hide show
  1. package/README.md +0 -8
  2. package/lib/app.js +2 -0
  3. package/lib/config.js +17 -1
  4. package/lib/middleware/cache/memory.js +2 -2
  5. package/lib/middleware/template.js +14 -1
  6. package/lib/radar-rules.js +0 -76
  7. package/lib/radar.js +22 -3
  8. package/lib/router.js +27 -30
  9. package/lib/routes/axis-studios/work.js +0 -0
  10. package/lib/routes/blow-studio/work.js +0 -0
  11. package/lib/routes/blur-studio/index.js +0 -0
  12. package/lib/routes/digic-pictures/index.js +0 -0
  13. package/lib/routes/gov/hunan/notice.js +1 -1
  14. package/lib/routes/method-studios/index.js +0 -0
  15. package/lib/routes/ps/product.js +0 -0
  16. package/lib/routes/unit-image/films.js +0 -0
  17. package/lib/static/logo.png +0 -0
  18. package/lib/utils/puppeteer.js +2 -2
  19. package/lib/utils/request-wrapper.js +2 -2
  20. package/lib/v2/141jav/index.js +71 -0
  21. package/lib/v2/141jav/maintainer.js +3 -0
  22. package/lib/v2/141jav/radar.js +40 -0
  23. package/lib/v2/141jav/router.js +3 -0
  24. package/lib/v2/141jav/templates/description.art +47 -0
  25. package/lib/v2/141ppv/index.js +71 -0
  26. package/lib/v2/141ppv/maintainer.js +3 -0
  27. package/lib/v2/141ppv/radar.js +40 -0
  28. package/lib/v2/141ppv/router.js +3 -0
  29. package/lib/v2/141ppv/templates/description.art +47 -0
  30. package/lib/v2/3dmgame/game.js +39 -0
  31. package/lib/v2/3dmgame/maintainer.js +4 -0
  32. package/lib/v2/3dmgame/news_center.js +42 -0
  33. package/lib/v2/3dmgame/radar.js +19 -0
  34. package/lib/v2/3dmgame/router.js +4 -0
  35. package/lib/v2/3dmgame/utils.js +30 -0
  36. package/lib/v2/4ksj/forum.js +128 -0
  37. package/lib/v2/4ksj/maintainer.js +3 -0
  38. package/lib/v2/4ksj/radar.js +13 -0
  39. package/lib/v2/4ksj/router.js +3 -0
  40. package/lib/v2/4ksj/templates/description.art +56 -0
  41. package/lib/v2/5eplay/index.js +100 -0
  42. package/lib/v2/5eplay/maintainer.js +3 -0
  43. package/lib/v2/5eplay/radar.js +13 -0
  44. package/lib/v2/5eplay/router.js +3 -0
  45. package/lib/v2/5eplay/utils.js +35 -0
  46. package/lib/v2/aeon/category.js +27 -0
  47. package/lib/v2/aeon/maintainer.js +4 -0
  48. package/lib/v2/aeon/radar.js +19 -0
  49. package/lib/v2/aeon/router.js +4 -0
  50. package/lib/v2/aeon/templates/essay.art +3 -0
  51. package/lib/v2/aeon/templates/video.art +10 -0
  52. package/lib/v2/aeon/type.js +29 -0
  53. package/lib/v2/aeon/utils.js +50 -0
  54. package/lib/v2/aisixiang/column.js +36 -0
  55. package/lib/v2/aisixiang/maintainer.js +6 -0
  56. package/lib/v2/aisixiang/radar.js +29 -0
  57. package/lib/v2/aisixiang/router.js +6 -0
  58. package/lib/v2/aisixiang/thinktank.js +49 -0
  59. package/lib/v2/aisixiang/toplist.js +37 -0
  60. package/lib/v2/aisixiang/utils.js +37 -0
  61. package/lib/v2/aliresearch/information.js +57 -0
  62. package/lib/v2/aliresearch/maintainer.js +3 -0
  63. package/lib/v2/aliresearch/radar.js +13 -0
  64. package/lib/v2/aliresearch/router.js +3 -0
  65. package/lib/v2/amazon/kindle-software-updates.js +1 -0
  66. package/lib/v2/atcoder/radar.js +1 -1
  67. package/lib/v2/bad/index.js +58 -0
  68. package/lib/v2/bad/maintainer.js +3 -0
  69. package/lib/v2/bad/radar.js +13 -0
  70. package/lib/v2/bad/router.js +3 -0
  71. package/lib/v2/baozimh/index.js +1 -1
  72. package/lib/v2/bilibili/cache.js +17 -5
  73. package/lib/v2/bilibili/hotSearch.js +5 -1
  74. package/lib/v2/bilibili/userChannel.js +2 -1
  75. package/lib/v2/bilibili/userCollection.js +3 -1
  76. package/lib/v2/bilibili/utils.js +3 -3
  77. package/lib/v2/bilibili/video-all.js +7 -2
  78. package/lib/v2/bilibili/video.js +1 -1
  79. package/lib/v2/bilibili/vsearch.js +1 -1
  80. package/lib/v2/bjsk/keti.js +54 -0
  81. package/lib/v2/bjsk/maintainer.js +1 -0
  82. package/lib/v2/bjsk/radar.js +8 -0
  83. package/lib/v2/bjsk/router.js +1 -0
  84. package/lib/v2/bmkg/earthquake.js +29 -0
  85. package/lib/v2/bmkg/maintainer.js +4 -0
  86. package/lib/v2/bmkg/news.js +42 -0
  87. package/lib/v2/bmkg/radar.js +19 -0
  88. package/lib/v2/bmkg/router.js +4 -0
  89. package/lib/v2/chinathinktanks/radar.js +1 -1
  90. package/lib/v2/cls/depth.js +34 -32
  91. package/lib/v2/cls/hot.js +38 -29
  92. package/lib/v2/cls/maintainer.js +1 -1
  93. package/lib/v2/cls/radar.js +1 -1
  94. package/lib/v2/cls/telegraph.js +25 -23
  95. package/lib/v2/cls/templates/depth.art +3 -3
  96. package/lib/v2/cls/templates/telegraph.art +5 -5
  97. package/lib/v2/cls/utils.js +12 -6
  98. package/lib/v2/cneb/maintainer.js +4 -0
  99. package/lib/v2/cneb/radar.js +19 -0
  100. package/lib/v2/cneb/router.js +5 -0
  101. package/lib/v2/cneb/yjxw.js +72 -0
  102. package/lib/v2/cneb/yjxx.js +50 -0
  103. package/lib/v2/cnki/author.js +38 -26
  104. package/lib/v2/cnki/maintainer.js +1 -1
  105. package/lib/v2/comicat/maintainer.js +3 -0
  106. package/lib/v2/comicat/radar.js +11 -0
  107. package/lib/v2/comicat/router.js +3 -0
  108. package/lib/v2/comicat/search.js +42 -0
  109. package/lib/v2/coomer/utils.js +3 -1
  110. package/lib/v2/cqgas/maintainer.js +3 -0
  111. package/lib/v2/cqgas/radar.js +13 -0
  112. package/lib/v2/cqgas/router.js +3 -0
  113. package/lib/v2/cqgas/tqtz.js +36 -0
  114. package/lib/v2/cssn/iolaw.js +38 -0
  115. package/lib/v2/cssn/maintainer.js +3 -0
  116. package/lib/v2/cssn/radar.js +11 -0
  117. package/lib/v2/cssn/router.js +3 -0
  118. package/lib/v2/daily/discussed.js +73 -0
  119. package/lib/v2/daily/index.js +83 -0
  120. package/lib/v2/daily/maintainer.js +5 -0
  121. package/lib/v2/daily/radar.js +25 -0
  122. package/lib/v2/daily/router.js +5 -0
  123. package/lib/v2/daily/upvoted.js +77 -0
  124. package/lib/v2/daily/utils.js +39 -0
  125. package/lib/v2/dblp/maintainer.js +3 -0
  126. package/lib/v2/dblp/publication.js +70 -0
  127. package/lib/v2/dblp/radar.js +13 -0
  128. package/lib/v2/dblp/router.js +3 -0
  129. package/lib/v2/deadline/maintainer.js +4 -0
  130. package/lib/v2/deadline/posts.js +53 -0
  131. package/lib/v2/deadline/radar.js +13 -0
  132. package/lib/v2/deadline/router.js +3 -0
  133. package/lib/v2/deadline/templates/desc.art +10 -0
  134. package/lib/v2/devolverdigital/blog.js +50 -0
  135. package/lib/v2/devolverdigital/maintainer.js +3 -0
  136. package/lib/v2/devolverdigital/radar.js +13 -0
  137. package/lib/v2/devolverdigital/router.js +3 -0
  138. package/lib/v2/dhu/maintainer.js +1 -0
  139. package/lib/v2/dhu/radar.js +6 -0
  140. package/lib/v2/dhu/router.js +1 -0
  141. package/lib/v2/dhu/yjs/zs.js +46 -0
  142. package/lib/v2/discord/channel.js +8 -8
  143. package/lib/v2/discord/maintainer.js +1 -1
  144. package/lib/v2/discord/radar.js +2 -2
  145. package/lib/v2/discord/router.js +1 -1
  146. package/lib/v2/domp4/detail.js +26 -0
  147. package/lib/v2/dorohedoro/maintainer.js +3 -0
  148. package/lib/v2/dorohedoro/news.js +69 -0
  149. package/lib/v2/dorohedoro/radar.js +13 -0
  150. package/lib/v2/dorohedoro/router.js +3 -0
  151. package/lib/v2/duozhuayu/maintainer.js +3 -0
  152. package/lib/v2/duozhuayu/radar.js +13 -0
  153. package/lib/v2/duozhuayu/router.js +3 -0
  154. package/lib/{routes → v2}/duozhuayu/search.js +23 -32
  155. package/lib/v2/duozhuayu/templates/book.art +10 -0
  156. package/lib/v2/dxy/maintainer.js +4 -0
  157. package/lib/v2/dxy/profile/thread.js +82 -0
  158. package/lib/v2/dxy/radar.js +21 -0
  159. package/lib/v2/dxy/router.js +4 -0
  160. package/lib/v2/dxy/special.js +79 -0
  161. package/lib/v2/dxy/utils.js +72 -0
  162. package/lib/v2/eastmoney/maintainer.js +1 -0
  163. package/lib/v2/eastmoney/radar.js +8 -0
  164. package/lib/v2/eastmoney/report/index.js +41 -0
  165. package/lib/v2/eastmoney/router.js +2 -1
  166. package/lib/v2/embassy/radar.js +1 -1
  167. package/lib/v2/embassy/supportedList.js +4 -4
  168. package/lib/v2/firecore/index.js +37 -0
  169. package/lib/v2/firecore/maintainer.js +3 -0
  170. package/lib/v2/firecore/radar.js +13 -0
  171. package/lib/v2/firecore/router.js +3 -0
  172. package/lib/v2/flyert/creditcard.js +3 -0
  173. package/lib/v2/flyert/utils.js +14 -8
  174. package/lib/v2/followin/index.js +35 -0
  175. package/lib/v2/followin/kol.js +25 -0
  176. package/lib/v2/followin/maintainer.js +7 -0
  177. package/lib/v2/followin/news.js +21 -0
  178. package/lib/v2/followin/radar.js +37 -0
  179. package/lib/v2/followin/router.js +7 -0
  180. package/lib/v2/followin/tag.js +44 -0
  181. package/lib/v2/followin/templates/thread.art +15 -0
  182. package/lib/v2/followin/topic.js +25 -0
  183. package/lib/v2/followin/utils.js +84 -0
  184. package/lib/v2/freebuf/index.js +41 -0
  185. package/lib/v2/freebuf/maintainer.js +3 -0
  186. package/lib/v2/freebuf/radar.js +13 -0
  187. package/lib/v2/freebuf/router.js +3 -0
  188. package/lib/v2/freecomputerbooks/index.js +41 -13
  189. package/lib/v2/freecomputerbooks/templates/desc.art +3 -0
  190. package/lib/v2/futunn/main.js +67 -0
  191. package/lib/v2/futunn/maintainer.js +3 -0
  192. package/lib/v2/futunn/radar.js +13 -0
  193. package/lib/v2/futunn/router.js +5 -0
  194. package/lib/v2/futunn/templates/description.art +6 -0
  195. package/lib/v2/fzmtr/announcements.js +38 -0
  196. package/lib/v2/fzmtr/maintainer.js +3 -0
  197. package/lib/v2/fzmtr/radar.js +11 -0
  198. package/lib/v2/fzmtr/router.js +3 -0
  199. package/lib/v2/github/gist.js +35 -0
  200. package/lib/v2/github/maintainer.js +1 -0
  201. package/lib/v2/github/radar.js +8 -0
  202. package/lib/v2/github/router.js +1 -0
  203. package/lib/v2/gov/cac/index.js +64 -0
  204. package/lib/v2/gov/ccdi/index.js +1 -1
  205. package/lib/v2/gov/ccdi/utils.js +1 -1
  206. package/lib/v2/gov/chongqing/rsks.js +38 -0
  207. package/lib/v2/gov/maintainer.js +2 -0
  208. package/lib/v2/gov/news/index.js +10 -5
  209. package/lib/v2/gov/radar.js +23 -1
  210. package/lib/v2/gov/router.js +2 -0
  211. package/lib/v2/gq/tw/index.js +1 -1
  212. package/lib/v2/guangzhoumetro/maintainer.js +3 -0
  213. package/lib/v2/guangzhoumetro/news.js +37 -0
  214. package/lib/v2/guangzhoumetro/radar.js +11 -0
  215. package/lib/v2/guangzhoumetro/router.js +3 -0
  216. package/lib/v2/hnu/careers.js +33 -0
  217. package/lib/v2/hnu/maintainer.js +3 -0
  218. package/lib/v2/hnu/radar.js +12 -0
  219. package/lib/v2/hnu/router.js +3 -0
  220. package/lib/v2/hust/aia/news.js +0 -0
  221. package/lib/v2/hust/aia/notice.js +0 -0
  222. package/lib/v2/i-cable/category.js +74 -0
  223. package/lib/v2/i-cable/maintainer.js +3 -0
  224. package/lib/v2/i-cable/radar.js +13 -0
  225. package/lib/v2/i-cable/router.js +3 -0
  226. package/lib/v2/i-cable/templates/desc.art +8 -0
  227. package/lib/v2/ibc/maintainer.js +4 -0
  228. package/lib/{routes/maitta/index.js → v2/ibc/maitta.js} +11 -8
  229. package/lib/v2/ibc/radar.js +19 -0
  230. package/lib/v2/ibc/radio.js +73 -0
  231. package/lib/v2/ibc/router.js +4 -0
  232. package/lib/v2/ibc/templates/description.art +6 -0
  233. package/lib/v2/instructables/projects.js +1 -1
  234. package/lib/v2/ithome/radar.js +3 -3
  235. package/lib/v2/iwara/index.js +36 -24
  236. package/lib/v2/iwara/radar.js +1 -1
  237. package/lib/v2/iwara/subscriptions.js +131 -32
  238. package/lib/v2/iwara/templates/subscriptions.art +1 -1
  239. package/lib/v2/line/publisher.js +1 -1
  240. package/lib/v2/mdpi/maintainer.js +0 -0
  241. package/lib/v2/mdpi/radar.js +0 -0
  242. package/lib/v2/mdpi/router.js +0 -0
  243. package/lib/v2/mdpi/templates/description.art +0 -0
  244. package/lib/v2/medium/following.js +31 -0
  245. package/lib/v2/medium/for-you.js +31 -0
  246. package/lib/v2/medium/graphql.js +190 -0
  247. package/lib/v2/medium/list.js +32 -0
  248. package/lib/v2/medium/maintainer.js +6 -0
  249. package/lib/v2/medium/parse-article.js +60 -0
  250. package/lib/v2/medium/radar.js +23 -0
  251. package/lib/v2/medium/router.js +6 -0
  252. package/lib/v2/medium/tag.js +32 -0
  253. package/lib/v2/mihoyo/maintainer.js +1 -0
  254. package/lib/v2/mihoyo/radar.js +16 -0
  255. package/lib/v2/mihoyo/router.js +1 -0
  256. package/lib/v2/mihoyo/sr/news.js +71 -0
  257. package/lib/v2/mihoyo/templates/ys.art +4 -0
  258. package/lib/v2/mihoyo/ys/news.js +132 -52
  259. package/lib/v2/nationalgeographic/latest-stories.js +56 -0
  260. package/lib/v2/nationalgeographic/maintainer.js +3 -0
  261. package/lib/v2/nationalgeographic/radar.js +13 -0
  262. package/lib/v2/nationalgeographic/router.js +3 -0
  263. package/lib/v2/nationalgeographic/templates/stories.art +44 -0
  264. package/lib/v2/nenu/maintainer.js +4 -0
  265. package/lib/v2/nenu/radar.js +21 -0
  266. package/lib/v2/nenu/router.js +4 -0
  267. package/lib/v2/nenu/sohac.js +60 -0
  268. package/lib/v2/nenu/yjsy.js +64 -0
  269. package/lib/v2/newzmz/index.js +55 -44
  270. package/lib/v2/newzmz/maintainer.js +1 -1
  271. package/lib/v2/newzmz/radar.js +1 -1
  272. package/lib/v2/newzmz/router.js +2 -1
  273. package/lib/v2/newzmz/templates/description.art +7 -0
  274. package/lib/v2/newzmz/view.js +32 -17
  275. package/lib/v2/nhentai/util.js +2 -1
  276. package/lib/v2/nikkei/cn/index.js +2 -2
  277. package/lib/v2/nju/zcc.js +7 -13
  278. package/lib/v2/notateslaapp/maintainer.js +3 -0
  279. package/lib/v2/notateslaapp/radar.js +13 -0
  280. package/lib/v2/notateslaapp/router.js +3 -0
  281. package/lib/{routes/tesla → v2/notateslaapp}/update.js +6 -12
  282. package/lib/v2/notefolio/maintainer.js +3 -0
  283. package/lib/v2/notefolio/radar.js +13 -0
  284. package/lib/v2/notefolio/router.js +3 -0
  285. package/lib/v2/notefolio/search.js +145 -0
  286. package/lib/v2/notefolio/templates/search.art +9 -0
  287. package/lib/v2/notion/database.js +161 -0
  288. package/lib/v2/notion/maintainer.js +3 -0
  289. package/lib/v2/notion/radar.js +13 -0
  290. package/lib/v2/notion/router.js +3 -0
  291. package/lib/v2/nytimes/author.js +1 -1
  292. package/lib/v2/oeeee/app/channel.js +36 -0
  293. package/lib/v2/oeeee/app/reporter.js +30 -0
  294. package/lib/v2/oeeee/maintainer.js +5 -0
  295. package/lib/v2/oeeee/radar.js +12 -0
  296. package/lib/v2/oeeee/router.js +5 -0
  297. package/lib/v2/oeeee/templates/description.art +7 -0
  298. package/lib/v2/oeeee/utils.js +41 -0
  299. package/lib/v2/oeeee/web.js +36 -0
  300. package/lib/v2/openai/blog.js +3 -56
  301. package/lib/v2/openai/common.js +72 -0
  302. package/lib/v2/openai/maintainer.js +1 -0
  303. package/lib/v2/openai/radar.js +8 -0
  304. package/lib/v2/openai/research.js +32 -0
  305. package/lib/v2/openai/router.js +1 -0
  306. package/lib/v2/pumc/maintainer.js +3 -0
  307. package/lib/v2/pumc/mdadmission.js +62 -0
  308. package/lib/v2/pumc/radar.js +13 -0
  309. package/lib/v2/pumc/router.js +3 -0
  310. package/lib/v2/rattibha/maintainer.js +3 -0
  311. package/lib/v2/rattibha/radar.js +13 -0
  312. package/lib/v2/rattibha/router.js +3 -0
  313. package/lib/v2/rattibha/user.js +45 -0
  314. package/lib/v2/readhub/index.js +1 -1
  315. package/lib/{routes → v2}/right/forum.js +21 -23
  316. package/lib/v2/right/maintainer.js +3 -0
  317. package/lib/v2/right/radar.js +13 -0
  318. package/lib/v2/right/router.js +3 -0
  319. package/lib/v2/rsshub/radar.js +2 -2
  320. package/lib/v2/sdust/maintainer.js +3 -0
  321. package/lib/v2/sdust/radar.js +13 -0
  322. package/lib/v2/sdust/router.js +3 -0
  323. package/lib/v2/sdust/yjsy/zhaosheng.js +52 -0
  324. package/lib/v2/sehuatang/maintainer.js +1 -0
  325. package/lib/v2/sehuatang/router.js +1 -0
  326. package/lib/v2/sehuatang/user.js +113 -0
  327. package/lib/v2/shiep/config.js +64 -0
  328. package/lib/v2/shiep/index.js +13 -34
  329. package/lib/v2/shiep/radar.js +303 -15
  330. package/lib/v2/shuiguopai/index.js +1 -1
  331. package/lib/v2/sina/chuangshiji.js +17 -0
  332. package/lib/v2/sina/discovery.js +32 -0
  333. package/lib/v2/sina/finance/china.js +25 -0
  334. package/lib/v2/sina/finance/stock/usstock.js +37 -0
  335. package/lib/v2/sina/maintainer.js +8 -0
  336. package/lib/v2/sina/radar.js +49 -0
  337. package/lib/v2/sina/rollnews.js +31 -0
  338. package/lib/v2/sina/router.js +8 -0
  339. package/lib/v2/sina/sports.js +43 -0
  340. package/lib/v2/sina/templates/slide.art +3 -0
  341. package/lib/v2/sina/templates/video.art +5 -0
  342. package/lib/v2/sina/utils.js +104 -0
  343. package/lib/v2/sony/downloads.js +1 -0
  344. package/lib/v2/springer/maintainer.js +0 -0
  345. package/lib/v2/springer/radar.js +0 -0
  346. package/lib/v2/springer/router.js +0 -0
  347. package/lib/v2/springer/templates/description.art +0 -0
  348. package/lib/v2/sspai/radar.js +1 -1
  349. package/lib/v2/stbu/jsjxy.js +51 -0
  350. package/lib/v2/stbu/maintainer.js +4 -0
  351. package/lib/v2/stbu/radar.js +21 -0
  352. package/lib/v2/stbu/router.js +4 -0
  353. package/lib/v2/stbu/xyxw.js +52 -0
  354. package/lib/v2/storyfm/episodes.js +63 -0
  355. package/lib/v2/storyfm/maintainer.js +4 -0
  356. package/lib/v2/storyfm/radar.js +19 -0
  357. package/lib/v2/storyfm/router.js +4 -0
  358. package/lib/v2/storyfm/templates/description.art +6 -0
  359. package/lib/v2/sysu/maintainer.js +1 -0
  360. package/lib/v2/sysu/radar.js +8 -0
  361. package/lib/v2/sysu/router.js +1 -0
  362. package/lib/v2/sysu/ygafz.js +69 -0
  363. package/lib/v2/techpowerup/index.js +69 -0
  364. package/lib/v2/techpowerup/maintainer.js +5 -0
  365. package/lib/v2/techpowerup/radar.js +19 -0
  366. package/lib/v2/techpowerup/review.js +69 -0
  367. package/lib/v2/techpowerup/router.js +4 -0
  368. package/lib/v2/techpowerup/utils.js +84 -0
  369. package/lib/v2/telecompaper/maintainer.js +4 -0
  370. package/lib/{routes → v2}/telecompaper/news.js +1 -0
  371. package/lib/v2/telecompaper/radar.js +15 -0
  372. package/lib/v2/telecompaper/router.js +4 -0
  373. package/lib/v2/tencent/news/author.js +12 -8
  374. package/lib/v2/tiktok/user.js +5 -5
  375. package/lib/v2/tingshuitz/maintainer.js +1 -0
  376. package/lib/v2/tingshuitz/radar.js +11 -0
  377. package/lib/v2/tingshuitz/router.js +1 -0
  378. package/lib/v2/tingshuitz/shenzhen.js +29 -0
  379. package/lib/v2/tingshuitz/templates/shenzhen.art +8 -0
  380. package/lib/v2/tingtingfm/maintainer.js +3 -0
  381. package/lib/v2/tingtingfm/program.js +104 -0
  382. package/lib/v2/tingtingfm/radar.js +13 -0
  383. package/lib/v2/tingtingfm/router.js +3 -0
  384. package/lib/v2/tingtingfm/templates/audio.art +5 -0
  385. package/lib/v2/tingtingfm/utils.js +32 -0
  386. package/lib/v2/twitter/maintainer.js +1 -0
  387. package/lib/v2/twitter/radar.js +10 -0
  388. package/lib/v2/twitter/router.js +1 -0
  389. package/lib/v2/twitter/tweet.js +5 -0
  390. package/lib/v2/twitter/web-api/tweet.js +25 -0
  391. package/lib/v2/twitter/web-api/twitter-api.js +41 -2
  392. package/lib/v2/ustb/maintainer.js +2 -22
  393. package/lib/v2/ustb/radar.js +8 -0
  394. package/lib/v2/ustb/router.js +1 -0
  395. package/lib/{routes/universities → v2}/ustb/tj/news.js +11 -12
  396. package/lib/v2/utgd/category.js +68 -0
  397. package/lib/v2/utgd/maintainer.js +5 -0
  398. package/lib/v2/utgd/radar.js +25 -0
  399. package/lib/v2/utgd/router.js +5 -0
  400. package/lib/v2/utgd/templates/description.art +7 -0
  401. package/lib/v2/utgd/timeline.js +54 -0
  402. package/lib/v2/utgd/topic.js +70 -0
  403. package/lib/v2/v1tx/index.js +41 -22
  404. package/lib/v2/wechat/feeddd.js +12 -3
  405. package/lib/v2/wechat/mp.js +0 -0
  406. package/lib/v2/wechat/radar.js +2 -2
  407. package/lib/v2/weibo/group.js +93 -0
  408. package/lib/v2/weibo/keyword.js +1 -10
  409. package/lib/v2/weibo/maintainer.js +4 -3
  410. package/lib/v2/weibo/router.js +1 -0
  411. package/lib/v2/weibo/super_index.js +1 -10
  412. package/lib/v2/weibo/timeline.js +5 -5
  413. package/lib/v2/weibo/user.js +2 -8
  414. package/lib/v2/weibo/utils.js +15 -3
  415. package/lib/v2/winstall/maintainer.js +3 -0
  416. package/lib/v2/winstall/radar.js +13 -0
  417. package/lib/v2/winstall/router.js +3 -0
  418. package/lib/v2/winstall/templates/desc.art +5 -0
  419. package/lib/v2/winstall/update.js +43 -0
  420. package/lib/v2/wnacg/index.js +1 -1
  421. package/lib/v2/wnacg/templates/manga.art +4 -4
  422. package/lib/v2/wtu/index.js +37 -0
  423. package/lib/v2/wtu/job.js +80 -0
  424. package/lib/v2/wtu/maintainer.js +4 -0
  425. package/lib/v2/wtu/radar.js +22 -0
  426. package/lib/v2/wtu/router.js +4 -0
  427. package/lib/v2/xiaohongshu/maintainer.js +1 -1
  428. package/lib/v2/xiaohongshu/notes.js +16 -0
  429. package/lib/v2/xiaohongshu/router.js +1 -0
  430. package/lib/v2/xiaohongshu/util.js +122 -0
  431. package/lib/v2/yomiuri/maintainer.js +1 -1
  432. package/lib/v2/yomiuri/news.js +50 -100
  433. package/lib/v2/yomiuri/radar.js +3 -3
  434. package/lib/v2/youtube/user.js +1 -1
  435. package/lib/v2/zcool/radar.js +6 -6
  436. package/lib/v2/zhihu/answers.js +13 -9
  437. package/lib/v2/zhihu/radar.js +2 -2
  438. package/lib/v2/zhubai/maintainer.js +1 -0
  439. package/lib/v2/zhubai/radar.js +7 -0
  440. package/lib/v2/zhubai/router.js +1 -0
  441. package/lib/v2/zhubai/templates/description.art +31 -0
  442. package/lib/v2/zhubai/top20.js +57 -0
  443. package/lib/v2/zju/radar.js +1 -1
  444. package/lib/v2/zyw/hot.js +63 -0
  445. package/lib/v2/zyw/maintainer.js +3 -0
  446. package/lib/v2/zyw/radar.js +16 -0
  447. package/lib/v2/zyw/router.js +3 -0
  448. package/lib/views/error.art +7 -3
  449. package/lib/views/rss.art +1 -1
  450. package/lib/views/welcome.art +2 -2
  451. package/package.json +115 -124
  452. package/lib/routes/141jav/141jav.js +0 -37
  453. package/lib/routes/141ppv/141ppv.js +0 -37
  454. package/lib/routes/3dm/game.js +0 -42
  455. package/lib/routes/3dm/news_center.js +0 -54
  456. package/lib/routes/aeon/category.js +0 -70
  457. package/lib/routes/aisixiang/column.js +0 -37
  458. package/lib/routes/aisixiang/ranking.js +0 -37
  459. package/lib/routes/aisixiang/thinktank.js +0 -40
  460. package/lib/routes/aisixiang/utils.js +0 -39
  461. package/lib/routes/cneb/guoneinews.js +0 -27
  462. package/lib/routes/cneb/yjxx.js +0 -36
  463. package/lib/routes/futunn/highlights.js +0 -58
  464. package/lib/routes/icable/category.js +0 -64
  465. package/lib/routes/notefolio/index.js +0 -67
  466. package/lib/routes/rss3/blog.js +0 -46
  467. package/lib/routes/sina/chuangshiji.js +0 -38
  468. package/lib/routes/sina/discovery.js +0 -52
  469. package/lib/routes/sina/finance.js +0 -37
  470. package/lib/routes/sina/rollnews.js +0 -41
  471. package/lib/routes/sina/sports.js +0 -54
  472. package/lib/routes/universities/wtu/index.js +0 -34
  473. /package/lib/{routes → v2}/storyfm/index.js +0 -0
  474. /package/lib/{routes → v2}/telecompaper/search.js +0 -0
@@ -1,9 +1,11 @@
1
1
  const got = require('@/utils/got');
2
- const { app, os, sv, getSignedSearchParams } = require('./utils');
2
+ const { parseDate } = require('@/utils/parse-date');
3
3
  const { art } = require('@/utils/render');
4
4
  const path = require('path');
5
5
 
6
- const titles = {
6
+ const { rootUrl, getSearchParams } = require('./utils');
7
+
8
+ const categories = {
7
9
  watch: '看盘',
8
10
  announcement: '公司',
9
11
  explain: '解读',
@@ -15,38 +17,38 @@ const titles = {
15
17
  };
16
18
 
17
19
  module.exports = async (ctx) => {
18
- const category = ctx.params.category || '';
19
- const limit = ctx.query.limit ? parseInt(ctx.query.limit) : 30;
20
-
21
- const searchParams = getSignedSearchParams({
22
- app,
23
- category,
24
- hasFirstVipArticle: 1,
25
- os,
26
- rn: limit,
27
- sv,
28
- });
29
- let link = 'https://www.cls.cn/nodeapi/updateTelegraphList';
20
+ const category = ctx.params.category ?? '';
21
+ const limit = ctx.query.limit ? parseInt(ctx.query.limit) : 50;
22
+
23
+ let apiUrl = `${rootUrl}/nodeapi/updateTelegraphList`;
30
24
  if (category) {
31
- link = 'https://www.cls.cn/v1/roll/get_roll_list';
25
+ apiUrl = `${rootUrl}/v1/roll/get_roll_list`;
32
26
  }
27
+
28
+ const currentUrl = `${rootUrl}/telegraph`;
29
+
33
30
  const response = await got({
34
31
  method: 'get',
35
- url: link,
36
- searchParams,
32
+ url: apiUrl,
33
+ searchParams: getSearchParams({
34
+ category,
35
+ hasFirstVipArticle: 1,
36
+ }),
37
37
  });
38
38
 
39
- const list = response.data.data.roll_data.map((item) => ({
39
+ const items = response.data.data.roll_data.slice(0, limit).map((item) => ({
40
40
  title: item.title || item.content,
41
41
  link: item.shareurl,
42
- description: art(path.join(__dirname, 'templates/telegraph.art'), { item }),
43
- pubDate: new Date(item.ctime * 1000).toUTCString(),
42
+ description: art(path.join(__dirname, 'templates/telegraph.art'), {
43
+ item,
44
+ }),
45
+ pubDate: parseDate(item.ctime * 1000),
44
46
  category: item.subjects?.map((s) => s.subject_name),
45
47
  }));
46
48
 
47
49
  ctx.state.data = {
48
- title: `财联社 - 电报${category === '' ? '' : ` - ${titles[category]}`}`,
49
- link: 'https://www.cls.cn/telegraph',
50
- item: list,
50
+ title: `财联社 - 电报${category === '' ? '' : ` - ${categories[category]}`}`,
51
+ link: currentUrl,
52
+ item: items,
51
53
  };
52
54
  };
@@ -1,7 +1,7 @@
1
1
  {{ if articleDetail.images }}
2
- {{ each articleDetail.images i }}
3
- <img src="{{ i }}">
4
- {{ /each }}
2
+ {{ each articleDetail.images i }}
3
+ <img src="{{ i }}">
4
+ {{ /each }}
5
5
  <br>
6
6
  {{ /if }}
7
7
 
@@ -1,10 +1,10 @@
1
1
  {{ if item.content }}
2
- {{ item.content }}
2
+ {{ item.content }}
3
3
  {{ /if }}
4
4
 
5
- {{ if item.images }}
5
+ {{ if item.images.length !== 0 }}
6
6
  <br>
7
- {{ each item.images i }}
8
- <img src="{{ i }}">
9
- {{ /each }}
7
+ {{ each item.images i }}
8
+ <img src="{{ i }}">
9
+ {{ /each }}
10
10
  {{ /if }}
@@ -1,15 +1,21 @@
1
1
  const CryptoJS = require('crypto-js');
2
2
 
3
- const getSignedSearchParams = (searchParams) => {
4
- searchParams = new URLSearchParams(searchParams);
3
+ const rootUrl = 'https://www.cls.cn';
4
+
5
+ const params = {
6
+ appName: 'CailianpressWeb',
7
+ os: 'web',
8
+ sv: '7.7.5',
9
+ };
10
+
11
+ const getSearchParams = (moreParams) => {
12
+ const searchParams = new URLSearchParams({ ...params, ...moreParams });
5
13
  searchParams.sort();
6
14
  searchParams.append('sign', CryptoJS.MD5(CryptoJS.SHA1(searchParams.toString()).toString()).toString());
7
15
  return searchParams;
8
16
  };
9
17
 
10
18
  module.exports = {
11
- appName: 'CailianpressWeb',
12
- os: 'web',
13
- sv: '7.7.5',
14
- getSignedSearchParams,
19
+ rootUrl,
20
+ getSearchParams,
15
21
  };
@@ -0,0 +1,4 @@
1
+ module.exports = {
2
+ '/yjxw/:category?': ['nczitzk'],
3
+ '/yjxx/:level?/:province?/:city?': ['muzea', 'nczitzk'],
4
+ };
@@ -0,0 +1,19 @@
1
+ module.exports = {
2
+ 'cneb.gov.cn': {
3
+ _name: '中国国家应急广播',
4
+ '.': [
5
+ {
6
+ title: '应急新闻',
7
+ docs: 'https://docs.rsshub.app/forecast.html#zhong-guo-guo-jia-ying-ji-guang-bo',
8
+ source: ['/yjxw/:category?', '/'],
9
+ target: '/cneb/yjxw/:category?',
10
+ },
11
+ {
12
+ title: '预警信息',
13
+ docs: 'https://docs.rsshub.app/forecast.html#zhong-guo-guo-jia-ying-ji-guang-bo',
14
+ source: ['/yjxx', '/'],
15
+ target: '/cneb/yjxx',
16
+ },
17
+ ],
18
+ },
19
+ };
@@ -0,0 +1,5 @@
1
+ module.exports = function (router) {
2
+ router.get('/yjxw/:category?', require('./yjxw'));
3
+ router.get(/\/yjxx([\w-/]+)?/, require('./yjxx'));
4
+ router.redirect('/guoneinews', '/cneb/yjxw/gnxw');
5
+ };
@@ -0,0 +1,72 @@
1
+ const got = require('@/utils/got');
2
+ const cheerio = require('cheerio');
3
+ const timezone = require('@/utils/timezone');
4
+ const { parseDate } = require('@/utils/parse-date');
5
+
6
+ const indexs = {
7
+ gnxw: 0,
8
+ gjxw: 1,
9
+ };
10
+
11
+ module.exports = async (ctx) => {
12
+ const limit = ctx.query.limit ? parseInt(ctx.query.limit) : 400;
13
+
14
+ const category = ctx.params.category ?? '';
15
+ const index = indexs.hasOwnProperty(category) ? indexs[category] : -1;
16
+
17
+ const rootUrl = 'http://www.cneb.gov.cn';
18
+ const currentUrl = `${rootUrl}/yjxw${category ? `/${category}` : ''}`;
19
+
20
+ const response = await got({
21
+ method: 'get',
22
+ url: currentUrl,
23
+ });
24
+
25
+ const $ = cheerio.load(response.data);
26
+
27
+ if (index !== -1) {
28
+ const otherIndex = Math.abs(index - 1);
29
+
30
+ $('.first-data').eq(otherIndex).remove();
31
+ $('.moreContent').eq(otherIndex).remove();
32
+ }
33
+
34
+ let items = $('.list')
35
+ .slice(0, limit)
36
+ .toArray()
37
+ .map((item) => {
38
+ item = $(item);
39
+
40
+ const a = item.find('a');
41
+
42
+ return {
43
+ title: a.text(),
44
+ link: a.attr('href'),
45
+ pubDate: timezone(parseDate(item.find('span').text()), +8),
46
+ };
47
+ });
48
+
49
+ items = await Promise.all(
50
+ items.map((item) =>
51
+ ctx.cache.tryGet(item.link, async () => {
52
+ const detailResponse = await got({
53
+ method: 'get',
54
+ url: item.link,
55
+ });
56
+
57
+ const content = cheerio.load(detailResponse.data);
58
+
59
+ item.description = content('.w940').html();
60
+ item.author = content('.source span').last().text();
61
+
62
+ return item;
63
+ })
64
+ )
65
+ );
66
+
67
+ ctx.state.data = {
68
+ title: `国家应急广播 - ${index !== -1 ? $('.select').text() : '新闻'}`,
69
+ link: currentUrl,
70
+ item: items,
71
+ };
72
+ };
@@ -0,0 +1,50 @@
1
+ const got = require('@/utils/got');
2
+ const timezone = require('@/utils/timezone');
3
+ const { parseDate } = require('@/utils/parse-date');
4
+
5
+ module.exports = async (ctx) => {
6
+ const limit = ctx.query.limit ? parseInt(ctx.query.limit) : 200;
7
+
8
+ const options = decodeURI(ctx.path)
9
+ .replace(/\/yjxx/, '')
10
+ .split('/');
11
+
12
+ options.shift();
13
+
14
+ const level = options.find((o) => /.*色$/.test(o)) ?? '';
15
+ const locations = options.filter((o) => !/.*色$/.test(o)).slice(0, 2);
16
+
17
+ const rootUrl = 'http://www.cneb.gov.cn';
18
+ const apiRootUrl = 'https://gdapi.cnr.cn';
19
+
20
+ const currentUrl = `${rootUrl}/yjxx`;
21
+ const apiUrl = `${apiRootUrl}/yjwnews`;
22
+
23
+ const title = `${locations.join('')}${level}`;
24
+
25
+ const response = await got({
26
+ method: 'post',
27
+ url: apiUrl,
28
+ json: {
29
+ size: limit,
30
+ level: level ? `${level}预警` : '',
31
+ province: locations.shift(),
32
+ city: locations.shift(),
33
+ },
34
+ });
35
+
36
+ const items = response.data.datas.map((item) => ({
37
+ title: item.doctitle,
38
+ link: item.docpuburl,
39
+ author: item.chnlname,
40
+ description: item.doccontent,
41
+ pubDate: timezone(parseDate(item.docpubtime), +8),
42
+ }));
43
+
44
+ ctx.state.data = {
45
+ title: `国家应急广播 - ${title}预警信息`,
46
+ link: currentUrl,
47
+ item: items,
48
+ allowEmpty: true,
49
+ };
50
+ };
@@ -1,45 +1,57 @@
1
- const utils = require('./utils');
2
1
  const got = require('@/utils/got');
3
2
  const cheerio = require('cheerio');
3
+ const utils = require('./utils');
4
4
 
5
- const rootUrl = 'https://chn.oversea.cnki.net/kcms/detail/frame/knetlist.aspx?infotype=4&codetype=1&vl=&';
6
- const authorPageRootUrl = 'https://kns.cnki.net/kcms/detail/knetsearch.aspx?sfield=au&';
5
+ const rootUrl = 'https://kns.cnki.net';
7
6
 
8
7
  module.exports = async (ctx) => {
9
8
  const { code } = ctx.params;
10
9
 
11
- const authorPageUrl = `${authorPageRootUrl}code=${code}`;
12
-
13
- const res = await got(authorPageUrl);
10
+ const authorInfoUrl = `${rootUrl}/kcms/detail/knetsearch.aspx?sfield=au&code=${code}`;
11
+ const res = await got(authorInfoUrl);
14
12
  const $ = cheerio.load(res.data);
15
13
  const authorName = $('#showname').text();
16
14
  const companyName = $('body > div.wrapper > div.main > div.container.full-screen > div > div:nth-child(3) > h3:nth-child(2) > span > a').text();
17
15
 
18
- const url = `${rootUrl}code=${code}`;
19
-
20
- const list = await got
21
- .get(url, {
22
- headers: {
23
- Referer: authorPageUrl,
24
- },
25
- })
26
- .then((res) => {
27
- const $ = cheerio.load(res.data);
28
- const list = $('.bignum')
29
- .children()
30
- .map((_, e) => ({
31
- title: $(e).find('a').first().text().trim(),
32
- link: 'https://chn.oversea.cnki.net' + $(e).find('a').first().attr('href'),
33
- }))
34
- .get();
35
- return list;
36
- });
16
+ const res2 = await got(`${rootUrl}/kns8/Detail`, {
17
+ searchParams: {
18
+ sdb: 'CAPJ',
19
+ sfield: '作者',
20
+ skey: authorName,
21
+ scode: code,
22
+ acode: code,
23
+ },
24
+ followRedirect: false,
25
+ });
26
+ const authorPageUrl = res2.headers.location;
27
+
28
+ const regex = /v=([^&]+)/;
29
+ const code2 = authorPageUrl.match(regex)[1];
30
+
31
+ const url = `${rootUrl}/restapi/knowledge-api/v1/experts/relations/resources?v=${code2}&sequence=PT&size=10&sort=desc&start=1&resource=CJFD`;
32
+
33
+ const res3 = await got(url, { headers: { Referer: authorPageUrl } });
34
+ const publications = res3.data.data.data;
35
+
36
+ const list = publications.map((publication) => {
37
+ const metadata = publication.metadata;
38
+ const { value: title = '' } = metadata.find((md) => md.name === 'TI') || {};
39
+ const { value: date = '' } = metadata.find((md) => md.name === 'PT') || {};
40
+ const { value: filename = '' } = metadata.find((md) => md.name === 'FN') || {};
41
+
42
+ return {
43
+ title,
44
+ link: `https://cnki.net/kcms/detail/detail.aspx?filename=${filename}&dbcode=CJFD`,
45
+ author: authorName,
46
+ pubDate: date,
47
+ };
48
+ });
37
49
 
38
50
  const items = await Promise.all(list.map((item) => ctx.cache.tryGet(item.link, () => utils.ProcessItem(item))));
39
51
 
40
52
  ctx.state.data = {
41
53
  title: `知网 ${authorName} ${companyName}`,
42
- link: authorPageUrl,
54
+ link: authorInfoUrl,
43
55
  item: items,
44
56
  };
45
57
  };
@@ -1,5 +1,5 @@
1
1
  module.exports = {
2
2
  '/journals/:name': ['Fatpandac'],
3
3
  '/journals/debut/:name': ['Fatpandac'],
4
- '/author/:code': ['harveyqiu'],
4
+ '/author/:code': ['harveyqiu', 'Derekmini'],
5
5
  };
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ '/search/:keyword': ['Cyang39'],
3
+ };
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ 'comicat.org': {
3
+ _name: 'Comicat',
4
+ '.': [
5
+ {
6
+ title: '搜索关键词',
7
+ docs: 'https://docs.rsshub.app/anime.html#comicat',
8
+ },
9
+ ],
10
+ },
11
+ };
@@ -0,0 +1,3 @@
1
+ module.exports = function (router) {
2
+ router.get('/search/:keyword', require('./search'));
3
+ };
@@ -0,0 +1,42 @@
1
+ const got = require('@/utils/got');
2
+ const cheerio = require('cheerio');
3
+ const { parseDate } = require('@/utils/parse-date');
4
+
5
+ const baseUrl = 'https://comicat.org';
6
+
7
+ module.exports = async (ctx) => {
8
+ const keyword = ctx.params.keyword;
9
+ const { data: response } = await got(`${baseUrl}/search.php?keyword=${encodeURIComponent(keyword)}`);
10
+ const $ = cheerio.load(response);
11
+ const list = $('#listTable tbody > tr')
12
+ .toArray()
13
+ .map((item) => ({
14
+ title: $(item).find('td:nth-child(3)').text().trim(),
15
+ link: `${baseUrl}/${$(item).find('td:nth-child(3) a').attr('href')}`,
16
+ category: $(item).find('td:nth-child(2)').text().trim(),
17
+ author: $(item).find('td:nth-child(8)').text().trim(),
18
+ }));
19
+
20
+ const items = await Promise.all(
21
+ list.map((item) =>
22
+ ctx.cache.tryGet(item.link, async () => {
23
+ const { data: response } = await got(item.link);
24
+ const $ = cheerio.load(response);
25
+
26
+ item.pubDate = parseDate($('div.main > div.slayout > div > div.c1 > div:nth-child(1) > div > p:nth-child(4)').text().split('发布时间: ')[1]);
27
+ const marginLink = `magnet:?xt=urn:btih:${$('#text_hash_id').text().split(',特征码:')[1]}`.trim();
28
+ item.enclosure_url = marginLink;
29
+ item.enclosure_type = 'application/x-bittorrent';
30
+ item.description = $('#btm > div.main > div.slayout > div > div.c2 > div:nth-child(1) > div.intro').html();
31
+
32
+ return item;
33
+ })
34
+ )
35
+ );
36
+
37
+ ctx.state.data = {
38
+ title: `Comicat - ${keyword}`,
39
+ link: `${baseUrl}/search.php?keyword=${encodeURIComponent(keyword)}`,
40
+ item: items,
41
+ };
42
+ };
@@ -13,7 +13,9 @@ module.exports = async (ctx, currentUrl) => {
13
13
 
14
14
  const $ = cheerio.load(response.data);
15
15
 
16
- let items = $('.post-card__link .fancy-link')
16
+ let items = $('.card-list__items')
17
+ .find('a')
18
+ .slice(0, ctx.query.limit ? parseInt(ctx.query.limit) : 25)
17
19
  .toArray()
18
20
  .map((item) => {
19
21
  item = $(item);
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ '/tqtz': ['Mai19930513'],
3
+ };
@@ -0,0 +1,13 @@
1
+ module.exports = {
2
+ 'cqgas.cn': {
3
+ _name: '重庆燃气',
4
+ '.': [
5
+ {
6
+ title: '停气检修通知',
7
+ docs: 'https://docs.rsshub.app/forecast.html#chong-qing-ran-qi',
8
+ source: ['/'],
9
+ target: '/cqgas/tqtz',
10
+ },
11
+ ],
12
+ },
13
+ };
@@ -0,0 +1,3 @@
1
+ module.exports = function (router) {
2
+ router.get('/tqtz', require('./tqtz'));
3
+ };
@@ -0,0 +1,36 @@
1
+ const got = require('@/utils/got');
2
+ const cheerio = require('cheerio');
3
+ const { parseDate } = require('@/utils/parse-date');
4
+ const url = 'http://www.cqgas.cn/portal/article/page?cateId=1082&pageNo=1';
5
+ module.exports = async (ctx) => {
6
+ const { data: response } = await got(url);
7
+ const $ = cheerio.load(response);
8
+ const contentUrl = (id) => `http://www.cqgas.cn/portal/article/content?contentId=${id}`;
9
+ const list = $('ul.news_list > li')
10
+ .toArray()
11
+ .map((item) => {
12
+ item = $(item);
13
+ const title = item.find('a').first();
14
+ return {
15
+ title: title.text(),
16
+ link: contentUrl(title.attr('contentid')),
17
+ pubDate: parseDate(item.find('span.right.txt_black2').text()),
18
+ };
19
+ });
20
+
21
+ const items = await Promise.all(
22
+ list.map((item) =>
23
+ ctx.cache.tryGet(item.link, async () => {
24
+ const { data: response } = await got(item.link);
25
+ const $ = cheerio.load(response);
26
+ item.description = $('body > div').first().html();
27
+ return item;
28
+ })
29
+ )
30
+ );
31
+ ctx.state.data = {
32
+ title: '重庆燃气——停气检修通知',
33
+ link: url,
34
+ item: items,
35
+ };
36
+ };
@@ -0,0 +1,38 @@
1
+ const got = require('@/utils/got');
2
+ const cheerio = require('cheerio');
3
+ const { parseDate } = require('@/utils/parse-date');
4
+
5
+ module.exports = async (ctx) => {
6
+ const section = ctx.params.section ?? 'zxzp';
7
+ const domain = 'iolaw.cssn.cn';
8
+ const response = await got(`http://${domain}/${section}/`);
9
+ const data = response.data;
10
+
11
+ const $ = cheerio.load(data);
12
+ const list = $('div.notice_right ul li')
13
+ .map((_, item) => {
14
+ item = $(item);
15
+ const url = `http://${domain}` + item.find('a').attr('href').substr(1);
16
+ const title = item.find('a div.title').text();
17
+ const publish_time = parseDate(item.find('a p').text());
18
+ return {
19
+ title,
20
+ link: url,
21
+ author: '中国法学网',
22
+ pubtime: publish_time,
23
+ };
24
+ })
25
+ .get();
26
+
27
+ ctx.state.data = {
28
+ title: '中国法学网',
29
+ url: `http://${domain}/${section}/`,
30
+ description: '中国法学网',
31
+ item: list.map((item) => ({
32
+ title: item.title,
33
+ pubDate: item.pubtime,
34
+ link: item.link,
35
+ author: item.author,
36
+ })),
37
+ };
38
+ };
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ '/iolaw/:section?': ['HankChow'],
3
+ };
@@ -0,0 +1,11 @@
1
+ module.exports = {
2
+ 'cssn.cn': {
3
+ _name: '中国社会科学网',
4
+ iolaw: [
5
+ {
6
+ title: '中国法学网',
7
+ docs: 'https://docs.rsshub.app/study.html#zhong-guo-she-hui-ke-xue-wang',
8
+ },
9
+ ],
10
+ },
11
+ };
@@ -0,0 +1,3 @@
1
+ module.exports = function (router) {
2
+ router.get('/iolaw/:section?', require('./iolaw'));
3
+ };
@@ -0,0 +1,73 @@
1
+ const { getData, getList, getRedirectedLink } = require('./utils.js');
2
+
3
+ const variables = {
4
+ first: 15,
5
+ };
6
+
7
+ const query = `
8
+ query MostDiscussedFeed(
9
+ $first: Int
10
+ $supportedTypes: [String!] = ["article","share","freeform"]
11
+ ) {
12
+ page: mostDiscussedFeed(first: $first, supportedTypes: $supportedTypes) {
13
+ ...FeedPostConnection
14
+ }
15
+ }
16
+
17
+ fragment FeedPostConnection on PostConnection {
18
+ edges {
19
+ node {
20
+ ...FeedPost
21
+ }
22
+ }
23
+ }
24
+
25
+ fragment FeedPost on Post {
26
+ ...SharedPostInfo
27
+ }
28
+
29
+ fragment SharedPostInfo on Post {
30
+ id
31
+ title
32
+ image
33
+ readTime
34
+ permalink
35
+ summary
36
+ createdAt
37
+ numUpvotes
38
+ numComments
39
+ author {
40
+ ...UserShortInfo
41
+ }
42
+ tags
43
+ }
44
+
45
+ fragment UserShortInfo on User {
46
+ id
47
+ name
48
+ image
49
+ permalink
50
+ username
51
+ bio
52
+ }
53
+ `;
54
+ const graphqlQuery = {
55
+ query,
56
+ variables,
57
+ };
58
+
59
+ module.exports = async (ctx) => {
60
+ const baseUrl = 'https://app.daily.dev/discussed';
61
+ const data = await getData(graphqlQuery);
62
+ const list = getList(data);
63
+ const items = await getRedirectedLink(list);
64
+ ctx.state.data = {
65
+ title: 'Most Discussed',
66
+ link: baseUrl,
67
+ item: items,
68
+ description: 'Most Discussed Posts on Daily.dev',
69
+ logo: 'https://app.daily.dev/favicon-32x32.png',
70
+ icon: 'https://app.daily.dev/favicon-32x32.png',
71
+ language: 'en-us',
72
+ };
73
+ };