rsshub 1.0.0-master.fcceb6e → 1.0.0-master.fcee9cd

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 (2063) hide show
  1. package/README.md +11 -9
  2. package/lib/api_router.js +3 -5
  3. package/lib/app.js +10 -4
  4. package/lib/config.js +54 -10
  5. package/lib/core_router.js +17 -0
  6. package/lib/errors/RequestInProgress.js +3 -0
  7. package/lib/errors/index.js +3 -0
  8. package/lib/index.js +1 -0
  9. package/lib/maintainer.js +27 -0
  10. package/lib/middleware/access-control.js +8 -7
  11. package/lib/middleware/cache/index.js +135 -0
  12. package/lib/middleware/cache/memory.js +42 -0
  13. package/lib/middleware/cache/redis.js +48 -0
  14. package/lib/middleware/debug.js +0 -5
  15. package/lib/middleware/header.js +2 -1
  16. package/lib/middleware/load-on-demand.js +36 -0
  17. package/lib/middleware/onerror.js +35 -77
  18. package/lib/middleware/parameter.js +44 -17
  19. package/lib/middleware/template.js +16 -10
  20. package/lib/radar-rules.js +3127 -0
  21. package/lib/radar.js +22 -0
  22. package/lib/router.js +2542 -1646
  23. package/lib/routes/10000link/news.js +1 -1
  24. package/lib/routes/12306/zxdt.js +3 -3
  25. package/lib/routes/141jav/141jav.js +37 -0
  26. package/lib/routes/141ppv/141ppv.js +37 -0
  27. package/lib/routes/199it/index.js +15 -17
  28. package/lib/routes/199it/utils.js +10 -11
  29. package/lib/routes/1point3acres/blog.js +52 -0
  30. package/lib/routes/1point3acres/offer.js +8 -8
  31. package/lib/routes/1point3acres/post.js +37 -25
  32. package/lib/routes/1x/index.js +49 -16
  33. package/lib/routes/21caijing/channel.js +4 -4
  34. package/lib/routes/36kr/motif.js +9 -10
  35. package/lib/routes/36kr/news.js +7 -8
  36. package/lib/routes/36kr/search/article.js +3 -3
  37. package/lib/routes/36kr/user.js +8 -9
  38. package/lib/routes/3dm/game.js +1 -1
  39. package/lib/routes/3dm/news_center.js +4 -4
  40. package/lib/routes/3k8/latest.js +16 -17
  41. package/lib/routes/3ycy/home.js +4 -4
  42. package/lib/routes/51voa/channel.js +2 -2
  43. package/lib/routes/60s-science/transcript.js +14 -3
  44. package/lib/routes/6park/index.js +57 -0
  45. package/lib/routes/8btc/author.js +1 -1
  46. package/lib/routes/8kcos/article.js +17 -0
  47. package/lib/routes/8kcos/cat.js +28 -0
  48. package/lib/routes/8kcos/const.js +4 -0
  49. package/lib/routes/8kcos/latest.js +27 -0
  50. package/lib/routes/91ddcc/stage.js +10 -11
  51. package/lib/routes/91ddcc/user.js +2 -2
  52. package/lib/routes/93/index.js +50 -0
  53. package/lib/routes/95mm/utils.js +16 -17
  54. package/lib/routes/abc/documentId.js +7272 -0
  55. package/lib/routes/abc/id.js +7272 -0
  56. package/lib/routes/abc/index.js +51 -63
  57. package/lib/routes/acfun/video.js +1 -1
  58. package/lib/routes/acm/amturingaward.js +68 -0
  59. package/lib/routes/acwifi/index.js +1 -1
  60. package/lib/routes/adnmb/index.js +1 -1
  61. package/lib/routes/adquan/index.js +8 -9
  62. package/lib/routes/aeon/category.js +2 -2
  63. package/lib/routes/aflcio/blog.js +48 -0
  64. package/lib/routes/agefans/detail.js +3 -3
  65. package/lib/routes/agefans/update.js +46 -0
  66. package/lib/routes/aisixiang/column.js +2 -2
  67. package/lib/routes/aisixiang/ranking.js +2 -2
  68. package/lib/routes/aisixiang/thinktank.js +2 -2
  69. package/lib/routes/aiyanxishe/home.js +1 -1
  70. package/lib/routes/algocasts/all.js +12 -14
  71. package/lib/routes/aliyun/database_month.js +3 -3
  72. package/lib/routes/aliyun/developer/group.js +1 -1
  73. package/lib/routes/aliyun/notice.js +3 -3
  74. package/lib/routes/aliyun-kernel/index.js +2 -2
  75. package/lib/routes/aljazeera/news.js +9 -10
  76. package/lib/routes/allnow/column.js +3 -45
  77. package/lib/routes/allnow/index.js +5 -0
  78. package/lib/routes/allnow/tag.js +7 -0
  79. package/lib/routes/allnow/user.js +7 -0
  80. package/lib/routes/allnow/utils.js +67 -0
  81. package/lib/routes/alter-cn/news.js +7 -8
  82. package/lib/routes/amazfitwatchfaces/utils.js +11 -12
  83. package/lib/routes/amazon/ku.js +57 -0
  84. package/lib/routes/amd/graphicsdrivers.js +1 -1
  85. package/lib/routes/andyt/index.js +1 -1
  86. package/lib/routes/anigamer/new_anime.js +12 -13
  87. package/lib/routes/animen/news.js +4 -4
  88. package/lib/routes/anitama/channel.js +2 -2
  89. package/lib/routes/anytxt/release-notes.js +33 -0
  90. package/lib/routes/aom/journal.js +15 -16
  91. package/lib/routes/aozora/newbook.js +5 -5
  92. package/lib/routes/apnews/topics.js +32 -51
  93. package/lib/routes/apple/appstore/in-app-purchase.js +2 -5
  94. package/lib/routes/apple/appstore/price.js +1 -1
  95. package/lib/routes/apple/appstore/update.js +1 -1
  96. package/lib/routes/apple/exchange_repair.js +1 -1
  97. package/lib/routes/arknights/japan.js +24 -0
  98. package/lib/routes/arknights/news.js +6 -5
  99. package/lib/routes/asahi/area.js +57 -0
  100. package/lib/routes/asahi/index.js +94 -0
  101. package/lib/routes/asiantolick/index.js +64 -0
  102. package/lib/routes/asml/press-releases.js +39 -0
  103. package/lib/routes/atfd/index.js +1 -1
  104. package/lib/routes/av01/actor.js +36 -0
  105. package/lib/routes/av01/tag.js +36 -0
  106. package/lib/routes/avgle/videos.js +3 -3
  107. package/lib/routes/axis-studios/work.js +3 -3
  108. package/lib/routes/babehub/index.js +30 -0
  109. package/lib/routes/babehub/search.js +15 -0
  110. package/lib/routes/babehub/utils.js +71 -0
  111. package/lib/routes/babykingdom/index.js +1 -1
  112. package/lib/routes/bahamut/creation.js +1 -1
  113. package/lib/routes/bahamut/utils.js +3 -3
  114. package/lib/routes/baidu/daily.js +1 -1
  115. package/lib/routes/baijing/index.js +23 -32
  116. package/lib/routes/bandcamp/tag.js +46 -0
  117. package/lib/routes/bandisoft/index.js +38 -0
  118. package/lib/routes/bangumi/calendar/today.js +1 -1
  119. package/lib/routes/bangumi/group/topic.js +2 -2
  120. package/lib/routes/bangumi/subject/comments.js +1 -1
  121. package/lib/routes/bangumi/subject/ep.js +1 -1
  122. package/lib/routes/bangumi/user/blog.js +7 -8
  123. package/lib/routes/banyuetan/byt.js +50 -0
  124. package/lib/routes/banyuetan/index.js +3 -3
  125. package/lib/routes/bbc/index.js +29 -20
  126. package/lib/routes/bbc/utils.js +13 -110
  127. package/lib/routes/behance/index.js +4 -4
  128. package/lib/routes/bell-labs/events-news.js +70 -0
  129. package/lib/routes/benedictevans/recent.js +41 -0
  130. package/lib/routes/bibgame/category.js +56 -0
  131. package/lib/routes/bihu/activaties.js +4 -4
  132. package/lib/routes/bilibili/app.js +33 -0
  133. package/lib/routes/bilibili/audio.js +6 -6
  134. package/lib/routes/bilibili/blackboard.js +7 -6
  135. package/lib/routes/bilibili/coin.js +9 -5
  136. package/lib/routes/bilibili/danmaku.js +2 -2
  137. package/lib/routes/bilibili/dynamic.js +45 -16
  138. package/lib/routes/bilibili/fav.js +9 -5
  139. package/lib/routes/bilibili/followings_article.js +2 -2
  140. package/lib/routes/bilibili/followings_dynamic.js +137 -0
  141. package/lib/routes/bilibili/followings_video.js +10 -13
  142. package/lib/routes/bilibili/linkNews.js +0 -1
  143. package/lib/routes/bilibili/liveArea.js +1 -2
  144. package/lib/routes/bilibili/liveRoom.js +0 -1
  145. package/lib/routes/bilibili/liveSearch.js +0 -1
  146. package/lib/routes/bilibili/manga_followings.js +39 -0
  147. package/lib/routes/bilibili/manga_update.js +2 -2
  148. package/lib/routes/bilibili/page.js +10 -7
  149. package/lib/routes/bilibili/partion-ranking.js +1 -1
  150. package/lib/routes/bilibili/partion.js +1 -1
  151. package/lib/routes/bilibili/reply.js +1 -1
  152. package/lib/routes/bilibili/topic.js +1 -1
  153. package/lib/routes/bilibili/userChannel.js +40 -12
  154. package/lib/routes/bilibili/userFav.js +1 -0
  155. package/lib/routes/bilibili/utils.js +1 -1
  156. package/lib/routes/bilibili/video.js +1 -1
  157. package/lib/routes/bilibili/vsearch.js +10 -11
  158. package/lib/routes/bilibili/weekly_recommend.js +6 -1
  159. package/lib/routes/bioon/latest.js +13 -14
  160. package/lib/routes/bioone/featured.js +49 -0
  161. package/lib/routes/bjnews/epaper.js +3 -3
  162. package/lib/routes/bjnews/news.js +8 -5
  163. package/lib/routes/bjp/apod.js +1 -1
  164. package/lib/routes/bjx/huanbao.js +2 -2
  165. package/lib/routes/blizzard/news.js +51 -0
  166. package/lib/routes/blogs/diygod/animal-crossing.js +2 -2
  167. package/lib/routes/blogs/foreverblog.js +33 -0
  168. package/lib/routes/blogs/hedwig.js +2 -2
  169. package/lib/routes/blogs/jianning.js +2 -2
  170. package/lib/routes/blogs/wangyin.js +6 -6
  171. package/lib/routes/blogs/wordpress.js +16 -1
  172. package/lib/routes/blow-studio/work.js +5 -5
  173. package/lib/routes/blur-studio/index.js +5 -5
  174. package/lib/routes/boc/whpj.js +1 -1
  175. package/lib/routes/bof/home.js +1 -2
  176. package/lib/routes/bookscomtw/newbooks.js +37 -0
  177. package/lib/routes/bookwalkertw/news.js +3 -3
  178. package/lib/routes/booth-pm/shop.js +57 -0
  179. package/lib/routes/boston/index.js +43 -44
  180. package/lib/routes/caixin/article.js +26 -6
  181. package/lib/routes/caixin/blog.js +1 -1
  182. package/lib/routes/caixin/category.js +2 -2
  183. package/lib/routes/caixin/database.js +48 -0
  184. package/lib/routes/caixin/latest.js +75 -0
  185. package/lib/routes/caixin/yxnews.js +30 -0
  186. package/lib/routes/cartoonmad/comic.js +2 -2
  187. package/lib/routes/caus/index.js +87 -0
  188. package/lib/routes/cbc/topics.js +7 -8
  189. package/lib/routes/cbndata/information.js +52 -0
  190. package/lib/routes/ccdi/scdc.js +11 -7
  191. package/lib/routes/ccf/news.js +51 -0
  192. package/lib/routes/ccg/index.js +49 -0
  193. package/lib/routes/ccreports/index.js +1 -1
  194. package/lib/routes/cctv/jx.js +46 -0
  195. package/lib/routes/cctv/lm.js +78 -0
  196. package/lib/routes/cctv/special.js +59 -60
  197. package/lib/routes/cctv/utils/mzzlbg.js +3 -3
  198. package/lib/routes/cctv/utils/news.js +1 -1
  199. package/lib/routes/cctv/utils/xinwen1j1.js +4 -5
  200. package/lib/routes/cctv/xwlb.js +1 -1
  201. package/lib/routes/cell/cell/index.js +5 -7
  202. package/lib/routes/cell/cover.js +6 -6
  203. package/lib/routes/cfan/news.js +1 -1
  204. package/lib/routes/cgtn/most.js +10 -11
  205. package/lib/routes/cgtn/opinions.js +50 -0
  206. package/lib/routes/cgtn/pick.js +45 -0
  207. package/lib/routes/cgtn/top.js +10 -11
  208. package/lib/routes/changba/user.js +3 -3
  209. package/lib/routes/changku/index.js +10 -9
  210. package/lib/routes/chaoli/index.js +50 -0
  211. package/lib/routes/chaping/banner.js +12 -13
  212. package/lib/routes/chaping/news.js +12 -13
  213. package/lib/routes/checkee/index.js +3 -3
  214. package/lib/routes/chicagotribune/index.js +46 -47
  215. package/lib/routes/chiculture/topic.js +59 -0
  216. package/lib/routes/chinadialogue/column.js +2 -2
  217. package/lib/routes/chinadialogue/topics.js +2 -2
  218. package/lib/routes/chinafile/index.js +71 -0
  219. package/lib/routes/chinalaborwatch/reports.js +53 -0
  220. package/lib/routes/chiphell/forum.js +1 -1
  221. package/lib/routes/chsi/zszcgd.js +51 -0
  222. package/lib/routes/chuapp/index.js +54 -0
  223. package/lib/routes/chuiniu/column.js +1 -1
  224. package/lib/routes/citavi/index.js +52 -0
  225. package/lib/routes/ciweimao/chapter.js +18 -13
  226. package/lib/routes/cktest/policy.js +17 -18
  227. package/lib/routes/clb/commentary.js +48 -0
  228. package/lib/routes/clickme/index.js +2 -2
  229. package/lib/routes/cls/depth.js +14 -15
  230. package/lib/routes/cls/telegraph.js +15 -2
  231. package/lib/routes/cmes/news.js +64 -0
  232. package/lib/routes/cna/index.js +20 -15
  233. package/lib/routes/cninfo/announcement.js +44 -24
  234. package/lib/routes/cntv/cntv.js +24 -0
  235. package/lib/routes/cnu/discovery.js +1 -1
  236. package/lib/routes/cnu/selected.js +1 -1
  237. package/lib/routes/comicskingdom/index.js +61 -0
  238. package/lib/routes/commonapp/blog.js +42 -0
  239. package/lib/routes/cool18/index.js +57 -0
  240. package/lib/routes/coolapk/dyh.js +3 -10
  241. package/lib/routes/coolapk/hot.js +99 -0
  242. package/lib/routes/coolapk/huati.js +1 -12
  243. package/lib/routes/coolapk/toutiao.js +31 -0
  244. package/lib/routes/coolapk/tuwen.js +5 -4
  245. package/lib/routes/coolapk/userDynamic.js +3 -10
  246. package/lib/routes/coolapk/utils.js +87 -57
  247. package/lib/routes/copymanga/comic.js +67 -0
  248. package/lib/routes/coronavirus/sg-moh.js +1 -1
  249. package/lib/routes/coronavirus/yahoo-japan.js +77 -0
  250. package/lib/routes/cpta/notice.js +14 -10
  251. package/lib/routes/craigslist/search.js +46 -0
  252. package/lib/routes/creaders/headline.js +9 -10
  253. package/lib/routes/cria/news.js +57 -0
  254. package/lib/routes/cs/news.js +11 -12
  255. package/lib/routes/csc/notice.js +1 -1
  256. package/lib/routes/csrc/auditstatus.js +2 -2
  257. package/lib/routes/ctei/news.js +50 -0
  258. package/lib/routes/ctfhub/{index.js → search.js} +6 -8
  259. package/lib/routes/ctfhub/upcoming.js +58 -0
  260. package/lib/routes/curseforge/files.js +23 -39
  261. package/lib/routes/cyzone/author.js +1 -1
  262. package/lib/routes/cyzone/label.js +1 -1
  263. package/lib/routes/d1bz/novel.js +1 -1
  264. package/lib/routes/d2/daily.js +1 -1
  265. package/lib/routes/dailyart/index.js +33 -0
  266. package/lib/routes/daodu/index.js +51 -0
  267. package/lib/routes/dapenti/utils.js +7 -2
  268. package/lib/routes/darwinawards/articles.js +3 -3
  269. package/lib/routes/dayone/blog.js +56 -0
  270. package/lib/routes/dbaplus/activity.js +35 -0
  271. package/lib/routes/dbaplus/tab.js +50 -0
  272. package/lib/routes/dbmv/index.js +2 -2
  273. package/lib/routes/dcard/section.js +1 -1
  274. package/lib/routes/dcinside/board.js +1 -1
  275. package/lib/routes/ddrk/list.js +1 -1
  276. package/lib/routes/dedao/index.js +43 -0
  277. package/lib/routes/dedao/knowledge.js +78 -0
  278. package/lib/routes/dedao/list.js +60 -0
  279. package/lib/routes/deepl/blog.js +34 -0
  280. package/lib/routes/deeplearningai/thebatch.js +7 -8
  281. package/lib/routes/deepmind/blog.js +43 -0
  282. package/lib/routes/dekudeals/index.js +3 -3
  283. package/lib/routes/deloitte/industries.js +62 -0
  284. package/lib/routes/dengekionline/new.js +9 -9
  285. package/lib/routes/dev.to/top.js +8 -20
  286. package/lib/routes/dgjyw/index.js +7 -8
  287. package/lib/routes/dgtle/index.js +2 -2
  288. package/lib/routes/dianping/user.js +5 -11
  289. package/lib/routes/dida365/habit-checkins.js +83 -0
  290. package/lib/routes/digic-pictures/index.js +4 -4
  291. package/lib/routes/digitaling/article.js +3 -3
  292. package/lib/routes/digitaling/index.js +2 -2
  293. package/lib/routes/digitaling/project.js +2 -2
  294. package/lib/routes/dilbert/strip.js +8 -5
  295. package/lib/routes/discuss/index.js +71 -0
  296. package/lib/routes/discuz/discuz.js +2 -2
  297. package/lib/routes/ditto/changes.js +36 -0
  298. package/lib/routes/dlsite/campaign.js +13 -13
  299. package/lib/routes/dlsite/new.js +10 -10
  300. package/lib/routes/dockone/weekly.js +1 -1
  301. package/lib/routes/donews/index.js +3 -4
  302. package/lib/routes/donews/utils.js +3 -7
  303. package/lib/routes/dongqiudi/utils.js +2 -2
  304. package/lib/routes/douban/channel/subject.js +2 -2
  305. package/lib/routes/douban/channel/topic.js +3 -3
  306. package/lib/routes/douban/commercialpress/latest.js +1 -1
  307. package/lib/routes/douban/doulist.js +6 -6
  308. package/lib/routes/douban/explore.js +1 -1
  309. package/lib/routes/douban/explore_column.js +4 -4
  310. package/lib/routes/douban/group.js +32 -31
  311. package/lib/routes/douban/later.js +20 -7
  312. package/lib/routes/douban/people/status.js +463 -60
  313. package/lib/routes/douban/people/wish.js +79 -0
  314. package/lib/routes/douban/replied.js +86 -0
  315. package/lib/routes/douban/replies.js +22 -26
  316. package/lib/routes/douban/topic.js +7 -7
  317. package/lib/routes/douban/weekly_best.js +19 -8
  318. package/lib/routes/douyu/room.js +1 -1
  319. package/lib/routes/dribbble/utils.js +5 -5
  320. package/lib/routes/dsb/area.js +11 -12
  321. package/lib/routes/dsndsht23/index.js +19 -8
  322. package/lib/routes/dtcj/datahero.js +49 -0
  323. package/lib/routes/duozhi/index.js +3 -3
  324. package/lib/routes/duozhuayu/search.js +2 -6
  325. package/lib/routes/dw/index.js +51 -0
  326. package/lib/routes/dx2025/index.js +51 -0
  327. package/lib/routes/dxy/vaccine.js +109 -0
  328. package/lib/routes/dykszx/news.js +60 -0
  329. package/lib/routes/eagle/changelog.js +75 -0
  330. package/lib/routes/earthquake/ceic.js +2 -1
  331. package/lib/routes/earthquake/index.js +13 -16
  332. package/lib/routes/ebb/index.js +1 -1
  333. package/lib/routes/eeo/index.js +72 -36
  334. package/lib/routes/ehentai/ehapi.js +134 -0
  335. package/lib/routes/ehentai/favorites.js +19 -0
  336. package/lib/routes/ehentai/search.js +25 -0
  337. package/lib/routes/ehentai/tag.js +13 -0
  338. package/lib/routes/elife/index.js +1 -1
  339. package/lib/routes/elitebabes/index.js +30 -0
  340. package/lib/routes/elitebabes/search.js +15 -0
  341. package/lib/routes/elitebabes/utils.js +88 -0
  342. package/lib/routes/elitebabes/videos.js +26 -0
  343. package/lib/routes/embassy/supportedList.js +19 -0
  344. package/lib/routes/emi-nitta/home.js +7 -8
  345. package/lib/routes/enclavebooks/collection.js +1 -1
  346. package/lib/routes/enclavebooks/user.js +1 -1
  347. package/lib/routes/erbingapp/news.js +38 -20
  348. package/lib/routes/esquirehk/tag.js +71 -0
  349. package/lib/routes/etherscan/transactions.js +37 -0
  350. package/lib/routes/etoland/board.js +5 -5
  351. package/lib/routes/europapress/index.js +52 -0
  352. package/lib/routes/everything/changes.js +33 -0
  353. package/lib/routes/{eventernote → everything/eventernote}/actors.js +0 -0
  354. package/lib/routes/ezone/index.js +60 -0
  355. package/lib/routes/eztv/imdb.js +12 -6
  356. package/lib/routes/facebook/page.js +15 -20
  357. package/lib/routes/fanbox/conv.js +1 -1
  358. package/lib/routes/fanbox/header.js +1 -1
  359. package/lib/routes/fanbox/main.js +1 -1
  360. package/lib/routes/fanfou/favorites.js +13 -16
  361. package/lib/routes/fanfou/home_timeline.js +13 -16
  362. package/lib/routes/fanfou/public_timeline.js +14 -16
  363. package/lib/routes/fanfou/trends.js +6 -11
  364. package/lib/routes/fanfou/user_timeline.js +13 -16
  365. package/lib/routes/fanfou/utils.js +5 -5
  366. package/lib/routes/fantia/search.js +66 -0
  367. package/lib/routes/fantia/user.js +39 -0
  368. package/lib/routes/{szse/rule.js → fanxinzhui/latest.js} +15 -8
  369. package/lib/routes/fashionnetwork/headline.js +53 -0
  370. package/lib/routes/fashionnetwork/news.js +70 -0
  371. package/lib/routes/feed-the-beast/modpack.js +31 -0
  372. package/lib/routes/feixuew/index.js +14 -15
  373. package/lib/routes/ff14/ff14_global.js +31 -0
  374. package/lib/routes/ff14/ff14_zh.js +3 -5
  375. package/lib/routes/fgo/news.js +7 -8
  376. package/lib/routes/finviz/news.js +1 -1
  377. package/lib/routes/fir/update.js +1 -1
  378. package/lib/routes/firefox/addons.js +1 -1
  379. package/lib/routes/fitchratings/site.js +2 -2
  380. package/lib/routes/fjnews/fznews.js +1 -1
  381. package/lib/routes/flyertea/utils.js +3 -3
  382. package/lib/routes/fnal/news.js +50 -0
  383. package/lib/routes/fontstory/tw.js +48 -0
  384. package/lib/routes/ft/myft.js +46 -0
  385. package/lib/routes/fulinian/index.js +13 -14
  386. package/lib/routes/furaffinity/browse.js +44 -0
  387. package/lib/routes/furaffinity/commissions.js +39 -0
  388. package/lib/routes/furaffinity/favorites.js +56 -0
  389. package/lib/routes/furaffinity/gallery.js +56 -0
  390. package/lib/routes/furaffinity/home.js +59 -0
  391. package/lib/routes/furaffinity/journal_comments.js +50 -0
  392. package/lib/routes/furaffinity/journals.js +49 -0
  393. package/lib/routes/furaffinity/scraps.js +56 -0
  394. package/lib/routes/furaffinity/search.js +56 -0
  395. package/lib/routes/furaffinity/shouts.js +40 -0
  396. package/lib/routes/furaffinity/status.js +39 -0
  397. package/lib/routes/furaffinity/submission_comments.js +50 -0
  398. package/lib/routes/furaffinity/user.js +96 -0
  399. package/lib/routes/furaffinity/watchers.js +47 -0
  400. package/lib/routes/furaffinity/watching.js +47 -0
  401. package/lib/routes/futunn/highlights.js +5 -4
  402. package/lib/routes/fx678/kx.js +2 -2
  403. package/lib/routes/fzdm/manhua.js +43 -9
  404. package/lib/routes/gab/explore.js +31 -0
  405. package/lib/routes/gab/user.js +32 -0
  406. package/lib/routes/galgame/hhgal.js +5 -5
  407. package/lib/routes/game4399/forum.js +46 -0
  408. package/lib/routes/gamegrape/index.js +73 -0
  409. package/lib/routes/gamer/gnn_index.js +50 -33
  410. package/lib/routes/gamer/hot.js +14 -15
  411. package/lib/routes/gameres/hot.js +7 -0
  412. package/lib/routes/gameres/list.js +8 -0
  413. package/lib/routes/gameres/utils.js +58 -0
  414. package/lib/routes/gamersky/ent.js +5 -5
  415. package/lib/routes/gaoqing/utils.js +3 -3
  416. package/lib/routes/gcores/category.js +49 -6
  417. package/lib/routes/geektime/column.js +4 -4
  418. package/lib/routes/geektime/news.js +4 -4
  419. package/lib/routes/gelonghui/keyword.js +7 -8
  420. package/lib/routes/gelonghui/subject.js +7 -8
  421. package/lib/routes/gelonghui/user.js +8 -9
  422. package/lib/routes/girlimg/album.js +1 -1
  423. package/lib/routes/gitea/blog.js +2 -2
  424. package/lib/routes/github/contributors.js +6 -8
  425. package/lib/routes/github/file.js +10 -13
  426. package/lib/routes/github/issue.js +3 -2
  427. package/lib/routes/github/pulls.js +1 -0
  428. package/lib/routes/github/search.js +1 -1
  429. package/lib/routes/github/starred_repos.js +2 -2
  430. package/lib/routes/github/topic.js +25 -0
  431. package/lib/routes/github/trending.js +6 -5
  432. package/lib/routes/gitlab/explore.js +6 -4
  433. package/lib/routes/gitlab/release.js +30 -0
  434. package/lib/routes/gitlab/tag.js +30 -0
  435. package/lib/routes/go.jp/mofa/main.js +3 -3
  436. package/lib/routes/gocomics/index.js +64 -0
  437. package/lib/routes/google/album.js +2 -2
  438. package/lib/routes/google/citations.js +1 -1
  439. package/lib/routes/google/news.js +2 -2
  440. package/lib/routes/google/sites.js +3 -3
  441. package/lib/routes/gov/beijing/eea.js +12 -6
  442. package/lib/routes/gov/beijing/mhc.js +7 -8
  443. package/lib/routes/gov/caict/bps.js +8 -9
  444. package/lib/routes/gov/caict/caictgd.js +8 -9
  445. package/lib/routes/gov/caict/qwsj.js +1 -1
  446. package/lib/routes/gov/chinatax/latest.js +9 -10
  447. package/lib/routes/gov/chongqing/ljxq/dwgk.js +10 -11
  448. package/lib/routes/gov/chongqing/ljxq/zwgk.js +10 -11
  449. package/lib/routes/gov/cnca/hydt.js +1 -1
  450. package/lib/routes/gov/cnca/jgdt.js +1 -1
  451. package/lib/routes/gov/cnca/zxtz.js +2 -2
  452. package/lib/routes/gov/cppcc/index.js +48 -0
  453. package/lib/routes/gov/customs/list.js +3 -3
  454. package/lib/routes/gov/fmprc/fyrbt.js +1 -1
  455. package/lib/routes/gov/fmprc/utils.js +3 -3
  456. package/lib/routes/gov/guangdong/edu.js +12 -9
  457. package/lib/routes/gov/guangdong/eea.js +59 -0
  458. package/lib/routes/gov/harbin/kjj.js +39 -0
  459. package/lib/routes/gov/hubei/hbsia.js +101 -0
  460. package/lib/routes/gov/hunan/notice.js +3 -3
  461. package/lib/routes/gov/jiangsu/eea.js +1 -1
  462. package/lib/routes/gov/miit/wjgs.js +1 -1
  463. package/lib/routes/gov/miit/zcjd.js +1 -1
  464. package/lib/routes/gov/miit/zcwj.js +1 -1
  465. package/lib/routes/gov/moa/moa.js +3 -3
  466. package/lib/routes/gov/moa/sjzxfb.js +3 -3
  467. package/lib/routes/gov/mohrss/sbjm.js +59 -0
  468. package/lib/routes/gov/mohurd/policy.js +8 -9
  469. package/lib/routes/gov/ndrc/xwdt.js +54 -0
  470. package/lib/routes/gov/news/index.js +2 -2
  471. package/lib/routes/gov/ngd/index.js +51 -0
  472. package/lib/routes/gov/nppa/channels.js +2 -2
  473. package/lib/routes/gov/nppa/contents.js +3 -3
  474. package/lib/routes/gov/province/jiangsu/getContent.js +1 -2
  475. package/lib/routes/gov/province/jiangsu/index.js +1 -1
  476. package/lib/routes/gov/sapprft/7026.js +3 -3
  477. package/lib/routes/gov/shanghai/sthj.js +2 -2
  478. package/lib/routes/gov/shanxi/rst.js +4 -4
  479. package/lib/routes/gov/shenzhen/xxgk/zfxxgj.js +66 -0
  480. package/lib/routes/gov/shuju/index.js +13 -14
  481. package/lib/routes/gov/statecouncil/briefing.js +2 -2
  482. package/lib/routes/gov/suzhou/doc.js +1 -1
  483. package/lib/routes/gov/suzhou/news.js +7 -7
  484. package/lib/routes/gov/taiwan/mnd.js +25 -26
  485. package/lib/routes/gov/veterans/china.js +6 -6
  486. package/lib/routes/gov/veterans/hebei.js +6 -6
  487. package/lib/routes/gov/wuhan/kjj.js +63 -0
  488. package/lib/routes/gov/wuhan/wehdz.js +63 -0
  489. package/lib/routes/gov/xinwen/tujie.js +11 -12
  490. package/lib/routes/gq/tw/index.js +22 -23
  491. package/lib/routes/gracg/user.js +2 -2
  492. package/lib/routes/grandchallenge/challenges.js +33 -0
  493. package/lib/routes/grandchallenge/user.js +34 -0
  494. package/lib/routes/greasyfork/scripts.js +2 -2
  495. package/lib/routes/growincity/news.js +49 -0
  496. package/lib/routes/grubstreet/utils.js +6 -6
  497. package/lib/routes/guancha/headline.js +48 -0
  498. package/lib/routes/guancha/index.js +132 -0
  499. package/lib/routes/guancha/member.js +71 -0
  500. package/lib/routes/guancha/personalpage.js +72 -0
  501. package/lib/routes/guancha/topic.js +55 -0
  502. package/lib/routes/guanggoo/index.js +11 -10
  503. package/lib/routes/guat/news.js +1 -1
  504. package/lib/routes/guet/news.js +5 -5
  505. package/lib/routes/guiltfree/onsale.js +13 -14
  506. package/lib/routes/guokr/calendar.js +1 -1
  507. package/lib/routes/guokr/scientific.js +17 -7
  508. package/lib/routes/gvm/index.js +94 -0
  509. package/lib/routes/gwern/category.js +58 -0
  510. package/lib/routes/hackerone/hacktivity.js +17 -16
  511. package/lib/routes/hackerone/search.js +48 -0
  512. package/lib/routes/haimaoba/comics.js +17 -18
  513. package/lib/routes/hainanu/ssszs.js +36 -0
  514. package/lib/routes/hanime/video.js +5 -2
  515. package/lib/routes/haohaozhu/discover.js +1 -1
  516. package/lib/routes/haohaozhu/whole-house.js +2 -2
  517. package/lib/routes/hdx/explore.js +1 -1
  518. package/lib/routes/hentai-cosplays/porn-images-xxx.js +1 -1
  519. package/lib/routes/hentai-cosplays/utils.js +45 -19
  520. package/lib/routes/hex-rays/index.js +13 -20
  521. package/lib/routes/hexo/fluid.js +45 -0
  522. package/lib/routes/hexo/next.js +1 -1
  523. package/lib/routes/hinatazaka46/blog.js +1 -1
  524. package/lib/routes/hk01/zone.js +3 -3
  525. package/lib/routes/hkcd/pdf.js +30 -0
  526. package/lib/routes/hkcnews/news.js +63 -0
  527. package/lib/routes/hkej/index.js +138 -0
  528. package/lib/routes/hkepc/index.js +164 -0
  529. package/lib/routes/hkgolden/index.js +110 -0
  530. package/lib/routes/hko/weather.js +1 -1
  531. package/lib/routes/hpoi/index.js +1 -1
  532. package/lib/routes/hpoi/info.js +1 -1
  533. package/lib/routes/hpoi/user.js +2 -2
  534. package/lib/routes/huawei/xinsheng/index.js +14 -15
  535. package/lib/routes/hugo/releases.js +53 -0
  536. package/lib/routes/hupu/all.js +16 -17
  537. package/lib/routes/hupu/bbs.js +5 -5
  538. package/lib/routes/hupu/dept.js +16 -17
  539. package/lib/routes/huxiu/collection.js +2 -2
  540. package/lib/routes/huxiu/utils.js +11 -4
  541. package/lib/routes/huya/live.js +2 -2
  542. package/lib/routes/icable/category.js +64 -0
  543. package/lib/routes/icity/index.js +1 -1
  544. package/lib/routes/idaily/index.js +21 -0
  545. package/lib/routes/iea/index.js +53 -0
  546. package/lib/routes/ieee/author.js +2 -2
  547. package/lib/routes/ifanr/index.js +1 -1
  548. package/lib/routes/ifeng/feng.js +2 -2
  549. package/lib/routes/ifeng/utils.js +4 -2
  550. package/lib/routes/ifnews/column.js +1 -1
  551. package/lib/routes/iie/blog.js +47 -0
  552. package/lib/routes/im2maker/index.js +1 -1
  553. package/lib/routes/imaijia/category.js +5 -5
  554. package/lib/routes/imuseum/index.js +1 -1
  555. package/lib/routes/index.js +6 -26
  556. package/lib/routes/indienova/article.js +2 -2
  557. package/lib/routes/infoq/topic.js +1 -1
  558. package/lib/routes/infoq/utils.js +2 -2
  559. package/lib/routes/infzm/news.js +12 -18
  560. package/lib/routes/initium/full.js +21 -15
  561. package/lib/routes/instagram/index.js +130 -0
  562. package/lib/routes/instagram/utils.js +27 -0
  563. package/lib/routes/instapaper/person.js +1 -1
  564. package/lib/routes/interesting-sky/astronomical_events.js +38 -0
  565. package/lib/routes/interesting-sky/index.js +34 -0
  566. package/lib/routes/interesting-sky/recent-interesting.js +46 -0
  567. package/lib/routes/iplay/home.js +1 -1
  568. package/lib/routes/iplay/utils.js +3 -3
  569. package/lib/routes/ipsw/index.js +3 -3
  570. package/lib/routes/iqiyi/dongman.js +1 -1
  571. package/lib/routes/iqiyi/video.js +1 -1
  572. package/lib/routes/ithome/index.js +15 -16
  573. package/lib/routes/ithome/ranking.js +18 -19
  574. package/lib/routes/itjuzi/invest.js +1 -1
  575. package/lib/routes/itslide/new.js +2 -2
  576. package/lib/routes/ixigua/userVideo.js +35 -0
  577. package/lib/routes/iyiou/index.js +41 -0
  578. package/lib/routes/iyouport/index.js +11 -12
  579. package/lib/routes/iyouport/utils.js +4 -2
  580. package/lib/routes/japanpost/track.js +111 -0
  581. package/lib/routes/japanpost/utils.js +62 -16
  582. package/lib/routes/javbus/util.js +1 -1
  583. package/lib/routes/javlibrary/bestreviews.js +1 -1
  584. package/lib/routes/javlibrary/users.js +1 -1
  585. package/lib/routes/javlibrary/utils.js +2 -2
  586. package/lib/routes/jdlingyu/index.js +3 -3
  587. package/lib/routes/jianshu/utils.js +3 -3
  588. package/lib/routes/jiazhen108/index.js +47 -0
  589. package/lib/routes/jiemian/list.js +1 -1
  590. package/lib/routes/jike/common.js +1 -1
  591. package/lib/routes/jike/user.js +1 -1
  592. package/lib/routes/jingdong/zhongchou.js +3 -3
  593. package/lib/routes/jinritoutiao/keyword.js +5 -7
  594. package/lib/routes/jinshi/index.js +35 -0
  595. package/lib/routes/jpmorganchase/research.js +2 -2
  596. package/lib/routes/juejin/books.js +3 -3
  597. package/lib/routes/juejin/category.js +5 -5
  598. package/lib/routes/juejin/collection.js +3 -2
  599. package/lib/routes/juejin/column.js +31 -0
  600. package/lib/routes/juejin/favorites.js +4 -3
  601. package/lib/routes/juejin/pins.js +28 -5
  602. package/lib/routes/juejin/posts.js +2 -2
  603. package/lib/routes/juejin/tag.js +5 -5
  604. package/lib/routes/juejin/trending.js +10 -6
  605. package/lib/routes/juejin/utils.js +22 -29
  606. package/lib/routes/juesheng/index.js +3 -3
  607. package/lib/routes/justrun/index.js +11 -12
  608. package/lib/routes/jx3/news.js +13 -14
  609. package/lib/routes/kaggle/competitions.js +3 -3
  610. package/lib/routes/kaggle/discussion.js +2 -2
  611. package/lib/routes/kaiyan/index.js +3 -3
  612. package/lib/routes/kaopunews/index.js +28 -0
  613. package/lib/routes/kaoyan/kaoyan.js +1 -1
  614. package/lib/routes/kbs/today.js +56 -0
  615. package/lib/routes/kchuhai/index.js +1 -1
  616. package/lib/routes/keep/user.js +24 -22
  617. package/lib/routes/kenshin/index.js +53 -0
  618. package/lib/routes/keyakizaka46/blog.js +1 -1
  619. package/lib/routes/kingarthur/index.js +59 -0
  620. package/lib/routes/konami/pesmobile.js +31 -0
  621. package/lib/routes/kongfz/people.js +1 -1
  622. package/lib/routes/kongfz/shop.js +19 -20
  623. package/lib/routes/kpmg/insights.js +61 -36
  624. package/lib/routes/kuaibao/index.js +10 -11
  625. package/lib/routes/kuaidi100/utils.js +5 -5
  626. package/lib/routes/langlive/room.js +6 -5
  627. package/lib/routes/latepost/index.js +84 -0
  628. package/lib/routes/latexstudio/home.js +8 -9
  629. package/lib/routes/leetcode/articles.js +22 -4
  630. package/lib/routes/leetcode/check-cn.js +3 -3
  631. package/lib/routes/leetcode/check-us.js +2 -2
  632. package/lib/routes/leetcode/utils.js +47 -49
  633. package/lib/routes/letterboxd/utils.js +11 -12
  634. package/lib/routes/liequtv/room.js +2 -19
  635. package/lib/routes/lifetimes/index.js +99 -0
  636. package/lib/routes/lingyi/index.js +64 -0
  637. package/lib/routes/linkresearcher/index.js +2 -0
  638. package/lib/routes/liquipedia/dota2_matches.js +50 -0
  639. package/lib/routes/liyuan-forums/threads.js +76 -0
  640. package/lib/routes/lizhi/user.js +9 -10
  641. package/lib/routes/lkong/forum.js +1 -1
  642. package/lib/routes/lofter/posts.js +2 -2
  643. package/lib/routes/lofter/tag.js +41 -37
  644. package/lib/routes/logseq/changelog.js +42 -0
  645. package/lib/routes/lolapp/article.js +53 -0
  646. package/lib/routes/lowendtalk/discussion.js +43 -0
  647. package/lib/routes/ltaaa/index.js +69 -0
  648. package/lib/routes/luogu/contest.js +2 -2
  649. package/lib/routes/luogu/daily.js +19 -20
  650. package/lib/routes/lwn/alerts.js +4 -4
  651. package/lib/routes/macau-bolsas/index.js +47 -0
  652. package/lib/routes/macked/app.js +25 -0
  653. package/lib/routes/macwk/soft.js +32 -0
  654. package/lib/routes/mafengwo/note.js +1 -1
  655. package/lib/routes/mafengwo/ziyouxing.js +8 -9
  656. package/lib/routes/magireco/announcements.js +1 -1
  657. package/lib/routes/magireco/event_banner.js +1 -1
  658. package/lib/routes/mail/imap.js +1 -1
  659. package/lib/routes/makeuseof/index.js +59 -0
  660. package/lib/routes/manhuagui/comic.js +9 -0
  661. package/lib/routes/manictime/releases.js +31 -0
  662. package/lib/routes/manxiaosi/book.js +9 -3
  663. package/lib/routes/maoyan/hot.js +9 -11
  664. package/lib/routes/maoyan/hotComplete.js +87 -0
  665. package/lib/routes/maoyan/upcoming.js +6 -8
  666. package/lib/routes/marginnote/tag.js +42 -0
  667. package/lib/routes/mastodon/account_id.js +2 -2
  668. package/lib/routes/mastodon/acct.js +2 -2
  669. package/lib/routes/mastodon/utils.js +5 -5
  670. package/lib/routes/matataki/site/posts/author.js +17 -0
  671. package/lib/routes/matataki/site/posts/favorite.js +42 -0
  672. package/lib/routes/matataki/site/posts/scoreranking.js +15 -0
  673. package/lib/routes/matataki/site/posts/tag.js +16 -0
  674. package/lib/routes/matataki/site/posts/timeranking.js +15 -0
  675. package/lib/routes/matataki/site/posts/token.js +18 -0
  676. package/lib/routes/matataki/utils/matataki-utils.js +125 -0
  677. package/lib/routes/mathpix/blog.js +52 -0
  678. package/lib/routes/mathunion/fields-medal.js +38 -0
  679. package/lib/routes/matters/author.js +41 -42
  680. package/lib/routes/matters/latest.js +55 -40
  681. package/lib/routes/matters/tags.js +48 -42
  682. package/lib/routes/mcbbs/forum.js +8 -8
  683. package/lib/routes/mcbbs/post.js +10 -10
  684. package/lib/routes/mcdonalds/news.js +53 -0
  685. package/lib/routes/mckinsey/index.js +49 -0
  686. package/lib/routes/mediadigest/category.js +130 -0
  687. package/lib/routes/meihua/article.js +10 -11
  688. package/lib/routes/meihua/shots.js +10 -11
  689. package/lib/routes/meipai/user.js +1 -3
  690. package/lib/routes/meipai/utils.js +19 -21
  691. package/lib/routes/meituan/open/announce.js +45 -0
  692. package/lib/routes/melon/chart.js +41 -0
  693. package/lib/routes/mercari/index.js +17 -18
  694. package/lib/routes/method-studios/index.js +4 -4
  695. package/lib/routes/metred/fuli.js +27 -38
  696. package/lib/routes/mhgui/comic.js +53 -0
  697. package/lib/routes/mi/board.js +1 -1
  698. package/lib/routes/mi/crowdfunding.js +1 -0
  699. package/lib/routes/mi/golden.js +2 -2
  700. package/lib/routes/mi/youpin/new.js +6 -2
  701. package/lib/routes/micmicidol/article.js +28 -0
  702. package/lib/routes/micmicidol/latest.js +3 -0
  703. package/lib/routes/micmicidol/parse.js +22 -0
  704. package/lib/routes/micmicidol/search.js +7 -0
  705. package/lib/routes/microsoft-store/updates.js +30 -0
  706. package/lib/routes/mihoyo/bh2.js +2 -2
  707. package/lib/routes/mihoyo/bh3.js +7 -8
  708. package/lib/routes/mind42/index.js +7 -0
  709. package/lib/routes/mind42/search.js +5 -0
  710. package/lib/routes/mind42/tag.js +5 -0
  711. package/lib/routes/mind42/utils.js +47 -0
  712. package/lib/routes/minecraft/version.js +2 -2
  713. package/lib/routes/mingjian/index.js +12 -13
  714. package/lib/routes/miniflux/get_entries.js +264 -0
  715. package/lib/routes/miniflux/get_feeds.js +90 -0
  716. package/lib/routes/missevan/drama.js +25 -8
  717. package/lib/routes/missevan/latest.js +47 -0
  718. package/lib/routes/mitbbs/index.js +54 -0
  719. package/lib/routes/mittrchina/index.js +36 -29
  720. package/lib/routes/mlog-club/projects.js +1 -1
  721. package/lib/routes/mlog-club/topics.js +1 -1
  722. package/lib/routes/mobilism/release.js +7 -8
  723. package/lib/routes/modian/zhongchou.js +61 -0
  724. package/lib/routes/mofcom/article.js +1 -1
  725. package/lib/routes/mofish/index.js +29 -0
  726. package/lib/routes/monotype/article.js +8 -9
  727. package/lib/routes/moxingfans/index.js +2 -2
  728. package/lib/routes/moxingnet/index.js +4 -6
  729. package/lib/routes/mp4ba/index.js +3 -3
  730. package/lib/routes/mp4er/index.js +83 -0
  731. package/lib/routes/mpaypass/main.js +2 -2
  732. package/lib/routes/mpaypass/news.js +2 -2
  733. package/lib/routes/mubu/explore.js +78 -0
  734. package/lib/routes/muchong/index.js +55 -0
  735. package/lib/routes/muchong/journal.js +52 -0
  736. package/lib/routes/mzitu/home.js +1 -1
  737. package/lib/routes/mzitu/tag.js +1 -1
  738. package/lib/routes/mzitu/tags.js +1 -1
  739. package/lib/routes/mzitu/util.js +2 -2
  740. package/lib/routes/nace/blog.js +52 -0
  741. package/lib/routes/nasa/apod-cn.js +26 -24
  742. package/lib/routes/natgeo/natgeo.js +2 -2
  743. package/lib/routes/nature/highlight.js +1 -1
  744. package/lib/routes/nature/news-and-comment.js +25 -27
  745. package/lib/routes/nature/news.js +1 -1
  746. package/lib/routes/nature/research.js +1 -1
  747. package/lib/routes/nautilus/topics.js +1 -1
  748. package/lib/routes/nbd/article.js +4 -4
  749. package/lib/routes/nbd/index.js +49 -0
  750. package/lib/routes/ncm/artist.js +4 -0
  751. package/lib/routes/ncm/djradio.js +1 -1
  752. package/lib/routes/ncm/playlist.js +22 -11
  753. package/lib/routes/ncm/userplaylist.js +1 -1
  754. package/lib/routes/ncm/userplayrecords.js +57 -0
  755. package/lib/routes/netease/ds.js +1 -1
  756. package/lib/routes/netease/dy.js +7 -7
  757. package/lib/routes/netease/dy2.js +62 -0
  758. package/lib/routes/netease/news/special.js +1 -1
  759. package/lib/routes/netease/open/latest.js +1 -1
  760. package/lib/routes/netease/open/vip.js +22 -44
  761. package/lib/routes/netflix/newsroom.js +82 -0
  762. package/lib/routes/newrank/douyin.js +9 -11
  763. package/lib/routes/newrank/utils.js +7 -7
  764. package/lib/routes/newrank/wechat.js +7 -9
  765. package/lib/routes/newsmth/account.js +1 -1
  766. package/lib/routes/newsmth/section.js +11 -12
  767. package/lib/routes/newzmz/index.js +78 -0
  768. package/lib/routes/newzmz/view.js +42 -0
  769. package/lib/routes/nfmovies/index.js +1 -1
  770. package/lib/routes/nga/forum.js +9 -1
  771. package/lib/routes/nhentai/util.js +4 -4
  772. package/lib/routes/niaogebiji/index.js +40 -0
  773. package/lib/routes/nikkei/index.js +2 -2
  774. package/lib/routes/nikkei/news.js +13 -2
  775. package/lib/routes/nintendo/eshop_us.js +3 -6
  776. package/lib/routes/nintendo/utils.js +29 -33
  777. package/lib/routes/noi/index.js +15 -21
  778. package/lib/routes/noi/province-news.js +15 -21
  779. package/lib/routes/noi/rg-news.js +4 -4
  780. package/lib/routes/noi/winners-list.js +16 -21
  781. package/lib/routes/northhouse/index.js +54 -0
  782. package/lib/routes/nosec/index.js +2 -2
  783. package/lib/routes/nosetime/comment.js +3 -3
  784. package/lib/routes/nosetime/home.js +1 -1
  785. package/lib/routes/notefolio/index.js +20 -21
  786. package/lib/routes/novel/axdzs.js +23 -13
  787. package/lib/routes/novel/biquge.js +3 -1
  788. package/lib/routes/novel/biqugeinfo.js +1 -1
  789. package/lib/routes/novel/booksky.js +1 -1
  790. package/lib/routes/novel/dcrsw.js +1 -1
  791. package/lib/routes/novel/ptwxz.js +44 -15
  792. package/lib/routes/novel/shuquge.js +2 -3
  793. package/lib/routes/novel/wenxuemi.js +3 -3
  794. package/lib/routes/novel/zhaishuyuan.js +59 -14
  795. package/lib/routes/now/rank.js +31 -0
  796. package/lib/routes/nowcoder/discuss.js +3 -3
  797. package/lib/routes/nowcoder/jobcenter.js +10 -11
  798. package/lib/routes/npc/index.js +1 -1
  799. package/lib/routes/nvidia/webdriverupdate.js +2 -2
  800. package/lib/routes/nwpu/index.js +26 -0
  801. package/lib/routes/nyaa/search.js +2 -2
  802. package/lib/routes/nytimes/book.js +71 -0
  803. package/lib/routes/nytimes/daily_briefing_chinese.js +61 -0
  804. package/lib/routes/nytimes/index.js +11 -6
  805. package/lib/routes/nytimes/utils.js +23 -3
  806. package/lib/routes/obsidian/announcements.js +22 -0
  807. package/lib/routes/odaily/activity.js +47 -0
  808. package/lib/routes/odaily/newsflash.js +25 -0
  809. package/lib/routes/odaily/post.js +60 -0
  810. package/lib/routes/odaily/user.js +53 -0
  811. package/lib/routes/ofweek/news.js +11 -12
  812. package/lib/routes/one/index.js +1 -1
  813. package/lib/routes/onejav/one.js +1 -1
  814. package/lib/routes/onenotegem/release.js +49 -0
  815. package/lib/routes/openai/blog.js +52 -0
  816. package/lib/routes/or/index.js +54 -0
  817. package/lib/routes/ornl/news.js +47 -0
  818. package/lib/routes/oschina/news.js +1 -1
  819. package/lib/routes/oschina/topic.js +1 -1
  820. package/lib/routes/oschina/u.js +1 -1
  821. package/lib/routes/oschina/user.js +1 -1
  822. package/lib/routes/outagereport/service.js +5 -4
  823. package/lib/routes/p-articles/contributors.js +1 -1
  824. package/lib/routes/p-articles/section.js +1 -1
  825. package/lib/routes/p-articles/utils.js +3 -3
  826. package/lib/routes/paidai/bbs.js +3 -3
  827. package/lib/routes/paidai/index.js +3 -3
  828. package/lib/routes/paidai/news.js +8 -8
  829. package/lib/routes/paidai/utils.js +2 -2
  830. package/lib/routes/parcel/hermesuk.js +1 -1
  831. package/lib/routes/partnershiponai/resources.js +49 -0
  832. package/lib/routes/patchwork.kernel.org/comments.js +2 -2
  833. package/lib/routes/pbc/goutongjiaoliu.js +14 -15
  834. package/lib/routes/pbc/tradeAnnouncement.js +14 -15
  835. package/lib/routes/pcr/news-cn.js +2 -2
  836. package/lib/routes/pcr/news-tw.js +1 -1
  837. package/lib/routes/pediy/topic.js +4 -4
  838. package/lib/routes/people/cpc/24h.js +52 -0
  839. package/lib/routes/people/env.js +4 -4
  840. package/lib/routes/people/opinion.js +4 -4
  841. package/lib/routes/people/xjpjh.js +4 -4
  842. package/lib/routes/pgyer/app.js +9 -9
  843. package/lib/routes/phoronix/index.js +111 -0
  844. package/lib/routes/phrack/index.js +39 -0
  845. package/lib/routes/pianyuan/app.js +4 -4
  846. package/lib/routes/piaohua/hot.js +8 -9
  847. package/lib/routes/piapro/public.js +1 -1
  848. package/lib/routes/piapro/user.js +1 -1
  849. package/lib/routes/picuki/profile.js +53 -14
  850. package/lib/routes/pincong/hot.js +33 -0
  851. package/lib/routes/pincong/index.js +40 -0
  852. package/lib/routes/pincong/topic.js +32 -0
  853. package/lib/routes/pingwest/utils.js +4 -1
  854. package/lib/routes/pixiv/api/getBookmarks.js +4 -4
  855. package/lib/routes/pixiv/api/getIllustFollows.js +3 -3
  856. package/lib/routes/pixiv/api/getIllusts.js +4 -5
  857. package/lib/routes/pixiv/api/getRanking.js +4 -4
  858. package/lib/routes/pixiv/api/getUserDetail.js +4 -4
  859. package/lib/routes/pixiv/api/searchIllust.js +3 -3
  860. package/lib/routes/pixiv/api/searchPopularIllust.js +3 -3
  861. package/lib/routes/pixiv/bookmarks.js +9 -14
  862. package/lib/routes/pixiv/constants.js +1 -1
  863. package/lib/routes/pixiv/illustfollow.js +10 -12
  864. package/lib/routes/pixiv/pixiv-got.js +65 -0
  865. package/lib/routes/pixiv/ranking.js +24 -14
  866. package/lib/routes/pixiv/search.js +12 -17
  867. package/lib/routes/pixiv/token.js +44 -59
  868. package/lib/routes/pixiv/user.js +8 -14
  869. package/lib/routes/pixiv/utils.js +17 -0
  870. package/lib/routes/pjsk/news.js +49 -0
  871. package/lib/routes/pmcaff/feed.js +6 -6
  872. package/lib/routes/pmcaff/list.js +2 -2
  873. package/lib/routes/pmcaff/user.js +6 -6
  874. package/lib/routes/pnas/index.js +1 -1
  875. package/lib/routes/polar/blog.js +47 -0
  876. package/lib/routes/popiask/tapechat_questions.js +43 -0
  877. package/lib/routes/popyard/index.js +51 -53
  878. package/lib/routes/pornhub/category_url.js +3 -2
  879. package/lib/routes/pornhub/model.js +4 -3
  880. package/lib/routes/pornhub/pornstar.js +4 -3
  881. package/lib/routes/pornhub/users.js +4 -2
  882. package/lib/routes/potplayer/update.js +42 -0
  883. package/lib/routes/prestige-av/series.js +42 -0
  884. package/lib/routes/processon/popular.js +51 -0
  885. package/lib/routes/producthunt/today.js +2 -2
  886. package/lib/routes/project-zero-issues/index.js +2 -2
  887. package/lib/routes/proletar/index.js +51 -0
  888. package/lib/routes/ps/product.js +3 -3
  889. package/lib/routes/ps/ps4updates.js +3 -3
  890. package/lib/routes/psnine/game.js +1 -1
  891. package/lib/routes/psnine/index.js +1 -1
  892. package/lib/routes/psnine/news.js +37 -16
  893. package/lib/routes/psnine/node.js +54 -0
  894. package/lib/routes/psnine/shuzhe.js +1 -1
  895. package/lib/routes/psnine/trade.js +1 -1
  896. package/lib/routes/pubmed/trending.js +24 -28
  897. package/lib/routes/putonghua/hangzhou.js +45 -0
  898. package/lib/routes/qidian/forum.js +1 -1
  899. package/lib/routes/qidian/free-next.js +2 -2
  900. package/lib/routes/qidian/free.js +2 -2
  901. package/lib/routes/qingting/channel.js +7 -8
  902. package/lib/routes/qlwb/city.js +8 -9
  903. package/lib/routes/qlwb/news.js +8 -9
  904. package/lib/routes/qnap/release-notes.js +50 -0
  905. package/lib/routes/qstheory/index.js +122 -0
  906. package/lib/routes/qtfyfl/category.js +3 -3
  907. package/lib/routes/qttabbar/change-log.js +33 -0
  908. package/lib/routes/quantamagazine/archive.js +3 -5
  909. package/lib/routes/questmobile/report.js +122 -0
  910. package/lib/routes/qutoutiao/category.js +2 -2
  911. package/lib/routes/qzcea/index.js +12 -13
  912. package/lib/routes/radio/radio.js +2 -2
  913. package/lib/routes/{kaopunews/all.js → react/react-native-weekly.js} +13 -8
  914. package/lib/routes/readhub/category.js +1 -1
  915. package/lib/routes/remote-work/index.js +8 -9
  916. package/lib/routes/rescuetime/release-notes.js +37 -0
  917. package/lib/routes/{medsci/recommend.js → researchgate/publications.js} +19 -11
  918. package/lib/routes/reuters/channel.js +3 -3
  919. package/lib/routes/reuters/theWire.js +3 -3
  920. package/lib/routes/rf/article.js +8 -9
  921. package/lib/routes/rfa/index.js +46 -0
  922. package/lib/routes/right/forum.js +67 -0
  923. package/lib/routes/rmlt/idea.js +54 -0
  924. package/lib/routes/rss3/blog.js +47 -0
  925. package/lib/routes/ruby-china/utils.js +2 -2
  926. package/lib/routes/s-hentai/index.js +64 -0
  927. package/lib/routes/sagawa/index.js +67 -0
  928. package/lib/routes/sakurazaka46/blog.js +1 -1
  929. package/lib/routes/samsungmembers/latest.js +8 -9
  930. package/lib/routes/saraba1st/thread.js +13 -16
  931. package/lib/routes/sbs/chinese.js +70 -0
  932. package/lib/routes/scboy/thread.js +50 -0
  933. package/lib/routes/sciencemag/cover.js +2 -4
  934. package/lib/routes/sciencemag/current.js +2 -2
  935. package/lib/routes/sciencemag/early.js +4 -8
  936. package/lib/routes/sciencenet/blog.js +56 -0
  937. package/lib/routes/scmp/index.js +78 -79
  938. package/lib/routes/secrss/author.js +22 -0
  939. package/lib/routes/secrss/category.js +25 -0
  940. package/lib/routes/security/pulses.js +2 -2
  941. package/lib/routes/segmentfault/channel.js +4 -4
  942. package/lib/routes/segmentfault/user.js +4 -4
  943. package/lib/routes/semiconductors/latest-news.js +47 -0
  944. package/lib/routes/sesame/release_notes.js +30 -0
  945. package/lib/routes/sexinsex/index.js +5 -5
  946. package/lib/routes/shinybbs/index.js +60 -0
  947. package/lib/routes/shinybbs/latest.js +57 -0
  948. package/lib/routes/shinybbs/p.js +38 -0
  949. package/lib/routes/showroom/room.js +3 -3
  950. package/lib/routes/shuax/project.js +37 -0
  951. package/lib/routes/shuhui/comics.js +4 -4
  952. package/lib/routes/simonsfoundation/articles.js +1 -1
  953. package/lib/routes/simpread/changelog.js +79 -0
  954. package/lib/routes/simpread/notice.js +20 -0
  955. package/lib/routes/sina/chuangshiji.js +3 -3
  956. package/lib/routes/sina/discovery.js +3 -3
  957. package/lib/routes/sina/finance.js +2 -2
  958. package/lib/routes/sina/rollnews.js +2 -2
  959. package/lib/routes/sina/sports.js +14 -15
  960. package/lib/routes/siren/index.js +33 -0
  961. package/lib/routes/sixthtone/news.js +1 -1
  962. package/lib/routes/sketch/beta.js +20 -70
  963. package/lib/routes/sketch/updates.js +3 -3
  964. package/lib/routes/skysports/news.js +53 -0
  965. package/lib/routes/smzdm/article.js +6 -5
  966. package/lib/routes/smzdm/baoliao.js +4 -5
  967. package/lib/routes/smzdm/haowen.js +6 -5
  968. package/lib/routes/smzdm/haowen_fenlei.js +6 -6
  969. package/lib/routes/smzdm/keyword.js +4 -3
  970. package/lib/routes/smzdm/ranking.js +2 -2
  971. package/lib/routes/sobooks/date.js +7 -0
  972. package/lib/routes/sobooks/index.js +7 -0
  973. package/lib/routes/sobooks/tag.js +7 -0
  974. package/lib/routes/sobooks/utils.js +49 -0
  975. package/lib/routes/socialbeta/home.js +9 -10
  976. package/lib/routes/soomal/topics.js +6 -6
  977. package/lib/routes/soul/hot.js +17 -9
  978. package/lib/routes/soul/index.js +5 -5
  979. package/lib/routes/soundcloud/utils.js +3 -3
  980. package/lib/routes/sse/sserules.js +49 -0
  981. package/lib/routes/ssmh/category.js +50 -0
  982. package/lib/routes/ssmh/index.js +2 -2
  983. package/lib/routes/sspai/activity.js +4 -4
  984. package/lib/routes/sspai/author.js +3 -3
  985. package/lib/routes/sspai/column.js +6 -6
  986. package/lib/routes/sspai/matrix.js +3 -3
  987. package/lib/routes/sspai/series.js +34 -16
  988. package/lib/routes/sspai/shortcutsGallery.js +1 -1
  989. package/lib/routes/sspai/tag.js +5 -5
  990. package/lib/routes/sspai/topic.js +4 -4
  991. package/lib/routes/sspai/topics.js +3 -3
  992. package/lib/routes/ssydt/article.js +58 -0
  993. package/lib/routes/stcn/data.js +84 -0
  994. package/lib/routes/stcn/kuaixun.js +91 -0
  995. package/lib/routes/stcn/news.js +18 -19
  996. package/lib/routes/stork/keyword.js +3 -3
  997. package/lib/routes/swjtu/tl/news.js +1 -1
  998. package/lib/routes/sznews/press.js +50 -0
  999. package/lib/routes/sznews/ranking.js +56 -0
  1000. package/lib/routes/szse/inquire.js +1 -1
  1001. package/lib/routes/szse/notice.js +3 -3
  1002. package/lib/routes/szse/projectdynamic.js +103 -0
  1003. package/lib/routes/t66y/index.js +7 -7
  1004. package/lib/routes/t66y/post.js +2 -2
  1005. package/lib/routes/tahui/rptlist.js +11 -12
  1006. package/lib/routes/tam/forecast.js +53 -0
  1007. package/lib/routes/tanchinese/index.js +53 -0
  1008. package/lib/routes/taobao/zhongchou.js +1 -1
  1009. package/lib/routes/taptap/changelog.js +1 -1
  1010. package/lib/routes/taptap/review.js +1 -1
  1011. package/lib/routes/taptap/topic.js +1 -1
  1012. package/lib/routes/technologyreview/index.js +42 -0
  1013. package/lib/routes/technologyreview/topic.js +35 -0
  1014. package/lib/routes/telecompaper/news.js +13 -20
  1015. package/lib/routes/telecompaper/search.js +76 -0
  1016. package/lib/routes/telegram/blog.js +2 -2
  1017. package/lib/routes/telegram/channel.js +11 -9
  1018. package/lib/routes/tencent/bigdata/index.js +13 -14
  1019. package/lib/routes/tencent/bugly/changelog.js +3 -3
  1020. package/lib/routes/tencent/egame/room.js +4 -4
  1021. package/lib/routes/tencent/factcheck/index.js +13 -4
  1022. package/lib/routes/tencent/gameinstitute/community.js +4 -4
  1023. package/lib/routes/tencent/guyu/channel.js +5 -5
  1024. package/lib/routes/tencent/news/author.js +3 -3
  1025. package/lib/routes/tencent/pvp/newsindex.js +1 -1
  1026. package/lib/routes/tencent/qcloud/mlvb/changelog.js +1 -1
  1027. package/lib/routes/tencent/video/playlist.js +2 -2
  1028. package/lib/routes/tencent/wechat/csm.js +1 -1
  1029. package/lib/routes/tencent/wechat/ershcimi.js +10 -11
  1030. package/lib/routes/tencent/wechat/feeds.js +47 -0
  1031. package/lib/routes/tencent/wechat/miniprogram/devtools.js +4 -4
  1032. package/lib/routes/tencent/wechat/miniprogram/framework.js +4 -4
  1033. package/lib/routes/tencent/wechat/miniprogram/plugins.js +1 -1
  1034. package/lib/routes/tencent/wechat/miniprogram/wxcloud.js +6 -6
  1035. package/lib/routes/tencent/wechat/mp.js +13 -6
  1036. package/lib/routes/tencent/wechat/msgalbum.js +4 -4
  1037. package/lib/routes/tencent/wechat/uread.js +2 -2
  1038. package/lib/routes/tencent/wechat/wechat-open/community/announce.js +1 -1
  1039. package/lib/routes/tencent/wechat/wechat-open/community/question.js +1 -1
  1040. package/lib/routes/tencent/wechat/wechat-open/pay/announce.js +2 -4
  1041. package/lib/routes/tencent/wechat/wemp.js +2 -2
  1042. package/lib/routes/tencent/wechat/wxnmh.js +46 -0
  1043. package/lib/routes/tesla/update.js +42 -0
  1044. package/lib/routes/the-economist/download.js +30 -0
  1045. package/lib/routes/thebrain/blog.js +56 -0
  1046. package/lib/routes/thepaper/839studio/category.js +1 -1
  1047. package/lib/routes/thepaper/utils.js +1 -1
  1048. package/lib/routes/thrillist/index.js +67 -0
  1049. package/lib/routes/thunderbird/release.js +3 -3
  1050. package/lib/routes/tianyancha/hot.js +48 -0
  1051. package/lib/routes/tieba/post.js +7 -7
  1052. package/lib/routes/tieba/user.js +36 -0
  1053. package/lib/routes/tingdiantz/95598.js +46 -0
  1054. package/lib/routes/tingshen/tingshen.js +28 -0
  1055. package/lib/routes/tingshuitz/dalian.js +2 -2
  1056. package/lib/routes/tingshuitz/guangzhou.js +1 -2
  1057. package/lib/routes/tingshuitz/hangzhou.js +1 -1
  1058. package/lib/routes/tingshuitz/wuhan.js +1 -1
  1059. package/lib/routes/tingshuitz/xiaoshan.js +1 -1
  1060. package/lib/routes/tongli/news.js +45 -0
  1061. package/lib/routes/topbook/overview.js +47 -0
  1062. package/lib/routes/topbook/today.js +39 -0
  1063. package/lib/routes/tophub/index.js +2 -2
  1064. package/lib/routes/totalcommander/whatsnew.js +32 -0
  1065. package/lib/routes/trakt/collection.js +31 -0
  1066. package/lib/routes/tuicool/mags.js +3 -3
  1067. package/lib/routes/twitter/developer-api/search.js +22 -0
  1068. package/lib/routes/twitter/developer-api/user.js +29 -0
  1069. package/lib/routes/twitter/followings.js +10 -1
  1070. package/lib/routes/twitter/keyword.js +5 -18
  1071. package/lib/routes/twitter/likes.js +1 -1
  1072. package/lib/routes/twitter/list.js +1 -1
  1073. package/lib/routes/twitter/media.js +7 -0
  1074. package/lib/routes/twitter/user.js +5 -38
  1075. package/lib/routes/twitter/utils.js +307 -15
  1076. package/lib/routes/twitter/web-api/media.js +20 -0
  1077. package/lib/routes/twitter/web-api/search.js +16 -0
  1078. package/lib/routes/twitter/web-api/twitter-api.js +123 -0
  1079. package/lib/routes/twitter/web-api/twitter-got.js +87 -0
  1080. package/lib/routes/twitter/web-api/user.js +32 -0
  1081. package/lib/routes/twmanhuagui/comic.js +53 -0
  1082. package/lib/routes/twreporter/category.js +36 -0
  1083. package/lib/routes/twreporter/fetch_article.js +66 -0
  1084. package/lib/routes/twreporter/newest.js +34 -0
  1085. package/lib/routes/twreporter/photography.js +57 -0
  1086. package/lib/routes/typora/changelog.js +4 -4
  1087. package/lib/routes/udn/global.js +61 -0
  1088. package/lib/routes/ui-cn/article.js +11 -4
  1089. package/lib/routes/uisdc/hangye.js +49 -0
  1090. package/lib/routes/uisdc/news.js +34 -0
  1091. package/lib/routes/uisdc/talk.js +58 -0
  1092. package/lib/routes/uisdc/topic.js +55 -0
  1093. package/lib/routes/uisdc/zt.js +65 -0
  1094. package/lib/routes/umass/amherst/eceseminar.js +40 -0
  1095. package/lib/routes/uniqlo/stylingbook.js +1 -1
  1096. package/lib/routes/unit-image/films.js +3 -3
  1097. package/lib/routes/universities/ahau/cs_news/utils.js +3 -3
  1098. package/lib/routes/universities/ahau/jwc/utils.js +3 -3
  1099. package/lib/routes/universities/ahau/main/utils.js +3 -3
  1100. package/lib/routes/universities/ahmu/news.js +2 -2
  1101. package/lib/routes/universities/ahut/cstzgg.js +24 -43
  1102. package/lib/routes/universities/ahut/jwc.js +22 -41
  1103. package/lib/routes/universities/ahut/news.js +23 -43
  1104. package/lib/routes/universities/bit/bityjs.js +1 -1
  1105. package/lib/routes/universities/bit/cs/cs.js +3 -0
  1106. package/lib/routes/universities/bit/cs/utils.js +8 -5
  1107. package/lib/routes/universities/bit/jwc/jwc.js +3 -0
  1108. package/lib/routes/universities/bit/jwc/utils.js +8 -5
  1109. package/lib/routes/universities/bjfu/grs.js +3 -3
  1110. package/lib/routes/universities/bjfu/jwc/utils.js +3 -4
  1111. package/lib/routes/universities/bjfu/kjc.js +3 -3
  1112. package/lib/routes/universities/bjfu/news/utils.js +3 -4
  1113. package/lib/routes/universities/bjtu/gs/index.js +130 -0
  1114. package/lib/routes/universities/buaa/utils.js +3 -3
  1115. package/lib/routes/universities/bupt/grs.js +3 -3
  1116. package/lib/routes/universities/bupt/news.js +7 -0
  1117. package/lib/routes/universities/bupt/portal.js +7 -0
  1118. package/lib/routes/universities/bupt/utils.js +4 -4
  1119. package/lib/routes/universities/bupt/yz.js +3 -3
  1120. package/lib/routes/universities/bwu/utils.js +7 -7
  1121. package/lib/routes/universities/cas/cg/index.js +11 -12
  1122. package/lib/routes/universities/cas/iee/kydt.js +11 -12
  1123. package/lib/routes/universities/cas/mesalab/kb.js +2 -2
  1124. package/lib/routes/universities/cauele/cauele.js +1 -1
  1125. package/lib/routes/universities/cauyjs/cauyjs.js +1 -1
  1126. package/lib/routes/universities/ccnu/career.js +1 -1
  1127. package/lib/routes/universities/ccnu/ccnucs.js +1 -1
  1128. package/lib/routes/universities/ccnu/ccnuwu.js +1 -1
  1129. package/lib/routes/universities/ccnu/ccnuyjs.js +1 -1
  1130. package/lib/routes/universities/cpu/home.js +5 -5
  1131. package/lib/routes/universities/cpu/jwc.js +2 -2
  1132. package/lib/routes/universities/cpu/yjsy.js +2 -2
  1133. package/lib/routes/universities/cqu/jwc/announcement.js +23 -25
  1134. package/lib/routes/universities/cqu/net/info.js +4 -4
  1135. package/lib/routes/universities/cqu/news/tz.js +7 -7
  1136. package/lib/routes/universities/cqu/news/utils.js +4 -4
  1137. package/lib/routes/universities/cqu/sci/info.js +4 -4
  1138. package/lib/routes/universities/cqu/youth/info.js +4 -4
  1139. package/lib/routes/universities/cqust/jw.js +1 -1
  1140. package/lib/routes/universities/cqust/lib.js +1 -1
  1141. package/lib/routes/universities/cqut/cqut-libnews.js +32 -0
  1142. package/lib/routes/universities/cqut/cqut-news.js +31 -0
  1143. package/lib/routes/universities/cqwu/news.js +39 -0
  1144. package/lib/routes/universities/csu/job.js +1 -1
  1145. package/lib/routes/universities/cucyjs/cucyjs.js +1 -1
  1146. package/lib/routes/universities/cug/gcxy/index.js +114 -0
  1147. package/lib/routes/{cug → universities/cug}/graduate.js +0 -0
  1148. package/lib/routes/universities/cug/news.js +63 -0
  1149. package/lib/routes/{cug → universities/cug}/undergraduate.js +3 -3
  1150. package/lib/routes/{cug → universities/cug}/xgxy.js +0 -0
  1151. package/lib/routes/universities/dlmu/grs/zsgz.js +8 -9
  1152. package/lib/routes/universities/dlu/jiaowu/news.js +25 -33
  1153. package/lib/routes/universities/dpu/jiaowu/news.js +1 -1
  1154. package/lib/routes/universities/dpu/wlfw/news.js +1 -1
  1155. package/lib/routes/universities/dut/index.js +60 -0
  1156. package/lib/routes/universities/dut/subsite.js +50 -0
  1157. package/lib/routes/universities/ecnuyjs/ecnuyjs.js +1 -1
  1158. package/lib/routes/universities/ecustyjs/ecustyjs.js +1 -1
  1159. package/lib/routes/universities/fudan/cce.js +52 -0
  1160. package/lib/routes/universities/fzu/news.js +61 -0
  1161. package/lib/routes/universities/fzu/news_min.js +44 -0
  1162. package/lib/routes/universities/gdou/jwc/utils.js +3 -4
  1163. package/lib/routes/universities/gdut/news.js +5 -5
  1164. package/lib/routes/universities/gzmtu/jwc/index.js +21 -0
  1165. package/lib/routes/universities/gzmtu/jwc/utils.js +86 -0
  1166. package/lib/routes/universities/gzmtu/tsg/index.js +21 -0
  1167. package/lib/routes/universities/gzmtu/tsg/utils.js +86 -0
  1168. package/lib/routes/universities/gzyjs/gzyjs.js +1 -1
  1169. package/lib/routes/universities/harvard/health/blog.js +51 -0
  1170. package/lib/routes/universities/hbut/cs.js +2 -2
  1171. package/lib/routes/universities/hbut/news.js +2 -2
  1172. package/lib/routes/universities/henu/news.js +1 -1
  1173. package/lib/routes/universities/hit/today.js +7 -7
  1174. package/lib/routes/universities/hitsz/article.js +43 -0
  1175. package/lib/routes/universities/hitwh/today.js +19 -20
  1176. package/lib/routes/universities/hnust/art/index.js +8 -3
  1177. package/lib/routes/universities/hnust/chem/index.js +2 -2
  1178. package/lib/routes/universities/hnust/computer/index.js +2 -2
  1179. package/lib/routes/universities/hnust/graduate/index.js +2 -2
  1180. package/lib/routes/universities/hnust/jwc/index.js +9 -5
  1181. package/lib/routes/universities/hubu/news.js +1 -1
  1182. package/lib/routes/universities/hust/aia/news.js +1 -1
  1183. package/lib/routes/universities/hust/aia/notice.js +1 -1
  1184. package/lib/routes/universities/hustyjs/hustyjs.js +1 -1
  1185. package/lib/routes/universities/jlbtc/index.js +49 -0
  1186. package/lib/routes/universities/jlbtc/jwc.js +49 -0
  1187. package/lib/routes/universities/jlbtc/kyc.js +49 -0
  1188. package/lib/routes/universities/jnu/yw/index.js +4 -4
  1189. package/lib/routes/universities/ju/jwc.js +1 -1
  1190. package/lib/routes/universities/lit/jwc.js +1 -1
  1191. package/lib/routes/universities/lit/tw.js +1 -1
  1192. package/lib/routes/universities/lit/xwzx.js +1 -1
  1193. package/lib/routes/universities/lntu/jwnews.js +34 -14
  1194. package/lib/routes/universities/lyu/news/utils.js +3 -4
  1195. package/lib/routes/universities/mit/csail/news.js +51 -0
  1196. package/lib/routes/universities/mit/graduateadmissions.js +4 -4
  1197. package/lib/routes/universities/mit/ocw-top.js +39 -0
  1198. package/lib/routes/universities/nchu/jwc.js +1 -1
  1199. package/lib/routes/universities/nciae/news.js +3 -3
  1200. package/lib/routes/universities/nciae/tzgg.js +3 -3
  1201. package/lib/routes/universities/nciae/xsxx.js +3 -3
  1202. package/lib/routes/universities/neu/news.js +2 -2
  1203. package/lib/routes/universities/njfu/jwc.js +23 -13
  1204. package/lib/routes/universities/njtech/jwc.js +1 -1
  1205. package/lib/routes/universities/nku/jwc/index.js +1 -1
  1206. package/lib/routes/universities/nuaa/cs/index.js +3 -3
  1207. package/lib/routes/universities/nuaa/yjsy/yjsy.js +12 -22
  1208. package/lib/routes/universities/nuc/index.js +8 -3
  1209. package/lib/routes/universities/nudt/yjszs.js +14 -15
  1210. package/lib/routes/universities/nuist/bulletin.js +1 -1
  1211. package/lib/routes/universities/nuist/cas.js +2 -2
  1212. package/lib/routes/universities/nuist/jwc.js +2 -2
  1213. package/lib/routes/universities/nuist/library/lib.js +1 -1
  1214. package/lib/routes/universities/nuist/scs.js +2 -2
  1215. package/lib/routes/universities/nuist/sese.js +2 -2
  1216. package/lib/routes/universities/nuist/xgc.js +2 -2
  1217. package/lib/routes/universities/nuist/yjs.js +2 -2
  1218. package/lib/routes/universities/nwafu/54youth.js +28 -0
  1219. package/lib/routes/universities/nwafu/cie.js +28 -0
  1220. package/lib/routes/universities/nwafu/gs.js +28 -0
  1221. package/lib/routes/universities/nwafu/jcc.js +28 -0
  1222. package/lib/routes/universities/nwafu/jiaowu.js +28 -0
  1223. package/lib/routes/universities/nwafu/lib.js +28 -0
  1224. package/lib/routes/universities/nwafu/news.js +28 -0
  1225. package/lib/routes/universities/nwafu/nic.js +28 -0
  1226. package/lib/routes/universities/nwafu/yjshy.js +28 -0
  1227. package/lib/routes/universities/outele/outele.js +1 -1
  1228. package/lib/routes/universities/outyjs/outyjs.js +1 -1
  1229. package/lib/routes/universities/pku/bbs/hot.js +21 -22
  1230. package/lib/routes/universities/pku/pkuyjs.js +1 -1
  1231. package/lib/routes/universities/scauyjs/scauyjs.js +1 -1
  1232. package/lib/routes/universities/scnu/scnucs.js +1 -1
  1233. package/lib/routes/universities/scnu/scnuyjs.js +1 -1
  1234. package/lib/routes/universities/sctu/jwc/index.js +1 -1
  1235. package/lib/routes/universities/scu/jwc.js +6 -6
  1236. package/lib/routes/universities/scu/xg.js +5 -5
  1237. package/lib/routes/universities/scut/jwc/news.js +1 -1
  1238. package/lib/routes/universities/scut/jwc/notice.js +1 -1
  1239. package/lib/routes/universities/scut/jwc/school.js +121 -0
  1240. package/lib/routes/universities/scut/scutyjs.js +7 -2
  1241. package/lib/routes/universities/scut/seie/news_center.js +57 -0
  1242. package/lib/routes/universities/scvtc/xygg.js +10 -11
  1243. package/lib/routes/universities/seu/cse/index.js +2 -2
  1244. package/lib/routes/universities/shanghaitech/activity.js +10 -11
  1245. package/lib/routes/universities/shmtu/jwc.js +12 -9
  1246. package/lib/routes/universities/shmtu/www.js +4 -4
  1247. package/lib/routes/universities/shou/www.js +3 -3
  1248. package/lib/routes/universities/shu/index.js +75 -0
  1249. package/lib/routes/universities/shu/jwc.js +8 -10
  1250. package/lib/routes/universities/sjtu/gs/tzgg.js +1 -1
  1251. package/lib/routes/universities/sjtu/jwc.js +1 -1
  1252. package/lib/routes/universities/sjtu/tongqu/activity.js +3 -1
  1253. package/lib/routes/universities/slu/utils.js +8 -2
  1254. package/lib/routes/universities/sustech/bidding.js +34 -0
  1255. package/lib/routes/universities/sustech/newshub-zh.js +35 -0
  1256. package/lib/routes/universities/sustyjs/sustyjs.js +1 -1
  1257. package/lib/routes/universities/swufe/seie/index.js +2 -2
  1258. package/lib/routes/universities/swust/cs.js +1 -1
  1259. package/lib/routes/universities/swust/helper.js +1 -1
  1260. package/lib/routes/universities/swust/jwc_news.js +3 -3
  1261. package/lib/routes/universities/swust/jwc_notice.js +3 -3
  1262. package/lib/routes/universities/szu/yz/index.js +2 -2
  1263. package/lib/routes/universities/szu/yz/utils.js +4 -4
  1264. package/lib/routes/universities/szuyjs/szuyjs.js +1 -1
  1265. package/lib/routes/universities/thu/career.js +35 -18
  1266. package/lib/routes/universities/thu/index.js +1 -1
  1267. package/lib/routes/universities/tju/sse/_article.js +2 -2
  1268. package/lib/routes/universities/tjuyjs/tjuyjs.js +1 -1
  1269. package/lib/routes/universities/tynu/tynu.js +1 -1
  1270. package/lib/routes/universities/uestc/auto.js +7 -7
  1271. package/lib/routes/universities/uestc/cs.js +7 -7
  1272. package/lib/routes/universities/uestc/gr.js +46 -0
  1273. package/lib/routes/universities/uestc/is.js +102 -0
  1274. package/lib/routes/universities/uestc/sice.js +64 -0
  1275. package/lib/routes/universities/upc/jsj.js +2 -2
  1276. package/lib/routes/universities/upc/main.js +2 -2
  1277. package/lib/routes/universities/upcyjs/upcyjs.js +1 -1
  1278. package/lib/routes/universities/usst/jwc.js +3 -3
  1279. package/lib/routes/universities/ustc/job.js +192 -0
  1280. package/lib/routes/universities/ustc/jwc/index.js +3 -3
  1281. package/lib/routes/universities/utdallas/isso.js +54 -0
  1282. package/lib/routes/universities/whu/news.js +1 -1
  1283. package/lib/routes/universities/wtu/index.js +34 -0
  1284. package/lib/routes/universities/xjtu/dean.js +3 -3
  1285. package/lib/routes/universities/xjtu/ee.js +44 -0
  1286. package/lib/routes/universities/xjtu/gs/tzgg.js +7 -8
  1287. package/lib/routes/universities/xjtu/international.js +2 -2
  1288. package/lib/routes/universities/xjtu/job.js +50 -0
  1289. package/lib/routes/universities/xmu/aero.js +63 -0
  1290. package/lib/routes/universities/xynu/zkb/index.js +58 -0
  1291. package/lib/routes/universities/ynnu/edu/base64.js +351 -0
  1292. package/lib/routes/universities/ynnu/edu/news.js +109 -0
  1293. package/lib/routes/universities/ynu/grs/qttz.js +1 -1
  1294. package/lib/routes/universities/ynu/grs/zytz.js +1 -1
  1295. package/lib/routes/universities/ynu/home/main.js +1 -1
  1296. package/lib/routes/universities/ynu/jwc/zytz.js +1 -1
  1297. package/lib/routes/universities/ynu/utils.js +6 -6
  1298. package/lib/routes/universities/yzu/home.js +3 -3
  1299. package/lib/routes/universities/yzu/yjszs.js +3 -3
  1300. package/lib/routes/universities/zjgsu/tzgg/utils.js +3 -3
  1301. package/lib/routes/universities/zju/career/index.js +2 -2
  1302. package/lib/routes/universities/zju/cst/index.js +2 -2
  1303. package/lib/routes/universities/zju/grs/index.js +2 -2
  1304. package/lib/routes/universities/zju/list.js +3 -3
  1305. package/lib/routes/universities/zju/physics/index.js +2 -2
  1306. package/lib/routes/universities/zjut/design.js +4 -4
  1307. package/lib/routes/universities/zjut/index.js +4 -4
  1308. package/lib/routes/universities/zkyai/zkyai.js +1 -1
  1309. package/lib/routes/universities/zkyyjs/zkyyjs.js +1 -1
  1310. package/lib/routes/universities/zzuli/campus/index.js +1 -1
  1311. package/lib/routes/universities/zzuli/yjsc/index.js +1 -1
  1312. package/lib/routes/us/cia/foia-annual-report.js +29 -0
  1313. package/lib/routes/us/supremecourt/argument_audio.js +58 -0
  1314. package/lib/routes/us/treasury/press-releases.js +50 -0
  1315. package/lib/routes/us/ustr/press-releases.js +50 -0
  1316. package/lib/routes/uwants/index.js +70 -0
  1317. package/lib/routes/v2ex/tab.js +1 -1
  1318. package/lib/routes/verfghbw/press.js +52 -0
  1319. package/lib/routes/vgn/index.js +27 -0
  1320. package/lib/routes/voa/day-photos.js +54 -0
  1321. package/lib/routes/voa/index.js +54 -0
  1322. package/lib/routes/vocus/user.js +1 -1
  1323. package/lib/routes/vocus/utils.js +3 -3
  1324. package/lib/routes/vol/lastupdate.js +5 -3
  1325. package/lib/routes/vuevideo/user.js +3 -3
  1326. package/lib/routes/vulture/utils.js +11 -11
  1327. package/lib/routes/wainao/index.js +46 -0
  1328. package/lib/routes/wanwansub/index.js +57 -0
  1329. package/lib/routes/wanwansub/info.js +44 -0
  1330. package/lib/routes/weatheralarm/index.js +2 -2
  1331. package/lib/routes/webtoons/naver.js +1 -1
  1332. package/lib/routes/weexcn/index.js +6 -6
  1333. package/lib/routes/weforum/report.js +11 -12
  1334. package/lib/routes/wegene/column.js +1 -1
  1335. package/lib/routes/wegene/newest.js +1 -1
  1336. package/lib/routes/weibo/keyword.js +18 -5
  1337. package/lib/routes/weibo/search/hot.js +1 -2
  1338. package/lib/routes/weibo/super_index.js +6 -4
  1339. package/lib/routes/weibo/timeline.js +14 -14
  1340. package/lib/routes/weibo/user.js +40 -33
  1341. package/lib/routes/weibo/utils.js +168 -22
  1342. package/lib/routes/weidian/goods.js +1 -1
  1343. package/lib/routes/wenxuecity/bbs.js +2 -2
  1344. package/lib/routes/wenxuecity/blog.js +3 -3
  1345. package/lib/routes/wenxuecity/hot.js +2 -2
  1346. package/lib/routes/wenxuecity/news.js +17 -18
  1347. package/lib/routes/westore/new.js +1 -1
  1348. package/lib/routes/whalegogo/home.js +2 -2
  1349. package/lib/routes/whalegogo/portal.js +2 -2
  1350. package/lib/routes/whb/zhuzhan.js +7 -6
  1351. package/lib/routes/who/news-room.js +2 -2
  1352. package/lib/routes/who/news.js +43 -0
  1353. package/lib/routes/who/speeches.js +45 -0
  1354. package/lib/routes/wineyun/index.js +2 -2
  1355. package/lib/routes/worldhappiness/archive.js +49 -0
  1356. package/lib/routes/worldhappiness/blog.js +47 -0
  1357. package/lib/routes/woshipm/bookmarks.js +3 -3
  1358. package/lib/routes/woshipm/latest.js +4 -4
  1359. package/lib/routes/woshipm/popular.js +4 -4
  1360. package/lib/routes/woshipm/user_article.js +27 -39
  1361. package/lib/routes/woshipm/wen.js +3 -3
  1362. package/lib/routes/wsj/index.js +139 -0
  1363. package/lib/routes/wukong/user.js +3 -3
  1364. package/lib/routes/x-mol/news.js +8 -8
  1365. package/lib/routes/x-mol/paper.js +8 -8
  1366. package/lib/routes/x410/news.js +46 -0
  1367. package/lib/routes/x6d/index.js +11 -12
  1368. package/lib/routes/xiaoheihe/news.js +2 -1
  1369. package/lib/routes/xiaoheihe/user.js +38 -27
  1370. package/lib/routes/xiaohongshu/board.js +5 -5
  1371. package/lib/routes/xiaohongshu/user.js +6 -6
  1372. package/lib/routes/xiaoyuzhou/pickup.js +60 -52
  1373. package/lib/routes/xici/index.js +1 -1
  1374. package/lib/routes/ximalaya/album.js +167 -79
  1375. package/lib/routes/ximalaya/utils.js +3 -128
  1376. package/lib/routes/xinwenlianbo/index.js +1 -1
  1377. package/lib/routes/xposed/module.js +2 -2
  1378. package/lib/routes/xuangubao/subject.js +1 -1
  1379. package/lib/routes/xueqiu/snb.js +1 -1
  1380. package/lib/routes/xueqiu/stock_comments.js +61 -0
  1381. package/lib/routes/xueqiu/stock_info.js +3 -3
  1382. package/lib/routes/xueqiu/user.js +3 -3
  1383. package/lib/routes/xyplorer/whatsnew.js +32 -0
  1384. package/lib/routes/yahoo-author/index.js +67 -0
  1385. package/lib/routes/yahoo-news/index.js +1 -1
  1386. package/lib/routes/yande.re/post_popular_recent.js +1 -1
  1387. package/lib/routes/yicai/brief.js +3 -2
  1388. package/lib/routes/yicas/blog.js +52 -0
  1389. package/lib/routes/yinxiang/card.js +45 -0
  1390. package/lib/routes/yinxiang/category.js +46 -0
  1391. package/lib/routes/yinxiang/note.js +41 -0
  1392. package/lib/routes/yinxiang/personal.js +47 -0
  1393. package/lib/routes/yinxiang/tag.js +46 -0
  1394. package/lib/routes/yomiuri/news.js +84 -11
  1395. package/lib/routes/youdao/latest.js +47 -0
  1396. package/lib/routes/youdao/xueba.js +64 -0
  1397. package/lib/routes/youtube/channel.js +5 -5
  1398. package/lib/routes/youtube/playlist.js +7 -5
  1399. package/lib/routes/youtube/user.js +5 -5
  1400. package/lib/routes/youtube/utils.js +32 -37
  1401. package/lib/routes/youzan/goods.js +1 -1
  1402. package/lib/routes/yuanliao/index.js +42 -0
  1403. package/lib/routes/yuque/doc.js +1 -1
  1404. package/lib/routes/yuzu-emu/entry.js +52 -0
  1405. package/lib/routes/yxdown/news.js +54 -0
  1406. package/lib/routes/yxdown/recommend.js +51 -0
  1407. package/lib/routes/yxdzqb/index.js +1 -1
  1408. package/lib/routes/yystv/category.js +8 -8
  1409. package/lib/routes/yystv/docs.js +34 -0
  1410. package/lib/routes/zaker/focusread.js +8 -6
  1411. package/lib/routes/zaker/source.js +6 -5
  1412. package/lib/routes/zaobao/interactive.js +15 -0
  1413. package/lib/routes/zaobao/util.js +52 -8
  1414. package/lib/routes/zcfy/hot.js +3 -3
  1415. package/lib/routes/zcfy/index.js +2 -2
  1416. package/lib/routes/zcool/discover.js +140 -0
  1417. package/lib/routes/zcool/locations.js +6829 -0
  1418. package/lib/routes/zcool/top.js +4 -4
  1419. package/lib/routes/zcool/user.js +1 -1
  1420. package/lib/routes/zfrontier/board_postlist.js +1 -1
  1421. package/lib/routes/zfrontier/postlist.js +1 -1
  1422. package/lib/routes/zhanqi/room.js +1 -1
  1423. package/lib/routes/zhibo8/forum.js +1 -1
  1424. package/lib/routes/zhibo8/more.js +10 -11
  1425. package/lib/routes/zhibo8/post.js +2 -2
  1426. package/lib/routes/zhihu/activities.js +3 -3
  1427. package/lib/routes/zhihu/answers.js +5 -5
  1428. package/lib/routes/zhihu/collection.js +29 -21
  1429. package/lib/routes/zhihu/daily.js +23 -22
  1430. package/lib/routes/zhihu/daily_section.js +2 -2
  1431. package/lib/routes/zhihu/hot.js +37 -0
  1432. package/lib/routes/zhihu/posts.js +27 -46
  1433. package/lib/routes/zhihu/timeline.js +99 -0
  1434. package/lib/routes/zhihu/utils.js +1 -1
  1435. package/lib/routes/zhihu/weekly.js +2 -2
  1436. package/lib/routes/zhihu/zhuanlan.js +55 -65
  1437. package/lib/routes/zhilian/index.js +2 -2
  1438. package/lib/routes/zhimap/index.js +37 -0
  1439. package/lib/routes/zhishifenzi/depth.js +2 -2
  1440. package/lib/routes/zhishifenzi/innovation.js +2 -2
  1441. package/lib/routes/zhishifenzi/news.js +47 -48
  1442. package/lib/routes/zhuixinfan/list.js +5 -5
  1443. package/lib/routes/zhutix/latest.js +7 -8
  1444. package/lib/routes/zimuku/index.js +1 -1
  1445. package/lib/routes/zimuxia/index.js +56 -0
  1446. package/lib/routes/zimuxia/portfolio.js +39 -0
  1447. package/lib/routes/ziroom/room.js +1 -1
  1448. package/lib/routes/zsnews/index.js +19 -6
  1449. package/lib/routes/zyshow/index.js +42 -0
  1450. package/lib/routes/zzz/index.js +43 -36
  1451. package/lib/utils/dateParser.js +1 -1
  1452. package/lib/utils/got.js +2 -1
  1453. package/lib/utils/logger.js +1 -1
  1454. package/lib/utils/parse-date.js +42 -0
  1455. package/lib/utils/puppeteer.js +1 -2
  1456. package/lib/utils/readable-social.js +46 -0
  1457. package/lib/utils/render.js +7 -0
  1458. package/lib/utils/request-wrapper.js +14 -4
  1459. package/lib/utils/timezone.js +14 -0
  1460. package/lib/utils/torrent.js +155 -0
  1461. package/lib/v2/18comic/album.js +75 -0
  1462. package/lib/v2/18comic/blogs.js +63 -0
  1463. package/lib/v2/18comic/index.js +12 -0
  1464. package/lib/v2/18comic/maintainer.js +6 -0
  1465. package/lib/v2/18comic/radar.js +31 -0
  1466. package/lib/v2/18comic/router.js +6 -0
  1467. package/lib/v2/18comic/search.js +13 -0
  1468. package/lib/v2/18comic/utils.js +71 -0
  1469. package/lib/v2/2047/index.js +55 -0
  1470. package/lib/v2/2047/maintainer.js +3 -0
  1471. package/lib/v2/2047/radar.js +13 -0
  1472. package/lib/v2/2047/router.js +3 -0
  1473. package/lib/v2/2048/index.js +98 -0
  1474. package/lib/v2/2048/maintainer.js +3 -0
  1475. package/lib/v2/2048/radar.js +0 -0
  1476. package/lib/v2/2048/router.js +3 -0
  1477. package/lib/v2/2048/templates/download.art +1 -0
  1478. package/lib/v2/8world/index.js +57 -0
  1479. package/lib/v2/8world/maintainer.js +3 -0
  1480. package/lib/v2/8world/radar.js +13 -0
  1481. package/lib/v2/8world/router.js +3 -0
  1482. package/lib/v2/aamacau/index.js +56 -0
  1483. package/lib/v2/aamacau/maintainer.js +3 -0
  1484. package/lib/v2/aamacau/radar.js +13 -0
  1485. package/lib/v2/aamacau/router.js +3 -0
  1486. package/lib/v2/ajmide/index.js +29 -0
  1487. package/lib/v2/ajmide/maintainer.js +3 -0
  1488. package/lib/v2/ajmide/radar.js +16 -0
  1489. package/lib/v2/ajmide/router.js +3 -0
  1490. package/lib/v2/ash-maurya/index.js +54 -0
  1491. package/lib/v2/ash-maurya/maintainer.js +3 -0
  1492. package/lib/v2/ash-maurya/radar.js +13 -0
  1493. package/lib/v2/ash-maurya/router.js +3 -0
  1494. package/lib/v2/bandcamp/live.js +41 -0
  1495. package/lib/v2/bandcamp/maintainer.js +3 -0
  1496. package/lib/v2/bandcamp/radar.js +13 -0
  1497. package/lib/v2/bandcamp/router.js +3 -0
  1498. package/lib/v2/barronschina/index.js +70 -0
  1499. package/lib/v2/barronschina/maintainer.js +3 -0
  1500. package/lib/v2/barronschina/radar.js +13 -0
  1501. package/lib/v2/barronschina/router.js +3 -0
  1502. package/lib/v2/bendibao/maintainer.js +3 -0
  1503. package/lib/{routes → v2}/bendibao/news.js +47 -22
  1504. package/lib/v2/bendibao/radar.js +13 -0
  1505. package/lib/v2/bendibao/router.js +3 -0
  1506. package/lib/v2/biodiscover/index.js +44 -0
  1507. package/lib/v2/biodiscover/maintainer.js +3 -0
  1508. package/lib/v2/biodiscover/radar.js +13 -0
  1509. package/lib/v2/biodiscover/router.js +3 -0
  1510. package/lib/v2/bit/maintainer.js +3 -0
  1511. package/lib/v2/bit/radar.js +13 -0
  1512. package/lib/v2/bit/router.js +3 -0
  1513. package/lib/v2/bit/rszhaopin.js +30 -0
  1514. package/lib/v2/bnu/bs.js +52 -0
  1515. package/lib/v2/bnu/maintainer.js +3 -0
  1516. package/lib/v2/bnu/radar.js +13 -0
  1517. package/lib/v2/bnu/router.js +3 -0
  1518. package/lib/v2/bse/index.js +173 -0
  1519. package/lib/v2/bse/maintainer.js +3 -0
  1520. package/lib/v2/bse/radar.js +13 -0
  1521. package/lib/v2/bse/router.js +3 -0
  1522. package/lib/v2/btzj/index.js +98 -0
  1523. package/lib/v2/btzj/maintainer.js +3 -0
  1524. package/lib/v2/btzj/radar.js +13 -0
  1525. package/lib/v2/btzj/router.js +3 -0
  1526. package/lib/v2/btzj/templates/torrents.art +5 -0
  1527. package/lib/v2/bupt/maintainer.js +3 -0
  1528. package/lib/v2/bupt/radar.js +13 -0
  1529. package/lib/v2/bupt/rczp.js +51 -0
  1530. package/lib/v2/bupt/router.js +3 -0
  1531. package/lib/v2/cbirc/index.js +119 -0
  1532. package/lib/v2/cbirc/maintainer.js +3 -0
  1533. package/lib/v2/cbirc/radar.js +13 -0
  1534. package/lib/v2/cbirc/router.js +3 -0
  1535. package/lib/v2/ccac/maintainer.js +3 -0
  1536. package/lib/v2/ccac/news.js +47 -0
  1537. package/lib/v2/ccac/radar.js +13 -0
  1538. package/lib/v2/ccac/router.js +3 -0
  1539. package/lib/v2/ccac/utils.js +32 -0
  1540. package/lib/v2/cde/index.js +132 -0
  1541. package/lib/v2/cde/maintainer.js +3 -0
  1542. package/lib/v2/cde/radar.js +43 -0
  1543. package/lib/v2/cde/router.js +3 -0
  1544. package/lib/v2/cde/utils.js +20 -0
  1545. package/lib/v2/cebbank/all.js +48 -0
  1546. package/lib/v2/cebbank/history.js +49 -0
  1547. package/lib/v2/cebbank/maintainer.js +4 -0
  1548. package/lib/v2/cebbank/radar.js +19 -0
  1549. package/lib/v2/cebbank/router.js +4 -0
  1550. package/lib/v2/cebbank/templates/allDes.art +2 -0
  1551. package/lib/v2/cebbank/templates/historyDes.art +3 -0
  1552. package/lib/v2/cebbank/utils.js +70 -0
  1553. package/lib/v2/chaoxing/maintainer.js +3 -0
  1554. package/lib/v2/chaoxing/qk.js +59 -0
  1555. package/lib/v2/chaoxing/radar.js +13 -0
  1556. package/lib/v2/chaoxing/router.js +3 -0
  1557. package/lib/v2/chaoxing/templates/description.art +3 -0
  1558. package/lib/v2/cnbeta/index.js +15 -0
  1559. package/lib/v2/cnbeta/maintainer.js +5 -0
  1560. package/lib/v2/cnbeta/radar.js +25 -0
  1561. package/lib/v2/cnbeta/router.js +4 -0
  1562. package/lib/v2/cnbeta/type.js +42 -0
  1563. package/lib/v2/cnbeta/utils.js +27 -0
  1564. package/lib/v2/cnki/debut.js +62 -0
  1565. package/lib/v2/cnki/journals.js +74 -0
  1566. package/lib/v2/cnki/maintainer.js +4 -0
  1567. package/lib/v2/cnki/radar.js +19 -0
  1568. package/lib/v2/cnki/router.js +4 -0
  1569. package/lib/v2/cnki/templates/desc.art +5 -0
  1570. package/lib/v2/csc/maintainer.js +3 -0
  1571. package/lib/v2/csc/notice.js +99 -0
  1572. package/lib/v2/csc/radar.js +31 -0
  1573. package/lib/v2/csc/router.js +3 -0
  1574. package/lib/v2/ddosi/category.js +42 -0
  1575. package/lib/v2/ddosi/index.js +41 -0
  1576. package/lib/v2/ddosi/maintainer.js +4 -0
  1577. package/lib/v2/ddosi/radar.js +19 -0
  1578. package/lib/v2/ddosi/router.js +4 -0
  1579. package/lib/v2/distill/index.js +64 -0
  1580. package/lib/v2/distill/maintainer.js +3 -0
  1581. package/lib/v2/distill/radar.js +13 -0
  1582. package/lib/v2/distill/router.js +3 -0
  1583. package/lib/v2/eastday/find.js +49 -0
  1584. package/lib/v2/eastday/maintainer.js +4 -0
  1585. package/lib/v2/eastday/portrait.js +47 -0
  1586. package/lib/v2/eastday/radar.js +19 -0
  1587. package/lib/v2/eastday/router.js +4 -0
  1588. package/lib/v2/elsevier/latest.js +87 -0
  1589. package/lib/v2/elsevier/maintainer.js +4 -0
  1590. package/lib/v2/elsevier/radar.js +19 -0
  1591. package/lib/v2/elsevier/router.js +4 -0
  1592. package/lib/v2/elsevier/templates/description.art +9 -0
  1593. package/lib/v2/elsevier/volume.js +75 -0
  1594. package/lib/{routes → v2}/epicgames/index.js +0 -0
  1595. package/lib/v2/epicgames/maintainer.js +3 -0
  1596. package/lib/v2/epicgames/router.js +3 -0
  1597. package/lib/v2/epicgames/supportedList.js +23 -0
  1598. package/lib/v2/eprice/maintainer.js +3 -0
  1599. package/lib/v2/eprice/radar.js +24 -0
  1600. package/lib/v2/eprice/router.js +3 -0
  1601. package/lib/v2/eprice/rss.js +105 -0
  1602. package/lib/v2/eprice/templates/description.art +1 -0
  1603. package/lib/v2/eprice/templates/image.art +1 -0
  1604. package/lib/v2/filmdeepfocus/index.js +58 -0
  1605. package/lib/v2/filmdeepfocus/maintainer.js +3 -0
  1606. package/lib/v2/filmdeepfocus/radar.js +13 -0
  1607. package/lib/v2/filmdeepfocus/router.js +3 -0
  1608. package/lib/v2/fisher-spb/maintainer.js +3 -0
  1609. package/lib/v2/fisher-spb/news.js +49 -0
  1610. package/lib/v2/fisher-spb/radar.js +13 -0
  1611. package/lib/v2/fisher-spb/router.js +3 -0
  1612. package/lib/v2/fisher-spb/templates/image.art +1 -0
  1613. package/lib/v2/fisher-spb/templates/video.art +1 -0
  1614. package/lib/v2/focustaiwan/index.js +72 -0
  1615. package/lib/v2/focustaiwan/maintainer.js +3 -0
  1616. package/lib/v2/focustaiwan/radar.js +13 -0
  1617. package/lib/v2/focustaiwan/router.js +3 -0
  1618. package/lib/v2/focustaiwan/templates/article.art +1 -0
  1619. package/lib/{routes → v2}/furstar/archive.js +5 -1
  1620. package/lib/{routes → v2}/furstar/artists.js +5 -1
  1621. package/lib/{routes → v2}/furstar/index.js +9 -1
  1622. package/lib/v2/furstar/maintainer.js +5 -0
  1623. package/lib/v2/furstar/radar.js +25 -0
  1624. package/lib/v2/furstar/router.js +5 -0
  1625. package/lib/v2/furstar/templates/author.art +8 -0
  1626. package/lib/v2/furstar/templates/description.art +5 -0
  1627. package/lib/{routes → v2}/furstar/utils.js +18 -13
  1628. package/lib/v2/gameapps/index.js +56 -0
  1629. package/lib/v2/gameapps/maintainer.js +3 -0
  1630. package/lib/v2/gameapps/radar.js +13 -0
  1631. package/lib/v2/gameapps/router.js +3 -0
  1632. package/lib/v2/gameapps/templates/description.art +3 -0
  1633. package/lib/v2/gamersecret/index.js +60 -0
  1634. package/lib/v2/gamersecret/maintainer.js +3 -0
  1635. package/lib/v2/gamersecret/radar.js +31 -0
  1636. package/lib/v2/gamersecret/router.js +3 -0
  1637. package/lib/v2/getdr/index.js +47 -0
  1638. package/lib/v2/getdr/maintainer.js +3 -0
  1639. package/lib/v2/getdr/radar.js +13 -0
  1640. package/lib/v2/getdr/router.js +3 -0
  1641. package/lib/v2/gf-cn/maintainer.js +3 -0
  1642. package/lib/v2/gf-cn/news.js +50 -0
  1643. package/lib/v2/gf-cn/radar.js +13 -0
  1644. package/lib/v2/gf-cn/router.js +3 -0
  1645. package/lib/v2/gov/guangdong/tqyb/sncsyjxh.js +37 -0
  1646. package/lib/v2/gov/guangdong/tqyb/templates/sncsyjxh.art +5 -0
  1647. package/lib/v2/gov/guangdong/tqyb/templates/tfxtq.art +1 -0
  1648. package/lib/v2/gov/guangdong/tqyb/tfxtq.js +30 -0
  1649. package/lib/v2/gov/maintainer.js +5 -0
  1650. package/lib/v2/gov/radar.js +30 -0
  1651. package/lib/v2/gov/router.js +5 -0
  1652. package/lib/v2/gov/shanghai/rsj/ksxm.js +39 -0
  1653. package/lib/v2/gov/shanghai/rsj/templates/ksxm.art +7 -0
  1654. package/lib/v2/guduodata/daily.js +63 -0
  1655. package/lib/v2/guduodata/maintainer.js +3 -0
  1656. package/lib/v2/guduodata/radar.js +13 -0
  1657. package/lib/v2/guduodata/router.js +3 -0
  1658. package/lib/v2/guduodata/templates/daily.art +26 -0
  1659. package/lib/v2/hackernews/index.js +97 -0
  1660. package/lib/v2/hackernews/maintainer.js +3 -0
  1661. package/lib/v2/hackernews/radar.js +13 -0
  1662. package/lib/v2/hackernews/router.js +3 -0
  1663. package/lib/v2/hbr/maintainer.js +3 -0
  1664. package/lib/v2/hbr/radar.js +13 -0
  1665. package/lib/v2/hbr/router.js +3 -0
  1666. package/lib/v2/hbr/topic.js +56 -0
  1667. package/lib/v2/heu/gx/card.js +47 -0
  1668. package/lib/v2/heu/gx/list.js +73 -0
  1669. package/lib/v2/heu/job/bigemploy.js +42 -0
  1670. package/lib/v2/heu/job/calendar.js +54 -0
  1671. package/lib/v2/heu/job/list.js +70 -0
  1672. package/lib/v2/heu/maintainer.js +8 -0
  1673. package/lib/v2/heu/radar.js +73 -0
  1674. package/lib/v2/heu/router.js +9 -0
  1675. package/lib/v2/heu/uae/list.js +62 -0
  1676. package/lib/v2/heu/yjsy/list.js +65 -0
  1677. package/lib/v2/hkej/index.js +160 -0
  1678. package/lib/v2/hkej/maintainer.js +3 -0
  1679. package/lib/v2/hkej/radar.js +13 -0
  1680. package/lib/v2/hkej/router.js +3 -0
  1681. package/lib/v2/hkej/templates/articleImg.art +3 -0
  1682. package/lib/v2/hkej/templates/description.art +2 -0
  1683. package/lib/v2/hket/index.js +114 -0
  1684. package/lib/v2/hket/maintainer.js +3 -0
  1685. package/lib/v2/hket/radar.js +45 -0
  1686. package/lib/v2/hket/router.js +3 -0
  1687. package/lib/v2/hket/templates/description.art +1 -0
  1688. package/lib/v2/hket/templates/image.art +1 -0
  1689. package/lib/v2/hkjunkcall/index.js +53 -0
  1690. package/lib/v2/hkjunkcall/maintainer.js +3 -0
  1691. package/lib/v2/hkjunkcall/radar.js +13 -0
  1692. package/lib/v2/hkjunkcall/router.js +3 -0
  1693. package/lib/v2/hongkong/chp.js +103 -0
  1694. package/lib/v2/hongkong/dh.js +53 -0
  1695. package/lib/v2/hongkong/maintainer.js +4 -0
  1696. package/lib/v2/hongkong/radar.js +19 -0
  1697. package/lib/v2/hongkong/router.js +4 -0
  1698. package/lib/v2/hotchina/index.js +55 -0
  1699. package/lib/v2/hotchina/maintainer.js +5 -0
  1700. package/lib/v2/hotchina/radar.js +25 -0
  1701. package/lib/v2/hotchina/router.js +3 -0
  1702. package/lib/v2/hotukdeals/index.js +34 -0
  1703. package/lib/v2/hotukdeals/maintainer.js +3 -0
  1704. package/lib/v2/hotukdeals/radar.js +31 -0
  1705. package/lib/v2/hotukdeals/router.js +3 -0
  1706. package/lib/v2/icac/maintainer.js +3 -0
  1707. package/lib/v2/icac/news.js +46 -0
  1708. package/lib/v2/icac/radar.js +13 -0
  1709. package/lib/v2/icac/router.js +3 -0
  1710. package/lib/v2/icac/utils.js +17 -0
  1711. package/lib/v2/ieee/latestdate.js +103 -0
  1712. package/lib/v2/ieee/latestvol.js +87 -0
  1713. package/lib/v2/ieee/maintainer.js +4 -0
  1714. package/lib/v2/ieee/radar.js +19 -0
  1715. package/lib/v2/ieee/router.js +4 -0
  1716. package/lib/v2/ieee/templates/description.art +9 -0
  1717. package/lib/v2/independent/maintainer.js +3 -0
  1718. package/lib/v2/independent/ps5-stock-uk.js +27 -0
  1719. package/lib/v2/independent/radar.js +13 -0
  1720. package/lib/v2/independent/router.js +3 -0
  1721. package/lib/v2/ithome/maintainer.js +3 -0
  1722. package/lib/v2/ithome/radar.js +13 -0
  1723. package/lib/v2/ithome/router.js +3 -0
  1724. package/lib/v2/ithome/zt.js +54 -0
  1725. package/lib/v2/jandan/index.js +60 -0
  1726. package/lib/v2/jandan/maintainer.js +4 -0
  1727. package/lib/v2/jandan/radar.js +19 -0
  1728. package/lib/v2/jandan/router.js +4 -0
  1729. package/lib/v2/jandan/section.js +49 -0
  1730. package/lib/v2/jandan/templates/description.art +4 -0
  1731. package/lib/v2/jasa/latest.js +70 -0
  1732. package/lib/v2/jasa/maintainer.js +4 -0
  1733. package/lib/v2/jasa/radar.js +19 -0
  1734. package/lib/v2/jasa/router.js +4 -0
  1735. package/lib/v2/jasa/section.js +95 -0
  1736. package/lib/v2/jasa/templates/description.art +9 -0
  1737. package/lib/{routes → v2}/javdb/actors.js +5 -4
  1738. package/lib/v2/javdb/index.js +32 -0
  1739. package/lib/v2/javdb/maintainer.js +10 -0
  1740. package/lib/{routes → v2}/javdb/makers.js +5 -4
  1741. package/lib/v2/javdb/radar.js +49 -0
  1742. package/lib/v2/javdb/rankings.js +12 -0
  1743. package/lib/v2/javdb/router.js +10 -0
  1744. package/lib/{routes → v2}/javdb/search.js +5 -5
  1745. package/lib/{routes → v2}/javdb/series.js +5 -4
  1746. package/lib/v2/javdb/tags.js +12 -0
  1747. package/lib/v2/javdb/utils.js +73 -0
  1748. package/lib/v2/jisilu/index.js +90 -0
  1749. package/lib/v2/jisilu/maintainer.js +3 -0
  1750. package/lib/v2/jisilu/radar.js +25 -0
  1751. package/lib/v2/jisilu/router.js +3 -0
  1752. package/lib/v2/jump/discount.js +120 -0
  1753. package/lib/v2/jump/maintainer.js +3 -0
  1754. package/lib/v2/jump/radar.js +13 -0
  1755. package/lib/v2/jump/router.js +3 -0
  1756. package/lib/v2/jump/templates/discount.art +111 -0
  1757. package/lib/v2/kemono/index.js +99 -0
  1758. package/lib/v2/kemono/maintainer.js +4 -0
  1759. package/lib/v2/kemono/radar.js +13 -0
  1760. package/lib/v2/kemono/router.js +3 -0
  1761. package/lib/v2/knowmedia/index.js +38 -0
  1762. package/lib/v2/knowmedia/maintainer.js +3 -0
  1763. package/lib/v2/knowmedia/radar.js +31 -0
  1764. package/lib/v2/knowmedia/router.js +3 -0
  1765. package/lib/v2/knowmedia/templates/desc.art +3 -0
  1766. package/lib/v2/learnku/maintainer.js +3 -0
  1767. package/lib/v2/learnku/radar.js +13 -0
  1768. package/lib/v2/learnku/router.js +3 -0
  1769. package/lib/v2/learnku/templates/topic.art +14 -0
  1770. package/lib/v2/learnku/topic.js +72 -0
  1771. package/lib/v2/leiphone/index.js +25 -0
  1772. package/lib/v2/leiphone/maintainer.js +5 -0
  1773. package/lib/v2/leiphone/newsflash.js +19 -0
  1774. package/lib/v2/leiphone/radar.js +25 -0
  1775. package/lib/v2/leiphone/router.js +4 -0
  1776. package/lib/v2/leiphone/utils.js +41 -0
  1777. package/lib/v2/lfsyd/home.js +42 -0
  1778. package/lib/v2/lfsyd/maintainer.js +7 -0
  1779. package/lib/v2/lfsyd/old_home.js +29 -0
  1780. package/lib/v2/lfsyd/radar.js +39 -0
  1781. package/lib/v2/lfsyd/router.js +6 -0
  1782. package/lib/v2/lfsyd/tag.js +64 -0
  1783. package/lib/v2/lfsyd/templates/card.art +1 -0
  1784. package/lib/v2/lfsyd/user.js +48 -0
  1785. package/lib/v2/lfsyd/utils.js +93 -0
  1786. package/lib/v2/line/maintainer.js +3 -0
  1787. package/lib/v2/line/radar.js +13 -0
  1788. package/lib/v2/line/router.js +3 -0
  1789. package/lib/v2/line/today.js +80 -0
  1790. package/lib/v2/literotica/category.js +55 -0
  1791. package/lib/v2/literotica/maintainer.js +4 -0
  1792. package/lib/v2/literotica/new.js +59 -0
  1793. package/lib/v2/literotica/radar.js +19 -0
  1794. package/lib/v2/literotica/router.js +4 -0
  1795. package/lib/v2/medsci/index.js +67 -0
  1796. package/lib/v2/medsci/maintainer.js +3 -0
  1797. package/lib/v2/medsci/radar.js +13 -0
  1798. package/lib/v2/medsci/router.js +3 -0
  1799. package/lib/v2/mingpao/index.js +94 -0
  1800. package/lib/v2/mingpao/maintainer.js +3 -0
  1801. package/lib/v2/mingpao/radar.js +36 -0
  1802. package/lib/v2/mingpao/router.js +3 -0
  1803. package/lib/v2/mingpao/templates/description.art +2 -0
  1804. package/lib/v2/mingpao/templates/fancybox.art +3 -0
  1805. package/lib/v2/mohw/clarification.js +50 -0
  1806. package/lib/v2/mohw/maintainer.js +3 -0
  1807. package/lib/v2/mohw/radar.js +13 -0
  1808. package/lib/v2/mohw/router.js +3 -0
  1809. package/lib/v2/mox/index.js +57 -0
  1810. package/lib/v2/mox/maintainer.js +3 -0
  1811. package/lib/v2/mox/radar.js +13 -0
  1812. package/lib/v2/mox/router.js +3 -0
  1813. package/lib/v2/mvm/index.js +58 -0
  1814. package/lib/v2/mvm/maintainer.js +3 -0
  1815. package/lib/v2/mvm/radar.js +13 -0
  1816. package/lib/v2/mvm/router.js +3 -0
  1817. package/lib/v2/mydrivers/index.js +110 -0
  1818. package/lib/v2/mydrivers/maintainer.js +3 -0
  1819. package/lib/v2/mydrivers/radar.js +13 -0
  1820. package/lib/v2/mydrivers/router.js +3 -0
  1821. package/lib/v2/mygopen/index.js +29 -0
  1822. package/lib/v2/mygopen/maintainer.js +3 -0
  1823. package/lib/v2/mygopen/radar.js +13 -0
  1824. package/lib/v2/mygopen/router.js +3 -0
  1825. package/lib/{routes → v2}/neea/index.js +15 -10
  1826. package/lib/v2/neea/jlpt.js +52 -0
  1827. package/lib/v2/neea/maintainer.js +4 -0
  1828. package/lib/v2/neea/radar.js +13 -0
  1829. package/lib/v2/neea/router.js +4 -0
  1830. package/lib/v2/netease/maintainer.js +5 -0
  1831. package/lib/v2/netease/radar.js +29 -0
  1832. package/lib/v2/netease/rank.js +154 -0
  1833. package/lib/v2/netease/renjian.js +74 -0
  1834. package/lib/v2/netease/router.js +5 -0
  1835. package/lib/v2/netease/today.js +55 -0
  1836. package/lib/v2/news/maintainer.js +3 -0
  1837. package/lib/v2/news/radar.js +13 -0
  1838. package/lib/v2/news/router.js +3 -0
  1839. package/lib/v2/news/whxw.js +67 -0
  1840. package/lib/v2/newsmarket/index.js +63 -0
  1841. package/lib/v2/newsmarket/maintainer.js +3 -0
  1842. package/lib/v2/newsmarket/radar.js +13 -0
  1843. package/lib/v2/newsmarket/router.js +3 -0
  1844. package/lib/v2/ngocn2/index.js +56 -0
  1845. package/lib/v2/ngocn2/maintainer.js +3 -0
  1846. package/lib/v2/ngocn2/radar.js +13 -0
  1847. package/lib/v2/ngocn2/router.js +3 -0
  1848. package/lib/v2/nju/gra.js +31 -0
  1849. package/lib/v2/nju/jw.js +45 -0
  1850. package/lib/v2/nju/maintainer.js +8 -0
  1851. package/lib/v2/nju/radar.js +53 -0
  1852. package/lib/v2/nju/rczp.js +38 -0
  1853. package/lib/v2/nju/router.js +8 -0
  1854. package/lib/v2/nju/scit.js +36 -0
  1855. package/lib/v2/nju/zbb.js +81 -0
  1856. package/lib/v2/nju/zcc.js +48 -0
  1857. package/lib/v2/nodejs/blog.js +60 -0
  1858. package/lib/v2/nodejs/maintainer.js +3 -0
  1859. package/lib/v2/nodejs/radar.js +13 -0
  1860. package/lib/v2/nodejs/router.js +3 -0
  1861. package/lib/v2/now/maintainer.js +3 -0
  1862. package/lib/v2/now/news.js +66 -0
  1863. package/lib/v2/now/radar.js +13 -0
  1864. package/lib/v2/now/router.js +3 -0
  1865. package/lib/v2/nsfc/maintainer.js +3 -0
  1866. package/lib/{routes → v2}/nsfc/news.js +1 -1
  1867. package/lib/v2/nsfc/radar.js +31 -0
  1868. package/lib/v2/nsfc/router.js +3 -0
  1869. package/lib/v2/oncc/index.js +83 -0
  1870. package/lib/v2/oncc/maintainer.js +3 -0
  1871. package/lib/v2/oncc/radar.js +37 -0
  1872. package/lib/v2/oncc/router.js +3 -0
  1873. package/lib/v2/oncc/templates/article.art +2 -0
  1874. package/lib/v2/people/liuyan.js +54 -0
  1875. package/lib/v2/people/maintainer.js +3 -0
  1876. package/lib/v2/people/radar.js +13 -0
  1877. package/lib/v2/people/router.js +3 -0
  1878. package/lib/v2/pku/hr.js +54 -0
  1879. package/lib/v2/pku/maintainer.js +3 -0
  1880. package/lib/v2/pku/radar.js +13 -0
  1881. package/lib/v2/pku/router.js +3 -0
  1882. package/lib/v2/pts/dailynews.js +52 -0
  1883. package/lib/v2/pts/maintainer.js +3 -0
  1884. package/lib/v2/pts/radar.js +13 -0
  1885. package/lib/v2/pts/router.js +3 -0
  1886. package/lib/v2/qidiantu/index.js +87 -0
  1887. package/lib/v2/qidiantu/maintainer.js +4 -0
  1888. package/lib/v2/qidiantu/radar.js +19 -0
  1889. package/lib/v2/qidiantu/router.js +3 -0
  1890. package/lib/v2/qm120/maintainer.js +3 -0
  1891. package/lib/v2/qm120/news.js +50 -0
  1892. package/lib/v2/qm120/radar.js +13 -0
  1893. package/lib/v2/qm120/router.js +3 -0
  1894. package/lib/v2/qq/live.js +36 -0
  1895. package/lib/v2/qq/maintainer.js +3 -0
  1896. package/lib/v2/qq/radar.js +13 -0
  1897. package/lib/v2/qq/router.js +3 -0
  1898. package/lib/v2/rfi/maintainer.js +3 -0
  1899. package/lib/v2/rfi/news.js +49 -0
  1900. package/lib/v2/rfi/radar.js +13 -0
  1901. package/lib/v2/rfi/router.js +3 -0
  1902. package/lib/v2/ruancan/index.js +54 -0
  1903. package/lib/v2/ruancan/maintainer.js +6 -0
  1904. package/lib/v2/ruancan/radar.js +25 -0
  1905. package/lib/v2/ruancan/router.js +3 -0
  1906. package/lib/v2/ruc/hr.js +58 -0
  1907. package/lib/v2/ruc/maintainer.js +3 -0
  1908. package/lib/v2/ruc/radar.js +13 -0
  1909. package/lib/v2/ruc/router.js +3 -0
  1910. package/lib/v2/sciencedirect/journal.js +62 -0
  1911. package/lib/v2/sciencedirect/maintainer.js +3 -0
  1912. package/lib/v2/sciencedirect/radar.js +13 -0
  1913. package/lib/v2/sciencedirect/router.js +3 -0
  1914. package/lib/v2/secnews/index.js +27 -0
  1915. package/lib/v2/secnews/maintainer.js +3 -0
  1916. package/lib/v2/secnews/radar.js +13 -0
  1917. package/lib/v2/secnews/router.js +3 -0
  1918. package/lib/v2/shmeea/index.js +44 -0
  1919. package/lib/v2/shmeea/maintainer.js +3 -0
  1920. package/lib/v2/shmeea/radar.js +13 -0
  1921. package/lib/v2/shmeea/router.js +3 -0
  1922. package/lib/v2/shopback/maintainer.js +3 -0
  1923. package/lib/v2/shopback/radar.js +13 -0
  1924. package/lib/v2/shopback/router.js +3 -0
  1925. package/lib/v2/shopback/store.js +37 -0
  1926. package/lib/v2/sicau/maintainer.js +3 -0
  1927. package/lib/v2/sicau/radar.js +13 -0
  1928. package/lib/v2/sicau/router.js +3 -0
  1929. package/lib/v2/sicau/zsjy.js +53 -0
  1930. package/lib/v2/solidot/_article.js +50 -0
  1931. package/lib/{routes → v2}/solidot/main.js +5 -15
  1932. package/lib/v2/solidot/maintainer.js +3 -0
  1933. package/lib/v2/solidot/radar.js +117 -0
  1934. package/lib/v2/solidot/router.js +3 -0
  1935. package/lib/v2/startuplatte/index.js +56 -0
  1936. package/lib/v2/startuplatte/maintainer.js +3 -0
  1937. package/lib/v2/startuplatte/radar.js +13 -0
  1938. package/lib/v2/startuplatte/router.js +3 -0
  1939. package/lib/v2/subhd/index.js +79 -0
  1940. package/lib/v2/subhd/maintainer.js +4 -0
  1941. package/lib/v2/subhd/radar.js +19 -0
  1942. package/lib/v2/subhd/router.js +3 -0
  1943. package/lib/v2/swissinfo/index.js +72 -0
  1944. package/lib/v2/swissinfo/maintainer.js +3 -0
  1945. package/lib/v2/swissinfo/radar.js +13 -0
  1946. package/lib/v2/swissinfo/router.js +3 -0
  1947. package/lib/v2/szse/maintainer.js +3 -0
  1948. package/lib/v2/szse/radar.js +13 -0
  1949. package/lib/v2/szse/router.js +3 -0
  1950. package/lib/v2/szse/rule.js +51 -0
  1951. package/lib/{routes → v2}/test/index.js +0 -0
  1952. package/lib/v2/test/maintainer.js +3 -0
  1953. package/lib/v2/test/router.js +3 -0
  1954. package/lib/v2/timednews/maintainer.js +3 -0
  1955. package/lib/v2/timednews/news.js +106 -0
  1956. package/lib/v2/timednews/radar.js +57 -0
  1957. package/lib/v2/timednews/router.js +3 -0
  1958. package/lib/v2/trow/maintainer.js +3 -0
  1959. package/lib/v2/trow/portal.js +36 -0
  1960. package/lib/v2/trow/radar.js +13 -0
  1961. package/lib/v2/trow/router.js +3 -0
  1962. package/lib/v2/uibe/hr.js +58 -0
  1963. package/lib/v2/uibe/maintainer.js +3 -0
  1964. package/lib/v2/uibe/radar.js +13 -0
  1965. package/lib/v2/uibe/router.js +3 -0
  1966. package/lib/v2/ulapia/index.js +47 -0
  1967. package/lib/v2/ulapia/maintainer.js +3 -0
  1968. package/lib/v2/ulapia/radar.js +55 -0
  1969. package/lib/v2/ulapia/research.js +38 -0
  1970. package/lib/v2/ulapia/router.js +4 -0
  1971. package/lib/v2/wallstreetcn/live.js +40 -0
  1972. package/lib/v2/wallstreetcn/maintainer.js +5 -0
  1973. package/lib/v2/wallstreetcn/news.js +61 -0
  1974. package/lib/v2/wallstreetcn/radar.js +19 -0
  1975. package/lib/v2/wallstreetcn/router.js +5 -0
  1976. package/lib/v2/wangqiutiyu/anchor.js +42 -0
  1977. package/lib/v2/wangqiutiyu/maintainer.js +3 -0
  1978. package/lib/v2/wangqiutiyu/radar.js +13 -0
  1979. package/lib/v2/wangqiutiyu/router.js +3 -0
  1980. package/lib/v2/watchout/index.js +51 -0
  1981. package/lib/v2/watchout/maintainer.js +3 -0
  1982. package/lib/v2/watchout/radar.js +13 -0
  1983. package/lib/v2/watchout/router.js +3 -0
  1984. package/lib/v2/wechat/feeddd.js +72 -0
  1985. package/lib/v2/wechat/maintainer.js +3 -0
  1986. package/lib/v2/wechat/radar.js +12 -0
  1987. package/lib/v2/wechat/router.js +3 -0
  1988. package/lib/v2/wechat/templates/description.art +1 -0
  1989. package/lib/v2/wechat/templates/image.art +1 -0
  1990. package/lib/{routes → v2}/wenku8/chapter.js +0 -0
  1991. package/lib/v2/wenku8/index.js +52 -0
  1992. package/lib/v2/wenku8/maintainer.js +5 -0
  1993. package/lib/v2/wenku8/radar.js +85 -0
  1994. package/lib/v2/wenku8/router.js +5 -0
  1995. package/lib/v2/wenku8/volume.js +52 -0
  1996. package/lib/v2/wsyu/maintainer.js +3 -0
  1997. package/lib/{routes/universities → v2}/wsyu/news.js +1 -1
  1998. package/lib/v2/wsyu/radar.js +25 -0
  1999. package/lib/v2/wsyu/router.js +3 -0
  2000. package/lib/v2/wzu/maintainer.js +3 -0
  2001. package/lib/v2/wzu/news.js +84 -0
  2002. package/lib/v2/wzu/radar.js +11 -0
  2003. package/lib/v2/wzu/router.js +3 -0
  2004. package/lib/v2/yaohuo/index.js +30 -0
  2005. package/lib/v2/yaohuo/maintainer.js +3 -0
  2006. package/lib/v2/yaohuo/radar.js +13 -0
  2007. package/lib/v2/yaohuo/router.js +3 -0
  2008. package/lib/v2/zjgtjy/index.js +46 -0
  2009. package/lib/v2/zjgtjy/maintainer.js +3 -0
  2010. package/lib/v2/zjgtjy/radar.js +31 -0
  2011. package/lib/v2/zjgtjy/router.js +3 -0
  2012. package/lib/v2router.js +17 -0
  2013. package/lib/views/atom.art +2 -2
  2014. package/lib/views/error.art +17 -4
  2015. package/package.json +71 -55
  2016. package/lib/middleware/cache.js +0 -212
  2017. package/lib/routes/2048/bbs.js +0 -100
  2018. package/lib/routes/asahichinese-f/index.js +0 -102
  2019. package/lib/routes/asahichinese-j/index.js +0 -102
  2020. package/lib/routes/btzj/index.js +0 -77
  2021. package/lib/routes/cnbeta/home.js +0 -52
  2022. package/lib/routes/cninfo/fund_announcement.js +0 -55
  2023. package/lib/routes/cninfo/stock_announcement.js +0 -42
  2024. package/lib/routes/epicgames/router.js +0 -9
  2025. package/lib/routes/epicgames/supportedList.js +0 -24
  2026. package/lib/routes/gouhuo/cache.js +0 -44
  2027. package/lib/routes/gouhuo/index.js +0 -62
  2028. package/lib/routes/gouhuo/strategy.js +0 -35
  2029. package/lib/routes/guanchazhe/index.js +0 -271
  2030. package/lib/routes/guanchazhe/personalpage.js +0 -38
  2031. package/lib/routes/guanchazhe/topic.js +0 -53
  2032. package/lib/routes/hackernews/story.js +0 -60
  2033. package/lib/routes/jandan/pic.js +0 -100
  2034. package/lib/routes/japanpost/index.js +0 -67
  2035. package/lib/routes/javdb/home.js +0 -32
  2036. package/lib/routes/javdb/rankings.js +0 -12
  2037. package/lib/routes/javdb/tags.js +0 -12
  2038. package/lib/routes/javdb/utils.js +0 -72
  2039. package/lib/routes/learnku/topic.js +0 -53
  2040. package/lib/routes/lfsyd/index.js +0 -50
  2041. package/lib/routes/ltaaa/_article.js +0 -35
  2042. package/lib/routes/ltaaa/main.js +0 -58
  2043. package/lib/routes/matters/hot.js +0 -50
  2044. package/lib/routes/matters/topics.js +0 -52
  2045. package/lib/routes/netease/news/rank.js +0 -165
  2046. package/lib/routes/nytimes/morning_post.js +0 -45
  2047. package/lib/routes/solidot/_article.js +0 -44
  2048. package/lib/routes/solidot/sectigo.pem +0 -122
  2049. package/lib/routes/solidot/wotrust.pem +0 -125
  2050. package/lib/routes/steam/news.js +0 -28
  2051. package/lib/routes/tencent/lemon/index.js +0 -29
  2052. package/lib/routes/toutiao/today.js +0 -32
  2053. package/lib/routes/toutiao/user.js +0 -38
  2054. package/lib/routes/universities/heu/job.js +0 -80
  2055. package/lib/routes/universities/heu/news.js +0 -80
  2056. package/lib/routes/universities/heu/uae.js +0 -84
  2057. package/lib/routes/universities/heu/ugs/news.js +0 -122
  2058. package/lib/routes/universities/heu/yjsy.js +0 -92
  2059. package/lib/routes/wallstreetcn/live.js +0 -44
  2060. package/lib/routes/wallstreetcn/news.js +0 -33
  2061. package/lib/routes/yaohuo/index.js +0 -33
  2062. package/lib/routes/yystv/recommend.js +0 -45
  2063. package/lib/routes/zcool/recommend.js +0 -64
@@ -1,10 +1,55 @@
1
+ const querystring = require('querystring');
1
2
  const URL = require('url');
2
3
  const config = require('@/config').value;
3
4
  const Twit = require('twit');
5
+ const { fallback, queryToBoolean, queryToInteger } = require('@/utils/readable-social');
6
+
7
+ const ProcessFeed = (ctx, { data = [] }, params = {}) => {
8
+ // undefined and strings like "exclude_rts_replies" is also safely parsed, so no if branch is needed
9
+ const routeParams = querystring.parse(ctx.params.routeParams);
10
+
11
+ const mergedParams = {
12
+ readable: fallback(params.readable, queryToBoolean(routeParams.readable), false),
13
+ authorNameBold: fallback(params.authorNameBold, queryToBoolean(routeParams.authorNameBold), false),
14
+ showAuthorInTitle: fallback(params.showAuthorInTitle, queryToBoolean(routeParams.showAuthorInTitle), false),
15
+ showAuthorInDesc: fallback(params.showAuthorInDesc, queryToBoolean(routeParams.showAuthorInDesc), false),
16
+ showQuotedAuthorAvatarInDesc: fallback(params.showQuotedAuthorAvatarInDesc, queryToBoolean(routeParams.showQuotedAuthorAvatarInDesc), false),
17
+ showAuthorAvatarInDesc: fallback(params.showAuthorAvatarInDesc, queryToBoolean(routeParams.showAuthorAvatarInDesc), false),
18
+ showEmojiForRetweetAndReply: fallback(params.showEmojiForRetweetAndReply, queryToBoolean(routeParams.showEmojiForRetweetAndReply), false),
19
+ showRetweetTextInTitle: fallback(params.showRetweetTextInTitle, queryToBoolean(routeParams.showRetweetTextInTitle), true),
20
+ addLinkForPics: fallback(params.addLinkForPics, queryToBoolean(routeParams.addLinkForPics), false),
21
+ showTimestampInDescription: fallback(params.showTimestampInDescription, queryToBoolean(routeParams.showTimestampInDescription), false),
22
+ showQuotedInTitle: fallback(params.showQuotedInTitle, queryToBoolean(routeParams.showQuotedInTitle), false),
23
+
24
+ widthOfPics: fallback(params.widthOfPics, queryToInteger(routeParams.widthOfPics), -1),
25
+ heightOfPics: fallback(params.heightOfPics, queryToInteger(routeParams.heightOfPics), -1),
26
+ sizeOfAuthorAvatar: fallback(params.sizeOfAuthorAvatar, queryToInteger(routeParams.sizeOfAuthorAvatar), 48),
27
+ sizeOfQuotedAuthorAvatar: fallback(params.sizeOfQuotedAuthorAvatar, queryToInteger(routeParams.sizeOfQuotedAuthorAvatar), 24),
28
+ };
29
+
30
+ params = mergedParams;
31
+
32
+ const {
33
+ readable,
34
+ authorNameBold,
35
+ showAuthorInTitle,
36
+ showAuthorInDesc,
37
+ showQuotedAuthorAvatarInDesc,
38
+ showAuthorAvatarInDesc,
39
+ showEmojiForRetweetAndReply,
40
+ showRetweetTextInTitle,
41
+ addLinkForPics,
42
+ showTimestampInDescription,
43
+ showQuotedInTitle,
44
+
45
+ widthOfPics,
46
+ heightOfPics,
47
+ sizeOfAuthorAvatar,
48
+ sizeOfQuotedAuthorAvatar,
49
+ } = params;
4
50
 
5
- const ProcessFeed = ({ data = [] }, showAuthor = false) => {
6
51
  const getQueryParams = (url) => URL.parse(url, true).query;
7
- const getOrigionImg = (url) => {
52
+ const getOriginalImg = (url) => {
8
53
  // https://greasyfork.org/zh-CN/scripts/2312-resize-image-on-open-image-in-new-tab/code#n150
9
54
  let m = null;
10
55
  if ((m = url.match(/^(https?:\/\/\w+\.twimg\.com\/media\/[^/:]+)\.(jpg|jpeg|gif|png|bmp|webp)(:\w+)?$/i))) {
@@ -28,8 +73,13 @@ const ProcessFeed = ({ data = [] }, showAuthor = false) => {
28
73
  };
29
74
 
30
75
  const replaceBreak = (text) => text.replace(/<br><br>|<br>/g, ' ');
31
- const formatText = (text) => text.replace(/https:\/\/t\.co(.*)/g, '').replace(/\n/g, '<br>');
32
- const formatVideo = (media) => {
76
+ const formatText = (text) =>
77
+ text
78
+ .replace(/https:\/\/t\.co(.*)/g, '')
79
+ .trim()
80
+ .replace(/\n/g, '<br>');
81
+ const formatTextToPlain = (text) => text.replace(/https:\/\/t\.co(.*)/g, '').trim();
82
+ const formatVideo = (media, extraAttrs = '') => {
33
83
  let content = '';
34
84
  const video = media.video_info.variants.reduce((video, item) => {
35
85
  if ((item.bitrate || 0) > (video.bitrate || -Infinity)) {
@@ -40,7 +90,10 @@ const ProcessFeed = ({ data = [] }, showAuthor = false) => {
40
90
 
41
91
  if (video.url) {
42
92
  const gifAutoPlayAttr = media.type === 'animated_gif' ? `autoplay loop muted webkit-playsinline playsinline` : '';
43
- content = `<br><video src="${video.url}" ${gifAutoPlayAttr} controls="controls" poster="${getOrigionImg(media.media_url_https)}" style="width: 100%"></video>`;
93
+ if (!readable) {
94
+ content += '<br>';
95
+ }
96
+ content += `<video src='${video.url}' ${gifAutoPlayAttr} controls='controls' poster='${getOriginalImg(media.media_url_https)}' ${extraAttrs}></video>`;
44
97
  }
45
98
 
46
99
  return content;
@@ -52,6 +105,8 @@ const ProcessFeed = ({ data = [] }, showAuthor = false) => {
52
105
  item.extended_entities.media.forEach((item) => {
53
106
  // https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/extended-entities-object
54
107
  let content = '';
108
+ let style = '';
109
+ let originalImg;
55
110
  switch (item.type) {
56
111
  case 'animated_gif':
57
112
  case 'video':
@@ -60,39 +115,147 @@ const ProcessFeed = ({ data = [] }, showAuthor = false) => {
60
115
 
61
116
  case 'photo':
62
117
  default:
63
- content = `<br><img src="${getOrigionImg(item.media_url_https)}">`;
118
+ originalImg = getOriginalImg(item.media_url_https);
119
+ if (!readable) {
120
+ content += `<br>`;
121
+ }
122
+ if (addLinkForPics) {
123
+ content += `<a href='${originalImg}' target='_blank' rel='noopener noreferrer'>`;
124
+ }
125
+ content += `<img `;
126
+ if (widthOfPics >= 0) {
127
+ content += ` width="${widthOfPics}"`;
128
+ style += `width: ${widthOfPics}px;`;
129
+ }
130
+ if (heightOfPics > 0) {
131
+ content += `height="${heightOfPics}" `;
132
+ style += `height: ${heightOfPics}px;`;
133
+ }
134
+ content += ` style="${style}" ` + `${readable ? 'hspace="4" vspace="8"' : ''} src="${originalImg}">`;
135
+ if (addLinkForPics) {
136
+ content += `</a>`;
137
+ }
64
138
  break;
65
139
  }
66
140
 
67
141
  img += content;
68
142
  });
69
143
 
144
+ if (readable && img) {
145
+ img = `<br clear='both' /><div style='clear: both'></div>` + img;
146
+ }
70
147
  return img;
71
148
  };
149
+ const generatePicsPrefix = (item) => {
150
+ // When author avatar is shown, generate invisible <img> for inner images at the beginning of HTML
151
+ // to please some RSS readers
152
+ let picsPrefix = '';
153
+ item.extended_entities &&
154
+ item.extended_entities.media.forEach((item) => {
155
+ let content;
156
+ let originalImg;
157
+ switch (item.type) {
158
+ case 'video':
159
+ content = formatVideo(item, `width="0" height="0"`);
160
+ break;
161
+
162
+ case 'photo':
163
+ default:
164
+ originalImg = getOriginalImg(item.media_url_https);
165
+ content = `<img width='0' height='0' hidden='true' src='${originalImg}'>`;
166
+ break;
167
+ }
168
+
169
+ picsPrefix += content;
170
+ });
171
+ return picsPrefix;
172
+ };
72
173
  const formatUrl = (item) => {
73
174
  let url = '';
74
- item.entities.urls.forEach((u) => {
75
- url += `<a href="${u.expanded_url}" target="_blank" rel="noopener noreferrer">${u.expanded_url}</a>`;
76
- });
175
+ item.entities.urls &&
176
+ item.entities.urls.forEach((u) => {
177
+ if (readable) {
178
+ url += '<br>';
179
+ } else {
180
+ url += '&ensp;';
181
+ }
182
+ url += `<a href='${u.expanded_url}' target='_blank' rel='noopener noreferrer'>${u.expanded_url}</a>`;
183
+ });
77
184
 
78
185
  return url;
79
186
  };
80
187
 
81
188
  return data.map((item) => {
189
+ const originalItem = item;
82
190
  item = item.retweeted_status || item;
83
191
  item.full_text = formatText(item.full_text);
84
192
  const img = formatMedia(item);
193
+ let picsPrefix = generatePicsPrefix(item);
85
194
  let url = '';
86
195
  let quote = '';
196
+ let quoteInTitle = '';
87
197
 
198
+ // Make quote in description
88
199
  if (item.is_quote_status) {
89
200
  const quoteData = item.quoted_status;
90
201
 
91
202
  if (quoteData) {
92
203
  const author = quoteData.user;
93
- quote += `<br><br>${author.name}: ${formatText(quoteData.full_text)}<br>`;
204
+ if (readable) {
205
+ quote += `<br clear='both' /><div style='clear: both'></div>`;
206
+ quote += `<blockquote style='background: #80808010;border-top:1px solid #80808030;border-bottom:1px solid #80808030;margin:0;padding:5px 20px;'>`;
207
+ } else {
208
+ quote += `<br><br>`;
209
+ }
210
+
211
+ if (readable) {
212
+ quote += `<a href='https://twitter.com/${author.screen_name}' target='_blank' rel='noopener noreferrer'>`;
213
+ }
214
+
215
+ if (showQuotedAuthorAvatarInDesc) {
216
+ quote += `<img width='${sizeOfQuotedAuthorAvatar}' height='${sizeOfQuotedAuthorAvatar}' src='${author.profile_image_url_https}' ${readable ? 'hspace="8" vspace="8" align="left"' : ''}>`;
217
+ }
218
+
219
+ if (authorNameBold) {
220
+ quote += `<strong>`;
221
+ }
222
+
223
+ quote += author.name;
224
+
225
+ if (authorNameBold) {
226
+ quote += `</strong>`;
227
+ }
228
+
229
+ if (readable) {
230
+ quote += `</a>`;
231
+ }
232
+
233
+ quote += `:&ensp;`;
234
+ quote += formatText(quoteData.full_text);
235
+
236
+ if (!readable) {
237
+ quote += '<br>';
238
+ }
94
239
  quote += formatMedia(quoteData);
240
+ picsPrefix += generatePicsPrefix(quoteData);
95
241
  quote += formatUrl(quoteData);
242
+ quoteInTitle += showEmojiForRetweetAndReply ? ' 💬 ' : ' RT ';
243
+ quoteInTitle += `${author.name}: ${formatTextToPlain(quoteData.full_text)}`;
244
+
245
+ if (readable) {
246
+ quote += `<br><small>Link: <a href='https://twitter.com/${author.screen_name}/status/${quoteData.id_str}' target='_blank' rel='noopener noreferrer'>https://twitter.com/${author.screen_name}/status/${quoteData.id_str}</a></small>`;
247
+ }
248
+ if (showTimestampInDescription) {
249
+ quote += '<br><small>' + new Date(quoteData.created_at).toLocaleString();
250
+ quote += `</small>`;
251
+ if (readable) {
252
+ quote += `<br clear='both' /><div style='clear: both'></div>`;
253
+ }
254
+ }
255
+
256
+ if (readable) {
257
+ quote += `</blockquote>`;
258
+ }
96
259
  } else {
97
260
  url = formatUrl(item);
98
261
  }
@@ -100,12 +263,119 @@ const ProcessFeed = ({ data = [] }, showAuthor = false) => {
100
263
  url = formatUrl(item);
101
264
  }
102
265
 
266
+ // Make title
267
+ let title = '';
268
+ if (showAuthorInTitle) {
269
+ title += originalItem.user.name + ': ';
270
+ }
271
+ const isRetweet = originalItem !== item;
272
+ const isQuote = item.is_quote_status;
273
+ if (!isRetweet && (!isQuote || showRetweetTextInTitle)) {
274
+ if (item.in_reply_to_screen_name) {
275
+ title += showEmojiForRetweetAndReply ? '↩️ ' : 'Re ';
276
+ }
277
+ title += replaceBreak(originalItem.full_text);
278
+ }
279
+ if (isRetweet) {
280
+ title += showEmojiForRetweetAndReply ? '🔁 ' : 'RT ';
281
+ title += item.user.name + ': ';
282
+ if (item.in_reply_to_screen_name) {
283
+ title += showEmojiForRetweetAndReply ? ' ↩️ ' : ' Re ';
284
+ }
285
+ title += replaceBreak(item.full_text);
286
+ }
287
+
288
+ if (showQuotedInTitle) {
289
+ title += quoteInTitle;
290
+ }
291
+
292
+ // Make description
293
+ let description = '';
294
+ if (showAuthorInDesc && showAuthorAvatarInDesc) {
295
+ description += picsPrefix;
296
+ }
297
+ if (isRetweet) {
298
+ if (showAuthorInDesc) {
299
+ if (readable) {
300
+ description += '<small>';
301
+ description += `<a href='https://twitter.com/${originalItem.user.screen_name}' target='_blank' rel='noopener noreferrer'>`;
302
+ }
303
+ if (authorNameBold) {
304
+ description += `<strong>`;
305
+ }
306
+ description += originalItem.user.name;
307
+ if (authorNameBold) {
308
+ description += `</strong>`;
309
+ }
310
+ if (readable) {
311
+ description += '</a>';
312
+ }
313
+ description += '&ensp;';
314
+ }
315
+ description += showEmojiForRetweetAndReply ? '🔁' : 'RT';
316
+ if (!showAuthorInDesc) {
317
+ description += '&ensp;';
318
+ if (readable) {
319
+ description += `<a href='https://twitter.com/${item.user.screen_name}' target='_blank' rel='noopener noreferrer'>`;
320
+ }
321
+ if (authorNameBold) {
322
+ description += `<strong>`;
323
+ }
324
+ description += item.user.name;
325
+ if (authorNameBold) {
326
+ description += `</strong>`;
327
+ }
328
+ if (readable) {
329
+ description += '</a>';
330
+ }
331
+ }
332
+ if (readable) {
333
+ description += '</small>';
334
+ }
335
+ description += '<br>';
336
+ }
337
+ if (showAuthorInDesc) {
338
+ if (readable) {
339
+ description += `<a href='https://twitter.com/${item.user.screen_name}' target='_blank' rel='noopener noreferrer'>`;
340
+ }
341
+
342
+ if (showAuthorAvatarInDesc) {
343
+ description += `<img width='${sizeOfAuthorAvatar}' height='${sizeOfAuthorAvatar}' src='${item.user.profile_image_url_https}' ${readable ? 'hspace="8" vspace="8" align="left"' : ''}>`;
344
+ }
345
+ if (authorNameBold) {
346
+ description += `<strong>`;
347
+ }
348
+ description += item.user.name;
349
+ if (authorNameBold) {
350
+ description += `</strong>`;
351
+ }
352
+ if (readable) {
353
+ description += `</a>`;
354
+ }
355
+ description += `:&ensp;`;
356
+ }
357
+ if (item.in_reply_to_screen_name) {
358
+ description += showEmojiForRetweetAndReply ? '↩️ ' : 'Re ';
359
+ }
360
+
361
+ description += item.full_text;
362
+ description += url;
363
+ description += img;
364
+ description += quote;
365
+
366
+ if (readable) {
367
+ description += `<br clear='both' /><div style='clear: both'></div><hr>`;
368
+ }
369
+
370
+ if (showTimestampInDescription) {
371
+ description += `<small>${new Date(item.created_at).toLocaleString()}</small>`;
372
+ }
373
+
374
+ const authorName = originalItem.user.name;
103
375
  return {
104
- title: `${showAuthor ? item.user.name + ': ' : ''}${item.in_reply_to_screen_name ? 'Re ' : ''}${replaceBreak(item.full_text)}`,
105
- author: item.user.name,
106
- description: `${showAuthor ? `<img width="15px" src="${item.user.profile_image_url_https}"><strong>${item.user.name}:</strong><br><br>` : ''}${item.in_reply_to_screen_name ? 'Re ' : ''}${
107
- item.full_text
108
- }${url}${img}${quote}`,
376
+ title,
377
+ author: authorName,
378
+ description,
109
379
  pubDate: new Date(item.created_at).toUTCString(),
110
380
  link: `https://twitter.com/${item.user.screen_name}/status/${item.id_str}`,
111
381
  };
@@ -138,7 +408,29 @@ if (config.twitter.consumer_key && config.twitter.consumer_secret) {
138
408
  };
139
409
  }
140
410
 
411
+ function parseRouteParams(routeParams) {
412
+ let exclude_replies, include_rts;
413
+ let count = undefined;
414
+ if (routeParams === 'exclude_rts_replies' || routeParams === 'exclude_replies_rts') {
415
+ exclude_replies = true;
416
+ include_rts = false;
417
+ } else if (routeParams === 'exclude_replies') {
418
+ exclude_replies = true;
419
+ include_rts = true;
420
+ } else if (routeParams === 'exclude_rts') {
421
+ exclude_replies = false;
422
+ include_rts = false;
423
+ } else {
424
+ const parsed = querystring.parse(routeParams);
425
+ count = fallback(undefined, queryToInteger(parsed.count), undefined);
426
+ exclude_replies = fallback(undefined, queryToBoolean(parsed.excludeReplies), false);
427
+ include_rts = fallback(undefined, queryToBoolean(parsed.includeRts), true);
428
+ }
429
+ return { count, exclude_replies, include_rts };
430
+ }
431
+
141
432
  module.exports = {
142
433
  ProcessFeed,
143
434
  getTwit,
435
+ parseRouteParams,
144
436
  };
@@ -0,0 +1,20 @@
1
+ const utils = require('../utils');
2
+ // const config = require('@/config').value;
3
+ const { getUser, getUserMedia } = require('./twitter-api');
4
+
5
+ module.exports = async (ctx) => {
6
+ const id = ctx.params.id;
7
+ const userInfo = await getUser(ctx.cache, id);
8
+ const data = await getUserMedia(ctx.cache, id);
9
+ const profileImageUrl = userInfo.profile_image_url || userInfo.profile_image_url_https;
10
+
11
+ ctx.state.data = {
12
+ title: `Twitter @${userInfo.name}`,
13
+ link: `https://twitter.com/${id}/media`,
14
+ image: profileImageUrl,
15
+ description: userInfo.description,
16
+ item: utils.ProcessFeed(ctx, {
17
+ data,
18
+ }),
19
+ };
20
+ };
@@ -0,0 +1,16 @@
1
+ const utils = require('../utils');
2
+ const { getSearch } = require('./twitter-api');
3
+
4
+ module.exports = async (ctx) => {
5
+ const keyword = ctx.params.keyword;
6
+ const data = await getSearch(keyword);
7
+
8
+ ctx.state.data = {
9
+ title: `Twitter Keyword - ${keyword}`,
10
+ link: `https://twitter.com/search?q=${encodeURIComponent(keyword)}`,
11
+ item: utils.ProcessFeed(ctx, {
12
+ data,
13
+ }),
14
+ allowEmpty: true,
15
+ };
16
+ };
@@ -0,0 +1,123 @@
1
+ const twitterGot = require('./twitter-got');
2
+ const _params = {
3
+ count: 20,
4
+ include_profile_interstitial_type: 1,
5
+ include_blocking: 1,
6
+ include_blocked_by: 1,
7
+ include_followed_by: 1,
8
+ include_want_retweets: 1,
9
+ include_mute_edge: 1,
10
+ include_can_dm: 1,
11
+ include_can_media_tag: 1,
12
+ skip_status: 1,
13
+ cards_platform: 'Web-12',
14
+ include_cards: 1,
15
+ include_ext_alt_text: true,
16
+ include_quote_count: true,
17
+ include_reply_count: 1,
18
+ tweet_mode: 'extended',
19
+ include_entities: true,
20
+ include_user_entities: true,
21
+ include_ext_media_color: true,
22
+ include_ext_media_availability: true,
23
+ send_error_codes: true,
24
+ simple_quoted_tweet: true,
25
+ include_tweet_replies: false,
26
+ ext: 'mediaStats,highlightedLabel',
27
+ };
28
+
29
+ const pagination = (endpoint, userId, params) =>
30
+ twitterGot('https://api.twitter.com' + endpoint, {
31
+ ..._params,
32
+ ...params,
33
+ userId,
34
+ });
35
+ const timelineMedia = (userId, params = {}) => pagination(`/2/timeline/media/${userId}.json`, userId, params);
36
+ const timelineTweets = (userId, params = {}) => pagination(`/2/timeline/profile/${userId}.json`, userId, params);
37
+ const timelineTweetsAndReplies = (userId, params = {}) =>
38
+ pagination(`/2/timeline/profile/${userId}.json`, userId, {
39
+ ...params,
40
+ include_tweet_replies: true,
41
+ });
42
+ const timelineLikes = (userId, params = {}) =>
43
+ pagination(`/2/timeline/favorites/${userId}.json`, userId, {
44
+ ...params,
45
+ sorted_by_time: true,
46
+ });
47
+ const timelineKeywords = (keywords, params = {}) =>
48
+ twitterGot('https://twitter.com/i/api/2/search/adaptive.json', {
49
+ ..._params,
50
+ ...params,
51
+ q: keywords,
52
+ query_source: 'typed_query',
53
+ pc: 1,
54
+ });
55
+
56
+ function pickLegacyByID(id, tweets_dict, users_dict) {
57
+ function pickLegacyFromTweet(tweet) {
58
+ tweet.user = users_dict[tweet.user_id_str];
59
+ if (tweet.retweeted_status_id_str) {
60
+ tweet.retweeted_status = pickLegacyFromTweet(tweets_dict[tweet.retweeted_status_id_str]);
61
+ }
62
+ return tweet;
63
+ }
64
+
65
+ if (tweets_dict[id]) {
66
+ return pickLegacyFromTweet(tweets_dict[id]);
67
+ }
68
+ }
69
+
70
+ function gatherLegacyFromData(data, filter = 'tweet-') {
71
+ const tweets_dict = data.globalObjects.tweets;
72
+ const users_dict = data.globalObjects.users;
73
+ const tweets = [];
74
+ data.timeline.instructions[0].addEntries.entries.forEach((entry) => {
75
+ if (entry.entryId && entry.entryId.indexOf(filter) !== -1) {
76
+ const tweet = pickLegacyByID(entry.content.item.content.tweet.id, tweets_dict, users_dict);
77
+ if (tweet) {
78
+ tweets.push(tweet);
79
+ }
80
+ }
81
+ });
82
+ return tweets;
83
+ }
84
+
85
+ const getUserTweetsByID = async (id, params = {}) => gatherLegacyFromData(await timelineTweets(id, params));
86
+ const getUserTweetsAndRepliesByID = async (id, params = {}) => gatherLegacyFromData(await timelineTweetsAndReplies(id, params));
87
+ const getUserMediaByID = async (id, params = {}) => gatherLegacyFromData(await timelineMedia(id, params));
88
+ const getUserLikesByID = async (id, params = {}) => gatherLegacyFromData(await timelineLikes(id, params));
89
+
90
+ const excludeRetweet = function (tweets) {
91
+ const excluded = [];
92
+ for (const t of tweets) {
93
+ if (t.retweeted_status) {
94
+ continue;
95
+ }
96
+ excluded.push(t);
97
+ }
98
+ return excluded;
99
+ };
100
+
101
+ const userByScreenName = (screenName) =>
102
+ twitterGot('https://twitter.com/i/api/graphql/hc-pka9A7gyS3xODIafnrQ/UserByScreenName', {
103
+ variables: `{"screen_name":"${screenName}","withHighlightedLabel":true}`,
104
+ });
105
+ const getUserData = (cache, screenName) => cache.tryGet(`twitter-userdata-${screenName}`, () => userByScreenName(screenName));
106
+ const getUserID = async (cache, screenName) => (await getUserData(cache, screenName)).data.user.rest_id;
107
+ const getUser = async (cache, screenName) => (await getUserData(cache, screenName)).data.user.legacy;
108
+
109
+ const getUserTweets = async (cache, screenName, params = {}) => getUserTweetsByID(await getUserID(cache, screenName), params);
110
+ const getUserTweetsAndReplies = async (cache, screenName, params = {}) => getUserTweetsAndRepliesByID(await getUserID(cache, screenName), params);
111
+ const getUserMedia = async (cache, screenName, params = {}) => getUserMediaByID(await getUserID(cache, screenName), params);
112
+ const getUserLikes = async (cache, screenName, params = {}) => getUserLikesByID(await getUserID(cache, screenName), params);
113
+ const getSearch = async (keywords, params = {}) => gatherLegacyFromData(await timelineKeywords(keywords, params), 'sq-I-t-');
114
+
115
+ module.exports = {
116
+ getUser,
117
+ getUserTweets,
118
+ getUserTweetsAndReplies,
119
+ getUserMedia,
120
+ getUserLikes,
121
+ excludeRetweet,
122
+ getSearch,
123
+ };
@@ -0,0 +1,87 @@
1
+ const { CookieJar, Cookie } = require('tough-cookie');
2
+ const { promisify } = require('util');
3
+ const queryString = require('query-string');
4
+ const got = require('@/utils/got');
5
+ const config = require('@/config').value;
6
+ const headers = {
7
+ authorization: config.twitter.authorization,
8
+ 'x-guest-token': undefined,
9
+ 'x-twitter-auth-type': undefined,
10
+ 'x-twitter-client-language': 'en',
11
+ 'x-twitter-active-user': 'yes',
12
+ 'x-csrf-token': undefined,
13
+ };
14
+ let cookieJar, setCookie, getCookies;
15
+
16
+ const cookiedomain = 'twitter.com';
17
+ const cookieurl = 'https://twitter.com';
18
+
19
+ async function twitterGot(options) {
20
+ const response = await got({
21
+ ...options,
22
+ headers: { ...headers, ...(options.headers || {}) },
23
+ cookieJar,
24
+ });
25
+ // 更新csrfToken
26
+ for (const c of await getCookies(cookieurl)) {
27
+ if (c.key === 'ct0') {
28
+ headers['x-csrf-token'] = c.value;
29
+ }
30
+ }
31
+ return response;
32
+ }
33
+
34
+ async function resetSession() {
35
+ cookieJar = new CookieJar();
36
+ getCookies = promisify(cookieJar.getCookies.bind(cookieJar));
37
+ setCookie = promisify(cookieJar.setCookie.bind(cookieJar));
38
+ // 生成csrf-token
39
+ const csrfToken = [...Array(16 * 2)].map(() => Math.floor(Math.random() * 16).toString(16)).join('');
40
+ await setCookie(new Cookie({ key: 'ct0', value: csrfToken, domain: cookiedomain, secure: false }), cookieurl);
41
+ headers['x-csrf-token'] = csrfToken;
42
+ headers['x-guest-token'] = undefined;
43
+ // 发起初始化请求
44
+ const response = await twitterGot({
45
+ url: 'https://api.twitter.com/1.1/guest/activate.json',
46
+ method: 'POST',
47
+ });
48
+ // 获取guest-token
49
+ // TODO: OAuth2Session, 参见 https://github.com/DIYgod/RSSHub/pull/7739#discussionR655932602
50
+ const guestToken = response.data.guest_token;
51
+ headers['x-guest-token'] = guestToken;
52
+ await setCookie(new Cookie({ key: 'gt', value: guestToken, domain: cookiedomain, secure: false }), cookieurl);
53
+ // 发起第二个初始化请求, 获取_twitter_sess
54
+ await twitterGot({
55
+ url: 'https://twitter.com/i/js_inst',
56
+ method: 'GET',
57
+ searchParams: queryString.stringify({ c_name: 'ui_metrics' }),
58
+ });
59
+ return cookieJar;
60
+ }
61
+
62
+ const initSession = () => cookieJar || resetSession();
63
+
64
+ async function twitterRequest(url, params, method) {
65
+ await initSession();
66
+ // 发起请求
67
+ const request = () =>
68
+ twitterGot({
69
+ url,
70
+ method,
71
+ searchParams: queryString.stringify(params),
72
+ });
73
+ let response;
74
+ try {
75
+ response = await request();
76
+ } catch (e) {
77
+ if (e.response.status === 403) {
78
+ await resetSession();
79
+ response = await request();
80
+ } else {
81
+ throw e;
82
+ }
83
+ }
84
+ return response.data;
85
+ }
86
+
87
+ module.exports = twitterRequest;
@@ -0,0 +1,32 @@
1
+ const utils = require('../utils');
2
+ const { getUser, getUserTweets, getUserTweetsAndReplies, excludeRetweet } = require('./twitter-api');
3
+
4
+ module.exports = async (ctx) => {
5
+ const id = ctx.params.id;
6
+
7
+ // For compatibility
8
+ const { exclude_replies, include_rts } = utils.parseRouteParams(ctx.params.routeParams);
9
+
10
+ let data;
11
+ const userInfo = await getUser(ctx.cache, id);
12
+ if (exclude_replies) {
13
+ data = await getUserTweets(ctx.cache, id);
14
+ } else {
15
+ data = await getUserTweetsAndReplies(ctx.cache, id);
16
+ }
17
+ if (!include_rts) {
18
+ data = excludeRetweet(data);
19
+ }
20
+
21
+ const profileImageUrl = userInfo.profile_image_url || userInfo.profile_image_url_https;
22
+
23
+ ctx.state.data = {
24
+ title: `Twitter @${userInfo.name}`,
25
+ link: `https://twitter.com/${id}`,
26
+ image: profileImageUrl,
27
+ description: userInfo.description,
28
+ item: utils.ProcessFeed(ctx, {
29
+ data,
30
+ }),
31
+ };
32
+ };