rsshub 1.0.0-master.fdefa01 → 1.0.0-master.ff1cc11
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.
- package/README.md +8 -6
- package/lib/api_router.js +3 -5
- package/lib/app.js +10 -4
- package/lib/config.js +34 -9
- package/lib/core_router.js +17 -0
- package/lib/errors/RequestInProgress.js +3 -0
- package/lib/errors/index.js +3 -0
- package/lib/index.js +1 -0
- package/lib/maintainer.js +27 -0
- package/lib/middleware/access-control.js +7 -6
- package/lib/middleware/cache/index.js +135 -0
- package/lib/middleware/cache/memory.js +42 -0
- package/lib/middleware/cache/redis.js +48 -0
- package/lib/middleware/debug.js +0 -5
- package/lib/middleware/header.js +2 -1
- package/lib/middleware/load-on-demand.js +36 -0
- package/lib/middleware/onerror.js +26 -74
- package/lib/middleware/parameter.js +41 -14
- package/lib/middleware/template.js +16 -10
- package/lib/radar-rules.js +3127 -0
- package/lib/radar.js +22 -0
- package/lib/router.js +2403 -1738
- package/lib/routes/10000link/news.js +1 -1
- package/lib/routes/12306/zxdt.js +3 -3
- package/lib/routes/141jav/141jav.js +37 -0
- package/lib/routes/141ppv/141ppv.js +37 -0
- package/lib/routes/199it/index.js +15 -17
- package/lib/routes/199it/utils.js +10 -11
- package/lib/routes/1point3acres/blog.js +52 -0
- package/lib/routes/1point3acres/offer.js +8 -8
- package/lib/routes/1point3acres/post.js +37 -25
- package/lib/routes/1x/index.js +49 -16
- package/lib/routes/21caijing/channel.js +4 -4
- package/lib/routes/36kr/motif.js +9 -10
- package/lib/routes/36kr/news.js +7 -8
- package/lib/routes/36kr/search/article.js +3 -3
- package/lib/routes/36kr/user.js +8 -9
- package/lib/routes/3dm/game.js +1 -1
- package/lib/routes/3dm/news_center.js +4 -4
- package/lib/routes/3k8/latest.js +16 -17
- package/lib/routes/3ycy/home.js +4 -4
- package/lib/routes/51voa/channel.js +2 -2
- package/lib/routes/60s-science/transcript.js +1 -1
- package/lib/routes/6park/index.js +57 -0
- package/lib/routes/8btc/author.js +1 -1
- package/lib/routes/8kcos/cat.js +1 -1
- package/lib/routes/8kcos/latest.js +1 -1
- package/lib/routes/91ddcc/stage.js +10 -11
- package/lib/routes/91ddcc/user.js +2 -2
- package/lib/routes/93/index.js +50 -0
- package/lib/routes/95mm/utils.js +16 -17
- package/lib/routes/abc/documentId.js +7272 -0
- package/lib/routes/abc/id.js +7272 -0
- package/lib/routes/abc/index.js +51 -63
- package/lib/routes/acfun/video.js +1 -1
- package/lib/routes/acm/amturingaward.js +68 -0
- package/lib/routes/acwifi/index.js +1 -1
- package/lib/routes/adnmb/index.js +1 -1
- package/lib/routes/adquan/index.js +8 -9
- package/lib/routes/aeon/category.js +1 -1
- package/lib/routes/aflcio/blog.js +48 -0
- package/lib/routes/agefans/detail.js +3 -3
- package/lib/routes/agefans/update.js +46 -0
- package/lib/routes/aisixiang/column.js +2 -2
- package/lib/routes/aisixiang/ranking.js +2 -2
- package/lib/routes/aisixiang/thinktank.js +2 -2
- package/lib/routes/aiyanxishe/home.js +1 -1
- package/lib/routes/algocasts/all.js +12 -14
- package/lib/routes/aliyun/database_month.js +3 -3
- package/lib/routes/aliyun/developer/group.js +1 -1
- package/lib/routes/aliyun/notice.js +3 -3
- package/lib/routes/aliyun-kernel/index.js +2 -2
- package/lib/routes/aljazeera/news.js +9 -10
- package/lib/routes/allnow/column.js +3 -45
- package/lib/routes/allnow/index.js +5 -0
- package/lib/routes/allnow/tag.js +7 -0
- package/lib/routes/allnow/user.js +7 -0
- package/lib/routes/allnow/utils.js +67 -0
- package/lib/routes/alter-cn/news.js +7 -8
- package/lib/routes/amazfitwatchfaces/utils.js +11 -12
- package/lib/routes/amazon/ku.js +16 -17
- package/lib/routes/amd/graphicsdrivers.js +1 -1
- package/lib/routes/andyt/index.js +1 -1
- package/lib/routes/anigamer/new_anime.js +12 -13
- package/lib/routes/animen/news.js +4 -4
- package/lib/routes/anitama/channel.js +2 -2
- package/lib/routes/anytxt/release-notes.js +33 -0
- package/lib/routes/aom/journal.js +15 -16
- package/lib/routes/aozora/newbook.js +5 -5
- package/lib/routes/apnews/topics.js +32 -51
- package/lib/routes/apple/appstore/in-app-purchase.js +2 -5
- package/lib/routes/apple/appstore/price.js +1 -1
- package/lib/routes/apple/appstore/update.js +1 -1
- package/lib/routes/apple/exchange_repair.js +1 -1
- package/lib/routes/arknights/japan.js +24 -0
- package/lib/routes/arknights/news.js +6 -5
- package/lib/routes/asahi/area.js +57 -0
- package/lib/routes/asahi/index.js +94 -0
- package/lib/routes/asiantolick/index.js +64 -0
- package/lib/routes/asml/press-releases.js +39 -0
- package/lib/routes/atfd/index.js +1 -1
- package/lib/routes/av01/actor.js +36 -0
- package/lib/routes/av01/tag.js +36 -0
- package/lib/routes/avgle/videos.js +3 -3
- package/lib/routes/axis-studios/work.js +3 -3
- package/lib/routes/babehub/index.js +30 -0
- package/lib/routes/babehub/search.js +15 -0
- package/lib/routes/babehub/utils.js +71 -0
- package/lib/routes/babykingdom/index.js +1 -1
- package/lib/routes/bahamut/creation.js +1 -1
- package/lib/routes/bahamut/utils.js +3 -3
- package/lib/routes/baidu/daily.js +1 -1
- package/lib/routes/baijing/index.js +23 -32
- package/lib/routes/bandcamp/tag.js +46 -0
- package/lib/routes/bandisoft/index.js +38 -0
- package/lib/routes/bangumi/calendar/today.js +1 -1
- package/lib/routes/bangumi/group/topic.js +2 -2
- package/lib/routes/bangumi/subject/comments.js +1 -1
- package/lib/routes/bangumi/subject/ep.js +1 -1
- package/lib/routes/bangumi/user/blog.js +7 -8
- package/lib/routes/banyuetan/byt.js +50 -0
- package/lib/routes/banyuetan/index.js +3 -3
- package/lib/routes/bbc/index.js +29 -20
- package/lib/routes/bbc/utils.js +13 -110
- package/lib/routes/behance/index.js +4 -4
- package/lib/routes/bell-labs/events-news.js +70 -0
- package/lib/routes/bendibao/news.js +11 -7
- package/lib/routes/benedictevans/recent.js +1 -1
- package/lib/routes/bibgame/category.js +56 -0
- package/lib/routes/bihu/activaties.js +4 -4
- package/lib/routes/bilibili/app.js +33 -0
- package/lib/routes/bilibili/audio.js +6 -6
- package/lib/routes/bilibili/blackboard.js +7 -6
- package/lib/routes/bilibili/coin.js +9 -5
- package/lib/routes/bilibili/danmaku.js +2 -2
- package/lib/routes/bilibili/dynamic.js +20 -14
- package/lib/routes/bilibili/fav.js +9 -5
- package/lib/routes/bilibili/followings_article.js +2 -2
- package/lib/routes/bilibili/followings_dynamic.js +26 -16
- package/lib/routes/bilibili/followings_video.js +10 -13
- package/lib/routes/bilibili/liveArea.js +1 -1
- package/lib/routes/bilibili/manga_followings.js +39 -0
- package/lib/routes/bilibili/manga_update.js +2 -2
- package/lib/routes/bilibili/page.js +1 -1
- package/lib/routes/bilibili/partion-ranking.js +1 -1
- package/lib/routes/bilibili/partion.js +1 -1
- package/lib/routes/bilibili/reply.js +1 -1
- package/lib/routes/bilibili/topic.js +1 -1
- package/lib/routes/bilibili/userChannel.js +40 -12
- package/lib/routes/bilibili/userFav.js +1 -0
- package/lib/routes/bilibili/utils.js +1 -1
- package/lib/routes/bilibili/video.js +1 -1
- package/lib/routes/bilibili/vsearch.js +10 -10
- package/lib/routes/bilibili/weekly_recommend.js +6 -1
- package/lib/routes/bioon/latest.js +13 -14
- package/lib/routes/bioone/featured.js +49 -0
- package/lib/routes/bjnews/epaper.js +3 -3
- package/lib/routes/bjnews/news.js +2 -1
- package/lib/routes/bjp/apod.js +1 -1
- package/lib/routes/bjx/huanbao.js +2 -2
- package/lib/routes/blizzard/news.js +51 -0
- package/lib/routes/blogs/diygod/animal-crossing.js +2 -2
- package/lib/routes/blogs/foreverblog.js +33 -0
- package/lib/routes/blogs/hedwig.js +2 -2
- package/lib/routes/blogs/jianning.js +2 -2
- package/lib/routes/blogs/wangyin.js +6 -6
- package/lib/routes/blogs/wordpress.js +16 -1
- package/lib/routes/blow-studio/work.js +5 -5
- package/lib/routes/blur-studio/index.js +5 -5
- package/lib/routes/boc/whpj.js +1 -1
- package/lib/routes/bookscomtw/newbooks.js +37 -0
- package/lib/routes/bookwalkertw/news.js +3 -3
- package/lib/routes/booth-pm/shop.js +57 -0
- package/lib/routes/boston/index.js +43 -44
- package/lib/routes/caixin/article.js +26 -6
- package/lib/routes/caixin/blog.js +1 -1
- package/lib/routes/caixin/category.js +2 -2
- package/lib/routes/caixin/database.js +48 -0
- package/lib/routes/caixin/latest.js +75 -0
- package/lib/routes/caixin/yxnews.js +30 -0
- package/lib/routes/cartoonmad/comic.js +2 -2
- package/lib/routes/caus/index.js +87 -0
- package/lib/routes/cbc/topics.js +7 -8
- package/lib/routes/cbndata/information.js +52 -0
- package/lib/routes/ccdi/scdc.js +1 -1
- package/lib/routes/ccf/news.js +51 -0
- package/lib/routes/ccg/index.js +49 -0
- package/lib/routes/ccreports/index.js +1 -1
- package/lib/routes/cctv/jx.js +46 -0
- package/lib/routes/cctv/lm.js +78 -0
- package/lib/routes/cctv/special.js +59 -60
- package/lib/routes/cctv/utils/mzzlbg.js +3 -3
- package/lib/routes/cctv/utils/news.js +1 -1
- package/lib/routes/cctv/utils/xinwen1j1.js +4 -5
- package/lib/routes/cctv/xwlb.js +1 -1
- package/lib/routes/cell/cell/index.js +5 -7
- package/lib/routes/cell/cover.js +6 -6
- package/lib/routes/cfan/news.js +1 -1
- package/lib/routes/cgtn/most.js +10 -11
- package/lib/routes/cgtn/opinions.js +50 -0
- package/lib/routes/cgtn/pick.js +45 -0
- package/lib/routes/cgtn/top.js +10 -11
- package/lib/routes/changba/user.js +3 -3
- package/lib/routes/changku/index.js +9 -8
- package/lib/routes/chaoli/index.js +50 -0
- package/lib/routes/chaping/banner.js +12 -13
- package/lib/routes/chaping/news.js +12 -13
- package/lib/routes/checkee/index.js +3 -3
- package/lib/routes/chicagotribune/index.js +46 -47
- package/lib/routes/chiculture/topic.js +59 -0
- package/lib/routes/chinadialogue/column.js +2 -2
- package/lib/routes/chinadialogue/topics.js +2 -2
- package/lib/routes/chinafile/index.js +36 -37
- package/lib/routes/chinalaborwatch/reports.js +53 -0
- package/lib/routes/chiphell/forum.js +1 -1
- package/lib/routes/chsi/zszcgd.js +51 -0
- package/lib/routes/chuapp/index.js +9 -10
- package/lib/routes/chuiniu/column.js +1 -1
- package/lib/routes/citavi/index.js +13 -14
- package/lib/routes/cktest/policy.js +17 -18
- package/lib/routes/clb/commentary.js +48 -0
- package/lib/routes/clickme/index.js +1 -1
- package/lib/routes/cls/depth.js +14 -15
- package/lib/routes/cls/telegraph.js +15 -2
- package/lib/routes/cmes/news.js +64 -0
- package/lib/routes/cna/index.js +20 -15
- package/lib/routes/cnbeta/home.js +1 -0
- package/lib/routes/cnbeta/topic.js +75 -0
- package/lib/routes/cninfo/announcement.js +2 -2
- package/lib/routes/cnu/discovery.js +1 -1
- package/lib/routes/cnu/selected.js +1 -1
- package/lib/routes/comicskingdom/index.js +61 -0
- package/lib/routes/commonapp/blog.js +42 -0
- package/lib/routes/cool18/index.js +57 -0
- package/lib/routes/coolapk/dyh.js +3 -10
- package/lib/routes/coolapk/hot.js +99 -0
- package/lib/routes/coolapk/huati.js +1 -12
- package/lib/routes/coolapk/toutiao.js +31 -0
- package/lib/routes/coolapk/tuwen.js +5 -4
- package/lib/routes/coolapk/userDynamic.js +3 -10
- package/lib/routes/coolapk/utils.js +86 -56
- package/lib/routes/copymanga/comic.js +67 -0
- package/lib/routes/coronavirus/sg-moh.js +1 -1
- package/lib/routes/coronavirus/yahoo-japan.js +77 -0
- package/lib/routes/cpta/notice.js +9 -10
- package/lib/routes/craigslist/search.js +46 -0
- package/lib/routes/creaders/headline.js +9 -10
- package/lib/routes/cria/news.js +57 -0
- package/lib/routes/cs/news.js +11 -12
- package/lib/routes/csc/notice.js +1 -1
- package/lib/routes/csrc/auditstatus.js +2 -2
- package/lib/routes/ctei/news.js +50 -0
- package/lib/routes/ctfhub/search.js +6 -8
- package/lib/routes/ctfhub/upcoming.js +1 -1
- package/lib/routes/curseforge/files.js +23 -39
- package/lib/routes/cyzone/author.js +1 -1
- package/lib/routes/cyzone/label.js +1 -1
- package/lib/routes/d1bz/novel.js +1 -1
- package/lib/routes/d2/daily.js +1 -1
- package/lib/routes/dailyart/index.js +33 -0
- package/lib/routes/daodu/index.js +15 -16
- package/lib/routes/dapenti/utils.js +7 -2
- package/lib/routes/darwinawards/articles.js +3 -3
- package/lib/routes/dayone/blog.js +56 -0
- package/lib/routes/dbaplus/activity.js +35 -0
- package/lib/routes/dbaplus/tab.js +50 -0
- package/lib/routes/dbmv/index.js +2 -2
- package/lib/routes/dcard/section.js +1 -1
- package/lib/routes/dcinside/board.js +1 -1
- package/lib/routes/ddrk/list.js +1 -1
- package/lib/routes/dedao/index.js +12 -13
- package/lib/routes/dedao/list.js +11 -12
- package/lib/routes/deepl/blog.js +34 -0
- package/lib/routes/deeplearningai/thebatch.js +7 -8
- package/lib/routes/deepmind/blog.js +43 -0
- package/lib/routes/dekudeals/index.js +3 -3
- package/lib/routes/deloitte/industries.js +7 -8
- package/lib/routes/dengekionline/new.js +9 -9
- package/lib/routes/dgjyw/index.js +7 -8
- package/lib/routes/dgtle/index.js +2 -2
- package/lib/routes/dianping/user.js +5 -11
- package/lib/routes/dida365/habit-checkins.js +83 -0
- package/lib/routes/digic-pictures/index.js +4 -4
- package/lib/routes/digitaling/article.js +3 -3
- package/lib/routes/digitaling/index.js +2 -2
- package/lib/routes/digitaling/project.js +2 -2
- package/lib/routes/dilbert/strip.js +1 -1
- package/lib/routes/discuss/index.js +71 -0
- package/lib/routes/discuz/discuz.js +2 -2
- package/lib/routes/ditto/changes.js +36 -0
- package/lib/routes/dlsite/campaign.js +13 -13
- package/lib/routes/dlsite/new.js +10 -10
- package/lib/routes/dockone/weekly.js +1 -1
- package/lib/routes/donews/index.js +3 -4
- package/lib/routes/donews/utils.js +3 -7
- package/lib/routes/dongqiudi/utils.js +2 -2
- package/lib/routes/douban/channel/subject.js +2 -2
- package/lib/routes/douban/channel/topic.js +3 -3
- package/lib/routes/douban/commercialpress/latest.js +1 -1
- package/lib/routes/douban/doulist.js +6 -6
- package/lib/routes/douban/explore.js +1 -1
- package/lib/routes/douban/explore_column.js +4 -4
- package/lib/routes/douban/group.js +32 -31
- package/lib/routes/douban/later.js +20 -7
- package/lib/routes/douban/people/status.js +178 -39
- package/lib/routes/douban/people/wish.js +79 -0
- package/lib/routes/douban/replied.js +37 -38
- package/lib/routes/douban/replies.js +20 -21
- package/lib/routes/douban/topic.js +6 -6
- package/lib/routes/douyu/room.js +1 -1
- package/lib/routes/dribbble/utils.js +5 -5
- package/lib/routes/dsb/area.js +11 -12
- package/lib/routes/dsndsht23/index.js +19 -8
- package/lib/routes/dtcj/datahero.js +49 -0
- package/lib/routes/duozhi/index.js +3 -3
- package/lib/routes/duozhuayu/search.js +2 -6
- package/lib/routes/dw/index.js +11 -12
- package/lib/routes/dx2025/index.js +51 -0
- package/lib/routes/dxy/vaccine.js +109 -0
- package/lib/routes/dykszx/news.js +57 -0
- package/lib/routes/eagle/changelog.js +75 -0
- package/lib/routes/earthquake/ceic.js +1 -1
- package/lib/routes/earthquake/index.js +13 -16
- package/lib/routes/ebb/index.js +1 -1
- package/lib/routes/eeo/index.js +72 -36
- package/lib/routes/ehentai/ehapi.js +134 -0
- package/lib/routes/ehentai/favorites.js +19 -0
- package/lib/routes/ehentai/search.js +25 -0
- package/lib/routes/ehentai/tag.js +13 -0
- package/lib/routes/elife/index.js +1 -1
- package/lib/routes/elitebabes/index.js +30 -0
- package/lib/routes/elitebabes/search.js +15 -0
- package/lib/routes/elitebabes/utils.js +88 -0
- package/lib/routes/elitebabes/videos.js +26 -0
- package/lib/routes/embassy/supportedList.js +19 -0
- package/lib/routes/emi-nitta/home.js +7 -8
- package/lib/routes/enclavebooks/collection.js +1 -1
- package/lib/routes/enclavebooks/user.js +1 -1
- package/lib/routes/erbingapp/news.js +38 -29
- package/lib/routes/esquirehk/tag.js +24 -25
- package/lib/routes/etherscan/transactions.js +37 -0
- package/lib/routes/etoland/board.js +5 -5
- package/lib/routes/europapress/index.js +52 -0
- package/lib/routes/everything/changes.js +33 -0
- package/lib/routes/{eventernote → everything/eventernote}/actors.js +0 -0
- package/lib/routes/ezone/index.js +60 -0
- package/lib/routes/eztv/imdb.js +12 -6
- package/lib/routes/facebook/page.js +8 -1
- package/lib/routes/fanbox/conv.js +1 -1
- package/lib/routes/fanbox/header.js +1 -1
- package/lib/routes/fanbox/main.js +1 -1
- package/lib/routes/fanfou/favorites.js +13 -16
- package/lib/routes/fanfou/home_timeline.js +13 -16
- package/lib/routes/fanfou/public_timeline.js +14 -16
- package/lib/routes/fanfou/trends.js +6 -11
- package/lib/routes/fanfou/user_timeline.js +13 -16
- package/lib/routes/fanfou/utils.js +5 -5
- package/lib/routes/fantia/user.js +10 -11
- package/lib/routes/{szse/rule.js → fanxinzhui/latest.js} +15 -8
- package/lib/routes/fashionnetwork/news.js +70 -0
- package/lib/routes/feed-the-beast/modpack.js +31 -0
- package/lib/routes/feixuew/index.js +13 -14
- package/lib/routes/ff14/ff14_zh.js +3 -5
- package/lib/routes/fgo/news.js +7 -8
- package/lib/routes/finviz/news.js +1 -1
- package/lib/routes/fir/update.js +1 -1
- package/lib/routes/firefox/addons.js +1 -1
- package/lib/routes/fitchratings/site.js +2 -2
- package/lib/routes/fjnews/fznews.js +1 -1
- package/lib/routes/flyertea/utils.js +3 -3
- package/lib/routes/fnal/news.js +50 -0
- package/lib/routes/fontstory/tw.js +48 -0
- package/lib/routes/ft/myft.js +46 -0
- package/lib/routes/fulinian/index.js +13 -14
- package/lib/routes/furaffinity/browse.js +44 -0
- package/lib/routes/furaffinity/commissions.js +39 -0
- package/lib/routes/furaffinity/favorites.js +56 -0
- package/lib/routes/furaffinity/gallery.js +56 -0
- package/lib/routes/furaffinity/home.js +59 -0
- package/lib/routes/furaffinity/journal_comments.js +50 -0
- package/lib/routes/furaffinity/journals.js +49 -0
- package/lib/routes/furaffinity/scraps.js +56 -0
- package/lib/routes/furaffinity/search.js +56 -0
- package/lib/routes/furaffinity/shouts.js +40 -0
- package/lib/routes/furaffinity/status.js +39 -0
- package/lib/routes/furaffinity/submission_comments.js +50 -0
- package/lib/routes/furaffinity/user.js +96 -0
- package/lib/routes/furaffinity/watchers.js +47 -0
- package/lib/routes/furaffinity/watching.js +47 -0
- package/lib/routes/futunn/highlights.js +5 -4
- package/lib/routes/fx678/kx.js +2 -2
- package/lib/routes/fzdm/manhua.js +43 -9
- package/lib/routes/gab/explore.js +31 -0
- package/lib/routes/gab/user.js +32 -0
- package/lib/routes/galgame/hhgal.js +5 -5
- package/lib/routes/game4399/forum.js +4 -4
- package/lib/routes/gamegrape/index.js +73 -0
- package/lib/routes/gamer/gnn_index.js +47 -36
- package/lib/routes/gamer/hot.js +14 -15
- package/lib/routes/gameres/utils.js +20 -21
- package/lib/routes/gamersky/ent.js +5 -5
- package/lib/routes/gaoqing/utils.js +3 -3
- package/lib/routes/gcores/category.js +49 -6
- package/lib/routes/geektime/column.js +4 -4
- package/lib/routes/geektime/news.js +4 -4
- package/lib/routes/gelonghui/keyword.js +7 -8
- package/lib/routes/gelonghui/subject.js +7 -8
- package/lib/routes/gelonghui/user.js +7 -8
- package/lib/routes/girlimg/album.js +1 -1
- package/lib/routes/gitea/blog.js +2 -2
- package/lib/routes/github/contributors.js +6 -8
- package/lib/routes/github/file.js +10 -13
- package/lib/routes/github/issue.js +2 -2
- package/lib/routes/github/search.js +1 -1
- package/lib/routes/github/starred_repos.js +2 -2
- package/lib/routes/github/topic.js +25 -0
- package/lib/routes/github/trending.js +6 -5
- package/lib/routes/gitlab/explore.js +6 -4
- package/lib/routes/gitlab/release.js +30 -0
- package/lib/routes/gitlab/tag.js +30 -0
- package/lib/routes/go.jp/mofa/main.js +3 -3
- package/lib/routes/gocomics/index.js +64 -0
- package/lib/routes/google/album.js +1 -1
- package/lib/routes/google/citations.js +1 -1
- package/lib/routes/google/news.js +2 -2
- package/lib/routes/google/sites.js +3 -3
- package/lib/routes/gov/beijing/eea.js +12 -6
- package/lib/routes/gov/beijing/mhc.js +7 -8
- package/lib/routes/gov/caict/bps.js +8 -9
- package/lib/routes/gov/caict/caictgd.js +8 -9
- package/lib/routes/gov/caict/qwsj.js +1 -1
- package/lib/routes/gov/chinatax/latest.js +9 -10
- package/lib/routes/gov/chongqing/ljxq/dwgk.js +10 -11
- package/lib/routes/gov/chongqing/ljxq/zwgk.js +10 -11
- package/lib/routes/gov/cnca/hydt.js +1 -1
- package/lib/routes/gov/cnca/jgdt.js +1 -1
- package/lib/routes/gov/cnca/zxtz.js +2 -2
- package/lib/routes/gov/cppcc/index.js +48 -0
- package/lib/routes/gov/customs/list.js +3 -3
- package/lib/routes/gov/fmprc/utils.js +3 -3
- package/lib/routes/gov/guangdong/edu.js +8 -9
- package/lib/routes/gov/guangdong/eea.js +59 -0
- package/lib/routes/gov/harbin/kjj.js +11 -12
- package/lib/routes/gov/hubei/hbsia.js +101 -0
- package/lib/routes/gov/hunan/notice.js +3 -3
- package/lib/routes/gov/jiangsu/eea.js +1 -1
- package/lib/routes/gov/miit/wjgs.js +1 -1
- package/lib/routes/gov/miit/zcjd.js +1 -1
- package/lib/routes/gov/miit/zcwj.js +1 -1
- package/lib/routes/gov/moa/moa.js +3 -3
- package/lib/routes/gov/moa/sjzxfb.js +3 -3
- package/lib/routes/gov/mohrss/sbjm.js +59 -0
- package/lib/routes/gov/mohurd/policy.js +8 -9
- package/lib/routes/gov/ndrc/xwdt.js +11 -12
- package/lib/routes/gov/news/index.js +2 -2
- package/lib/routes/gov/ngd/index.js +51 -0
- package/lib/routes/gov/nppa/channels.js +2 -2
- package/lib/routes/gov/nppa/contents.js +3 -3
- package/lib/routes/gov/province/jiangsu/getContent.js +1 -2
- package/lib/routes/gov/province/jiangsu/index.js +1 -1
- package/lib/routes/gov/sapprft/7026.js +3 -3
- package/lib/routes/gov/shanghai/sthj.js +2 -2
- package/lib/routes/gov/shanxi/rst.js +4 -4
- package/lib/routes/gov/shenzhen/xxgk/zfxxgj.js +62 -0
- package/lib/routes/gov/shuju/index.js +13 -14
- package/lib/routes/gov/statecouncil/briefing.js +2 -2
- package/lib/routes/gov/suzhou/doc.js +1 -1
- package/lib/routes/gov/suzhou/news.js +7 -7
- package/lib/routes/gov/taiwan/mnd.js +25 -26
- package/lib/routes/gov/veterans/china.js +6 -6
- package/lib/routes/gov/veterans/hebei.js +6 -6
- package/lib/routes/gov/wuhan/kjj.js +63 -0
- package/lib/routes/gov/wuhan/wehdz.js +63 -0
- package/lib/routes/gov/xinwen/tujie.js +11 -12
- package/lib/routes/gq/tw/index.js +22 -23
- package/lib/routes/gracg/user.js +2 -2
- package/lib/routes/greasyfork/scripts.js +2 -2
- package/lib/routes/growincity/news.js +49 -0
- package/lib/routes/grubstreet/utils.js +6 -6
- package/lib/routes/guancha/headline.js +10 -11
- package/lib/routes/guancha/index.js +28 -29
- package/lib/routes/guancha/personalpage.js +41 -7
- package/lib/routes/guancha/topic.js +15 -16
- package/lib/routes/guanggoo/index.js +11 -10
- package/lib/routes/guat/news.js +1 -1
- package/lib/routes/guet/news.js +5 -5
- package/lib/routes/guiltfree/onsale.js +13 -14
- package/lib/routes/guokr/scientific.js +17 -7
- package/lib/routes/gvm/index.js +7 -8
- package/lib/routes/gwern/category.js +2 -2
- package/lib/routes/hackernews/story.js +1 -1
- package/lib/routes/hackerone/hacktivity.js +1 -1
- package/lib/routes/hackerone/search.js +49 -0
- package/lib/routes/haimaoba/comics.js +17 -18
- package/lib/routes/hainanu/ssszs.js +36 -0
- package/lib/routes/haohaozhu/discover.js +1 -1
- package/lib/routes/haohaozhu/whole-house.js +2 -2
- package/lib/routes/hdx/explore.js +1 -1
- package/lib/routes/hentai-cosplays/porn-images-xxx.js +1 -1
- package/lib/routes/hentai-cosplays/utils.js +45 -19
- package/lib/routes/hex-rays/index.js +13 -20
- package/lib/routes/hexo/next.js +1 -1
- package/lib/routes/hinatazaka46/blog.js +1 -1
- package/lib/routes/hk01/zone.js +3 -3
- package/lib/routes/hkcd/pdf.js +30 -0
- package/lib/routes/hkcnews/news.js +59 -0
- package/lib/routes/hkej/index.js +132 -0
- package/lib/routes/hkepc/index.js +164 -0
- package/lib/routes/hkgolden/index.js +110 -0
- package/lib/routes/hko/weather.js +1 -1
- package/lib/routes/hpoi/index.js +1 -1
- package/lib/routes/hpoi/info.js +1 -1
- package/lib/routes/hpoi/user.js +2 -2
- package/lib/routes/huawei/xinsheng/index.js +14 -15
- package/lib/routes/hugo/releases.js +53 -0
- package/lib/routes/hupu/all.js +16 -17
- package/lib/routes/hupu/bbs.js +5 -5
- package/lib/routes/hupu/dept.js +16 -17
- package/lib/routes/huxiu/collection.js +2 -2
- package/lib/routes/huxiu/utils.js +10 -10
- package/lib/routes/huya/live.js +2 -2
- package/lib/routes/icable/category.js +20 -23
- package/lib/routes/icity/index.js +1 -1
- package/lib/routes/idaily/index.js +21 -0
- package/lib/routes/iea/index.js +53 -0
- package/lib/routes/ieee/author.js +2 -2
- package/lib/routes/ifanr/index.js +1 -1
- package/lib/routes/ifeng/feng.js +1 -1
- package/lib/routes/ifnews/column.js +1 -1
- package/lib/routes/iie/blog.js +47 -0
- package/lib/routes/im2maker/index.js +1 -1
- package/lib/routes/imaijia/category.js +5 -5
- package/lib/routes/imuseum/index.js +1 -1
- package/lib/routes/index.js +6 -26
- package/lib/routes/indienova/article.js +2 -2
- package/lib/routes/infoq/topic.js +1 -1
- package/lib/routes/infoq/utils.js +2 -2
- package/lib/routes/infzm/news.js +3 -1
- package/lib/routes/initium/full.js +21 -15
- package/lib/routes/instagram/index.js +103 -52
- package/lib/routes/instagram/utils.js +15 -8
- package/lib/routes/instapaper/person.js +1 -1
- package/lib/routes/interesting-sky/astronomical_events.js +38 -0
- package/lib/routes/interesting-sky/index.js +34 -0
- package/lib/routes/interesting-sky/recent-interesting.js +46 -0
- package/lib/routes/iplay/home.js +1 -1
- package/lib/routes/iplay/utils.js +3 -3
- package/lib/routes/ipsw/index.js +3 -3
- package/lib/routes/iqiyi/dongman.js +1 -1
- package/lib/routes/iqiyi/video.js +1 -1
- package/lib/routes/ithome/index.js +15 -16
- package/lib/routes/ithome/ranking.js +18 -19
- package/lib/routes/itjuzi/invest.js +1 -1
- package/lib/routes/itslide/new.js +2 -2
- package/lib/routes/ixigua/userVideo.js +35 -0
- package/lib/routes/iyiou/index.js +41 -0
- package/lib/routes/iyouport/index.js +11 -12
- package/lib/routes/jandan/article.js +62 -0
- package/lib/routes/jandan/pic.js +48 -59
- package/lib/routes/japanpost/track.js +111 -0
- package/lib/routes/japanpost/utils.js +62 -16
- package/lib/routes/javbus/util.js +1 -1
- package/lib/routes/javdb/actors.js +5 -4
- package/lib/routes/javdb/index.js +32 -0
- package/lib/routes/javdb/makers.js +5 -4
- package/lib/routes/javdb/rankings.js +3 -3
- package/lib/routes/javdb/search.js +5 -5
- package/lib/routes/javdb/series.js +5 -4
- package/lib/routes/javdb/tags.js +4 -4
- package/lib/routes/javdb/utils.js +42 -32
- package/lib/routes/javlibrary/bestreviews.js +1 -1
- package/lib/routes/javlibrary/users.js +1 -1
- package/lib/routes/javlibrary/utils.js +2 -2
- package/lib/routes/jdlingyu/index.js +3 -3
- package/lib/routes/jianshu/utils.js +3 -3
- package/lib/routes/jiazhen108/index.js +11 -12
- package/lib/routes/jiemian/list.js +1 -1
- package/lib/routes/jike/common.js +1 -1
- package/lib/routes/jike/user.js +1 -1
- package/lib/routes/jingdong/zhongchou.js +3 -3
- package/lib/routes/jinritoutiao/keyword.js +5 -7
- package/lib/routes/jpmorganchase/research.js +2 -2
- package/lib/routes/juejin/books.js +3 -3
- package/lib/routes/juejin/category.js +5 -5
- package/lib/routes/juejin/collection.js +2 -2
- package/lib/routes/juejin/column.js +31 -0
- package/lib/routes/juejin/favorites.js +2 -2
- package/lib/routes/juejin/pins.js +1 -1
- package/lib/routes/juejin/posts.js +2 -2
- package/lib/routes/juejin/tag.js +5 -5
- package/lib/routes/juejin/trending.js +5 -5
- package/lib/routes/juejin/utils.js +22 -29
- package/lib/routes/juesheng/index.js +3 -3
- package/lib/routes/justrun/index.js +11 -12
- package/lib/routes/jx3/news.js +13 -14
- package/lib/routes/kaggle/competitions.js +3 -3
- package/lib/routes/kaggle/discussion.js +2 -2
- package/lib/routes/kaiyan/index.js +3 -3
- package/lib/routes/kaopunews/index.js +28 -0
- package/lib/routes/kaoyan/kaoyan.js +1 -1
- package/lib/routes/kchuhai/index.js +1 -1
- package/lib/routes/keep/user.js +24 -22
- package/lib/routes/kenshin/index.js +53 -0
- package/lib/routes/keyakizaka46/blog.js +1 -1
- package/lib/routes/kingarthur/index.js +59 -0
- package/lib/routes/kongfz/people.js +1 -1
- package/lib/routes/kongfz/shop.js +19 -20
- package/lib/routes/kpmg/insights.js +61 -36
- package/lib/routes/kuaibao/index.js +10 -11
- package/lib/routes/kuaidi100/utils.js +5 -5
- package/lib/routes/langlive/room.js +1 -1
- package/lib/routes/latepost/index.js +84 -0
- package/lib/routes/latexstudio/home.js +8 -9
- package/lib/routes/learnku/topic.js +2 -2
- package/lib/routes/leetcode/articles.js +22 -4
- package/lib/routes/leetcode/check-cn.js +3 -3
- package/lib/routes/leetcode/check-us.js +2 -2
- package/lib/routes/leetcode/utils.js +47 -49
- package/lib/routes/letterboxd/utils.js +11 -12
- package/lib/routes/liequtv/room.js +1 -1
- package/lib/routes/lifetimes/index.js +17 -18
- package/lib/routes/lingyi/index.js +64 -0
- package/lib/routes/liquipedia/dota2_matches.js +1 -1
- package/lib/routes/liyuan-forums/threads.js +76 -0
- package/lib/routes/lizhi/user.js +9 -10
- package/lib/routes/lkong/forum.js +1 -1
- package/lib/routes/lofter/posts.js +2 -2
- package/lib/routes/lofter/tag.js +41 -37
- package/lib/routes/logseq/changelog.js +42 -0
- package/lib/routes/lowendtalk/discussion.js +43 -0
- package/lib/routes/ltaaa/index.js +69 -0
- package/lib/routes/luogu/contest.js +2 -2
- package/lib/routes/luogu/daily.js +19 -20
- package/lib/routes/lwn/alerts.js +4 -4
- package/lib/routes/macau-bolsas/index.js +47 -0
- package/lib/routes/macked/app.js +25 -0
- package/lib/routes/macwk/soft.js +32 -0
- package/lib/routes/mafengwo/note.js +1 -1
- package/lib/routes/mafengwo/ziyouxing.js +8 -9
- package/lib/routes/magireco/announcements.js +1 -1
- package/lib/routes/magireco/event_banner.js +1 -1
- package/lib/routes/mail/imap.js +1 -1
- package/lib/routes/makeuseof/index.js +18 -19
- package/lib/routes/manhuagui/comic.js +9 -0
- package/lib/routes/maoyan/hot.js +9 -11
- package/lib/routes/maoyan/upcoming.js +6 -8
- package/lib/routes/marginnote/tag.js +42 -0
- package/lib/routes/mastodon/account_id.js +2 -2
- package/lib/routes/mastodon/acct.js +2 -2
- package/lib/routes/mastodon/utils.js +5 -5
- package/lib/routes/matataki/site/posts/author.js +1 -1
- package/lib/routes/matataki/site/posts/favorite.js +3 -3
- package/lib/routes/matataki/site/posts/scoreranking.js +1 -1
- package/lib/routes/matataki/site/posts/tag.js +1 -1
- package/lib/routes/matataki/site/posts/timeranking.js +1 -1
- package/lib/routes/matataki/site/posts/token.js +1 -1
- package/lib/routes/matataki/utils/matataki-utils.js +46 -33
- package/lib/routes/mathpix/blog.js +17 -18
- package/lib/routes/mathunion/fields-medal.js +38 -0
- package/lib/routes/matters/author.js +41 -42
- package/lib/routes/matters/latest.js +42 -30
- package/lib/routes/matters/tags.js +48 -42
- package/lib/routes/mcbbs/forum.js +8 -8
- package/lib/routes/mcbbs/post.js +10 -10
- package/lib/routes/mcdonalds/news.js +53 -0
- package/lib/routes/mckinsey/index.js +49 -0
- package/lib/routes/mediadigest/category.js +130 -0
- package/lib/routes/medsci/recommend.js +13 -14
- package/lib/routes/meihua/article.js +10 -11
- package/lib/routes/meihua/shots.js +10 -11
- package/lib/routes/meipai/user.js +1 -3
- package/lib/routes/meipai/utils.js +19 -21
- package/lib/routes/meituan/open/announce.js +45 -0
- package/lib/routes/melon/chart.js +41 -0
- package/lib/routes/mercari/index.js +17 -18
- package/lib/routes/method-studios/index.js +4 -4
- package/lib/routes/metred/fuli.js +27 -38
- package/lib/routes/mhgui/comic.js +53 -0
- package/lib/routes/mi/board.js +1 -1
- package/lib/routes/mi/golden.js +2 -2
- package/lib/routes/micmicidol/article.js +28 -0
- package/lib/routes/micmicidol/latest.js +3 -0
- package/lib/routes/micmicidol/parse.js +22 -0
- package/lib/routes/micmicidol/search.js +7 -0
- package/lib/routes/microsoft-store/updates.js +30 -0
- package/lib/routes/mihoyo/bh2.js +2 -2
- package/lib/routes/mihoyo/bh3.js +7 -8
- package/lib/routes/mind42/utils.js +12 -13
- package/lib/routes/minecraft/version.js +2 -2
- package/lib/routes/mingjian/index.js +12 -13
- package/lib/routes/miniflux/get_entries.js +5 -5
- package/lib/routes/miniflux/get_feeds.js +2 -2
- package/lib/routes/missevan/drama.js +25 -8
- package/lib/routes/missevan/latest.js +47 -0
- package/lib/routes/mitbbs/index.js +14 -15
- package/lib/routes/mittrchina/index.js +36 -29
- package/lib/routes/mlog-club/projects.js +1 -1
- package/lib/routes/mlog-club/topics.js +1 -1
- package/lib/routes/mobilism/release.js +7 -8
- package/lib/routes/modian/zhongchou.js +61 -0
- package/lib/routes/mofcom/article.js +1 -1
- package/lib/routes/mofish/index.js +29 -0
- package/lib/routes/monotype/article.js +8 -9
- package/lib/routes/moxingfans/index.js +2 -2
- package/lib/routes/moxingnet/index.js +4 -6
- package/lib/routes/mp4ba/index.js +3 -3
- package/lib/routes/mp4er/index.js +83 -0
- package/lib/routes/mpaypass/main.js +2 -2
- package/lib/routes/mpaypass/news.js +2 -2
- package/lib/routes/mubu/explore.js +26 -28
- package/lib/routes/muchong/index.js +13 -14
- package/lib/routes/muchong/journal.js +13 -14
- package/lib/routes/mzitu/home.js +1 -1
- package/lib/routes/mzitu/tag.js +1 -1
- package/lib/routes/mzitu/tags.js +1 -1
- package/lib/routes/mzitu/util.js +2 -2
- package/lib/routes/nace/blog.js +52 -0
- package/lib/routes/nasa/apod-cn.js +29 -30
- package/lib/routes/natgeo/natgeo.js +2 -2
- package/lib/routes/nature/highlight.js +1 -1
- package/lib/routes/nature/news-and-comment.js +25 -27
- package/lib/routes/nature/news.js +1 -1
- package/lib/routes/nature/research.js +1 -1
- package/lib/routes/nautilus/topics.js +1 -1
- package/lib/routes/nbd/article.js +4 -4
- package/lib/routes/nbd/index.js +49 -0
- package/lib/routes/ncm/djradio.js +1 -1
- package/lib/routes/ncm/playlist.js +1 -1
- package/lib/routes/ncm/userplaylist.js +1 -1
- package/lib/routes/neea/index.js +15 -10
- package/lib/routes/netease/ds.js +1 -1
- package/lib/routes/netease/dy.js +2 -2
- package/lib/routes/netease/dy2.js +62 -0
- package/lib/routes/netease/news/special.js +1 -1
- package/lib/routes/netease/open/latest.js +1 -1
- package/lib/routes/netease/open/vip.js +22 -44
- package/lib/routes/netflix/newsroom.js +82 -0
- package/lib/routes/newrank/douyin.js +9 -11
- package/lib/routes/newrank/utils.js +7 -7
- package/lib/routes/newrank/wechat.js +7 -9
- package/lib/routes/news/whxw.js +59 -0
- package/lib/routes/newsmth/account.js +1 -1
- package/lib/routes/newsmth/section.js +11 -12
- package/lib/routes/newzmz/index.js +74 -0
- package/lib/routes/newzmz/view.js +42 -0
- package/lib/routes/nfmovies/index.js +1 -1
- package/lib/routes/nga/forum.js +9 -1
- package/lib/routes/nhentai/util.js +4 -4
- package/lib/routes/niaogebiji/index.js +40 -0
- package/lib/routes/nikkei/index.js +2 -2
- package/lib/routes/nikkei/news.js +13 -2
- package/lib/routes/nintendo/utils.js +29 -33
- package/lib/routes/noi/index.js +15 -21
- package/lib/routes/noi/province-news.js +15 -21
- package/lib/routes/noi/rg-news.js +4 -4
- package/lib/routes/noi/winners-list.js +16 -21
- package/lib/routes/northhouse/index.js +54 -0
- package/lib/routes/nosec/index.js +2 -2
- package/lib/routes/nosetime/comment.js +3 -3
- package/lib/routes/nosetime/home.js +1 -1
- package/lib/routes/notefolio/index.js +20 -21
- package/lib/routes/novel/axdzs.js +1 -1
- package/lib/routes/novel/biquge.js +1 -1
- package/lib/routes/novel/biqugeinfo.js +1 -1
- package/lib/routes/novel/booksky.js +1 -1
- package/lib/routes/novel/dcrsw.js +1 -1
- package/lib/routes/novel/ptwxz.js +44 -15
- package/lib/routes/novel/shuquge.js +2 -3
- package/lib/routes/novel/wenxuemi.js +3 -3
- package/lib/routes/novel/zhaishuyuan.js +59 -14
- package/lib/routes/now/rank.js +31 -0
- package/lib/routes/nowcoder/discuss.js +3 -3
- package/lib/routes/nowcoder/jobcenter.js +10 -11
- package/lib/routes/npc/index.js +1 -1
- package/lib/routes/nsfc/news.js +1 -1
- package/lib/routes/nvidia/webdriverupdate.js +2 -2
- package/lib/routes/nyaa/search.js +2 -2
- package/lib/routes/nytimes/book.js +71 -0
- package/lib/routes/nytimes/daily_briefing_chinese.js +61 -0
- package/lib/routes/nytimes/index.js +4 -5
- package/lib/routes/nytimes/utils.js +23 -3
- package/lib/routes/obsidian/announcements.js +22 -0
- package/lib/routes/odaily/activity.js +47 -0
- package/lib/routes/odaily/newsflash.js +25 -0
- package/lib/routes/odaily/post.js +60 -0
- package/lib/routes/odaily/user.js +53 -0
- package/lib/routes/ofweek/news.js +11 -12
- package/lib/routes/one/index.js +1 -1
- package/lib/routes/onejav/one.js +1 -1
- package/lib/routes/onenotegem/release.js +15 -16
- package/lib/routes/openai/blog.js +52 -0
- package/lib/routes/or/index.js +54 -0
- package/lib/routes/ornl/news.js +47 -0
- package/lib/routes/oschina/news.js +1 -1
- package/lib/routes/oschina/topic.js +1 -1
- package/lib/routes/oschina/u.js +1 -1
- package/lib/routes/oschina/user.js +1 -1
- package/lib/routes/outagereport/service.js +2 -2
- package/lib/routes/p-articles/contributors.js +1 -1
- package/lib/routes/p-articles/section.js +1 -1
- package/lib/routes/p-articles/utils.js +3 -3
- package/lib/routes/paidai/bbs.js +3 -3
- package/lib/routes/paidai/index.js +3 -3
- package/lib/routes/paidai/news.js +8 -8
- package/lib/routes/paidai/utils.js +2 -2
- package/lib/routes/parcel/hermesuk.js +1 -1
- package/lib/routes/partnershiponai/resources.js +49 -0
- package/lib/routes/patchwork.kernel.org/comments.js +2 -2
- package/lib/routes/pbc/goutongjiaoliu.js +14 -15
- package/lib/routes/pbc/tradeAnnouncement.js +14 -15
- package/lib/routes/pcr/news-cn.js +2 -2
- package/lib/routes/pcr/news-tw.js +1 -1
- package/lib/routes/pediy/topic.js +4 -4
- package/lib/routes/people/cpc/24h.js +52 -0
- package/lib/routes/people/env.js +4 -4
- package/lib/routes/people/opinion.js +4 -4
- package/lib/routes/people/xjpjh.js +4 -4
- package/lib/routes/pgyer/app.js +9 -9
- package/lib/routes/phoronix/index.js +111 -0
- package/lib/routes/phrack/index.js +39 -0
- package/lib/routes/pianyuan/app.js +4 -4
- package/lib/routes/piaohua/hot.js +8 -9
- package/lib/routes/piapro/public.js +1 -1
- package/lib/routes/piapro/user.js +1 -1
- package/lib/routes/pincong/hot.js +33 -0
- package/lib/routes/pincong/index.js +40 -0
- package/lib/routes/pincong/topic.js +32 -0
- package/lib/routes/pixiv/api/getBookmarks.js +3 -3
- package/lib/routes/pixiv/api/getIllustFollows.js +2 -2
- package/lib/routes/pixiv/api/getIllusts.js +3 -4
- package/lib/routes/pixiv/api/getRanking.js +3 -3
- package/lib/routes/pixiv/api/getUserDetail.js +3 -3
- package/lib/routes/pixiv/api/searchIllust.js +2 -2
- package/lib/routes/pixiv/api/searchPopularIllust.js +2 -2
- package/lib/routes/pixiv/bookmarks.js +9 -14
- package/lib/routes/pixiv/constants.js +1 -1
- package/lib/routes/pixiv/illustfollow.js +10 -12
- package/lib/routes/pixiv/pixiv-got.js +7 -2
- package/lib/routes/pixiv/ranking.js +24 -14
- package/lib/routes/pixiv/search.js +12 -17
- package/lib/routes/pixiv/token.js +42 -58
- package/lib/routes/pixiv/user.js +8 -14
- package/lib/routes/pixiv/utils.js +17 -0
- package/lib/routes/pjsk/news.js +49 -0
- package/lib/routes/pmcaff/feed.js +6 -6
- package/lib/routes/pmcaff/list.js +2 -2
- package/lib/routes/pmcaff/user.js +6 -6
- package/lib/routes/pnas/index.js +1 -1
- package/lib/routes/polar/blog.js +47 -0
- package/lib/routes/popiask/tapechat_questions.js +2 -2
- package/lib/routes/popyard/index.js +51 -53
- package/lib/routes/pornhub/category_url.js +3 -2
- package/lib/routes/pornhub/model.js +4 -3
- package/lib/routes/pornhub/pornstar.js +4 -3
- package/lib/routes/pornhub/users.js +4 -2
- package/lib/routes/potplayer/update.js +42 -0
- package/lib/routes/prestige-av/series.js +2 -1
- package/lib/routes/processon/popular.js +13 -14
- package/lib/routes/producthunt/today.js +2 -2
- package/lib/routes/project-zero-issues/index.js +2 -2
- package/lib/routes/proletar/index.js +51 -0
- package/lib/routes/ps/product.js +3 -3
- package/lib/routes/ps/ps4updates.js +3 -3
- package/lib/routes/psnine/game.js +1 -1
- package/lib/routes/psnine/index.js +1 -1
- package/lib/routes/psnine/news.js +37 -16
- package/lib/routes/psnine/node.js +54 -0
- package/lib/routes/psnine/shuzhe.js +1 -1
- package/lib/routes/psnine/trade.js +1 -1
- package/lib/routes/pubmed/trending.js +19 -20
- package/lib/routes/qidian/forum.js +1 -1
- package/lib/routes/qidian/free-next.js +2 -2
- package/lib/routes/qidian/free.js +2 -2
- package/lib/routes/qingting/channel.js +7 -8
- package/lib/routes/qlwb/city.js +8 -9
- package/lib/routes/qlwb/news.js +8 -9
- package/lib/routes/qnap/release-notes.js +13 -14
- package/lib/routes/qstheory/index.js +13 -14
- package/lib/routes/qtfyfl/category.js +3 -3
- package/lib/routes/qttabbar/change-log.js +33 -0
- package/lib/routes/quantamagazine/archive.js +3 -5
- package/lib/routes/questmobile/report.js +122 -0
- package/lib/routes/qutoutiao/category.js +2 -2
- package/lib/routes/qzcea/index.js +12 -13
- package/lib/routes/radio/radio.js +2 -2
- package/lib/routes/{kaopunews/all.js → react/react-native-weekly.js} +13 -8
- package/lib/routes/readhub/category.js +1 -1
- package/lib/routes/remote-work/index.js +8 -9
- package/lib/routes/rescuetime/release-notes.js +37 -0
- package/lib/routes/researchgate/publications.js +60 -0
- package/lib/routes/reuters/channel.js +3 -3
- package/lib/routes/reuters/theWire.js +3 -3
- package/lib/routes/rf/article.js +8 -9
- package/lib/routes/rfa/index.js +46 -0
- package/lib/routes/right/forum.js +67 -0
- package/lib/routes/rmlt/idea.js +54 -0
- package/lib/routes/{zcool/discovery.js → rss3/blog.js} +9 -10
- package/lib/routes/ruby-china/utils.js +2 -2
- package/lib/routes/s-hentai/index.js +64 -0
- package/lib/routes/sakurazaka46/blog.js +1 -1
- package/lib/routes/samsungmembers/latest.js +8 -9
- package/lib/routes/saraba1st/thread.js +13 -16
- package/lib/routes/sbs/chinese.js +70 -0
- package/lib/routes/scboy/thread.js +50 -0
- package/lib/routes/sciencemag/cover.js +2 -4
- package/lib/routes/sciencemag/current.js +2 -2
- package/lib/routes/sciencemag/early.js +4 -8
- package/lib/routes/sciencenet/blog.js +56 -0
- package/lib/routes/scmp/index.js +78 -79
- package/lib/routes/secrss/author.js +22 -0
- package/lib/routes/secrss/category.js +25 -0
- package/lib/routes/security/pulses.js +2 -2
- package/lib/routes/segmentfault/channel.js +4 -4
- package/lib/routes/segmentfault/user.js +4 -4
- package/lib/routes/semiconductors/latest-news.js +47 -0
- package/lib/routes/sexinsex/index.js +5 -5
- package/lib/routes/shinybbs/index.js +60 -0
- package/lib/routes/shinybbs/latest.js +57 -0
- package/lib/routes/shinybbs/p.js +38 -0
- package/lib/routes/showroom/room.js +3 -3
- package/lib/routes/shuax/project.js +37 -0
- package/lib/routes/shuhui/comics.js +4 -4
- package/lib/routes/simonsfoundation/articles.js +1 -1
- package/lib/routes/simpread/changelog.js +79 -0
- package/lib/routes/simpread/notice.js +20 -0
- package/lib/routes/sina/chuangshiji.js +3 -3
- package/lib/routes/sina/discovery.js +3 -3
- package/lib/routes/sina/finance.js +2 -2
- package/lib/routes/sina/rollnews.js +2 -2
- package/lib/routes/sina/sports.js +14 -15
- package/lib/routes/siren/index.js +33 -0
- package/lib/routes/sixthtone/news.js +1 -1
- package/lib/routes/sketch/beta.js +20 -70
- package/lib/routes/sketch/updates.js +3 -3
- package/lib/routes/skysports/news.js +53 -0
- package/lib/routes/smzdm/article.js +6 -5
- package/lib/routes/smzdm/baoliao.js +4 -5
- package/lib/routes/smzdm/haowen.js +6 -5
- package/lib/routes/smzdm/haowen_fenlei.js +6 -6
- package/lib/routes/smzdm/keyword.js +4 -3
- package/lib/routes/smzdm/ranking.js +2 -2
- package/lib/routes/sobooks/utils.js +15 -16
- package/lib/routes/socialbeta/home.js +9 -10
- package/lib/routes/soomal/topics.js +6 -6
- package/lib/routes/soul/hot.js +17 -9
- package/lib/routes/soul/index.js +5 -5
- package/lib/routes/soundcloud/utils.js +3 -3
- package/lib/routes/sse/sserules.js +49 -0
- package/lib/routes/ssmh/category.js +2 -2
- package/lib/routes/ssmh/index.js +2 -2
- package/lib/routes/sspai/activity.js +4 -4
- package/lib/routes/sspai/author.js +3 -3
- package/lib/routes/sspai/column.js +6 -6
- package/lib/routes/sspai/matrix.js +3 -3
- package/lib/routes/sspai/series.js +34 -16
- package/lib/routes/sspai/shortcutsGallery.js +1 -1
- package/lib/routes/sspai/tag.js +5 -5
- package/lib/routes/sspai/topic.js +4 -4
- package/lib/routes/sspai/topics.js +3 -3
- package/lib/routes/ssydt/article.js +58 -0
- package/lib/routes/stcn/data.js +21 -22
- package/lib/routes/stcn/kuaixun.js +21 -22
- package/lib/routes/stcn/news.js +18 -19
- package/lib/routes/stork/keyword.js +3 -3
- package/lib/routes/swjtu/tl/news.js +1 -1
- package/lib/routes/sznews/press.js +50 -0
- package/lib/routes/sznews/ranking.js +56 -0
- package/lib/routes/szse/inquire.js +1 -1
- package/lib/routes/szse/notice.js +3 -3
- package/lib/routes/szse/projectdynamic.js +103 -0
- package/lib/routes/t66y/index.js +3 -3
- package/lib/routes/t66y/post.js +2 -2
- package/lib/routes/tahui/rptlist.js +11 -12
- package/lib/routes/tam/forecast.js +53 -0
- package/lib/routes/tanchinese/index.js +53 -0
- package/lib/routes/taobao/zhongchou.js +1 -1
- package/lib/routes/taptap/changelog.js +1 -1
- package/lib/routes/taptap/review.js +1 -1
- package/lib/routes/taptap/topic.js +1 -1
- package/lib/routes/technologyreview/index.js +42 -0
- package/lib/routes/technologyreview/topic.js +16 -17
- package/lib/routes/telecompaper/news.js +13 -20
- package/lib/routes/telecompaper/search.js +76 -0
- package/lib/routes/telegram/blog.js +2 -2
- package/lib/routes/telegram/channel.js +1 -1
- package/lib/routes/tencent/bigdata/index.js +13 -14
- package/lib/routes/tencent/bugly/changelog.js +3 -3
- package/lib/routes/tencent/egame/room.js +4 -4
- package/lib/routes/tencent/factcheck/index.js +13 -4
- package/lib/routes/tencent/gameinstitute/community.js +4 -4
- package/lib/routes/tencent/guyu/channel.js +5 -5
- package/lib/routes/tencent/news/author.js +3 -3
- package/lib/routes/tencent/pvp/newsindex.js +1 -1
- package/lib/routes/tencent/qcloud/mlvb/changelog.js +1 -1
- package/lib/routes/tencent/video/playlist.js +2 -2
- package/lib/routes/tencent/wechat/csm.js +1 -1
- package/lib/routes/tencent/wechat/ershcimi.js +10 -11
- package/lib/routes/tencent/wechat/feeds.js +47 -0
- package/lib/routes/tencent/wechat/miniprogram/devtools.js +4 -4
- package/lib/routes/tencent/wechat/miniprogram/framework.js +4 -4
- package/lib/routes/tencent/wechat/miniprogram/plugins.js +1 -1
- package/lib/routes/tencent/wechat/miniprogram/wxcloud.js +6 -6
- package/lib/routes/tencent/wechat/mp.js +13 -6
- package/lib/routes/tencent/wechat/msgalbum.js +4 -4
- package/lib/routes/tencent/wechat/uread.js +2 -2
- package/lib/routes/tencent/wechat/wechat-open/community/announce.js +1 -1
- package/lib/routes/tencent/wechat/wechat-open/community/question.js +1 -1
- package/lib/routes/tencent/wechat/wemp.js +2 -2
- package/lib/routes/tencent/wechat/wxnmh.js +15 -16
- package/lib/routes/tesla/update.js +1 -1
- package/lib/routes/the-economist/download.js +1 -1
- package/lib/routes/thebrain/blog.js +56 -0
- package/lib/routes/thepaper/839studio/category.js +1 -1
- package/lib/routes/thepaper/utils.js +1 -1
- package/lib/routes/thrillist/index.js +67 -0
- package/lib/routes/tianyancha/hot.js +48 -0
- package/lib/routes/tieba/post.js +7 -7
- package/lib/routes/tieba/user.js +1 -1
- package/lib/routes/tingdiantz/95598.js +46 -0
- package/lib/routes/tingshen/tingshen.js +28 -0
- package/lib/routes/tingshuitz/dalian.js +2 -2
- package/lib/routes/tingshuitz/hangzhou.js +1 -1
- package/lib/routes/tingshuitz/wuhan.js +1 -1
- package/lib/routes/tingshuitz/xiaoshan.js +1 -1
- package/lib/routes/tongli/news.js +45 -0
- package/lib/routes/topbook/overview.js +47 -0
- package/lib/routes/topbook/today.js +39 -0
- package/lib/routes/tophub/index.js +2 -2
- package/lib/routes/totalcommander/whatsnew.js +32 -0
- package/lib/routes/trakt/collection.js +31 -0
- package/lib/routes/tuicool/mags.js +3 -3
- package/lib/routes/twitter/developer-api/search.js +22 -0
- package/lib/routes/twitter/developer-api/user.js +29 -0
- package/lib/routes/twitter/keyword.js +5 -19
- package/lib/routes/twitter/media.js +7 -0
- package/lib/routes/twitter/user.js +4 -47
- package/lib/routes/twitter/utils.js +48 -25
- package/lib/routes/twitter/web-api/media.js +20 -0
- package/lib/routes/twitter/web-api/search.js +16 -0
- package/lib/routes/twitter/web-api/twitter-api.js +123 -0
- package/lib/routes/twitter/web-api/twitter-got.js +87 -0
- package/lib/routes/twitter/web-api/user.js +32 -0
- package/lib/routes/twmanhuagui/comic.js +53 -0
- package/lib/routes/twreporter/fetch_article.js +1 -1
- package/lib/routes/typora/changelog.js +4 -4
- package/lib/routes/udn/global.js +2 -2
- package/lib/routes/ui-cn/article.js +3 -3
- package/lib/routes/uisdc/hangye.js +14 -15
- package/lib/routes/uisdc/talk.js +19 -20
- package/lib/routes/uisdc/topic.js +13 -14
- package/lib/routes/uisdc/zt.js +19 -20
- package/lib/routes/umass/amherst/eceseminar.js +40 -0
- package/lib/routes/uniqlo/stylingbook.js +1 -1
- package/lib/routes/unit-image/films.js +3 -3
- package/lib/routes/universities/ahau/cs_news/utils.js +3 -3
- package/lib/routes/universities/ahau/jwc/utils.js +3 -3
- package/lib/routes/universities/ahau/main/utils.js +3 -3
- package/lib/routes/universities/ahmu/news.js +2 -2
- package/lib/routes/universities/ahut/cstzgg.js +24 -43
- package/lib/routes/universities/ahut/jwc.js +22 -41
- package/lib/routes/universities/ahut/news.js +23 -43
- package/lib/routes/universities/bit/bityjs.js +1 -1
- package/lib/routes/universities/bit/cs/cs.js +3 -0
- package/lib/routes/universities/bit/cs/utils.js +8 -5
- package/lib/routes/universities/bit/jwc/jwc.js +3 -0
- package/lib/routes/universities/bit/jwc/utils.js +8 -5
- package/lib/routes/universities/bjfu/grs.js +3 -3
- package/lib/routes/universities/bjfu/jwc/utils.js +3 -4
- package/lib/routes/universities/bjfu/kjc.js +3 -3
- package/lib/routes/universities/bjfu/news/utils.js +3 -4
- package/lib/routes/universities/bjtu/gs/index.js +130 -0
- package/lib/routes/universities/buaa/utils.js +3 -3
- package/lib/routes/universities/bupt/grs.js +3 -3
- package/lib/routes/universities/bupt/news.js +7 -0
- package/lib/routes/universities/bupt/portal.js +7 -0
- package/lib/routes/universities/bupt/utils.js +4 -4
- package/lib/routes/universities/bupt/yz.js +3 -3
- package/lib/routes/universities/bwu/utils.js +7 -7
- package/lib/routes/universities/cas/cg/index.js +11 -12
- package/lib/routes/universities/cas/iee/kydt.js +11 -12
- package/lib/routes/universities/cas/mesalab/kb.js +2 -2
- package/lib/routes/universities/cauele/cauele.js +1 -1
- package/lib/routes/universities/cauyjs/cauyjs.js +1 -1
- package/lib/routes/universities/ccnu/career.js +1 -1
- package/lib/routes/universities/ccnu/ccnucs.js +1 -1
- package/lib/routes/universities/ccnu/ccnuwu.js +1 -1
- package/lib/routes/universities/ccnu/ccnuyjs.js +1 -1
- package/lib/routes/universities/cpu/home.js +5 -5
- package/lib/routes/universities/cpu/jwc.js +2 -2
- package/lib/routes/universities/cpu/yjsy.js +2 -2
- package/lib/routes/universities/cqu/jwc/announcement.js +23 -25
- package/lib/routes/universities/cqu/net/info.js +4 -4
- package/lib/routes/universities/cqu/news/tz.js +7 -7
- package/lib/routes/universities/cqu/news/utils.js +4 -4
- package/lib/routes/universities/cqu/sci/info.js +4 -4
- package/lib/routes/universities/cqu/youth/info.js +4 -4
- package/lib/routes/universities/cqust/jw.js +1 -1
- package/lib/routes/universities/cqust/lib.js +1 -1
- package/lib/routes/universities/cqut/cqut-libnews.js +32 -0
- package/lib/routes/universities/cqut/cqut-news.js +31 -0
- package/lib/routes/universities/cqwu/news.js +39 -0
- package/lib/routes/universities/csu/job.js +1 -1
- package/lib/routes/universities/cucyjs/cucyjs.js +1 -1
- package/lib/routes/universities/cug/gcxy/index.js +3 -3
- package/lib/routes/universities/cug/undergraduate.js +3 -3
- package/lib/routes/universities/dlmu/grs/zsgz.js +8 -9
- package/lib/routes/universities/dlu/jiaowu/news.js +25 -33
- package/lib/routes/universities/dpu/jiaowu/news.js +1 -1
- package/lib/routes/universities/dpu/wlfw/news.js +1 -1
- package/lib/routes/universities/dut/index.js +60 -0
- package/lib/routes/universities/dut/subsite.js +50 -0
- package/lib/routes/universities/ecnuyjs/ecnuyjs.js +1 -1
- package/lib/routes/universities/ecustyjs/ecustyjs.js +1 -1
- package/lib/routes/universities/fudan/cce.js +52 -0
- package/lib/routes/universities/fzu/news.js +61 -0
- package/lib/routes/universities/fzu/news_min.js +44 -0
- package/lib/routes/universities/gdou/jwc/utils.js +3 -4
- package/lib/routes/universities/gdut/news.js +5 -5
- package/lib/routes/universities/gzmtu/jwc/index.js +21 -0
- package/lib/routes/universities/gzmtu/jwc/utils.js +86 -0
- package/lib/routes/universities/gzmtu/tsg/index.js +21 -0
- package/lib/routes/universities/gzmtu/tsg/utils.js +86 -0
- package/lib/routes/universities/gzyjs/gzyjs.js +1 -1
- package/lib/routes/universities/harvard/health/blog.js +51 -0
- package/lib/routes/universities/hbut/cs.js +2 -2
- package/lib/routes/universities/hbut/news.js +2 -2
- package/lib/routes/universities/henu/news.js +1 -1
- package/lib/routes/universities/hit/today.js +7 -7
- package/lib/routes/universities/hitsz/article.js +43 -0
- package/lib/routes/universities/hitwh/today.js +19 -20
- package/lib/routes/universities/hnust/art/index.js +8 -3
- package/lib/routes/universities/hnust/chem/index.js +2 -2
- package/lib/routes/universities/hnust/computer/index.js +2 -2
- package/lib/routes/universities/hnust/graduate/index.js +2 -2
- package/lib/routes/universities/hnust/jwc/index.js +9 -5
- package/lib/routes/universities/hubu/news.js +1 -1
- package/lib/routes/universities/hust/aia/news.js +1 -1
- package/lib/routes/universities/hust/aia/notice.js +1 -1
- package/lib/routes/universities/hustyjs/hustyjs.js +1 -1
- package/lib/routes/universities/jlbtc/index.js +49 -0
- package/lib/routes/universities/jlbtc/jwc.js +49 -0
- package/lib/routes/universities/jlbtc/kyc.js +49 -0
- package/lib/routes/universities/jnu/yw/index.js +4 -4
- package/lib/routes/universities/ju/jwc.js +1 -1
- package/lib/routes/universities/lit/jwc.js +1 -1
- package/lib/routes/universities/lit/tw.js +1 -1
- package/lib/routes/universities/lit/xwzx.js +1 -1
- package/lib/routes/universities/lntu/jwnews.js +34 -14
- package/lib/routes/universities/lyu/news/utils.js +3 -4
- package/lib/routes/universities/mit/csail/news.js +51 -0
- package/lib/routes/universities/mit/graduateadmissions.js +4 -4
- package/lib/routes/universities/nchu/jwc.js +1 -1
- package/lib/routes/universities/nciae/news.js +3 -3
- package/lib/routes/universities/nciae/tzgg.js +3 -3
- package/lib/routes/universities/nciae/xsxx.js +3 -3
- package/lib/routes/universities/neu/news.js +2 -2
- package/lib/routes/universities/njfu/jwc.js +23 -13
- package/lib/routes/universities/njtech/jwc.js +1 -1
- package/lib/routes/universities/nku/jwc/index.js +1 -1
- package/lib/routes/universities/nuaa/cs/index.js +3 -3
- package/lib/routes/universities/nuaa/yjsy/yjsy.js +12 -22
- package/lib/routes/universities/nuc/index.js +2 -2
- package/lib/routes/universities/nudt/yjszs.js +14 -15
- package/lib/routes/universities/nuist/bulletin.js +1 -1
- package/lib/routes/universities/nuist/cas.js +2 -2
- package/lib/routes/universities/nuist/jwc.js +2 -2
- package/lib/routes/universities/nuist/library/lib.js +1 -1
- package/lib/routes/universities/nuist/scs.js +2 -2
- package/lib/routes/universities/nuist/sese.js +2 -2
- package/lib/routes/universities/nuist/xgc.js +2 -2
- package/lib/routes/universities/nuist/yjs.js +2 -2
- package/lib/routes/universities/nwafu/54youth.js +28 -0
- package/lib/routes/universities/nwafu/cie.js +28 -0
- package/lib/routes/universities/nwafu/gs.js +28 -0
- package/lib/routes/universities/nwafu/jcc.js +28 -0
- package/lib/routes/universities/nwafu/jiaowu.js +28 -0
- package/lib/routes/universities/nwafu/lib.js +28 -0
- package/lib/routes/universities/nwafu/news.js +28 -0
- package/lib/routes/universities/nwafu/nic.js +28 -0
- package/lib/routes/universities/nwafu/yjshy.js +28 -0
- package/lib/routes/universities/outele/outele.js +1 -1
- package/lib/routes/universities/outyjs/outyjs.js +1 -1
- package/lib/routes/universities/pku/bbs/hot.js +21 -22
- package/lib/routes/universities/pku/pkuyjs.js +1 -1
- package/lib/routes/universities/scauyjs/scauyjs.js +1 -1
- package/lib/routes/universities/scnu/scnucs.js +1 -1
- package/lib/routes/universities/scnu/scnuyjs.js +1 -1
- package/lib/routes/universities/sctu/jwc/index.js +1 -1
- package/lib/routes/universities/scu/jwc.js +6 -6
- package/lib/routes/universities/scu/xg.js +5 -5
- package/lib/routes/universities/scut/jwc/news.js +1 -1
- package/lib/routes/universities/scut/jwc/notice.js +1 -1
- package/lib/routes/universities/scut/jwc/school.js +121 -0
- package/lib/routes/universities/scut/scutyjs.js +1 -1
- package/lib/routes/universities/scut/seie/news_center.js +57 -0
- package/lib/routes/universities/scvtc/xygg.js +10 -11
- package/lib/routes/universities/seu/cse/index.js +2 -2
- package/lib/routes/universities/shanghaitech/activity.js +10 -11
- package/lib/routes/universities/shmtu/jwc.js +12 -9
- package/lib/routes/universities/shmtu/www.js +4 -4
- package/lib/routes/universities/shou/www.js +3 -3
- package/lib/routes/universities/shu/index.js +5 -7
- package/lib/routes/universities/shu/jwc.js +5 -7
- package/lib/routes/universities/sjtu/gs/tzgg.js +1 -1
- package/lib/routes/universities/sjtu/jwc.js +1 -1
- package/lib/routes/universities/sjtu/tongqu/activity.js +3 -1
- package/lib/routes/universities/slu/utils.js +8 -2
- package/lib/routes/universities/sustech/bidding.js +34 -0
- package/lib/routes/universities/sustech/newshub-zh.js +35 -0
- package/lib/routes/universities/sustyjs/sustyjs.js +1 -1
- package/lib/routes/universities/swufe/seie/index.js +2 -2
- package/lib/routes/universities/swust/cs.js +1 -1
- package/lib/routes/universities/swust/helper.js +1 -1
- package/lib/routes/universities/swust/jwc_news.js +3 -3
- package/lib/routes/universities/swust/jwc_notice.js +3 -3
- package/lib/routes/universities/szu/yz/index.js +2 -2
- package/lib/routes/universities/szu/yz/utils.js +4 -4
- package/lib/routes/universities/szuyjs/szuyjs.js +1 -1
- package/lib/routes/universities/thu/career.js +35 -18
- package/lib/routes/universities/thu/index.js +1 -1
- package/lib/routes/universities/tju/sse/_article.js +2 -2
- package/lib/routes/universities/tjuyjs/tjuyjs.js +1 -1
- package/lib/routes/universities/tynu/tynu.js +1 -1
- package/lib/routes/universities/uestc/auto.js +7 -7
- package/lib/routes/universities/uestc/cs.js +7 -7
- package/lib/routes/universities/uestc/gr.js +46 -0
- package/lib/routes/universities/uestc/is.js +102 -0
- package/lib/routes/universities/uestc/sice.js +64 -0
- package/lib/routes/universities/upc/jsj.js +2 -2
- package/lib/routes/universities/upc/main.js +2 -2
- package/lib/routes/universities/upcyjs/upcyjs.js +1 -1
- package/lib/routes/universities/usst/jwc.js +3 -3
- package/lib/routes/universities/ustc/job.js +192 -0
- package/lib/routes/universities/ustc/jwc/index.js +3 -3
- package/lib/routes/universities/utdallas/isso.js +54 -0
- package/lib/routes/universities/whu/news.js +1 -1
- package/lib/routes/universities/wsyu/news.js +1 -1
- package/lib/routes/universities/wtu/index.js +34 -0
- package/lib/routes/universities/xjtu/dean.js +3 -3
- package/lib/routes/universities/xjtu/ee.js +44 -0
- package/lib/routes/universities/xjtu/gs/tzgg.js +7 -8
- package/lib/routes/universities/xjtu/international.js +2 -2
- package/lib/routes/universities/xjtu/job.js +50 -0
- package/lib/routes/universities/xmu/aero.js +63 -0
- package/lib/routes/universities/xynu/zkb/index.js +58 -0
- package/lib/routes/universities/ynnu/edu/base64.js +351 -0
- package/lib/routes/universities/ynnu/edu/news.js +109 -0
- package/lib/routes/universities/ynu/grs/qttz.js +1 -1
- package/lib/routes/universities/ynu/grs/zytz.js +1 -1
- package/lib/routes/universities/ynu/home/main.js +1 -1
- package/lib/routes/universities/ynu/jwc/zytz.js +1 -1
- package/lib/routes/universities/ynu/utils.js +6 -6
- package/lib/routes/universities/yzu/home.js +3 -3
- package/lib/routes/universities/yzu/yjszs.js +3 -3
- package/lib/routes/universities/zjgsu/tzgg/utils.js +3 -3
- package/lib/routes/universities/zju/career/index.js +2 -2
- package/lib/routes/universities/zju/cst/index.js +2 -2
- package/lib/routes/universities/zju/grs/index.js +2 -2
- package/lib/routes/universities/zju/list.js +3 -3
- package/lib/routes/universities/zju/physics/index.js +2 -2
- package/lib/routes/universities/zjut/design.js +4 -4
- package/lib/routes/universities/zjut/index.js +4 -4
- package/lib/routes/universities/zkyai/zkyai.js +1 -1
- package/lib/routes/universities/zkyyjs/zkyyjs.js +1 -1
- package/lib/routes/universities/zzuli/campus/index.js +1 -1
- package/lib/routes/universities/zzuli/yjsc/index.js +1 -1
- package/lib/routes/us/cia/foia-annual-report.js +29 -0
- package/lib/routes/us/supremecourt/argument_audio.js +20 -21
- package/lib/routes/us/treasury/press-releases.js +50 -0
- package/lib/routes/us/ustr/press-releases.js +50 -0
- package/lib/routes/uwants/index.js +70 -0
- package/lib/routes/v2ex/tab.js +1 -1
- package/lib/routes/verfghbw/press.js +52 -0
- package/lib/routes/vgn/index.js +27 -0
- package/lib/routes/voa/day-photos.js +54 -0
- package/lib/routes/voa/index.js +54 -0
- package/lib/routes/vocus/user.js +1 -1
- package/lib/routes/vocus/utils.js +3 -3
- package/lib/routes/vol/lastupdate.js +5 -3
- package/lib/routes/vuevideo/user.js +3 -3
- package/lib/routes/vulture/utils.js +11 -11
- package/lib/routes/wainao/index.js +46 -0
- package/lib/routes/wanwansub/index.js +57 -0
- package/lib/routes/wanwansub/info.js +44 -0
- package/lib/routes/weatheralarm/index.js +2 -2
- package/lib/routes/webtoons/naver.js +1 -1
- package/lib/routes/weexcn/index.js +6 -6
- package/lib/routes/weforum/report.js +11 -12
- package/lib/routes/wegene/column.js +1 -1
- package/lib/routes/wegene/newest.js +1 -1
- package/lib/routes/weibo/keyword.js +6 -6
- package/lib/routes/weibo/super_index.js +3 -3
- package/lib/routes/weibo/timeline.js +14 -14
- package/lib/routes/weibo/user.js +21 -31
- package/lib/routes/weibo/utils.js +4 -6
- package/lib/routes/weidian/goods.js +1 -1
- package/lib/routes/wenku8/volume.js +52 -0
- package/lib/routes/wenxuecity/bbs.js +2 -2
- package/lib/routes/wenxuecity/blog.js +3 -3
- package/lib/routes/wenxuecity/hot.js +2 -2
- package/lib/routes/wenxuecity/news.js +17 -18
- package/lib/routes/westore/new.js +1 -1
- package/lib/routes/whalegogo/home.js +2 -2
- package/lib/routes/whalegogo/portal.js +2 -2
- package/lib/routes/whb/zhuzhan.js +7 -6
- package/lib/routes/who/news-room.js +2 -2
- package/lib/routes/who/news.js +43 -0
- package/lib/routes/who/speeches.js +45 -0
- package/lib/routes/wineyun/index.js +2 -2
- package/lib/routes/worldhappiness/archive.js +49 -0
- package/lib/routes/worldhappiness/blog.js +47 -0
- package/lib/routes/woshipm/bookmarks.js +3 -3
- package/lib/routes/woshipm/latest.js +4 -4
- package/lib/routes/woshipm/popular.js +4 -4
- package/lib/routes/woshipm/user_article.js +27 -39
- package/lib/routes/woshipm/wen.js +3 -3
- package/lib/routes/wsj/index.js +78 -79
- package/lib/routes/wukong/user.js +3 -3
- package/lib/routes/x-mol/news.js +8 -8
- package/lib/routes/x-mol/paper.js +8 -8
- package/lib/routes/x410/news.js +46 -0
- package/lib/routes/x6d/index.js +11 -12
- package/lib/routes/xiaoheihe/news.js +2 -1
- package/lib/routes/xiaoheihe/user.js +38 -27
- package/lib/routes/xiaohongshu/board.js +5 -5
- package/lib/routes/xiaohongshu/user.js +6 -6
- package/lib/routes/xiaoyuzhou/pickup.js +76 -73
- package/lib/routes/xici/index.js +1 -1
- package/lib/routes/ximalaya/album.js +169 -78
- package/lib/routes/xinwenlianbo/index.js +1 -1
- package/lib/routes/xposed/module.js +2 -2
- package/lib/routes/xuangubao/subject.js +1 -1
- package/lib/routes/xueqiu/snb.js +1 -1
- package/lib/routes/xueqiu/stock_comments.js +61 -0
- package/lib/routes/xueqiu/stock_info.js +3 -3
- package/lib/routes/xueqiu/user.js +3 -3
- package/lib/routes/xyplorer/whatsnew.js +32 -0
- package/lib/routes/yahoo-author/index.js +67 -0
- package/lib/routes/yahoo-news/index.js +1 -1
- package/lib/routes/yande.re/post_popular_recent.js +1 -1
- package/lib/routes/yicai/brief.js +3 -2
- package/lib/routes/yicas/blog.js +52 -0
- package/lib/routes/yinxiang/card.js +18 -19
- package/lib/routes/yinxiang/category.js +46 -0
- package/lib/routes/yinxiang/note.js +14 -15
- package/lib/routes/yinxiang/personal.js +47 -0
- package/lib/routes/yinxiang/tag.js +46 -0
- package/lib/routes/yomiuri/news.js +84 -11
- package/lib/routes/youdao/latest.js +20 -21
- package/lib/routes/youdao/xueba.js +21 -22
- package/lib/routes/youtube/channel.js +4 -4
- package/lib/routes/youtube/playlist.js +6 -4
- package/lib/routes/youtube/user.js +4 -4
- package/lib/routes/youtube/utils.js +32 -37
- package/lib/routes/youzan/goods.js +1 -1
- package/lib/routes/yuanliao/index.js +42 -0
- package/lib/routes/yuque/doc.js +1 -1
- package/lib/routes/yuzu-emu/entry.js +52 -0
- package/lib/routes/yxdown/news.js +54 -0
- package/lib/routes/yxdown/recommend.js +51 -0
- package/lib/routes/yxdzqb/index.js +1 -1
- package/lib/routes/yystv/category.js +3 -3
- package/lib/routes/yystv/docs.js +1 -1
- package/lib/routes/zaker/focusread.js +8 -6
- package/lib/routes/zaker/source.js +6 -5
- package/lib/routes/zaobao/util.js +7 -7
- package/lib/routes/zcfy/hot.js +3 -3
- package/lib/routes/zcfy/index.js +2 -2
- package/lib/routes/zcool/discover.js +140 -0
- package/lib/routes/zcool/locations.js +6829 -0
- package/lib/routes/zcool/top.js +4 -4
- package/lib/routes/zcool/user.js +1 -1
- package/lib/routes/zfrontier/board_postlist.js +1 -1
- package/lib/routes/zfrontier/postlist.js +1 -1
- package/lib/routes/zhanqi/room.js +1 -1
- package/lib/routes/zhibo8/forum.js +1 -1
- package/lib/routes/zhibo8/more.js +10 -11
- package/lib/routes/zhibo8/post.js +2 -2
- package/lib/routes/zhihu/activities.js +3 -3
- package/lib/routes/zhihu/answers.js +5 -5
- package/lib/routes/zhihu/collection.js +29 -21
- package/lib/routes/zhihu/daily.js +23 -22
- package/lib/routes/zhihu/daily_section.js +2 -2
- package/lib/routes/zhihu/hot.js +37 -0
- package/lib/routes/zhihu/posts.js +27 -46
- package/lib/routes/zhihu/timeline.js +99 -0
- package/lib/routes/zhihu/utils.js +1 -1
- package/lib/routes/zhihu/weekly.js +2 -2
- package/lib/routes/zhihu/zhuanlan.js +55 -65
- package/lib/routes/zhilian/index.js +2 -2
- package/lib/routes/zhishifenzi/depth.js +2 -2
- package/lib/routes/zhishifenzi/innovation.js +2 -2
- package/lib/routes/zhishifenzi/news.js +47 -48
- package/lib/routes/zhuixinfan/list.js +5 -5
- package/lib/routes/zhutix/latest.js +7 -8
- package/lib/routes/zimuku/index.js +1 -1
- package/lib/routes/zimuxia/index.js +56 -0
- package/lib/routes/zimuxia/portfolio.js +39 -0
- package/lib/routes/ziroom/room.js +1 -1
- package/lib/routes/zsnews/index.js +13 -14
- package/lib/routes/zyshow/index.js +42 -0
- package/lib/routes/zzz/index.js +43 -36
- package/lib/utils/dateParser.js +1 -1
- package/lib/utils/got.js +2 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/parse-date.js +42 -0
- package/lib/utils/puppeteer.js +1 -1
- package/lib/utils/render.js +7 -0
- package/lib/utils/request-wrapper.js +14 -4
- package/lib/utils/timezone.js +14 -0
- package/lib/utils/torrent.js +155 -0
- package/lib/v2/2047/index.js +55 -0
- package/lib/v2/2047/maintainer.js +3 -0
- package/lib/v2/2047/radar.js +13 -0
- package/lib/v2/2047/router.js +3 -0
- package/lib/v2/2048/index.js +91 -0
- package/lib/v2/2048/maintainer.js +3 -0
- package/lib/v2/2048/radar.js +0 -0
- package/lib/v2/2048/router.js +3 -0
- package/lib/v2/2048/templates/download.art +1 -0
- package/lib/v2/8world/index.js +57 -0
- package/lib/v2/8world/maintainer.js +3 -0
- package/lib/v2/8world/radar.js +13 -0
- package/lib/v2/8world/router.js +3 -0
- package/lib/v2/aamacau/index.js +56 -0
- package/lib/v2/aamacau/maintainer.js +3 -0
- package/lib/v2/aamacau/radar.js +13 -0
- package/lib/v2/aamacau/router.js +3 -0
- package/lib/v2/ash-maurya/index.js +54 -0
- package/lib/v2/ash-maurya/maintainer.js +3 -0
- package/lib/v2/ash-maurya/radar.js +13 -0
- package/lib/v2/ash-maurya/router.js +3 -0
- package/lib/v2/bandcamp/live.js +41 -0
- package/lib/v2/bandcamp/maintainer.js +3 -0
- package/lib/v2/bandcamp/radar.js +13 -0
- package/lib/v2/bandcamp/router.js +3 -0
- package/lib/v2/biodiscover/index.js +44 -0
- package/lib/v2/biodiscover/maintainer.js +3 -0
- package/lib/v2/biodiscover/radar.js +13 -0
- package/lib/v2/biodiscover/router.js +3 -0
- package/lib/v2/bit/maintainer.js +3 -0
- package/lib/v2/bit/radar.js +13 -0
- package/lib/v2/bit/router.js +3 -0
- package/lib/v2/bit/rszhaopin.js +30 -0
- package/lib/v2/bnu/bs.js +52 -0
- package/lib/v2/bnu/maintainer.js +3 -0
- package/lib/v2/bnu/radar.js +13 -0
- package/lib/v2/bnu/router.js +3 -0
- package/lib/v2/bse/index.js +173 -0
- package/lib/v2/bse/maintainer.js +3 -0
- package/lib/v2/bse/radar.js +13 -0
- package/lib/v2/bse/router.js +3 -0
- package/lib/v2/btzj/index.js +98 -0
- package/lib/v2/btzj/maintainer.js +3 -0
- package/lib/v2/btzj/radar.js +13 -0
- package/lib/v2/btzj/router.js +3 -0
- package/lib/v2/btzj/templates/torrents.art +5 -0
- package/lib/v2/bupt/maintainer.js +3 -0
- package/lib/v2/bupt/radar.js +13 -0
- package/lib/v2/bupt/rczp.js +51 -0
- package/lib/v2/bupt/router.js +3 -0
- package/lib/v2/ccac/maintainer.js +3 -0
- package/lib/v2/ccac/news.js +47 -0
- package/lib/v2/ccac/radar.js +13 -0
- package/lib/v2/ccac/router.js +3 -0
- package/lib/v2/ccac/utils.js +32 -0
- package/lib/v2/cebbank/all.js +48 -0
- package/lib/v2/cebbank/history.js +49 -0
- package/lib/v2/cebbank/maintainer.js +4 -0
- package/lib/v2/cebbank/radar.js +19 -0
- package/lib/v2/cebbank/router.js +4 -0
- package/lib/v2/cebbank/templates/allDes.art +2 -0
- package/lib/v2/cebbank/templates/historyDes.art +3 -0
- package/lib/v2/cebbank/utils.js +70 -0
- package/lib/v2/distill/index.js +64 -0
- package/lib/v2/distill/maintainer.js +3 -0
- package/lib/v2/distill/radar.js +13 -0
- package/lib/v2/distill/router.js +3 -0
- package/lib/v2/eastday/find.js +49 -0
- package/lib/v2/eastday/maintainer.js +4 -0
- package/lib/v2/eastday/portrait.js +47 -0
- package/lib/v2/eastday/radar.js +19 -0
- package/lib/v2/eastday/router.js +4 -0
- package/lib/{routes → v2}/epicgames/index.js +0 -0
- package/lib/v2/epicgames/maintainer.js +3 -0
- package/lib/v2/epicgames/router.js +3 -0
- package/lib/{routes → v2}/epicgames/supportedList.js +0 -0
- package/lib/v2/eprice/maintainer.js +3 -0
- package/lib/v2/eprice/radar.js +24 -0
- package/lib/v2/eprice/router.js +3 -0
- package/lib/v2/eprice/rss.js +95 -0
- package/lib/v2/eprice/templates/description.art +1 -0
- package/lib/v2/fisher-spb/maintainer.js +3 -0
- package/lib/v2/fisher-spb/news.js +49 -0
- package/lib/v2/fisher-spb/radar.js +13 -0
- package/lib/v2/fisher-spb/router.js +3 -0
- package/lib/v2/fisher-spb/templates/image.art +1 -0
- package/lib/v2/fisher-spb/templates/video.art +1 -0
- package/lib/v2/focustaiwan/index.js +72 -0
- package/lib/v2/focustaiwan/maintainer.js +3 -0
- package/lib/v2/focustaiwan/radar.js +13 -0
- package/lib/v2/focustaiwan/router.js +3 -0
- package/lib/v2/focustaiwan/templates/article.art +1 -0
- package/lib/{routes → v2}/furstar/archive.js +5 -1
- package/lib/{routes → v2}/furstar/artists.js +5 -1
- package/lib/{routes → v2}/furstar/index.js +9 -1
- package/lib/v2/furstar/maintainer.js +5 -0
- package/lib/v2/furstar/radar.js +25 -0
- package/lib/v2/furstar/router.js +5 -0
- package/lib/v2/furstar/templates/author.art +8 -0
- package/lib/v2/furstar/templates/description.art +5 -0
- package/lib/{routes → v2}/furstar/utils.js +18 -13
- package/lib/v2/gameapps/index.js +56 -0
- package/lib/v2/gameapps/maintainer.js +3 -0
- package/lib/v2/gameapps/radar.js +13 -0
- package/lib/v2/gameapps/router.js +3 -0
- package/lib/v2/gameapps/templates/description.art +3 -0
- package/lib/v2/getdr/index.js +47 -0
- package/lib/v2/getdr/maintainer.js +3 -0
- package/lib/v2/getdr/radar.js +13 -0
- package/lib/v2/getdr/router.js +3 -0
- package/lib/v2/gf-cn/maintainer.js +3 -0
- package/lib/v2/gf-cn/news.js +50 -0
- package/lib/v2/gf-cn/radar.js +13 -0
- package/lib/v2/gf-cn/router.js +3 -0
- package/lib/v2/hbr/maintainer.js +3 -0
- package/lib/v2/hbr/radar.js +13 -0
- package/lib/v2/hbr/router.js +3 -0
- package/lib/v2/hbr/topic.js +56 -0
- package/lib/v2/heu/gx/card.js +47 -0
- package/lib/v2/heu/gx/list.js +73 -0
- package/lib/v2/heu/job/bigemploy.js +42 -0
- package/lib/v2/heu/job/calendar.js +54 -0
- package/lib/v2/heu/job/list.js +70 -0
- package/lib/v2/heu/maintainer.js +8 -0
- package/lib/v2/heu/radar.js +73 -0
- package/lib/v2/heu/router.js +9 -0
- package/lib/v2/heu/uae/list.js +62 -0
- package/lib/v2/heu/yjsy/list.js +65 -0
- package/lib/v2/hkej/index.js +154 -0
- package/lib/v2/hkej/maintainer.js +3 -0
- package/lib/v2/hkej/radar.js +13 -0
- package/lib/v2/hkej/router.js +3 -0
- package/lib/v2/hkej/templates/articleImg.art +3 -0
- package/lib/v2/hkej/templates/description.art +2 -0
- package/lib/v2/hket/index.js +114 -0
- package/lib/v2/hket/maintainer.js +3 -0
- package/lib/v2/hket/radar.js +45 -0
- package/lib/v2/hket/router.js +3 -0
- package/lib/v2/hket/templates/description.art +1 -0
- package/lib/v2/hket/templates/image.art +1 -0
- package/lib/v2/hkjunkcall/index.js +53 -0
- package/lib/v2/hkjunkcall/maintainer.js +3 -0
- package/lib/v2/hkjunkcall/radar.js +13 -0
- package/lib/v2/hkjunkcall/router.js +3 -0
- package/lib/v2/hotchina/index.js +55 -0
- package/lib/v2/hotchina/maintainer.js +5 -0
- package/lib/v2/hotchina/radar.js +25 -0
- package/lib/v2/hotchina/router.js +3 -0
- package/lib/v2/hotukdeals/index.js +34 -0
- package/lib/v2/hotukdeals/maintainer.js +3 -0
- package/lib/v2/hotukdeals/radar.js +31 -0
- package/lib/v2/hotukdeals/router.js +3 -0
- package/lib/v2/icac/maintainer.js +3 -0
- package/lib/v2/icac/news.js +46 -0
- package/lib/v2/icac/radar.js +13 -0
- package/lib/v2/icac/router.js +3 -0
- package/lib/v2/icac/utils.js +17 -0
- package/lib/v2/independent/maintainer.js +3 -0
- package/lib/v2/independent/ps5-stock-uk.js +27 -0
- package/lib/v2/independent/radar.js +13 -0
- package/lib/v2/independent/router.js +3 -0
- package/lib/v2/ithome/maintainer.js +3 -0
- package/lib/v2/ithome/radar.js +13 -0
- package/lib/v2/ithome/router.js +3 -0
- package/lib/v2/ithome/zt.js +54 -0
- package/lib/v2/jisilu/index.js +90 -0
- package/lib/v2/jisilu/maintainer.js +3 -0
- package/lib/v2/jisilu/radar.js +25 -0
- package/lib/v2/jisilu/router.js +3 -0
- package/lib/v2/jump/discount.js +120 -0
- package/lib/v2/jump/maintainer.js +3 -0
- package/lib/v2/jump/radar.js +13 -0
- package/lib/v2/jump/router.js +3 -0
- package/lib/v2/jump/templates/discount.art +111 -0
- package/lib/v2/lfsyd/home.js +42 -0
- package/lib/v2/lfsyd/maintainer.js +7 -0
- package/lib/v2/lfsyd/old_home.js +29 -0
- package/lib/v2/lfsyd/radar.js +39 -0
- package/lib/v2/lfsyd/router.js +6 -0
- package/lib/v2/lfsyd/tag.js +64 -0
- package/lib/v2/lfsyd/templates/card.art +1 -0
- package/lib/v2/lfsyd/user.js +48 -0
- package/lib/v2/lfsyd/utils.js +93 -0
- package/lib/v2/literotica/category.js +55 -0
- package/lib/v2/literotica/maintainer.js +4 -0
- package/lib/v2/literotica/new.js +59 -0
- package/lib/v2/literotica/radar.js +19 -0
- package/lib/v2/literotica/router.js +4 -0
- package/lib/v2/mingpao/index.js +94 -0
- package/lib/v2/mingpao/maintainer.js +3 -0
- package/lib/v2/mingpao/radar.js +36 -0
- package/lib/v2/mingpao/router.js +3 -0
- package/lib/v2/mingpao/templates/description.art +2 -0
- package/lib/v2/mingpao/templates/fancybox.art +3 -0
- package/lib/v2/mox/index.js +57 -0
- package/lib/v2/mox/maintainer.js +3 -0
- package/lib/v2/mox/radar.js +13 -0
- package/lib/v2/mox/router.js +3 -0
- package/lib/v2/mvm/index.js +55 -0
- package/lib/v2/mvm/maintainer.js +3 -0
- package/lib/v2/mvm/radar.js +13 -0
- package/lib/v2/mvm/router.js +3 -0
- package/lib/v2/mydrivers/index.js +110 -0
- package/lib/v2/mydrivers/maintainer.js +3 -0
- package/lib/v2/mydrivers/radar.js +13 -0
- package/lib/v2/mydrivers/router.js +3 -0
- package/lib/v2/mygopen/index.js +29 -0
- package/lib/v2/mygopen/maintainer.js +3 -0
- package/lib/v2/mygopen/radar.js +13 -0
- package/lib/v2/mygopen/router.js +3 -0
- package/lib/v2/netease/maintainer.js +4 -0
- package/lib/v2/netease/radar.js +21 -0
- package/lib/v2/netease/rank.js +154 -0
- package/lib/v2/netease/renjian.js +74 -0
- package/lib/v2/netease/router.js +4 -0
- package/lib/v2/newsmarket/index.js +63 -0
- package/lib/v2/newsmarket/maintainer.js +3 -0
- package/lib/v2/newsmarket/radar.js +13 -0
- package/lib/v2/newsmarket/router.js +3 -0
- package/lib/v2/ngocn2/index.js +56 -0
- package/lib/v2/ngocn2/maintainer.js +3 -0
- package/lib/v2/ngocn2/radar.js +13 -0
- package/lib/v2/ngocn2/router.js +3 -0
- package/lib/v2/people/liuyan.js +54 -0
- package/lib/v2/people/maintainer.js +3 -0
- package/lib/v2/people/radar.js +13 -0
- package/lib/v2/people/router.js +3 -0
- package/lib/v2/pku/hr.js +54 -0
- package/lib/v2/pku/maintainer.js +3 -0
- package/lib/v2/pku/radar.js +13 -0
- package/lib/v2/pku/router.js +3 -0
- package/lib/v2/pts/dailynews.js +52 -0
- package/lib/v2/pts/maintainer.js +3 -0
- package/lib/v2/pts/radar.js +13 -0
- package/lib/v2/pts/router.js +3 -0
- package/lib/v2/qm120/maintainer.js +3 -0
- package/lib/v2/qm120/news.js +50 -0
- package/lib/v2/qm120/radar.js +13 -0
- package/lib/v2/qm120/router.js +3 -0
- package/lib/v2/qq/live.js +36 -0
- package/lib/v2/qq/maintainer.js +3 -0
- package/lib/v2/qq/radar.js +13 -0
- package/lib/v2/qq/router.js +3 -0
- package/lib/v2/rfi/maintainer.js +3 -0
- package/lib/v2/rfi/news.js +49 -0
- package/lib/v2/rfi/radar.js +13 -0
- package/lib/v2/rfi/router.js +3 -0
- package/lib/v2/ruancan/index.js +54 -0
- package/lib/v2/ruancan/maintainer.js +6 -0
- package/lib/v2/ruancan/radar.js +25 -0
- package/lib/v2/ruancan/router.js +3 -0
- package/lib/v2/ruc/hr.js +52 -0
- package/lib/v2/ruc/maintainer.js +3 -0
- package/lib/v2/ruc/radar.js +13 -0
- package/lib/v2/ruc/router.js +3 -0
- package/lib/v2/sciencedirect/journal.js +62 -0
- package/lib/v2/sciencedirect/maintainer.js +3 -0
- package/lib/v2/sciencedirect/radar.js +13 -0
- package/lib/v2/sciencedirect/router.js +3 -0
- package/lib/v2/secnews/index.js +27 -0
- package/lib/v2/secnews/maintainer.js +3 -0
- package/lib/v2/secnews/radar.js +13 -0
- package/lib/v2/secnews/router.js +3 -0
- package/lib/v2/sicau/maintainer.js +3 -0
- package/lib/v2/sicau/radar.js +13 -0
- package/lib/v2/sicau/router.js +3 -0
- package/lib/v2/sicau/zsjy.js +53 -0
- package/lib/{routes → v2}/solidot/_article.js +11 -18
- package/lib/{routes → v2}/solidot/main.js +5 -15
- package/lib/v2/solidot/maintainer.js +3 -0
- package/lib/v2/solidot/radar.js +117 -0
- package/lib/v2/solidot/router.js +3 -0
- package/lib/v2/startuplatte/index.js +56 -0
- package/lib/v2/startuplatte/maintainer.js +3 -0
- package/lib/v2/startuplatte/radar.js +13 -0
- package/lib/v2/startuplatte/router.js +3 -0
- package/lib/v2/subhd/index.js +79 -0
- package/lib/v2/subhd/maintainer.js +4 -0
- package/lib/v2/subhd/radar.js +19 -0
- package/lib/v2/subhd/router.js +3 -0
- package/lib/v2/szse/maintainer.js +3 -0
- package/lib/v2/szse/radar.js +13 -0
- package/lib/v2/szse/router.js +3 -0
- package/lib/v2/szse/rule.js +51 -0
- package/lib/{routes → v2}/test/index.js +0 -0
- package/lib/v2/test/maintainer.js +3 -0
- package/lib/v2/test/router.js +3 -0
- package/lib/v2/timednews/maintainer.js +3 -0
- package/lib/v2/timednews/news.js +106 -0
- package/lib/v2/timednews/radar.js +57 -0
- package/lib/v2/timednews/router.js +3 -0
- package/lib/v2/trow/maintainer.js +3 -0
- package/lib/v2/trow/portal.js +36 -0
- package/lib/v2/trow/radar.js +13 -0
- package/lib/v2/trow/router.js +3 -0
- package/lib/v2/uibe/hr.js +54 -0
- package/lib/v2/uibe/maintainer.js +3 -0
- package/lib/v2/uibe/radar.js +13 -0
- package/lib/v2/uibe/router.js +3 -0
- package/lib/v2/wangqiutiyu/anchor.js +42 -0
- package/lib/v2/wangqiutiyu/maintainer.js +3 -0
- package/lib/v2/wangqiutiyu/radar.js +13 -0
- package/lib/v2/wangqiutiyu/router.js +3 -0
- package/lib/v2/watchout/index.js +51 -0
- package/lib/v2/watchout/maintainer.js +3 -0
- package/lib/v2/watchout/radar.js +13 -0
- package/lib/v2/watchout/router.js +3 -0
- package/lib/v2/wechat/feeddd.js +72 -0
- package/lib/v2/wechat/maintainer.js +3 -0
- package/lib/v2/wechat/radar.js +12 -0
- package/lib/v2/wechat/router.js +3 -0
- package/lib/v2/wechat/templates/description.art +1 -0
- package/lib/v2/wechat/templates/image.art +1 -0
- package/lib/v2/wzu/maintainer.js +3 -0
- package/lib/v2/wzu/news.js +84 -0
- package/lib/v2/wzu/radar.js +11 -0
- package/lib/v2/wzu/router.js +3 -0
- package/lib/v2/yaohuo/index.js +30 -0
- package/lib/v2/yaohuo/maintainer.js +3 -0
- package/lib/v2/yaohuo/radar.js +13 -0
- package/lib/v2/yaohuo/router.js +3 -0
- package/lib/v2router.js +17 -0
- package/lib/views/atom.art +2 -2
- package/lib/views/error.art +9 -0
- package/package.json +58 -44
- package/lib/middleware/cache.js +0 -212
- package/lib/routes/2048/bbs.js +0 -100
- package/lib/routes/asahichinese-f/index.js +0 -102
- package/lib/routes/asahichinese-j/index.js +0 -102
- package/lib/routes/btzj/index.js +0 -77
- package/lib/routes/epicgames/router.js +0 -9
- package/lib/routes/frontend/index.js +0 -27
- package/lib/routes/gouhuo/cache.js +0 -44
- package/lib/routes/gouhuo/index.js +0 -62
- package/lib/routes/gouhuo/strategy.js +0 -35
- package/lib/routes/heibaizhibo/room.js +0 -31
- package/lib/routes/japanpost/index.js +0 -67
- package/lib/routes/javdb/home.js +0 -32
- package/lib/routes/lfsyd/index.js +0 -50
- package/lib/routes/ltaaa/_article.js +0 -35
- package/lib/routes/ltaaa/main.js +0 -58
- package/lib/routes/matters/hot.js +0 -50
- package/lib/routes/matters/topics.js +0 -52
- package/lib/routes/netease/news/data.js +0 -39
- package/lib/routes/netease/news/rank.js +0 -148
- package/lib/routes/nytimes/morning_post.js +0 -53
- package/lib/routes/solidot/sectigo.pem +0 -122
- package/lib/routes/solidot/wotrust.pem +0 -125
- package/lib/routes/steam/news.js +0 -28
- package/lib/routes/subhd/newest.js +0 -29
- package/lib/routes/tencent/lemon/index.js +0 -29
- package/lib/routes/toutiao/today.js +0 -32
- package/lib/routes/toutiao/user.js +0 -38
- package/lib/routes/universities/fzu/jxtz.js +0 -23
- package/lib/routes/universities/fzu/zjjz.js +0 -23
- package/lib/routes/universities/heu/job.js +0 -80
- package/lib/routes/universities/heu/news.js +0 -80
- package/lib/routes/universities/heu/uae.js +0 -84
- package/lib/routes/universities/heu/ugs/news.js +0 -122
- package/lib/routes/universities/heu/yjsy.js +0 -92
- package/lib/routes/yaohuo/index.js +0 -33
- package/lib/routes/zcool/recommend.js +0 -64
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ RSSHub is an open source, easy to use, and extensible RSS feed generator. It's c
|
|
|
15
15
|
|
|
16
16
|
RSSHub delivers millions of contents aggregated from all kinds of sources, our vibrant open source community is ensuring the deliver of RSSHub's new routes, new features and bug fixes.
|
|
17
17
|
|
|
18
|
-
RSSHub can be used with browser extension [RSSHub Radar](https://github.com/DIYgod/RSSHub-Radar) and
|
|
18
|
+
RSSHub can be used with browser extension [RSSHub Radar](https://github.com/DIYgod/RSSHub-Radar) and mobile auxiliary app [RSSBud](https://github.com/Cay-Zhang/RSSBud) (iOS) and [RSSAid](https://github.com/LeetaoGoooo/RSSAid) (Android)
|
|
19
19
|
|
|
20
20
|
[English docs](https://docs.rsshub.app/en) | [Telegram Group](https://t.me/rsshub) | [Telegram Channel](https://t.me/awesomeRSSHub)
|
|
21
21
|
|
|
@@ -23,7 +23,7 @@ RSSHub can be used with browser extension [RSSHub Radar](https://github.com/DIYg
|
|
|
23
23
|
|
|
24
24
|
RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容
|
|
25
25
|
|
|
26
|
-
可以配合浏览器扩展 [RSSHub Radar](https://github.com/DIYgod/RSSHub-Radar) 和
|
|
26
|
+
可以配合浏览器扩展 [RSSHub Radar](https://github.com/DIYgod/RSSHub-Radar) 和 移动端辅助 App [RSSBud](https://github.com/Cay-Zhang/RSSBud) (iOS) 与 [RSSAid](https://github.com/LeetaoGoooo/RSSAid) (Android) 食用
|
|
27
27
|
|
|
28
28
|
[中文文档](https://docs.rsshub.app) | [Telegram 群](https://t.me/rsshub) | [Telegram 频道](https://t.me/awesomeRSSHub)
|
|
29
29
|
|
|
@@ -32,12 +32,12 @@ RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以
|
|
|
32
32
|
### Special Sponsors
|
|
33
33
|
|
|
34
34
|
<div>
|
|
35
|
-
<a href="https://
|
|
35
|
+
<a href="https://rss3.io/" target="_blank"><img height="60px" src="https://i.imgur.com/v7TF0jp.jpg"></a>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
### Sponsors
|
|
39
39
|
|
|
40
|
-
[Sayori Studio](https://t.me/SayoriStudio) . [Sion Kazama](https://blog.sion.moe) . [琚致远](https://www.shaoyaoju.org/) . [Rolly RSS 阅读器](https://www.coolapk.com/apk/239500) . [mokeyjay](https://www.mokeyjay.com/) . [
|
|
40
|
+
[Sayori Studio](https://t.me/SayoriStudio) . [Sion Kazama](https://blog.sion.moe) . [琚致远](https://www.shaoyaoju.org/) . [Rolly RSS 阅读器](https://www.coolapk.com/apk/239500) . [mokeyjay](https://www.mokeyjay.com/) . [萌开源联盟](https://www.moeunion.com) . [hooke007](https://github.com/hooke007/MPV_lazy) . [feeds.pub](https://feeds.pub)
|
|
41
41
|
|
|
42
42
|
[](https://docs.rsshub.app/en/support/)
|
|
43
43
|
|
|
@@ -55,14 +55,15 @@ Logo designer [sheldonrrr](https://dribbble.com/sheldonrrr)
|
|
|
55
55
|
|
|
56
56
|
- [RSSHub Radar](https://github.com/DIYgod/RSSHub-Radar) | 一个可以帮助你快速发现和订阅当前网站 RSS 和 RSSHub 的浏览器扩展
|
|
57
57
|
- [RSSBud](https://github.com/Cay-Zhang/RSSBud) ([TestFlight 公测](https://testflight.apple.com/join/rjCVzzHP)) | iOS 平台的 RSSHub Radar,专为移动生态优化
|
|
58
|
+
- [RSSAid](https://github.com/LeetaoGoooo/RSSAid) | 基于 Flutter 构建的 Android 平台的 RSSHub Radar
|
|
58
59
|
|
|
59
60
|
## Join Us
|
|
60
61
|
|
|
61
62
|
We welcome all pull requests. Suggestions and feedback are also welcomed [here](https://github.com/DIYgod/RSSHub/issues).
|
|
62
63
|
|
|
63
|
-
Refer to [Join Us](https://docs.rsshub.app/en/joinus/)
|
|
64
|
+
Refer to [Join Us](https://docs.rsshub.app/en/joinus/quick-start.html)
|
|
64
65
|
|
|
65
|
-
见 [参与我们](https://docs.rsshub.app/joinus/)
|
|
66
|
+
见 [参与我们](https://docs.rsshub.app/joinus/quick-start.html)
|
|
66
67
|
|
|
67
68
|
## Deployment
|
|
68
69
|
|
|
@@ -84,6 +85,7 @@ You can support RSSHub via donations.
|
|
|
84
85
|
|
|
85
86
|
Recurring donors will be rewarded via express issue response, or even have your name displayed on our GitHub page and website.
|
|
86
87
|
|
|
88
|
+
- Become a Sponser on [GitHub](https://github.com/sponsors/DIYgod)
|
|
87
89
|
- Become a Sponser on [Patreon](https://www.patreon.com/DIYgod)
|
|
88
90
|
- Become a Sponser on [爱发电](https://afdian.net/@diygod)
|
|
89
91
|
- Contact us directly: i@diygod.me
|
package/lib/api_router.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
const Router = require('@koa/router');
|
|
2
2
|
const router = new Router();
|
|
3
|
-
const
|
|
3
|
+
const maintainer = require('./maintainer');
|
|
4
4
|
|
|
5
5
|
router.get('/routes/:name?', (ctx) => {
|
|
6
|
-
const allRoutes = Array.from(routes.stack);
|
|
7
|
-
allRoutes.shift();
|
|
8
6
|
const result = {};
|
|
9
7
|
let counter = 0;
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
const path = i
|
|
9
|
+
Object.keys(maintainer).forEach((i) => {
|
|
10
|
+
const path = i;
|
|
13
11
|
const top = path.split('/')[1];
|
|
14
12
|
|
|
15
13
|
if (!ctx.params.name || top === ctx.params.name) {
|
package/lib/app.js
CHANGED
|
@@ -16,8 +16,10 @@ const favicon = require('koa-favicon');
|
|
|
16
16
|
const debug = require('./middleware/debug');
|
|
17
17
|
const accessControl = require('./middleware/access-control');
|
|
18
18
|
const antiHotlink = require('./middleware/anti-hotlink');
|
|
19
|
+
const loadOnDemand = require('./middleware/load-on-demand');
|
|
19
20
|
|
|
20
21
|
const router = require('./router');
|
|
22
|
+
const core_router = require('./core_router');
|
|
21
23
|
const protected_router = require('./protected_router');
|
|
22
24
|
const mount = require('koa-mount');
|
|
23
25
|
|
|
@@ -48,7 +50,6 @@ app.context.debug = {
|
|
|
48
50
|
etag: 0,
|
|
49
51
|
paths: [],
|
|
50
52
|
routes: [],
|
|
51
|
-
ips: [],
|
|
52
53
|
errorPaths: [],
|
|
53
54
|
errorRoutes: [],
|
|
54
55
|
};
|
|
@@ -71,16 +72,21 @@ app.use(antiHotlink);
|
|
|
71
72
|
// 3 filter content
|
|
72
73
|
app.use(parameter);
|
|
73
74
|
|
|
75
|
+
// No Cache routes
|
|
76
|
+
app.use(mount('/', core_router.routes())).use(core_router.allowedMethods());
|
|
77
|
+
// API router
|
|
78
|
+
app.use(mount('/api', api_router.routes())).use(api_router.allowedMethods());
|
|
79
|
+
|
|
74
80
|
// 2 cache
|
|
75
81
|
app.use(cache(app));
|
|
76
82
|
|
|
83
|
+
// 1 load on demand
|
|
84
|
+
app.use(loadOnDemand(app));
|
|
85
|
+
|
|
77
86
|
// router
|
|
78
87
|
app.use(mount('/', router.routes())).use(router.allowedMethods());
|
|
79
88
|
|
|
80
89
|
// routes the require authentication
|
|
81
90
|
app.use(mount('/protected', protected_router.routes())).use(protected_router.allowedMethods());
|
|
82
91
|
|
|
83
|
-
// API router
|
|
84
|
-
app.use(mount('/api', api_router.routes())).use(api_router.allowedMethods());
|
|
85
|
-
|
|
86
92
|
module.exports = app;
|
package/lib/config.js
CHANGED
|
@@ -33,31 +33,29 @@ const calculateValue = () => {
|
|
|
33
33
|
},
|
|
34
34
|
cache: {
|
|
35
35
|
type: typeof envs.CACHE_TYPE === 'undefined' ? 'memory' : envs.CACHE_TYPE, // 缓存类型,支持 'memory' 和 'redis',设为空可以禁止缓存
|
|
36
|
+
requestTimeout: parseInt(envs.CACHE_REQUEST_TIMEOUT) || 60,
|
|
36
37
|
routeExpire: parseInt(envs.CACHE_EXPIRE) || 5 * 60, // 路由缓存时间,单位为秒
|
|
37
38
|
contentExpire: parseInt(envs.CACHE_CONTENT_EXPIRE) || 1 * 60 * 60, // 不变内容缓存时间,单位为秒
|
|
38
39
|
},
|
|
39
40
|
ua: envs.UA || 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
|
|
40
41
|
listenInaddrAny: envs.LISTEN_INADDR_ANY || 1, // 是否允许公网连接,取值 0 1
|
|
41
42
|
requestRetry: parseInt(envs.REQUEST_RETRY) || 2, // 请求失败重试次数
|
|
42
|
-
//
|
|
43
|
-
|
|
43
|
+
requestTimeout: parseInt(envs.REQUEST_TIMEOUT) || 30000, // Milliseconds to wait for the server to end the response before aborting the request
|
|
44
|
+
// 是否显示 Debug 信息,取值 'true' 'false' 'some_string' ,取值为 'true' 时永久显示,取值为 'false' 时永远隐藏,取值为 'some_string' 时请求带上 '?debug=some_string' 显示
|
|
45
|
+
debugInfo: envs.DEBUG_INFO || 'true',
|
|
44
46
|
disallowRobot: envs.DISALLOW_ROBOT !== '0' && envs.DISALLOW_ROBOT !== 'false',
|
|
45
47
|
titleLengthLimit: parseInt(envs.TITLE_LENGTH_LIMIT) || 150,
|
|
46
48
|
redis: {
|
|
47
49
|
url: envs.REDIS_URL || 'redis://localhost:6379/',
|
|
48
|
-
options: {
|
|
49
|
-
// 支持这些参数 https://github.com/NodeRedis/node_redis#options-object-properties
|
|
50
|
-
password: envs.REDIS_PASSWORD || null,
|
|
51
|
-
},
|
|
52
50
|
},
|
|
53
51
|
nodeName: envs.NODE_NAME,
|
|
54
52
|
suffix: envs.SUFFIX,
|
|
55
53
|
pixiv: {
|
|
56
|
-
|
|
57
|
-
password: envs.PIXIV_PASSWORD,
|
|
54
|
+
refreshToken: envs.PIXIV_REFRESHTOKEN,
|
|
58
55
|
bypassCdn: envs.PIXIV_BYPASS_CDN !== '0' && envs.PIXIV_BYPASS_CDN !== 'false',
|
|
59
56
|
bypassCdnHostname: envs.PIXIV_BYPASS_HOSTNAME || 'public-api.secure.pixiv.net',
|
|
60
57
|
bypassCdnDoh: envs.PIXIV_BYPASS_DOH || 'https://1.1.1.1/dns-query',
|
|
58
|
+
imgProxy: envs.PIXIV_IMG_PROXY || 'https://i.pixiv.cat',
|
|
61
59
|
},
|
|
62
60
|
fanbox: {
|
|
63
61
|
session: envs.FANBOX_SESSION_ID,
|
|
@@ -69,6 +67,8 @@ const calculateValue = () => {
|
|
|
69
67
|
consumer_key: envs.TWITTER_CONSUMER_KEY,
|
|
70
68
|
consumer_secret: envs.TWITTER_CONSUMER_SECRET,
|
|
71
69
|
tokens: twitter_tokens,
|
|
70
|
+
authorization: envs.TWITTER_WEBAPI_AUTHORIZAION || 'Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA',
|
|
71
|
+
// 此处硬编码参考自https://github.com/mikf/gallery-dl/blob/master/gallery_dl/extractor/twitter.py#L550
|
|
72
72
|
},
|
|
73
73
|
youtube: {
|
|
74
74
|
key: envs.YOUTUBE_KEY,
|
|
@@ -89,6 +89,9 @@ const calculateValue = () => {
|
|
|
89
89
|
yuque: {
|
|
90
90
|
token: envs.YUQUE_TOKEN,
|
|
91
91
|
},
|
|
92
|
+
zhihu: {
|
|
93
|
+
cookies: envs.ZHIHU_COOKIES,
|
|
94
|
+
},
|
|
92
95
|
puppeteerWSEndpoint: envs.PUPPETEER_WS_ENDPOINT,
|
|
93
96
|
loggerLevel: envs.LOGGER_LEVEL || 'info',
|
|
94
97
|
proxyUri: envs.PROXY_URI,
|
|
@@ -99,6 +102,7 @@ const calculateValue = () => {
|
|
|
99
102
|
auth: envs.PROXY_AUTH,
|
|
100
103
|
url_regex: envs.PROXY_URL_REGEX || '.*',
|
|
101
104
|
},
|
|
105
|
+
allowOrigin: envs.ALLOW_ORIGIN,
|
|
102
106
|
blacklist: envs.BLACKLIST && envs.BLACKLIST.split(','),
|
|
103
107
|
whitelist: envs.WHITELIST && envs.WHITELIST.split(','),
|
|
104
108
|
allowLocalhost: envs.ALLOW_LOCALHOST,
|
|
@@ -107,7 +111,10 @@ const calculateValue = () => {
|
|
|
107
111
|
email: {
|
|
108
112
|
config: email_config,
|
|
109
113
|
},
|
|
110
|
-
sentry:
|
|
114
|
+
sentry: {
|
|
115
|
+
dsn: envs.SENTRY,
|
|
116
|
+
routeTimeout: parseInt(envs.SENTRY_ROUTE_TIMEOUT) || 30000,
|
|
117
|
+
},
|
|
111
118
|
chuiniu: {
|
|
112
119
|
member: envs.CHUINIU_MEMBER,
|
|
113
120
|
},
|
|
@@ -128,6 +135,9 @@ const calculateValue = () => {
|
|
|
128
135
|
pkubbs: {
|
|
129
136
|
cookie: envs.PKUBBS_COOKIE,
|
|
130
137
|
},
|
|
138
|
+
bupt: {
|
|
139
|
+
portal_cookie: envs.BUPT_PORTAL_COOKIE,
|
|
140
|
+
},
|
|
131
141
|
nhentai: {
|
|
132
142
|
username: envs.NHENTAI_USERNAME,
|
|
133
143
|
password: envs.NHENTAI_PASSWORD,
|
|
@@ -177,6 +187,21 @@ const calculateValue = () => {
|
|
|
177
187
|
game4399: {
|
|
178
188
|
cookie: envs.GAME_4399,
|
|
179
189
|
},
|
|
190
|
+
dida365: {
|
|
191
|
+
username: envs.DIDA365_USERNAME,
|
|
192
|
+
password: envs.DIDA365_PASSWORD,
|
|
193
|
+
},
|
|
194
|
+
scboy: {
|
|
195
|
+
token: envs.SCBOY_BBS_TOKEN,
|
|
196
|
+
},
|
|
197
|
+
wordpress: {
|
|
198
|
+
cdnUrl: envs.WORDPRESS_CDN,
|
|
199
|
+
},
|
|
200
|
+
ehentai: {
|
|
201
|
+
ipb_member_id: envs.EH_IPB_MEMBER_ID,
|
|
202
|
+
ipb_pass_hash: envs.EH_IPB_PASS_HASH,
|
|
203
|
+
sk: envs.EH_SK,
|
|
204
|
+
},
|
|
180
205
|
};
|
|
181
206
|
};
|
|
182
207
|
calculateValue();
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const Router = require('@koa/router');
|
|
2
|
+
const config = require('@/config').value;
|
|
3
|
+
const router = new Router();
|
|
4
|
+
|
|
5
|
+
// Load Core Route
|
|
6
|
+
router.get('/', require('./routes/index'));
|
|
7
|
+
|
|
8
|
+
router.get('/robots.txt', (ctx) => {
|
|
9
|
+
if (config.disallowRobot) {
|
|
10
|
+
ctx.set('Content-Type', 'text/plain');
|
|
11
|
+
ctx.body = 'User-agent: *\nDisallow: /';
|
|
12
|
+
} else {
|
|
13
|
+
ctx.throw(404, 'Not Found');
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
module.exports = router;
|
package/lib/index.js
CHANGED
|
@@ -29,6 +29,7 @@ if (config.enableCluster && cluster.isMaster && process.env.NODE_ENV !== 'test'
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
logger.info('🎉 RSSHub start! Cheers!');
|
|
32
|
+
logger.info('💖 Can you help keep this open source project alive? Please sponsor 👉 https://docs.rsshub.app/en/support');
|
|
32
33
|
|
|
33
34
|
module.exports = server;
|
|
34
35
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const dirname = __dirname + '/v2';
|
|
2
|
+
|
|
3
|
+
// 遍历整个 routes 文件夹,收集模块 maintainer.js
|
|
4
|
+
const maintainerPath = require('require-all')({
|
|
5
|
+
dirname,
|
|
6
|
+
filter: /maintainer\.js$/,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
const maintainers = {};
|
|
10
|
+
|
|
11
|
+
// 将收集到的自定义模块进行合并
|
|
12
|
+
for (const dir in maintainerPath) {
|
|
13
|
+
const routes = maintainerPath[dir]['maintainer.js']; // Do not merge other file
|
|
14
|
+
for (const key in routes) {
|
|
15
|
+
maintainers['/' + dir + key] = routes[key];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// 兼容旧版路由
|
|
20
|
+
const router = require('./router');
|
|
21
|
+
router.stack.forEach((e) => {
|
|
22
|
+
if (!maintainers[e.path]) {
|
|
23
|
+
maintainers[e.path] = [];
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
module.exports = maintainers;
|
|
@@ -11,6 +11,7 @@ const reject = (ctx) => {
|
|
|
11
11
|
module.exports = async (ctx, next) => {
|
|
12
12
|
const ip = ctx.ips[0] || ctx.ip;
|
|
13
13
|
const requestPath = ctx.request.path;
|
|
14
|
+
const requestUA = ctx.request.header['user-agent'];
|
|
14
15
|
const accessKey = ctx.query.key;
|
|
15
16
|
const accessCode = ctx.query.code;
|
|
16
17
|
|
|
@@ -28,24 +29,24 @@ module.exports = async (ctx, next) => {
|
|
|
28
29
|
await next();
|
|
29
30
|
} else {
|
|
30
31
|
if (!isControlled || allowLocalhost) {
|
|
31
|
-
return
|
|
32
|
+
return grant();
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
if (config.accessKey) {
|
|
35
36
|
if (config.accessKey === accessKey || accessCode === md5(requestPath + config.accessKey)) {
|
|
36
|
-
return
|
|
37
|
+
return grant();
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
if (config.whitelist) {
|
|
41
|
-
if (config.whitelist.includes(
|
|
42
|
-
return
|
|
42
|
+
if (config.whitelist.find((white) => ip.includes(white) || requestPath.includes(white) || requestUA.includes(white))) {
|
|
43
|
+
return grant();
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
if (config.blacklist) {
|
|
47
|
-
if (!
|
|
48
|
-
return
|
|
48
|
+
if (!config.blacklist.find((black) => ip.includes(black) || requestPath.includes(black) || requestUA.includes(black))) {
|
|
49
|
+
return grant();
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
52
|
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
const md5 = require('@/utils/md5');
|
|
2
|
+
const config = require('@/config').value;
|
|
3
|
+
const logger = require('@/utils/logger');
|
|
4
|
+
const { RequestInProgressError } = require('@/errors');
|
|
5
|
+
|
|
6
|
+
const globalCache = {
|
|
7
|
+
get: () => null,
|
|
8
|
+
set: () => null,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
let cacheModule = {
|
|
12
|
+
get: () => null,
|
|
13
|
+
set: () => null,
|
|
14
|
+
status: { available: false },
|
|
15
|
+
clients: {},
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
if (config.cache.type === 'redis') {
|
|
19
|
+
cacheModule = require('./redis');
|
|
20
|
+
const { redisClient } = cacheModule.clients;
|
|
21
|
+
globalCache.get = async (key) => {
|
|
22
|
+
if (key && cacheModule.status.available) {
|
|
23
|
+
const value = await redisClient.get(key);
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
globalCache.set = cacheModule.set;
|
|
28
|
+
} else if (config.cache.type === 'memory') {
|
|
29
|
+
cacheModule = require('./memory');
|
|
30
|
+
const { pageCache } = cacheModule.clients;
|
|
31
|
+
globalCache.get = (key) => {
|
|
32
|
+
if (key && cacheModule.status.available) {
|
|
33
|
+
return pageCache.get(key);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
globalCache.set = (key, value, maxAge) => {
|
|
37
|
+
if (!value || value === 'undefined') {
|
|
38
|
+
value = '';
|
|
39
|
+
}
|
|
40
|
+
if (typeof value === 'object') {
|
|
41
|
+
value = JSON.stringify(value);
|
|
42
|
+
}
|
|
43
|
+
if (key) {
|
|
44
|
+
return pageCache.set(key, value, maxAge * 1000);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
} else {
|
|
48
|
+
logger.error('Cache not available, concurrent requests are not limited. This could lead to bad behavior.');
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// only give cache string, as the `!` condition tricky
|
|
52
|
+
// md5 is used to shrink key size
|
|
53
|
+
// plz, write these tips in comments!
|
|
54
|
+
module.exports = function (app) {
|
|
55
|
+
const { get, set, status } = cacheModule;
|
|
56
|
+
app.context.cache = {
|
|
57
|
+
...cacheModule,
|
|
58
|
+
tryGet: async (key, getValueFunc, maxAge = config.cache.contentExpire) => {
|
|
59
|
+
let v = await get(key);
|
|
60
|
+
if (!v) {
|
|
61
|
+
v = await getValueFunc();
|
|
62
|
+
set(key, v, maxAge);
|
|
63
|
+
} else {
|
|
64
|
+
let parsed;
|
|
65
|
+
try {
|
|
66
|
+
parsed = JSON.parse(v);
|
|
67
|
+
} catch (e) {
|
|
68
|
+
parsed = null;
|
|
69
|
+
}
|
|
70
|
+
if (parsed) {
|
|
71
|
+
v = parsed;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return v;
|
|
76
|
+
},
|
|
77
|
+
globalCache,
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
return async (ctx, next) => {
|
|
81
|
+
const key = 'koa-redis-cache:' + md5(ctx.request.path);
|
|
82
|
+
const controlKey = 'path-requested:' + md5(ctx.request.path);
|
|
83
|
+
|
|
84
|
+
if (!status.available) {
|
|
85
|
+
return next();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const isRequesting = await globalCache.get(controlKey);
|
|
89
|
+
|
|
90
|
+
if (isRequesting === '1') {
|
|
91
|
+
throw new RequestInProgressError('This path is currently fetching, please come back later!');
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
try {
|
|
95
|
+
const value = await globalCache.get(key);
|
|
96
|
+
|
|
97
|
+
if (value) {
|
|
98
|
+
ctx.response.status = 200;
|
|
99
|
+
if (config.cache.type === 'redis') {
|
|
100
|
+
ctx.response.set({
|
|
101
|
+
'X-Koa-Redis-Cache': 'true',
|
|
102
|
+
});
|
|
103
|
+
} else if (config.cache.type === 'memory') {
|
|
104
|
+
ctx.response.set({
|
|
105
|
+
'X-Koa-Memory-Cache': 'true',
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
ctx.state.data = JSON.parse(value);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
} catch (e) {
|
|
112
|
+
//
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Doesn't hit the cache? We need to let others know!
|
|
116
|
+
await globalCache.set(controlKey, '1', config.cache.requestTimeout);
|
|
117
|
+
|
|
118
|
+
try {
|
|
119
|
+
await next();
|
|
120
|
+
} catch (e) {
|
|
121
|
+
await globalCache.set(controlKey, '0', config.cache.requestTimeout);
|
|
122
|
+
throw e;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (ctx.response.get('Cache-Control') !== 'no-cache' && ctx.state && ctx.state.data) {
|
|
126
|
+
ctx.state.data.lastBuildDate = new Date().toUTCString();
|
|
127
|
+
const body = JSON.stringify(ctx.state.data);
|
|
128
|
+
await globalCache.set(key, body, config.cache.routeExpire);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// We need to let it go, even no cache set.
|
|
132
|
+
// Wait to set cache so the next request could be handled correctly
|
|
133
|
+
await globalCache.set(controlKey, '0', config.cache.requestTimeout);
|
|
134
|
+
};
|
|
135
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const Lru = require('lru-cache');
|
|
2
|
+
const config = require('@/config').value;
|
|
3
|
+
|
|
4
|
+
const status = { available: false };
|
|
5
|
+
|
|
6
|
+
const pageCache = new Lru({
|
|
7
|
+
maxAge: config.cache.routeExpire * 1000,
|
|
8
|
+
max: Infinity,
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
const routeCache = new Lru({
|
|
12
|
+
maxAge: config.cache.routeExpire * 1000,
|
|
13
|
+
max: Infinity,
|
|
14
|
+
updateAgeOnGet: true,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
status.available = true;
|
|
18
|
+
|
|
19
|
+
module.exports = {
|
|
20
|
+
get: (key, refresh = true) => {
|
|
21
|
+
if (key && status.available) {
|
|
22
|
+
let value = (refresh ? routeCache : pageCache).get(key);
|
|
23
|
+
if (value) {
|
|
24
|
+
value = value + '';
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
set: (key, value, maxAge = config.cache.contentExpire, refresh = true) => {
|
|
30
|
+
if (!value || value === 'undefined') {
|
|
31
|
+
value = '';
|
|
32
|
+
}
|
|
33
|
+
if (typeof value === 'object') {
|
|
34
|
+
value = JSON.stringify(value);
|
|
35
|
+
}
|
|
36
|
+
if (key && status.available) {
|
|
37
|
+
return (refresh ? routeCache : pageCache).set(key, value, maxAge * 1000);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
clients: { pageCache, routeCache },
|
|
41
|
+
status,
|
|
42
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const config = require('@/config').value;
|
|
2
|
+
const Redis = require('ioredis');
|
|
3
|
+
const logger = require('@/utils/logger');
|
|
4
|
+
|
|
5
|
+
const redisClient = new Redis(config.redis.url);
|
|
6
|
+
|
|
7
|
+
const status = { available: false };
|
|
8
|
+
|
|
9
|
+
redisClient.on('error', (error) => {
|
|
10
|
+
status.available = false;
|
|
11
|
+
logger.error('Redis error: ', error);
|
|
12
|
+
});
|
|
13
|
+
redisClient.on('end', () => {
|
|
14
|
+
status.available = false;
|
|
15
|
+
});
|
|
16
|
+
redisClient.on('connect', () => {
|
|
17
|
+
status.available = true;
|
|
18
|
+
logger.info('Redis connected.');
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
module.exports = {
|
|
22
|
+
get: async (key, refresh = true) => {
|
|
23
|
+
if (key && status.available) {
|
|
24
|
+
let value = await redisClient.get(key);
|
|
25
|
+
if (value && refresh) {
|
|
26
|
+
redisClient.expire(key, config.cache.contentExpire);
|
|
27
|
+
value = value + '';
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
set: (key, value, maxAge = config.cache.contentExpire) => {
|
|
33
|
+
if (!status.available) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (!value || value === 'undefined') {
|
|
37
|
+
value = '';
|
|
38
|
+
}
|
|
39
|
+
if (typeof value === 'object') {
|
|
40
|
+
value = JSON.stringify(value);
|
|
41
|
+
}
|
|
42
|
+
if (key) {
|
|
43
|
+
return redisClient.set(key, value, 'EX', maxAge); // setMode: https://redis.io/commands/set
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
clients: { redisClient },
|
|
47
|
+
status,
|
|
48
|
+
};
|
package/lib/middleware/debug.js
CHANGED
package/lib/middleware/header.js
CHANGED
|
@@ -5,6 +5,7 @@ const headers = {
|
|
|
5
5
|
'Access-Control-Allow-Methods': 'GET',
|
|
6
6
|
'Content-Type': 'application/xml; charset=utf-8',
|
|
7
7
|
'Cache-Control': `public, max-age=${config.cache.routeExpire}`,
|
|
8
|
+
'X-Content-Type-Options': 'nosniff',
|
|
8
9
|
};
|
|
9
10
|
if (config.nodeName) {
|
|
10
11
|
headers['RSSHub-Node'] = config.nodeName;
|
|
@@ -14,7 +15,7 @@ module.exports = async (ctx, next) => {
|
|
|
14
15
|
logger.info(`${ctx.url}, user IP: ${ctx.ips[0] || ctx.ip}`);
|
|
15
16
|
ctx.set(headers);
|
|
16
17
|
ctx.set({
|
|
17
|
-
'Access-Control-Allow-Origin':
|
|
18
|
+
'Access-Control-Allow-Origin': config.allowOrigin || ctx.host,
|
|
18
19
|
});
|
|
19
20
|
|
|
20
21
|
await next();
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const mount = require('koa-mount');
|
|
2
|
+
const Router = require('@koa/router');
|
|
3
|
+
const routes = require('../v2router');
|
|
4
|
+
const loadedRoutes = new Set();
|
|
5
|
+
|
|
6
|
+
module.exports = function (app) {
|
|
7
|
+
return async function (ctx, next) {
|
|
8
|
+
const p = ctx.request.path.split('/').filter(Boolean);
|
|
9
|
+
let modName = null;
|
|
10
|
+
let mounted = false;
|
|
11
|
+
|
|
12
|
+
if (p.length > 0) {
|
|
13
|
+
modName = p[0];
|
|
14
|
+
if (!loadedRoutes.has(modName)) {
|
|
15
|
+
const mod = routes[modName];
|
|
16
|
+
// Mount module
|
|
17
|
+
if (mod) {
|
|
18
|
+
mounted = true;
|
|
19
|
+
loadedRoutes.add(modName);
|
|
20
|
+
const router = new Router();
|
|
21
|
+
mod(router);
|
|
22
|
+
app.use(mount(`/${modName}`, router.routes())).use(router.allowedMethods());
|
|
23
|
+
}
|
|
24
|
+
} else {
|
|
25
|
+
mounted = true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
await next();
|
|
30
|
+
|
|
31
|
+
// We should only add it when koa router matched
|
|
32
|
+
if (mounted && ctx._matchedRoute) {
|
|
33
|
+
ctx._matchedRoute = `/${modName}${ctx._matchedRoute}`;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
};
|