rsshub 1.0.0-master.ff1cc11 → 1.0.0-master.ff97759
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.
Potentially problematic release.
This version of rsshub might be problematic. Click here for more details.
- package/README.md +5 -4
 - package/lib/config.js +153 -102
 - package/lib/middleware/cache/index.js +5 -5
 - package/lib/middleware/cache/memory.js +7 -13
 - package/lib/middleware/cache/redis.js +17 -2
 - package/lib/middleware/onerror.js +8 -0
 - package/lib/middleware/parameter.js +6 -4
 - package/lib/middleware/template.js +19 -6
 - package/lib/protected_router.js +1 -1
 - package/lib/radar-rules.js +1 -702
 - package/lib/router.js +314 -478
 - package/lib/routes/aeon/category.js +18 -27
 - package/lib/routes/afdian/dynamic.js +2 -1
 - package/lib/routes/amd/graphicsdrivers.js +1 -1
 - package/lib/routes/bof/home.js +1 -2
 - package/lib/routes/bookwalkertw/news.js +2 -2
 - package/lib/routes/ccdi/scdc.js +10 -6
 - package/lib/routes/coolapk/utils.js +2 -0
 - package/lib/routes/copymanga/comic.js +9 -2
 - package/lib/routes/coronavirus/dxy-data.js +1 -1
 - package/lib/routes/coronavirus/dxy.js +2 -2
 - package/lib/routes/cpta/notice.js +6 -1
 - package/lib/routes/dilbert/strip.js +7 -4
 - package/lib/routes/disqus/posts.js +1 -1
 - package/lib/routes/dsndsht23/index.js +3 -2
 - package/lib/routes/dykszx/news.js +5 -2
 - package/lib/routes/fanfou/favorites.js +1 -1
 - package/lib/routes/fanfou/home_timeline.js +1 -1
 - package/lib/routes/fanfou/public_timeline.js +1 -1
 - package/lib/routes/fanfou/user_timeline.js +1 -1
 - package/lib/routes/fashionnetwork/headline.js +53 -0
 - package/lib/routes/fdroid/apprelease.js +1 -1
 - package/lib/routes/futunn/highlights.js +39 -37
 - package/lib/routes/gameres/utils.js +4 -1
 - package/lib/routes/gelonghui/user.js +1 -1
 - package/lib/routes/gov/customs/list.js +2 -2
 - package/lib/routes/gov/guangdong/edu.js +5 -1
 - package/lib/routes/gov/shenzhen/xxgk/zfxxgj.js +5 -1
 - package/lib/routes/gov/suzhou/doc.js +2 -2
 - package/lib/routes/gov/suzhou/news.js +28 -23
 - package/lib/routes/gov/suzhou/utils.js +1 -1
 - package/lib/routes/hackerone/hacktivity.js +17 -16
 - package/lib/routes/hackerone/search.js +1 -2
 - package/lib/routes/hentaimama/videos.js +1 -1
 - package/lib/routes/hexo/fluid.js +45 -0
 - package/lib/routes/hkcnews/news.js +5 -1
 - package/lib/routes/hkej/index.js +9 -3
 - package/lib/routes/infzm/news.js +9 -17
 - package/lib/routes/instagram/index.js +3 -2
 - package/lib/routes/instagram/utils.js +5 -4
 - package/lib/routes/ipsw/index.js +2 -2
 - package/lib/routes/jike/user.js +5 -3
 - package/lib/routes/lastfm/loved.js +1 -1
 - package/lib/routes/lastfm/recent.js +1 -1
 - package/lib/routes/lastfm/top.js +1 -1
 - package/lib/routes/lizhi/user.js +1 -1
 - package/lib/routes/lolapp/article.js +53 -0
 - package/lib/routes/manhuagui/comic.js +74 -28
 - package/lib/routes/manxiaosi/book.js +1 -1
 - package/lib/routes/maoyan/hotComplete.js +87 -0
 - package/lib/routes/mhgui/comic.js +74 -28
 - package/lib/routes/mi/youpin/new.js +13 -31
 - package/lib/routes/mirror/entries.js +80 -0
 - package/lib/routes/missevan/drama.js +1 -1
 - package/lib/routes/missevan/latest.js +1 -1
 - package/lib/routes/mofish/index.js +21 -9
 - package/lib/routes/mofish/templates/description.art +4 -0
 - package/lib/routes/nasa/apod-cn.js +4 -1
 - package/lib/routes/ncm/djradio.js +58 -44
 - package/lib/routes/ncm/playlist.js +2 -0
 - package/lib/routes/ncm/templates/djradio-content.art +11 -0
 - package/lib/routes/ncm/userplayrecords.js +57 -0
 - package/lib/routes/newzmz/index.js +5 -1
 - package/lib/routes/nhentai/util.js +3 -3
 - package/lib/routes/nintendo/eshop_us.js +3 -6
 - package/lib/routes/novel/axdzs.js +22 -12
 - package/lib/routes/novel/biquge.js +25 -24
 - package/lib/routes/novel/biqugeinfo.js +26 -26
 - package/lib/routes/or/index.js +1 -1
 - package/lib/routes/pingwest/utils.js +4 -1
 - package/lib/routes/pixiv/bookmarks.js +1 -1
 - package/lib/routes/pixiv/illustfollow.js +1 -1
 - package/lib/routes/pixiv/ranking.js +1 -1
 - package/lib/routes/pixiv/search.js +1 -1
 - package/lib/routes/pixiv/user.js +1 -1
 - package/lib/routes/prestige-av/series.js +3 -6
 - package/lib/routes/qstheory/index.js +7 -1
 - package/lib/routes/radio/radio.js +1 -1
 - package/lib/routes/sina/rollnews.js +8 -3
 - package/lib/routes/t66y/index.js +4 -4
 - package/lib/routes/telecompaper/news.js +1 -1
 - package/lib/routes/tencent/wechat/miniprogram/framework.js +4 -2
 - package/lib/routes/tencent/wechat/wechat-open/pay/announce.js +2 -4
 - package/lib/routes/tingshuitz/guangzhou.js +1 -2
 - package/lib/routes/touhougarakuta/index.js +4 -2
 - package/lib/routes/touhougarakuta/json2html.js +22 -10
 - package/lib/routes/twitter/keyword.js +9 -4
 - package/lib/routes/twitter/likes.js +1 -1
 - package/lib/routes/twitter/list.js +1 -1
 - package/lib/routes/twitter/trends.js +1 -1
 - package/lib/routes/twitter/user.js +9 -4
 - package/lib/routes/twitter/web-api/media.js +5 -2
 - package/lib/routes/twitter/web-api/twitter-api.js +105 -20
 - package/lib/routes/twitter/web-api/twitter-got.js +4 -0
 - package/lib/routes/twitter/web-api/user.js +5 -4
 - package/lib/routes/twmanhuagui/comic.js +74 -28
 - package/lib/routes/ui-cn/article.js +8 -1
 - package/lib/routes/universities/bwu/news.js +1 -1
 - package/lib/routes/universities/bwu/utils.js +14 -17
 - package/lib/routes/universities/hitwh/today.js +6 -6
 - package/lib/routes/universities/nuc/index.js +6 -1
 - package/lib/routes/universities/sjtu/jwc.js +51 -53
 - package/lib/routes/vgn/index.js +1 -1
 - package/lib/routes/weibo/keyword.js +18 -10
 - package/lib/routes/weibo/search/hot.js +1 -2
 - package/lib/routes/weibo/super_index.js +25 -15
 - package/lib/routes/weibo/timeline.js +110 -126
 - package/lib/routes/weibo/user.js +93 -26
 - package/lib/routes/weibo/utils.js +222 -15
 - package/lib/routes/ximalaya/album.js +11 -14
 - package/lib/routes/ximalaya/utils.js +3 -128
 - package/lib/routes/youtube/channel.js +1 -1
 - package/lib/routes/youtube/playlist.js +1 -1
 - package/lib/routes/youtube/user.js +1 -1
 - package/lib/routes/yyets/todayfilelist.js +0 -1
 - package/lib/routes/zcool/top.js +3 -3
 - package/lib/routes/zhihu/activities.js +1 -0
 - package/lib/routes/zhihu/collection.js +26 -2
 - package/lib/routes/zhihu/daily.js +1 -0
 - package/lib/routes/zhihu/daily_section.js +1 -0
 - package/lib/routes/zhihu/hot.js +3 -2
 - package/lib/routes/zhihu/pin/utils.js +17 -7
 - package/lib/routes/zhihu/posts.js +2 -1
 - package/lib/routes/zhihu/topic.js +10 -2
 - package/lib/routes/zhihu/zhuanlan.js +12 -1
 - package/lib/utils/common-config.js +4 -0
 - package/lib/utils/common-utils.js +26 -0
 - package/lib/utils/parse-date.js +172 -17
 - package/lib/utils/puppeteer.js +1 -2
 - package/lib/utils/rand-user-agent.js +29 -0
 - package/lib/utils/request-wrapper.js +2 -5
 - package/lib/utils/torrent.js +9 -1
 - package/lib/utils/wechat-mp.js +260 -0
 - package/lib/v2/12306/index.js +108 -0
 - package/lib/v2/12306/maintainer.js +4 -0
 - package/lib/v2/12306/radar.js +28 -0
 - package/lib/v2/12306/router.js +4 -0
 - package/lib/v2/12306/templates/train.art +31 -0
 - package/lib/{routes → v2}/12306/zxdt.js +0 -0
 - package/lib/v2/18comic/album.js +75 -0
 - package/lib/v2/18comic/blogs.js +63 -0
 - package/lib/v2/18comic/index.js +12 -0
 - package/lib/v2/18comic/maintainer.js +6 -0
 - package/lib/v2/18comic/radar.js +31 -0
 - package/lib/v2/18comic/router.js +6 -0
 - package/lib/v2/18comic/search.js +13 -0
 - package/lib/v2/18comic/utils.js +71 -0
 - package/lib/v2/2048/index.js +8 -1
 - package/lib/v2/35photo/actual.js +7 -0
 - package/lib/v2/35photo/author.js +9 -0
 - package/lib/v2/35photo/genre.js +9 -0
 - package/lib/v2/35photo/interesting.js +7 -0
 - package/lib/v2/35photo/maintainer.js +8 -0
 - package/lib/v2/35photo/map.js +7 -0
 - package/lib/v2/35photo/new.js +7 -0
 - package/lib/v2/35photo/radar.js +43 -0
 - package/lib/v2/35photo/router.js +8 -0
 - package/lib/v2/35photo/utils.js +42 -0
 - package/lib/v2/36kr/maintainer.js +7 -0
 - package/lib/v2/36kr/motif.js +36 -0
 - package/lib/v2/36kr/news.js +56 -0
 - package/lib/v2/36kr/newsflashes.js +37 -0
 - package/lib/v2/36kr/radar.js +37 -0
 - package/lib/v2/36kr/router.js +7 -0
 - package/lib/v2/36kr/search/article.js +70 -0
 - package/lib/v2/36kr/user.js +36 -0
 - package/lib/v2/423down/index.js +114 -0
 - package/lib/v2/423down/maintainer.js +3 -0
 - package/lib/v2/423down/radar.js +193 -0
 - package/lib/v2/423down/router.js +3 -0
 - package/lib/v2/50forum/maintainer.js +3 -0
 - package/lib/v2/50forum/radar.js +13 -0
 - package/lib/v2/50forum/router.js +3 -0
 - package/lib/v2/50forum/zhuanjia.js +51 -0
 - package/lib/v2/52hrtt/index.js +57 -0
 - package/lib/v2/52hrtt/maintainer.js +4 -0
 - package/lib/v2/52hrtt/radar.js +19 -0
 - package/lib/v2/52hrtt/router.js +4 -0
 - package/lib/v2/52hrtt/symposium.js +57 -0
 - package/lib/v2/8kcos/article.js +24 -0
 - package/lib/v2/8kcos/cat.js +22 -0
 - package/lib/{routes → v2}/8kcos/const.js +0 -0
 - package/lib/v2/8kcos/latest.js +23 -0
 - package/lib/v2/8kcos/maintainer.js +5 -0
 - package/lib/v2/8kcos/radar.js +25 -0
 - package/lib/v2/8kcos/router.js +5 -0
 - package/lib/v2/8kcos/tag.js +23 -0
 - package/lib/v2/95mm/category.js +20 -0
 - package/lib/v2/95mm/maintainer.js +5 -0
 - package/lib/v2/95mm/radar.js +25 -0
 - package/lib/v2/95mm/router.js +5 -0
 - package/lib/v2/95mm/tab.js +9 -0
 - package/lib/v2/95mm/tag.js +9 -0
 - package/lib/v2/95mm/templates/description.art +3 -0
 - package/lib/v2/95mm/utils.js +59 -0
 - package/lib/v2/abmedia/category.js +30 -0
 - package/lib/v2/abmedia/index.js +26 -0
 - package/lib/v2/abmedia/maintainer.js +3 -0
 - package/lib/v2/abmedia/radar.js +19 -0
 - package/lib/v2/abmedia/router.js +4 -0
 - package/lib/v2/abskoop/index.js +57 -0
 - package/lib/v2/abskoop/maintainer.js +3 -0
 - package/lib/v2/abskoop/nsfw.js +52 -0
 - package/lib/v2/abskoop/radar.js +13 -0
 - package/lib/v2/abskoop/router.js +4 -0
 - package/lib/v2/abskoop/templates/description.art +3 -0
 - package/lib/v2/acm-ecnu/contest.js +44 -0
 - package/lib/v2/acm-ecnu/maintainer.js +3 -0
 - package/lib/v2/acm-ecnu/radar.js +19 -0
 - package/lib/v2/acm-ecnu/router.js +3 -0
 - package/lib/v2/acm-ecnu/templates/description.art +3 -0
 - package/lib/v2/agirls/index.js +77 -0
 - package/lib/v2/agirls/maintainer.js +5 -0
 - package/lib/v2/agirls/radar.js +25 -0
 - package/lib/v2/agirls/router.js +5 -0
 - package/lib/v2/{wechat → agirls}/templates/description.art +0 -0
 - package/lib/v2/agirls/topic.js +71 -0
 - package/lib/v2/agirls/topic_list.js +44 -0
 - package/lib/v2/ahjzu/maintainer.js +3 -0
 - package/lib/v2/ahjzu/news.js +57 -0
 - package/lib/v2/ahjzu/radar.js +13 -0
 - package/lib/v2/ahjzu/router.js +3 -0
 - package/lib/v2/ajmide/index.js +29 -0
 - package/lib/v2/ajmide/maintainer.js +3 -0
 - package/lib/v2/ajmide/radar.js +16 -0
 - package/lib/v2/ajmide/router.js +3 -0
 - package/lib/v2/app-center/maintainer.js +3 -0
 - package/lib/v2/app-center/radar.js +13 -0
 - package/lib/v2/app-center/release.js +120 -0
 - package/lib/v2/app-center/router.js +3 -0
 - package/lib/v2/app-center/templates/description.art +24 -0
 - package/lib/v2/apple/exchange_repair.js +40 -0
 - package/lib/v2/apple/maintainer.js +3 -0
 - package/lib/v2/apple/radar.js +13 -0
 - package/lib/v2/apple/router.js +3 -0
 - package/lib/v2/appledaily/index.js +69 -0
 - package/lib/v2/appledaily/maintainer.js +3 -0
 - package/lib/v2/appledaily/radar.js +157 -0
 - package/lib/v2/appledaily/router.js +3 -0
 - package/lib/v2/appledaily/templates/content.art +7 -0
 - package/lib/v2/appstore/gofans.js +34 -0
 - package/lib/{routes/apple → v2}/appstore/in-app-purchase.js +0 -0
 - package/lib/v2/appstore/maintainer.js +7 -0
 - package/lib/{routes/apple → v2}/appstore/price.js +0 -0
 - package/lib/v2/appstore/radar.js +41 -0
 - package/lib/v2/appstore/router.js +7 -0
 - package/lib/{routes/apple → v2}/appstore/update.js +0 -0
 - package/lib/v2/appstore/xianmian.js +28 -0
 - package/lib/v2/arknights/announce.js +55 -0
 - package/lib/v2/arknights/japan.js +25 -0
 - package/lib/v2/arknights/maintainer.js +5 -0
 - package/lib/v2/arknights/news.js +42 -0
 - package/lib/v2/arknights/radar.js +40 -0
 - package/lib/v2/arknights/router.js +8 -0
 - package/lib/v2/asus/bios.js +38 -0
 - package/lib/v2/asus/maintainer.js +3 -0
 - package/lib/v2/asus/radar.js +13 -0
 - package/lib/v2/asus/router.js +3 -0
 - package/lib/v2/asus/templates/bios.art +6 -0
 - package/lib/v2/atcoder/contest.js +64 -0
 - package/lib/v2/atcoder/maintainer.js +4 -0
 - package/lib/v2/atcoder/post.js +38 -0
 - package/lib/v2/atcoder/radar.js +22 -0
 - package/lib/v2/atcoder/router.js +4 -0
 - package/lib/v2/audiobar/latest.js +53 -0
 - package/lib/v2/audiobar/maintainer.js +3 -0
 - package/lib/v2/audiobar/radar.js +13 -0
 - package/lib/v2/audiobar/router.js +3 -0
 - package/lib/v2/bandcamp/maintainer.js +2 -0
 - package/lib/v2/bandcamp/radar.js +12 -0
 - package/lib/v2/bandcamp/router.js +2 -0
 - package/lib/{routes → v2}/bandcamp/tag.js +0 -0
 - package/lib/v2/bandcamp/templates/weekly.art +1 -0
 - package/lib/v2/bandcamp/weekly.js +29 -0
 - package/lib/v2/baozimh/index.js +55 -0
 - package/lib/v2/baozimh/maintainer.js +3 -0
 - package/lib/v2/baozimh/radar.js +13 -0
 - package/lib/v2/baozimh/router.js +3 -0
 - package/lib/v2/baozimh/templates/desc.art +3 -0
 - package/lib/v2/barronschina/index.js +70 -0
 - package/lib/v2/barronschina/maintainer.js +3 -0
 - package/lib/v2/barronschina/radar.js +13 -0
 - package/lib/v2/barronschina/router.js +3 -0
 - package/lib/v2/bbcnewslabs/maintainer.js +3 -0
 - package/lib/v2/bbcnewslabs/news.js +32 -0
 - package/lib/v2/bbcnewslabs/radar.js +13 -0
 - package/lib/v2/bbcnewslabs/router.js +3 -0
 - package/lib/v2/bendibao/maintainer.js +3 -0
 - package/lib/v2/bendibao/news.js +105 -0
 - package/lib/v2/bendibao/radar.js +13 -0
 - package/lib/v2/bendibao/router.js +3 -0
 - package/lib/v2/bigquant/collections.js +35 -0
 - package/lib/v2/bigquant/maintainer.js +3 -0
 - package/lib/v2/bigquant/radar.js +13 -0
 - package/lib/v2/bigquant/router.js +3 -0
 - package/lib/{routes → v2}/bilibili/app.js +0 -0
 - package/lib/v2/bilibili/article.js +53 -0
 - package/lib/{routes → v2}/bilibili/audio.js +0 -0
 - package/lib/{routes → v2}/bilibili/bangumi.js +0 -0
 - package/lib/{routes → v2}/bilibili/blackboard.js +0 -0
 - package/lib/v2/bilibili/cache.js +121 -0
 - package/lib/{routes → v2}/bilibili/coin.js +0 -0
 - package/lib/{routes → v2}/bilibili/danmaku.js +0 -0
 - package/lib/v2/bilibili/dynamic.js +206 -0
 - package/lib/{routes → v2}/bilibili/fav.js +0 -0
 - package/lib/{routes → v2}/bilibili/followers.js +0 -0
 - package/lib/{routes → v2}/bilibili/followings.js +0 -0
 - package/lib/{routes → v2}/bilibili/followings_article.js +0 -0
 - package/lib/{routes → v2}/bilibili/followings_dynamic.js +0 -0
 - package/lib/{routes → v2}/bilibili/followings_video.js +0 -0
 - package/lib/{routes → v2}/bilibili/linkNews.js +0 -0
 - package/lib/v2/bilibili/liveArea.js +64 -0
 - package/lib/{routes → v2}/bilibili/liveRoom.js +0 -0
 - package/lib/{routes → v2}/bilibili/liveSearch.js +0 -0
 - package/lib/{routes → v2}/bilibili/mallIP.js +0 -0
 - package/lib/{routes → v2}/bilibili/mallNew.js +0 -0
 - package/lib/{routes → v2}/bilibili/manga_followings.js +0 -0
 - package/lib/{routes → v2}/bilibili/manga_update.js +0 -0
 - package/lib/v2/bilibili/online.js +25 -0
 - package/lib/v2/bilibili/page.js +36 -0
 - package/lib/{routes → v2}/bilibili/partion-ranking.js +0 -0
 - package/lib/{routes → v2}/bilibili/partion.js +0 -0
 - package/lib/v2/bilibili/radar.js +105 -0
 - package/lib/{routes → v2}/bilibili/ranking.js +0 -0
 - package/lib/{routes → v2}/bilibili/readlist.js +0 -0
 - package/lib/{routes → v2}/bilibili/reply.js +0 -0
 - package/lib/v2/bilibili/router.js +39 -0
 - package/lib/{routes → v2}/bilibili/topic.js +0 -0
 - package/lib/{routes → v2}/bilibili/userChannel.js +0 -0
 - package/lib/{routes → v2}/bilibili/userFav.js +0 -0
 - package/lib/{routes → v2}/bilibili/user_bangumi.js +0 -0
 - package/lib/{routes → v2}/bilibili/utils.js +0 -0
 - package/lib/v2/bilibili/video.js +38 -0
 - package/lib/{routes → v2}/bilibili/vsearch.js +0 -0
 - package/lib/{routes → v2}/bilibili/weekly_recommend.js +0 -0
 - package/lib/v2/bioone/featured.js +50 -0
 - package/lib/v2/bioone/journal.js +58 -0
 - package/lib/v2/bioone/maintainer.js +4 -0
 - package/lib/v2/bioone/radar.js +19 -0
 - package/lib/v2/bioone/router.js +4 -0
 - package/lib/v2/bitbucket/commits.js +40 -0
 - package/lib/v2/bitbucket/maintainer.js +4 -0
 - package/lib/v2/bitbucket/radar.js +19 -0
 - package/lib/v2/bitbucket/router.js +4 -0
 - package/lib/v2/bitbucket/tags.js +40 -0
 - package/lib/v2/bitmovin/blog.js +33 -0
 - package/lib/v2/bitmovin/maintainer.js +3 -0
 - package/lib/v2/bitmovin/radar.js +13 -0
 - package/lib/v2/bitmovin/router.js +3 -0
 - package/lib/{routes/universities → v2}/bjfu/grs.js +0 -0
 - package/lib/v2/bjfu/it/index.js +49 -0
 - package/lib/v2/bjfu/it/utils.js +64 -0
 - package/lib/{routes/universities → v2}/bjfu/jwc/index.js +0 -0
 - package/lib/v2/bjfu/jwc/utils.js +63 -0
 - package/lib/{routes/universities → v2}/bjfu/kjc.js +0 -0
 - package/lib/v2/bjfu/maintainer.js +7 -0
 - package/lib/{routes/universities → v2}/bjfu/news/index.js +0 -0
 - package/lib/v2/bjfu/news/utils.js +63 -0
 - package/lib/v2/bjfu/radar.js +45 -0
 - package/lib/v2/bjfu/router.js +7 -0
 - package/lib/v2/bjx/huanbao.js +78 -0
 - package/lib/v2/bjx/maintainer.js +4 -0
 - package/lib/v2/bjx/radar.js +21 -0
 - package/lib/v2/bjx/router.js +4 -0
 - package/lib/v2/bjx/types.js +33 -0
 - package/lib/v2/blockbeats/index.js +50 -0
 - package/lib/v2/blockbeats/maintainer.js +3 -0
 - package/lib/v2/blockbeats/radar.js +19 -0
 - package/lib/v2/blockbeats/router.js +3 -0
 - package/lib/v2/bookfere/category.js +36 -0
 - package/lib/v2/bookfere/maintainer.js +3 -0
 - package/lib/v2/bookfere/radar.js +11 -0
 - package/lib/v2/bookfere/router.js +3 -0
 - package/lib/v2/brooklynmuseum/exhibitions.js +27 -0
 - package/lib/v2/brooklynmuseum/maintainer.js +3 -0
 - package/lib/v2/brooklynmuseum/radar.js +11 -0
 - package/lib/v2/brooklynmuseum/router.js +3 -0
 - package/lib/v2/cahkms/index.js +69 -0
 - package/lib/v2/cahkms/maintainer.js +3 -0
 - package/lib/v2/cahkms/radar.js +13 -0
 - package/lib/v2/cahkms/router.js +3 -0
 - package/lib/v2/cahkms/templates/description.art +15 -0
 - package/lib/v2/cankaoxiaoxi/index.js +81 -0
 - package/lib/v2/cankaoxiaoxi/maintainer.js +3 -0
 - package/lib/v2/cankaoxiaoxi/radar.js +61 -0
 - package/lib/v2/cankaoxiaoxi/router.js +3 -0
 - package/lib/v2/cbirc/index.js +119 -0
 - package/lib/v2/cbirc/maintainer.js +3 -0
 - package/lib/v2/cbirc/radar.js +13 -0
 - package/lib/v2/cbirc/router.js +3 -0
 - package/lib/v2/ccreports/index.js +41 -0
 - package/lib/v2/ccreports/maintainer.js +3 -0
 - package/lib/v2/ccreports/radar.js +13 -0
 - package/lib/v2/ccreports/router.js +3 -0
 - package/lib/v2/cctv/category.js +20 -0
 - package/lib/v2/cctv/jx.js +51 -0
 - package/lib/v2/cctv/lm.js +78 -0
 - package/lib/v2/cctv/maintainer.js +7 -0
 - package/lib/v2/cctv/radar.js +41 -0
 - package/lib/v2/cctv/router.js +7 -0
 - package/lib/v2/cctv/special.js +110 -0
 - package/lib/v2/cctv/utils/mzzlbg.js +41 -0
 - package/lib/v2/cctv/utils/news.js +105 -0
 - package/lib/v2/cctv/utils/xinwen1j1.js +81 -0
 - package/lib/v2/cctv/xwlb.js +50 -0
 - package/lib/v2/cde/index.js +132 -0
 - package/lib/v2/cde/maintainer.js +3 -0
 - package/lib/v2/cde/radar.js +43 -0
 - package/lib/v2/cde/router.js +3 -0
 - package/lib/v2/cde/utils.js +20 -0
 - package/lib/v2/cdi/index.js +61 -0
 - package/lib/v2/cdi/maintainer.js +3 -0
 - package/lib/v2/cdi/radar.js +13 -0
 - package/lib/v2/cdi/router.js +3 -0
 - package/lib/v2/changba/maintainer.js +3 -0
 - package/lib/v2/changba/radar.js +13 -0
 - package/lib/v2/changba/router.js +3 -0
 - package/lib/v2/changba/templates/work_description.art +2 -0
 - package/lib/v2/changba/user.js +84 -0
 - package/lib/v2/chaoxing/maintainer.js +3 -0
 - package/lib/v2/chaoxing/qk.js +59 -0
 - package/lib/v2/chaoxing/radar.js +13 -0
 - package/lib/v2/chaoxing/router.js +3 -0
 - package/lib/v2/chaoxing/templates/description.art +3 -0
 - package/lib/v2/chaping/banner.js +40 -0
 - package/lib/v2/chaping/maintainer.js +5 -0
 - package/lib/v2/chaping/news.js +55 -0
 - package/lib/v2/chaping/newsflash.js +23 -0
 - package/lib/v2/chaping/radar.js +31 -0
 - package/lib/v2/chaping/router.js +5 -0
 - package/lib/v2/chinacef/experts.js +38 -0
 - package/lib/v2/chinacef/hot.js +38 -0
 - package/lib/v2/chinacef/index.js +39 -0
 - package/lib/v2/chinacef/maintainer.js +5 -0
 - package/lib/v2/chinacef/radar.js +25 -0
 - package/lib/v2/chinacef/router.js +5 -0
 - package/lib/v2/chinacef/templates/description.art +1 -0
 - package/lib/v2/chinacef/utils.js +55 -0
 - package/lib/v2/chinafactcheck/index.js +38 -0
 - package/lib/v2/chinafactcheck/maintainer.js +3 -0
 - package/lib/v2/chinafactcheck/radar.js +13 -0
 - package/lib/v2/chinafactcheck/router.js +3 -0
 - package/lib/v2/chinafactcheck/templates/description.art +1 -0
 - package/lib/v2/chinafactcheck/utils.js +60 -0
 - package/lib/v2/chinanews/index.js +65 -0
 - package/lib/v2/chinanews/maintainer.js +3 -0
 - package/lib/v2/chinanews/radar.js +13 -0
 - package/lib/v2/chinanews/router.js +3 -0
 - package/lib/v2/chinaventure/index.js +63 -0
 - package/lib/v2/chinaventure/maintainer.js +3 -0
 - package/lib/v2/chinaventure/radar.js +13 -0
 - package/lib/v2/chinaventure/router.js +3 -0
 - package/lib/v2/ciidbnu/index.js +58 -0
 - package/lib/v2/ciidbnu/maintainer.js +3 -0
 - package/lib/v2/ciidbnu/radar.js +13 -0
 - package/lib/v2/ciidbnu/router.js +3 -0
 - package/lib/v2/cnbeta/index.js +16 -0
 - package/lib/v2/cnbeta/maintainer.js +5 -0
 - package/lib/v2/cnbeta/radar.js +25 -0
 - package/lib/v2/cnbeta/router.js +4 -0
 - package/lib/v2/cnbeta/type.js +42 -0
 - package/lib/v2/cnbeta/utils.js +28 -0
 - package/lib/v2/cnki/debut.js +62 -0
 - package/lib/v2/cnki/journals.js +74 -0
 - package/lib/v2/cnki/maintainer.js +4 -0
 - package/lib/v2/cnki/radar.js +19 -0
 - package/lib/v2/cnki/router.js +4 -0
 - package/lib/v2/cnki/templates/desc.art +5 -0
 - package/lib/v2/cntv/column.js +29 -0
 - package/lib/v2/cntv/maintainer.js +3 -0
 - package/lib/v2/cntv/radar.js +13 -0
 - package/lib/v2/cntv/router.js +3 -0
 - package/lib/v2/cntv/templates/column.art +4 -0
 - package/lib/v2/codeforces/contests.js +37 -0
 - package/lib/v2/codeforces/maintainer.js +3 -0
 - package/lib/v2/codeforces/radar.js +13 -0
 - package/lib/v2/codeforces/router.js +3 -0
 - package/lib/v2/codeforces/templates/contest.art +11 -0
 - package/lib/v2/consumer/index.js +55 -0
 - package/lib/v2/consumer/maintainer.js +3 -0
 - package/lib/v2/consumer/radar.js +13 -0
 - package/lib/v2/consumer/router.js +3 -0
 - package/lib/v2/cool18/index.js +61 -0
 - package/lib/v2/cool18/maintainer.js +3 -0
 - package/lib/v2/cool18/radar.js +13 -0
 - package/lib/v2/cool18/router.js +3 -0
 - package/lib/v2/coomer/artist.js +9 -0
 - package/lib/v2/coomer/maintainer.js +4 -0
 - package/lib/v2/coomer/posts.js +7 -0
 - package/lib/v2/coomer/radar.js +19 -0
 - package/lib/v2/coomer/router.js +4 -0
 - package/lib/v2/coomer/utils.js +53 -0
 - package/lib/v2/cpcey/index.js +60 -0
 - package/lib/v2/cpcey/maintainer.js +3 -0
 - package/lib/v2/cpcey/radar.js +27 -0
 - package/lib/v2/cpcey/router.js +3 -0
 - package/lib/v2/cqwu/index.js +46 -0
 - package/lib/v2/cqwu/maintainer.js +3 -0
 - package/lib/v2/cqwu/radar.js +27 -0
 - package/lib/v2/cqwu/router.js +3 -0
 - package/lib/v2/csc/maintainer.js +3 -0
 - package/lib/v2/csc/notice.js +99 -0
 - package/lib/v2/csc/radar.js +31 -0
 - package/lib/v2/csc/router.js +3 -0
 - package/lib/v2/csu/cse.js +33 -0
 - package/lib/v2/csu/fetch_article.js +12 -0
 - package/lib/{routes/universities → v2}/csu/job.js +0 -0
 - package/lib/v2/csu/maintainer.js +3 -0
 - package/lib/v2/csu/radar.js +13 -0
 - package/lib/v2/csu/router.js +4 -0
 - package/lib/v2/dahecube/index.js +66 -0
 - package/lib/v2/dahecube/maintainer.js +3 -0
 - package/lib/v2/dahecube/radar.js +23 -0
 - package/lib/v2/dahecube/router.js +3 -0
 - package/lib/v2/dahecube/utils.js +47 -0
 - package/lib/v2/dapenti/maintainer.js +4 -0
 - package/lib/v2/dapenti/radar.js +27 -0
 - package/lib/v2/dapenti/router.js +4 -0
 - package/lib/v2/dapenti/subject.js +5 -0
 - package/lib/v2/dapenti/tugua.js +5 -0
 - package/lib/v2/dapenti/utils.js +75 -0
 - package/lib/v2/dayanzai/index.js +58 -0
 - package/lib/v2/dayanzai/maintainer.js +3 -0
 - package/lib/v2/dayanzai/radar.js +13 -0
 - package/lib/v2/dayanzai/router.js +3 -0
 - package/lib/v2/dbmv/index.js +64 -0
 - package/lib/v2/dbmv/maintainer.js +3 -0
 - package/lib/v2/dbmv/radar.js +13 -0
 - package/lib/v2/dbmv/router.js +3 -0
 - package/lib/v2/ddosi/category.js +42 -0
 - package/lib/v2/ddosi/index.js +41 -0
 - package/lib/v2/ddosi/maintainer.js +4 -0
 - package/lib/v2/ddosi/radar.js +19 -0
 - package/lib/v2/ddosi/router.js +4 -0
 - package/lib/v2/dhu/jiaowu/news.js +37 -0
 - package/lib/v2/dhu/maintainer.js +4 -0
 - package/lib/v2/dhu/radar.js +17 -0
 - package/lib/v2/dhu/router.js +4 -0
 - package/lib/v2/dhu/xxgk/news.js +32 -0
 - package/lib/v2/disinfo/maintainer.js +3 -0
 - package/lib/v2/disinfo/publications.js +56 -0
 - package/lib/v2/disinfo/radar.js +13 -0
 - package/lib/v2/disinfo/router.js +3 -0
 - package/lib/v2/disinformationindex/blog.js +49 -0
 - package/lib/v2/disinformationindex/maintainer.js +4 -0
 - package/lib/v2/disinformationindex/radar.js +19 -0
 - package/lib/v2/disinformationindex/research.js +45 -0
 - package/lib/v2/disinformationindex/router.js +4 -0
 - package/lib/v2/disinformationindex/templates/description.art +7 -0
 - package/lib/v2/dockerhub/build.js +31 -0
 - package/lib/v2/dockerhub/maintainer.js +4 -0
 - package/lib/v2/dockerhub/radar.js +19 -0
 - package/lib/v2/dockerhub/router.js +4 -0
 - package/lib/v2/dockerhub/tag.js +33 -0
 - package/lib/v2/dockerhub/utils.js +10 -0
 - package/lib/v2/dongqiudi/daily.js +47 -0
 - package/lib/v2/dongqiudi/maintainer.js +8 -0
 - package/lib/{routes → v2}/dongqiudi/player_news.js +0 -0
 - package/lib/v2/dongqiudi/radar.js +45 -0
 - package/lib/v2/dongqiudi/result.js +30 -0
 - package/lib/v2/dongqiudi/router.js +8 -0
 - package/lib/{routes → v2}/dongqiudi/special.js +0 -0
 - package/lib/{routes → v2}/dongqiudi/team_news.js +0 -0
 - package/lib/v2/dongqiudi/top_news.js +39 -0
 - package/lib/v2/dongqiudi/utils.js +155 -0
 - package/lib/{routes → v2}/douban/book/rank.js +0 -0
 - package/lib/{routes → v2}/douban/channel/subject.js +0 -0
 - package/lib/{routes → v2}/douban/channel/topic.js +0 -0
 - package/lib/{routes → v2}/douban/commercialpress/latest.js +0 -0
 - package/lib/{routes → v2}/douban/event/hot.js +0 -0
 - package/lib/v2/douban/maintainer.js +27 -0
 - package/lib/{routes/douban → v2/douban/other}/bookstore.js +0 -0
 - package/lib/{routes/douban → v2/douban/other}/celebrity.js +0 -0
 - package/lib/{routes/douban → v2/douban/other}/classification.js +0 -0
 - package/lib/{routes/douban → v2/douban/other}/doulist.js +0 -0
 - package/lib/v2/douban/other/explore.js +50 -0
 - package/lib/{routes/douban → v2/douban/other}/explore_column.js +0 -0
 - package/lib/v2/douban/other/group.js +48 -0
 - package/lib/v2/douban/other/jobs.js +33 -0
 - package/lib/{routes/douban → v2/douban/other}/later.js +0 -0
 - package/lib/{routes/douban → v2/douban/other}/latest_book.js +0 -0
 - package/lib/{routes/douban → v2/douban/other}/latest_music.js +0 -0
 - package/lib/{routes/douban → v2/douban/other}/playing.js +0 -0
 - package/lib/{routes/douban → v2/douban/other}/replied.js +0 -0
 - package/lib/{routes/douban → v2/douban/other}/replies.js +0 -0
 - package/lib/v2/douban/other/topic.js +80 -0
 - package/lib/{routes/douban → v2/douban/other}/ustop.js +0 -0
 - package/lib/{routes/douban → v2/douban/other}/weekly_best.js +0 -0
 - package/lib/v2/douban/people/status.js +501 -0
 - package/lib/v2/douban/people/wish.js +92 -0
 - package/lib/v2/douban/radar.js +54 -0
 - package/lib/v2/douban/router.js +27 -0
 - package/lib/v2/douban/templates/explore.art +7 -0
 - package/lib/v2/douyin/maintainer.js +3 -0
 - package/lib/v2/douyin/radar.js +13 -0
 - package/lib/v2/douyin/router.js +3 -0
 - package/lib/v2/douyin/templates/cover.art +15 -0
 - package/lib/v2/douyin/templates/desc.art +3 -0
 - package/lib/v2/douyin/templates/embed.art +13 -0
 - package/lib/v2/douyin/templates/iframe.art +14 -0
 - package/lib/v2/douyin/user.js +125 -0
 - package/lib/v2/dtcj/datahero.js +50 -0
 - package/lib/v2/dtcj/datainsight.js +53 -0
 - package/lib/v2/dtcj/maintainer.js +4 -0
 - package/lib/v2/dtcj/radar.js +25 -0
 - package/lib/v2/dtcj/router.js +4 -0
 - package/lib/v2/dushu/fuzhou/index.js +42 -0
 - package/lib/v2/dushu/fuzhou/templates/message.art +9 -0
 - package/lib/v2/dushu/maintainer.js +3 -0
 - package/lib/v2/dushu/radar.js +24 -0
 - package/lib/v2/dushu/router.js +3 -0
 - package/lib/v2/dut/defaults.js +53 -0
 - package/lib/v2/dut/index.js +78 -0
 - package/lib/v2/dut/maintainer.js +14 -0
 - package/lib/v2/dut/radar.js +109 -0
 - package/lib/v2/dut/router.js +4 -0
 - package/lib/v2/dut/shortcuts.js +77 -0
 - package/lib/{routes → v2}/dx2025/index.js +0 -0
 - package/lib/v2/dx2025/maintainer.js +3 -0
 - package/lib/v2/dx2025/radar.js +19 -0
 - package/lib/v2/dx2025/router.js +3 -0
 - package/lib/v2/e-hentai/index.js +115 -0
 - package/lib/v2/e-hentai/maintainer.js +5 -0
 - package/lib/v2/e-hentai/radar.js +43 -0
 - package/lib/v2/e-hentai/router.js +3 -0
 - package/lib/v2/e-hentai/templates/images.art +3 -0
 - package/lib/v2/eagle/blog.js +47 -0
 - package/lib/v2/eagle/changelog.js +77 -0
 - package/lib/v2/eagle/maintainer.js +4 -0
 - package/lib/v2/eagle/radar.js +101 -0
 - package/lib/v2/eagle/router.js +4 -0
 - package/lib/v2/eastday/24.js +90 -0
 - package/lib/v2/eastday/maintainer.js +2 -0
 - package/lib/v2/eastday/radar.js +16 -0
 - package/lib/v2/eastday/router.js +2 -0
 - package/lib/v2/eastday/sh.js +49 -0
 - package/lib/v2/eastmoney/radar.js +13 -0
 - package/lib/v2/eastmoney/router.js +3 -0
 - package/lib/v2/eastmoney/ttjj/user.js +65 -0
 - package/lib/v2/ecust-jxjy/maintainer.js +3 -0
 - package/lib/v2/ecust-jxjy/news.js +47 -0
 - package/lib/v2/ecust-jxjy/radar.js +13 -0
 - package/lib/v2/ecust-jxjy/router.js +3 -0
 - package/lib/v2/ehentai/ehapi.js +172 -0
 - package/lib/v2/ehentai/favorites.js +28 -0
 - package/lib/v2/ehentai/maintainer.js +5 -0
 - package/lib/v2/ehentai/router.js +5 -0
 - package/lib/v2/ehentai/search.js +36 -0
 - package/lib/v2/ehentai/tag.js +24 -0
 - package/lib/v2/elsevier/latest.js +87 -0
 - package/lib/v2/elsevier/maintainer.js +4 -0
 - package/lib/v2/elsevier/radar.js +19 -0
 - package/lib/v2/elsevier/router.js +4 -0
 - package/lib/v2/elsevier/templates/description.art +11 -0
 - package/lib/v2/elsevier/volume.js +75 -0
 - package/lib/v2/ems/apple.js +42 -0
 - package/lib/v2/ems/maintainer.js +4 -0
 - package/lib/{routes → v2}/ems/news.js +0 -0
 - package/lib/v2/ems/radar.js +19 -0
 - package/lib/v2/ems/router.js +4 -0
 - package/lib/v2/ems/templates/apple.art +6 -0
 - package/lib/v2/epicgames/router.js +1 -1
 - package/lib/v2/epicgames/supportedList.js +2 -3
 - package/lib/v2/eprice/radar.js +2 -2
 - package/lib/v2/eprice/rss.js +31 -19
 - package/lib/v2/eprice/templates/description.art +1 -1
 - package/lib/v2/eprice/templates/image.art +1 -0
 - package/lib/{routes/everything → v2}/eventernote/actors.js +0 -0
 - package/lib/v2/eventernote/maintainer.js +3 -0
 - package/lib/v2/eventernote/radar.js +13 -0
 - package/lib/v2/eventernote/router.js +3 -0
 - package/lib/v2/ezone/index.js +68 -0
 - package/lib/v2/ezone/maintainer.js +3 -0
 - package/lib/v2/ezone/radar.js +13 -0
 - package/lib/v2/ezone/router.js +3 -0
 - package/lib/v2/ff14/ff14_global.js +37 -0
 - package/lib/v2/ff14/ff14_zh.js +43 -0
 - package/lib/v2/ff14/maintainer.js +4 -0
 - package/lib/v2/ff14/router.js +7 -0
 - package/lib/v2/ff14/templates/description.art +4 -0
 - package/lib/v2/filmdeepfocus/index.js +58 -0
 - package/lib/v2/filmdeepfocus/maintainer.js +3 -0
 - package/lib/v2/filmdeepfocus/radar.js +13 -0
 - package/lib/v2/filmdeepfocus/router.js +3 -0
 - package/lib/v2/firefox/index.js +74 -0
 - package/lib/v2/firefox/maintainer.js +3 -0
 - package/lib/v2/firefox/radar.js +13 -0
 - package/lib/v2/firefox/router.js +3 -0
 - package/lib/v2/firefox/templates/description.art +5 -0
 - package/lib/v2/flyert/creditcard.js +86 -0
 - package/lib/v2/flyert/maintainer.js +4 -0
 - package/lib/v2/flyert/preferential.js +48 -0
 - package/lib/v2/flyert/radar.js +19 -0
 - package/lib/v2/flyert/router.js +4 -0
 - package/lib/v2/flyert/utils.js +67 -0
 - package/lib/v2/foresightnews/index.js +88 -0
 - package/lib/v2/foresightnews/maintainer.js +6 -0
 - package/lib/v2/foresightnews/radar.js +31 -0
 - package/lib/v2/foresightnews/router.js +3 -0
 - package/lib/v2/fortunechina/index.js +70 -0
 - package/lib/v2/fortunechina/maintainer.js +3 -0
 - package/lib/v2/fortunechina/radar.js +13 -0
 - package/lib/v2/fortunechina/router.js +3 -0
 - package/lib/v2/ft/channel.js +9 -0
 - package/lib/v2/ft/maintainer.js +4 -0
 - package/lib/v2/ft/myft.js +44 -0
 - package/lib/v2/ft/radar.js +24 -0
 - package/lib/v2/ft/router.js +4 -0
 - package/lib/v2/ft/utils.js +88 -0
 - package/lib/v2/gamer/gnn_index.js +130 -0
 - package/lib/v2/gamer/hot.js +59 -0
 - package/lib/v2/gamer/maintainer.js +4 -0
 - package/lib/v2/gamer/radar.js +29 -0
 - package/lib/v2/gamer/router.js +4 -0
 - package/lib/v2/gamersecret/index.js +60 -0
 - package/lib/v2/gamersecret/maintainer.js +3 -0
 - package/lib/v2/gamersecret/radar.js +31 -0
 - package/lib/v2/gamersecret/router.js +3 -0
 - package/lib/v2/gaze/maintainer.js +3 -0
 - package/lib/v2/gaze/radar.js +13 -0
 - package/lib/v2/gaze/router.js +3 -0
 - package/lib/v2/gaze/templates/update.art +4 -0
 - package/lib/v2/gaze/update.js +27 -0
 - package/lib/v2/gcores/category.js +126 -0
 - package/lib/v2/gcores/maintainer.js +4 -0
 - package/lib/v2/gcores/radar.js +19 -0
 - package/lib/v2/gcores/router.js +4 -0
 - package/lib/v2/gcores/tag.js +126 -0
 - package/lib/{routes → v2}/github/branches.js +0 -0
 - package/lib/v2/github/comments.js +129 -0
 - package/lib/{routes → v2}/github/contributors.js +0 -0
 - package/lib/{routes → v2}/github/file.js +0 -0
 - package/lib/v2/github/follower.js +50 -0
 - package/lib/v2/github/issue.js +52 -0
 - package/lib/v2/github/maintainer.js +15 -0
 - package/lib/v2/github/pulls.js +47 -0
 - package/lib/v2/github/radar.js +79 -0
 - package/lib/{routes → v2}/github/repos.js +0 -0
 - package/lib/v2/github/router.js +16 -0
 - package/lib/{routes → v2}/github/search.js +0 -0
 - package/lib/v2/github/star.js +51 -0
 - package/lib/v2/github/starred_repos.js +63 -0
 - package/lib/v2/github/templates/comments-description.art +1 -0
 - package/lib/{routes → v2}/github/topic.js +0 -0
 - package/lib/v2/github/trending.js +43 -0
 - package/lib/v2/gitpod/blog.js +60 -0
 - package/lib/v2/gitpod/changelog.js +35 -0
 - package/lib/v2/gitpod/maintainer.js +4 -0
 - package/lib/v2/gitpod/radar.js +19 -0
 - package/lib/v2/gitpod/router.js +4 -0
 - package/lib/v2/gitpod/templates/description.art +2 -0
 - package/lib/v2/gitpod/utils.js +3 -0
 - package/lib/v2/gocn/maintainer.js +3 -0
 - package/lib/v2/gocn/radar.js +13 -0
 - package/lib/v2/gocn/router.js +3 -0
 - package/lib/v2/gocn/topics.js +28 -0
 - package/lib/{routes → v2}/google/album.js +0 -0
 - package/lib/{routes → v2}/google/citations.js +0 -0
 - package/lib/{routes → v2}/google/doodles.js +0 -0
 - package/lib/v2/google/fonts.js +43 -0
 - package/lib/v2/google/maintainer.js +9 -0
 - package/lib/{routes → v2}/google/news.js +0 -0
 - package/lib/v2/google/radar.js +64 -0
 - package/lib/v2/google/router.js +9 -0
 - package/lib/{routes → v2}/google/scholar.js +0 -0
 - package/lib/{routes → v2}/google/sites.js +0 -0
 - package/lib/v2/google/sitesRecentChanges.js +52 -0
 - package/lib/v2/google/templates/fonts.art +15 -0
 - package/lib/v2/gov/anhui/kjt.js +56 -0
 - package/lib/v2/gov/beijing/kw/index.js +44 -0
 - package/lib/v2/gov/guangdong/tqyb/sncsyjxh.js +37 -0
 - package/lib/v2/gov/guangdong/tqyb/templates/sncsyjxh.art +5 -0
 - package/lib/v2/gov/guangdong/tqyb/templates/tfxtq.art +1 -0
 - package/lib/v2/gov/guangdong/tqyb/tfxtq.js +30 -0
 - package/lib/v2/gov/huizhou/zwgk/index.js +58 -0
 - package/lib/v2/gov/maintainer.js +27 -0
 - package/lib/v2/gov/mee/ywdt.js +80 -0
 - package/lib/v2/gov/mfa/wjdt.js +67 -0
 - package/lib/v2/gov/miit/wjfb.js +61 -0
 - package/lib/{routes → v2}/gov/miit/wjgs.js +0 -0
 - package/lib/v2/gov/miit/yjzj.js +59 -0
 - package/lib/{routes → v2}/gov/miit/zcjd.js +0 -0
 - package/lib/{routes → v2}/gov/miit/zcwj.js +0 -0
 - package/lib/v2/gov/moe/moe.js +77 -0
 - package/lib/v2/gov/nrta/news.js +63 -0
 - package/lib/v2/gov/pbc/goutongjiaoliu.js +53 -0
 - package/lib/v2/gov/pbc/gzlw.js +27 -0
 - package/lib/v2/gov/pbc/tradeAnnouncement.js +53 -0
 - package/lib/v2/gov/pbc/utils.js +20 -0
 - package/lib/v2/gov/pbc/zcyj.js +29 -0
 - package/lib/v2/gov/radar.js +483 -0
 - package/lib/v2/gov/router.js +28 -0
 - package/lib/v2/gov/shanghai/rsj/ksxm.js +39 -0
 - package/lib/v2/gov/shanghai/rsj/templates/ksxm.art +7 -0
 - package/lib/v2/gov/shanghai/wsjkw/yqtb/index.js +33 -0
 - package/lib/v2/gov/shenzhen/hrss/szksy/index.js +41 -0
 - package/lib/v2/gov/shenzhen/zzb/index.js +40 -0
 - package/lib/v2/gov/sichuan/deyang/govpulicinfo.js +95 -0
 - package/lib/v2/gov/sichuan/deyang/templates/govPublicInfo.art +42 -0
 - package/lib/v2/guancha/headline.js +51 -0
 - package/lib/v2/guancha/index.js +159 -0
 - package/lib/v2/guancha/maintainer.js +7 -0
 - package/lib/v2/guancha/member.js +86 -0
 - package/lib/{routes → v2}/guancha/personalpage.js +0 -0
 - package/lib/v2/guancha/radar.js +49 -0
 - package/lib/v2/guancha/router.js +7 -0
 - package/lib/v2/guancha/topic.js +56 -0
 - package/lib/v2/guangdiu/cheaps.js +28 -0
 - package/lib/v2/guangdiu/index.js +44 -0
 - package/lib/v2/guangdiu/maintainer.js +5 -0
 - package/lib/v2/guangdiu/radar.js +25 -0
 - package/lib/v2/guangdiu/rank.js +38 -0
 - package/lib/v2/guangdiu/router.js +5 -0
 - package/lib/v2/guduodata/daily.js +63 -0
 - package/lib/v2/guduodata/maintainer.js +3 -0
 - package/lib/v2/guduodata/radar.js +13 -0
 - package/lib/v2/guduodata/router.js +3 -0
 - package/lib/v2/guduodata/templates/daily.art +26 -0
 - package/lib/v2/guggenheim/exhibitions.js +29 -0
 - package/lib/v2/guggenheim/maintainer.js +3 -0
 - package/lib/v2/guggenheim/radar.js +11 -0
 - package/lib/v2/guggenheim/router.js +3 -0
 - package/lib/v2/guokr/channel.js +47 -0
 - package/lib/v2/guokr/maintainer.js +4 -0
 - package/lib/v2/guokr/radar.js +19 -0
 - package/lib/v2/guokr/router.js +4 -0
 - package/lib/v2/guokr/scientific.js +30 -0
 - package/lib/v2/gzh360/_README +1 -0
 - package/lib/v2/gzh360/category.js +8 -0
 - package/lib/v2/gzh360/gzh.js +18 -0
 - package/lib/v2/gzh360/maintainer.js +4 -0
 - package/lib/v2/gzh360/radar.js +19 -0
 - package/lib/v2/gzh360/router.js +4 -0
 - package/lib/v2/gzh360/universal.js +53 -0
 - package/lib/v2/gzh360/utils.js +62 -0
 - package/lib/v2/hackernews/index.js +103 -0
 - package/lib/v2/hackernews/maintainer.js +3 -0
 - package/lib/v2/hackernews/radar.js +13 -0
 - package/lib/v2/hackernews/router.js +3 -0
 - package/lib/v2/hameln/chapter.js +59 -0
 - package/lib/v2/hameln/maintainer.js +3 -0
 - package/lib/v2/hameln/radar.js +13 -0
 - package/lib/v2/hameln/router.js +1 -0
 - package/lib/v2/hdu/cs/index.js +57 -0
 - package/lib/v2/hdu/maintainer.js +3 -0
 - package/lib/v2/hdu/radar.js +13 -0
 - package/lib/v2/hdu/router.js +4 -0
 - package/lib/v2/hellobtc/information.js +51 -0
 - package/lib/v2/hellobtc/kepu.js +64 -0
 - package/lib/v2/hellobtc/maintainer.js +6 -0
 - package/lib/v2/hellobtc/news.js +29 -0
 - package/lib/v2/hellobtc/radar.js +85 -0
 - package/lib/v2/hellobtc/router.js +6 -0
 - package/lib/v2/hellobtc/topic.js +43 -0
 - package/lib/v2/hellogithub/article.js +47 -0
 - package/lib/v2/hellogithub/maintainer.js +5 -0
 - package/lib/v2/hellogithub/month.js +42 -0
 - package/lib/v2/hellogithub/radar.js +25 -0
 - package/lib/v2/hellogithub/ranking.js +39 -0
 - package/lib/v2/hellogithub/router.js +5 -0
 - package/lib/v2/heu/job/list.js +2 -2
 - package/lib/v2/hex-rays/index.js +47 -0
 - package/lib/v2/hex-rays/maintainer.js +3 -0
 - package/lib/v2/hex-rays/radar.js +13 -0
 - package/lib/v2/hex-rays/router.js +3 -0
 - package/lib/v2/hizu/index.js +76 -0
 - package/lib/v2/hizu/maintainer.js +3 -0
 - package/lib/v2/hizu/radar.js +13 -0
 - package/lib/v2/hizu/router.js +3 -0
 - package/lib/v2/hkej/index.js +11 -11
 - package/lib/v2/hkepc/index.js +206 -0
 - package/lib/v2/hkepc/maintainer.js +3 -0
 - package/lib/v2/hkepc/radar.js +19 -0
 - package/lib/v2/hkepc/router.js +3 -0
 - package/lib/v2/hkepc/templates/description.art +1 -0
 - package/lib/v2/hkepc/templates/image.art +1 -0
 - package/lib/v2/hket/index.js +12 -4
 - package/lib/v2/hnrb/index.js +85 -0
 - package/lib/v2/hnrb/maintainer.js +3 -0
 - package/lib/v2/hnrb/radar.js +13 -0
 - package/lib/v2/hnrb/router.js +3 -0
 - package/lib/v2/hongkong/chp.js +103 -0
 - package/lib/v2/hongkong/dh.js +53 -0
 - package/lib/v2/hongkong/maintainer.js +4 -0
 - package/lib/v2/hongkong/radar.js +19 -0
 - package/lib/v2/hongkong/router.js +4 -0
 - package/lib/v2/houxu/index.js +85 -0
 - package/lib/v2/houxu/maintainer.js +4 -0
 - package/lib/v2/houxu/radar.js +19 -0
 - package/lib/v2/houxu/router.js +3 -0
 - package/lib/v2/houxu/templates/description.art +9 -0
 - package/lib/v2/huangz/index.js +29 -0
 - package/lib/v2/huangz/maintainer.js +3 -0
 - package/lib/v2/huangz/radar.js +13 -0
 - package/lib/v2/huangz/router.js +3 -0
 - package/lib/v2/huanqiu/index.js +65 -0
 - package/lib/v2/huanqiu/maintainer.js +3 -0
 - package/lib/v2/huanqiu/radar.js +13 -0
 - package/lib/v2/huanqiu/router.js +3 -0
 - package/lib/v2/hupu/all.js +73 -0
 - package/lib/v2/hupu/bbs.js +64 -0
 - package/lib/v2/hupu/index.js +72 -0
 - package/lib/v2/hupu/maintainer.js +7 -0
 - package/lib/v2/hupu/radar.js +35 -0
 - package/lib/v2/hupu/router.js +7 -0
 - package/lib/v2/hupu/templates/description.art +6 -0
 - package/lib/v2/hyqss/index.js +89 -0
 - package/lib/v2/hyqss/maintainer.js +4 -0
 - package/lib/v2/hyqss/radar.js +22 -0
 - package/lib/v2/hyqss/router.js +3 -0
 - package/lib/v2/ieee/latestdate.js +103 -0
 - package/lib/v2/ieee/latestvol.js +87 -0
 - package/lib/v2/ieee/maintainer.js +4 -0
 - package/lib/v2/ieee/radar.js +19 -0
 - package/lib/v2/ieee/router.js +4 -0
 - package/lib/v2/ieee/templates/description.art +11 -0
 - package/lib/v2/ielts/index.js +58 -0
 - package/lib/v2/ielts/maintainer.js +3 -0
 - package/lib/v2/ielts/radar.js +13 -0
 - package/lib/v2/ielts/router.js +3 -0
 - package/lib/v2/ifeng/feng.js +71 -0
 - package/lib/v2/ifeng/maintainer.js +3 -0
 - package/lib/v2/ifeng/radar.js +11 -0
 - package/lib/v2/ifeng/router.js +3 -0
 - package/lib/{routes → v2}/ifeng/utils.js +0 -0
 - package/lib/v2/informs/index.js +74 -0
 - package/lib/v2/informs/maintainer.js +3 -0
 - package/lib/v2/informs/radar.js +109 -0
 - package/lib/v2/informs/router.js +3 -0
 - package/lib/v2/informs/templates/content.art +3 -0
 - package/lib/v2/iresearch/maintainer.js +3 -0
 - package/lib/v2/iresearch/radar.js +13 -0
 - package/lib/v2/iresearch/report.js +60 -0
 - package/lib/v2/iresearch/router.js +3 -0
 - package/lib/v2/iresearch/templates/report.art +5 -0
 - package/lib/v2/ithome/index.js +85 -0
 - package/lib/v2/ithome/maintainer.js +3 -0
 - package/lib/v2/ithome/radar.js +97 -1
 - package/lib/{routes → v2}/ithome/ranking.js +0 -0
 - package/lib/v2/ithome/router.js +3 -0
 - package/lib/v2/ithome/tag.js +48 -0
 - package/lib/v2/ithome/zt.js +9 -1
 - package/lib/v2/iwara/index.js +42 -0
 - package/lib/v2/iwara/maintainer.js +3 -0
 - package/lib/v2/iwara/radar.js +19 -0
 - package/lib/v2/iwara/router.js +3 -0
 - package/lib/v2/ixigua/maintainer.js +3 -0
 - package/lib/v2/ixigua/radar.js +13 -0
 - package/lib/v2/ixigua/router.js +3 -0
 - package/lib/v2/ixigua/templates/userVideo.art +5 -0
 - package/lib/v2/ixigua/userVideo.js +40 -0
 - package/lib/v2/jandan/index.js +65 -0
 - package/lib/v2/jandan/maintainer.js +4 -0
 - package/lib/v2/jandan/radar.js +19 -0
 - package/lib/v2/jandan/router.js +4 -0
 - package/lib/v2/jandan/section.js +49 -0
 - package/lib/v2/jandan/templates/description.art +4 -0
 - package/lib/v2/jasa/latest.js +70 -0
 - package/lib/v2/jasa/maintainer.js +4 -0
 - package/lib/v2/jasa/radar.js +19 -0
 - package/lib/v2/jasa/router.js +4 -0
 - package/lib/v2/jasa/section.js +95 -0
 - package/lib/v2/jasa/templates/description.art +11 -0
 - package/lib/v2/javbus/index.js +153 -0
 - package/lib/v2/javbus/maintainer.js +18 -0
 - package/lib/v2/javbus/radar.js +113 -0
 - package/lib/v2/javbus/router.js +3 -0
 - package/lib/v2/javbus/templates/description.art +18 -0
 - package/lib/v2/javdb/actors.js +20 -0
 - package/lib/v2/javdb/index.js +32 -0
 - package/lib/v2/javdb/maintainer.js +10 -0
 - package/lib/v2/javdb/makers.js +21 -0
 - package/lib/v2/javdb/radar.js +49 -0
 - package/lib/v2/javdb/rankings.js +12 -0
 - package/lib/v2/javdb/router.js +10 -0
 - package/lib/v2/javdb/search.js +26 -0
 - package/lib/v2/javdb/series.js +21 -0
 - package/lib/v2/javdb/tags.js +12 -0
 - package/lib/v2/javdb/utils.js +73 -0
 - package/lib/v2/javlibrary/bestrated.js +9 -0
 - package/lib/v2/javlibrary/bestreviews.js +9 -0
 - package/lib/v2/javlibrary/genre.js +10 -0
 - package/lib/v2/javlibrary/maintainer.js +11 -0
 - package/lib/v2/javlibrary/mostwanted.js +9 -0
 - package/lib/v2/javlibrary/newentries.js +8 -0
 - package/lib/v2/javlibrary/newrelease.js +9 -0
 - package/lib/v2/javlibrary/radar.js +79 -0
 - package/lib/v2/javlibrary/router.js +19 -0
 - package/lib/v2/javlibrary/star.js +10 -0
 - package/lib/v2/javlibrary/templates/description.art +17 -0
 - package/lib/v2/javlibrary/update.js +8 -0
 - package/lib/v2/javlibrary/user.js +10 -0
 - package/lib/v2/javlibrary/utils.js +98 -0
 - package/lib/v2/jd/maintainer.js +3 -0
 - package/lib/v2/jd/price.js +41 -0
 - package/lib/v2/jd/radar.js +13 -0
 - package/lib/v2/jd/router.js +3 -0
 - package/lib/v2/jd/templates/description.art +3 -0
 - package/lib/v2/jewishmuseum/exhibitions.js +16 -0
 - package/lib/v2/jewishmuseum/maintainer.js +3 -0
 - package/lib/v2/jewishmuseum/radar.js +11 -0
 - package/lib/v2/jewishmuseum/router.js +3 -0
 - package/lib/v2/kakuyomu/episode.js +54 -0
 - package/lib/v2/kakuyomu/maintainer.js +3 -0
 - package/lib/v2/kakuyomu/radar.js +13 -0
 - package/lib/v2/kakuyomu/router.js +1 -0
 - package/lib/v2/kbs/maintainer.js +4 -0
 - package/lib/v2/kbs/news.js +67 -0
 - package/lib/v2/kbs/radar.js +19 -0
 - package/lib/v2/kbs/router.js +4 -0
 - package/lib/v2/kbs/today.js +56 -0
 - package/lib/v2/kemono/index.js +99 -0
 - package/lib/v2/kemono/maintainer.js +4 -0
 - package/lib/v2/kemono/radar.js +13 -0
 - package/lib/v2/kemono/router.js +3 -0
 - package/lib/v2/knowmedia/index.js +38 -0
 - package/lib/v2/knowmedia/maintainer.js +3 -0
 - package/lib/v2/knowmedia/radar.js +31 -0
 - package/lib/v2/knowmedia/router.js +3 -0
 - package/lib/v2/knowmedia/templates/desc.art +3 -0
 - package/lib/v2/kyodonews/index.js +123 -0
 - package/lib/v2/kyodonews/maintainer.js +3 -0
 - package/lib/v2/kyodonews/radar.js +33 -0
 - package/lib/v2/kyodonews/router.js +3 -0
 - package/lib/v2/kyodonews/templates/article.art +4 -0
 - package/lib/v2/lanqiao/author.js +61 -0
 - package/lib/v2/lanqiao/courses.js +62 -0
 - package/lib/v2/lanqiao/maintainer.js +5 -0
 - package/lib/v2/lanqiao/questions.js +52 -0
 - package/lib/v2/lanqiao/radar.js +25 -0
 - package/lib/v2/lanqiao/router.js +5 -0
 - package/lib/v2/lanqiao/templates/courseDesc.art +1 -0
 - package/lib/v2/lanqiao/utils.js +12 -0
 - package/lib/v2/latepost/index.js +62 -0
 - package/lib/v2/latepost/maintainer.js +3 -0
 - package/lib/v2/latepost/radar.js +13 -0
 - package/lib/v2/latepost/router.js +3 -0
 - package/lib/v2/lativ/index.js +42 -0
 - package/lib/v2/lativ/maintainer.js +3 -0
 - package/lib/v2/lativ/radar.js +13 -0
 - package/lib/v2/lativ/router.js +3 -0
 - package/lib/v2/lativ/templates/detail.art +9 -0
 - package/lib/v2/learnku/maintainer.js +3 -0
 - package/lib/v2/learnku/radar.js +13 -0
 - package/lib/v2/learnku/router.js +3 -0
 - package/lib/v2/learnku/templates/topic.art +14 -0
 - package/lib/v2/learnku/topic.js +72 -0
 - package/lib/v2/leiphone/index.js +25 -0
 - package/lib/v2/leiphone/maintainer.js +5 -0
 - package/lib/v2/leiphone/newsflash.js +19 -0
 - package/lib/v2/leiphone/radar.js +25 -0
 - package/lib/v2/leiphone/router.js +4 -0
 - package/lib/v2/leiphone/utils.js +41 -0
 - package/lib/v2/line/maintainer.js +3 -0
 - package/lib/v2/line/radar.js +13 -0
 - package/lib/v2/line/router.js +3 -0
 - package/lib/v2/line/today.js +80 -0
 - package/lib/v2/liulinblog/itnews.js +23 -0
 - package/lib/v2/liulinblog/kuaixun.js +17 -0
 - package/lib/v2/liulinblog/maintainer.js +4 -0
 - package/lib/v2/liulinblog/radar.js +33 -0
 - package/lib/v2/liulinblog/router.js +4 -0
 - package/lib/v2/liulinblog/utils.js +39 -0
 - package/lib/v2/lkong/forum.js +54 -0
 - package/lib/v2/lkong/maintainer.js +4 -0
 - package/lib/v2/lkong/query.js +82 -0
 - package/lib/v2/lkong/radar.js +19 -0
 - package/lib/v2/lkong/router.js +4 -0
 - package/lib/v2/lkong/templates/content.art +18 -0
 - package/lib/v2/lkong/templates/quote.art +23 -0
 - package/lib/v2/lkong/thread.js +57 -0
 - package/lib/v2/lofter/maintainer.js +4 -0
 - package/lib/v2/lofter/radar.js +17 -0
 - package/lib/v2/lofter/router.js +4 -0
 - package/lib/v2/lofter/tag.js +59 -0
 - package/lib/v2/lofter/user.js +52 -0
 - package/lib/v2/logonews/index.js +76 -0
 - package/lib/v2/logonews/maintainer.js +8 -0
 - package/lib/v2/logonews/radar.js +43 -0
 - package/lib/v2/logonews/router.js +5 -0
 - package/lib/v2/logonews/templates/description.art +4 -0
 - package/lib/v2/lvv2/maintainer.js +4 -0
 - package/lib/v2/lvv2/news.js +75 -0
 - package/lib/v2/lvv2/radar.js +79 -0
 - package/lib/v2/lvv2/router.js +4 -0
 - package/lib/v2/lvv2/templates/outlink.art +1 -0
 - package/lib/v2/lvv2/top.js +77 -0
 - package/lib/v2/mcachicago/exhibitions.js +17 -0
 - package/lib/v2/mcachicago/maintainer.js +3 -0
 - package/lib/v2/mcachicago/radar.js +11 -0
 - package/lib/v2/mcachicago/router.js +3 -0
 - package/lib/v2/medsci/index.js +67 -0
 - package/lib/v2/medsci/maintainer.js +3 -0
 - package/lib/v2/medsci/radar.js +13 -0
 - package/lib/v2/medsci/router.js +3 -0
 - package/lib/v2/metmuseum/exhibitions.js +31 -0
 - package/lib/v2/metmuseum/maintainer.js +3 -0
 - package/lib/v2/metmuseum/radar.js +11 -0
 - package/lib/v2/metmuseum/router.js +3 -0
 - package/lib/v2/mihoyo/bbs.js +62 -0
 - package/lib/v2/mihoyo/maintainer.js +3 -0
 - package/lib/v2/mihoyo/radar.js +31 -0
 - package/lib/v2/mihoyo/router.js +3 -0
 - package/lib/v2/mihoyo/templates/description.art +6 -0
 - package/lib/v2/miris/blog.js +19 -0
 - package/lib/v2/miris/maintainer.js +3 -0
 - package/lib/v2/miris/radar.js +11 -0
 - package/lib/v2/miris/router.js +3 -0
 - package/lib/v2/mohw/clarification.js +50 -0
 - package/lib/v2/mohw/maintainer.js +3 -0
 - package/lib/v2/mohw/radar.js +13 -0
 - package/lib/v2/mohw/router.js +3 -0
 - package/lib/v2/mpaypass/main.js +69 -0
 - package/lib/v2/mpaypass/maintainer.js +4 -0
 - package/lib/v2/mpaypass/news.js +39 -0
 - package/lib/v2/mpaypass/radar.js +19 -0
 - package/lib/v2/mpaypass/router.js +4 -0
 - package/lib/v2/mtime/maintainer.js +3 -0
 - package/lib/v2/mtime/news.js +48 -0
 - package/lib/v2/mtime/radar.js +13 -0
 - package/lib/v2/mtime/router.js +3 -0
 - package/lib/v2/mvm/index.js +10 -7
 - package/lib/v2/natgeo/dailyphoto.js +32 -0
 - package/lib/v2/natgeo/dailyselection.js +41 -0
 - package/lib/v2/natgeo/maintainer.js +5 -0
 - package/lib/v2/natgeo/natgeo.js +56 -0
 - package/lib/v2/natgeo/radar.js +24 -0
 - package/lib/v2/natgeo/router.js +5 -0
 - package/lib/v2/natgeo/templates/dailyPhoto.art +5 -0
 - package/lib/v2/nbd/article.js +50 -0
 - package/lib/v2/nbd/index.js +52 -0
 - package/lib/v2/nbd/maintainer.js +4 -0
 - package/lib/v2/nbd/radar.js +19 -0
 - package/lib/v2/nbd/router.js +4 -0
 - package/lib/{routes → v2}/neea/index.js +0 -0
 - package/lib/v2/neea/jlpt.js +52 -0
 - package/lib/v2/neea/maintainer.js +4 -0
 - package/lib/v2/neea/radar.js +13 -0
 - package/lib/v2/neea/router.js +4 -0
 - package/lib/v2/netease/maintainer.js +1 -0
 - package/lib/v2/netease/radar.js +10 -2
 - package/lib/v2/netease/router.js +1 -0
 - package/lib/v2/netease/today.js +55 -0
 - package/lib/v2/newmuseum/exhibitions.js +27 -0
 - package/lib/v2/newmuseum/maintainer.js +3 -0
 - package/lib/v2/newmuseum/radar.js +11 -0
 - package/lib/v2/newmuseum/router.js +3 -0
 - package/lib/v2/news/maintainer.js +3 -0
 - package/lib/v2/news/radar.js +13 -0
 - package/lib/v2/news/router.js +3 -0
 - package/lib/v2/news/whxw.js +67 -0
 - package/lib/v2/nifd/maintainer.js +3 -0
 - package/lib/v2/nifd/radar.js +117 -0
 - package/lib/v2/nifd/research.js +52 -0
 - package/lib/v2/nifd/router.js +3 -0
 - package/lib/v2/nikkei-asia/index.js +40 -0
 - package/lib/v2/nikkei-asia/maintainer.js +3 -0
 - package/lib/v2/nikkei-asia/radar.js +13 -0
 - package/lib/v2/nikkei-asia/router.js +3 -0
 - package/lib/v2/nikkei-cn/index.js +82 -0
 - package/lib/v2/nikkei-cn/maintainer.js +3 -0
 - package/lib/v2/nikkei-cn/radar.js +21 -0
 - package/lib/v2/nikkei-cn/router.js +3 -0
 - package/lib/v2/nippon/index.js +31 -0
 - package/lib/v2/nippon/maintainer.js +3 -0
 - package/lib/v2/nippon/radar.js +13 -0
 - package/lib/v2/nippon/router.js +3 -0
 - package/lib/v2/njnu/ceai/ceai.js +44 -0
 - package/lib/v2/njnu/ceai/utils.js +55 -0
 - package/lib/v2/njnu/jwc/jwc.js +43 -0
 - package/lib/v2/njnu/jwc/utils.js +59 -0
 - package/lib/v2/njnu/maintainer.js +4 -0
 - package/lib/v2/njnu/radar.js +21 -0
 - package/lib/v2/njnu/router.js +4 -0
 - package/lib/v2/nju/gra.js +31 -0
 - package/lib/v2/nju/jw.js +45 -0
 - package/lib/v2/nju/maintainer.js +8 -0
 - package/lib/v2/nju/radar.js +53 -0
 - package/lib/v2/nju/rczp.js +38 -0
 - package/lib/v2/nju/router.js +8 -0
 - package/lib/v2/nju/scit.js +36 -0
 - package/lib/v2/nju/zbb.js +81 -0
 - package/lib/v2/nju/zcc.js +48 -0
 - package/lib/v2/njupt/jwc.js +90 -0
 - package/lib/v2/njupt/maintainer.js +3 -0
 - package/lib/v2/njupt/radar.js +20 -0
 - package/lib/v2/njupt/router.js +3 -0
 - package/lib/v2/nltimes/maintainer.js +3 -0
 - package/lib/v2/nltimes/news.js +89 -0
 - package/lib/v2/nltimes/radar.js +19 -0
 - package/lib/v2/nltimes/router.js +3 -0
 - package/lib/v2/nodejs/blog.js +60 -0
 - package/lib/v2/nodejs/maintainer.js +3 -0
 - package/lib/v2/nodejs/radar.js +13 -0
 - package/lib/v2/nodejs/router.js +3 -0
 - package/lib/v2/nogizaka46/blog.js +29 -0
 - package/lib/v2/nogizaka46/maintainer.js +4 -0
 - package/lib/v2/nogizaka46/news.js +33 -0
 - package/lib/v2/nogizaka46/radar.js +21 -0
 - package/lib/v2/nogizaka46/router.js +4 -0
 - package/lib/v2/now/maintainer.js +3 -0
 - package/lib/v2/now/news.js +66 -0
 - package/lib/v2/now/radar.js +13 -0
 - package/lib/v2/now/router.js +3 -0
 - package/lib/v2/nowcoder/discuss.js +57 -0
 - package/lib/v2/nowcoder/experience.js +48 -0
 - package/lib/{routes → v2}/nowcoder/jobcenter.js +0 -0
 - package/lib/v2/nowcoder/maintainer.js +7 -0
 - package/lib/v2/nowcoder/radar.js +40 -0
 - package/lib/v2/nowcoder/recommend.js +20 -0
 - package/lib/v2/nowcoder/router.js +7 -0
 - package/lib/v2/nowcoder/schedule.js +32 -0
 - package/lib/v2/npm/maintainer.js +3 -0
 - package/lib/v2/npm/package.js +45 -0
 - package/lib/v2/npm/radar.js +13 -0
 - package/lib/v2/npm/router.js +3 -0
 - package/lib/v2/npm/templates/package.art +10 -0
 - package/lib/v2/nsfc/maintainer.js +3 -0
 - package/lib/{routes → v2}/nsfc/news.js +0 -0
 - package/lib/v2/nsfc/radar.js +31 -0
 - package/lib/v2/nsfc/router.js +3 -0
 - package/lib/v2/ntdtv/channel.js +44 -0
 - package/lib/v2/ntdtv/maintainer.js +3 -0
 - package/lib/v2/ntdtv/radar.js +13 -0
 - package/lib/v2/ntdtv/router.js +3 -0
 - package/lib/v2/nuaa/cs/index.js +87 -0
 - package/lib/v2/nuaa/jwc/jwc.js +82 -0
 - package/lib/v2/nuaa/maintainer.js +5 -0
 - package/lib/v2/nuaa/radar.js +23 -0
 - package/lib/v2/nuaa/router.js +5 -0
 - package/lib/v2/nuaa/utils/pypasswaf.js +24 -0
 - package/lib/v2/nuaa/yjsy/yjsy.js +55 -0
 - package/lib/v2/nytimes/author.js +43 -0
 - package/lib/v2/nytimes/book.js +71 -0
 - package/lib/{routes → v2}/nytimes/daily_briefing_chinese.js +0 -0
 - package/lib/v2/nytimes/index.js +110 -0
 - package/lib/v2/nytimes/maintainer.js +6 -0
 - package/lib/v2/nytimes/radar.js +31 -0
 - package/lib/v2/nytimes/router.js +6 -0
 - package/lib/{routes → v2}/nytimes/utils.js +0 -0
 - package/lib/v2/odaily/activity.js +48 -0
 - package/lib/v2/odaily/maintainer.js +6 -0
 - package/lib/v2/odaily/newsflash.js +26 -0
 - package/lib/v2/odaily/post.js +68 -0
 - package/lib/v2/odaily/radar.js +60 -0
 - package/lib/v2/odaily/router.js +6 -0
 - package/lib/v2/odaily/user.js +54 -0
 - package/lib/v2/odaily/utils.js +3 -0
 - package/lib/v2/oilchem/index.js +67 -0
 - package/lib/v2/oilchem/maintainer.js +3 -0
 - package/lib/v2/oilchem/radar.js +11 -0
 - package/lib/v2/oilchem/router.js +3 -0
 - package/lib/v2/oilchem/routes.js +671 -0
 - package/lib/v2/oncc/index.js +83 -0
 - package/lib/v2/oncc/maintainer.js +3 -0
 - package/lib/v2/oncc/radar.js +37 -0
 - package/lib/v2/oncc/router.js +3 -0
 - package/lib/v2/oncc/templates/article.art +2 -0
 - package/lib/v2/orcid/index.js +54 -0
 - package/lib/v2/orcid/maintainer.js +3 -0
 - package/lib/v2/orcid/radar.js +13 -0
 - package/lib/v2/orcid/router.js +3 -0
 - package/lib/v2/orcid/templates/description.art +3 -0
 - package/lib/v2/oup/index.js +53 -0
 - package/lib/v2/oup/maintainer.js +3 -0
 - package/lib/v2/oup/radar.js +13 -0
 - package/lib/v2/oup/router.js +3 -0
 - package/lib/v2/oup/templates/article.art +6 -0
 - package/lib/v2/panewslab/column.js +60 -0
 - package/lib/v2/panewslab/index.js +56 -0
 - package/lib/v2/panewslab/maintainer.js +6 -0
 - package/lib/v2/panewslab/newsflash.js +35 -0
 - package/lib/v2/panewslab/radar.js +31 -0
 - package/lib/v2/panewslab/router.js +6 -0
 - package/lib/v2/panewslab/topic.js +55 -0
 - package/lib/v2/people/index.js +83 -0
 - package/lib/v2/people/maintainer.js +3 -0
 - package/lib/v2/people/radar.js +9 -1
 - package/lib/v2/people/router.js +3 -0
 - package/lib/{routes → v2}/people/xjpjh.js +0 -0
 - package/lib/v2/picuki/maintainer.js +3 -0
 - package/lib/v2/picuki/profile.js +176 -0
 - package/lib/v2/picuki/radar.js +13 -0
 - package/lib/v2/picuki/router.js +3 -0
 - package/lib/v2/picuki/templates/post.art +7 -0
 - package/lib/v2/pku/bbs/hot.js +56 -0
 - package/lib/v2/pku/cls/lecture.js +25 -0
 - package/lib/v2/pku/eecs.js +64 -0
 - package/lib/v2/pku/maintainer.js +6 -0
 - package/lib/v2/pku/pkuyjs.js +29 -0
 - package/lib/v2/pku/radar.js +109 -0
 - package/lib/v2/pku/rccp/mzyt.js +23 -0
 - package/lib/v2/pku/router.js +6 -0
 - package/lib/v2/pku/scc/recruit.js +58 -0
 - package/lib/v2/pku/utils.js +15 -0
 - package/lib/v2/polkaworld/home.js +24 -0
 - package/lib/v2/polkaworld/maintainer.js +3 -0
 - package/lib/v2/polkaworld/radar.js +13 -0
 - package/lib/v2/polkaworld/router.js +3 -0
 - package/lib/v2/producthunt/maintainer.js +3 -0
 - package/lib/v2/producthunt/radar.js +13 -0
 - package/lib/v2/producthunt/router.js +3 -0
 - package/lib/v2/producthunt/templates/descImg.art +5 -0
 - package/lib/v2/producthunt/today.js +41 -0
 - package/lib/v2/pubmed/maintainer.js +3 -0
 - package/lib/v2/pubmed/radar.js +13 -0
 - package/lib/v2/pubmed/router.js +3 -0
 - package/lib/v2/pubmed/templates/description.art +7 -0
 - package/lib/v2/pubmed/trending.js +58 -0
 - package/lib/v2/qbittorrent/maintainer.js +3 -0
 - package/lib/v2/qbittorrent/news.js +59 -0
 - package/lib/v2/qbittorrent/radar.js +13 -0
 - package/lib/v2/qbittorrent/router.js +3 -0
 - package/lib/v2/qidiantu/index.js +87 -0
 - package/lib/v2/qidiantu/maintainer.js +4 -0
 - package/lib/v2/qidiantu/radar.js +19 -0
 - package/lib/v2/qidiantu/router.js +3 -0
 - package/lib/v2/qq/ac/comic.js +43 -0
 - package/lib/v2/qq/ac/rank.js +20 -0
 - package/lib/v2/qq/ac/templates/description.art +9 -0
 - package/lib/v2/qq/ac/utils.js +71 -0
 - package/lib/v2/qq/maintainer.js +2 -0
 - package/lib/v2/qq/radar.js +14 -0
 - package/lib/v2/qq/router.js +2 -0
 - package/lib/v2/qq88/index.js +60 -0
 - package/lib/v2/qq88/maintainer.js +3 -0
 - package/lib/v2/qq88/radar.js +13 -0
 - package/lib/v2/qq88/router.js +3 -0
 - package/lib/v2/quicker/maintainer.js +7 -0
 - package/lib/v2/quicker/qa.js +65 -0
 - package/lib/v2/quicker/radar.js +31 -0
 - package/lib/v2/quicker/router.js +7 -0
 - package/lib/v2/quicker/share.js +61 -0
 - package/lib/v2/quicker/user.js +62 -0
 - package/lib/v2/quicker/versions.js +36 -0
 - package/lib/v2/qweather/3days.js +46 -0
 - package/lib/v2/qweather/maintainer.js +4 -0
 - package/lib/v2/qweather/now.js +46 -0
 - package/lib/v2/qweather/router.js +4 -0
 - package/lib/v2/qweather/util/3days.art +20 -0
 - package/lib/v2/qweather/util/now.art +16 -0
 - package/lib/v2/radio-canada/latest.js +43 -0
 - package/lib/v2/radio-canada/maintainer.js +3 -0
 - package/lib/v2/radio-canada/radar.js +13 -0
 - package/lib/v2/radio-canada/router.js +3 -0
 - package/lib/v2/readhub/index.js +106 -0
 - package/lib/v2/readhub/maintainer.js +3 -0
 - package/lib/v2/readhub/radar.js +13 -0
 - package/lib/v2/readhub/router.js +6 -0
 - package/lib/v2/rfa/index.js +51 -0
 - package/lib/v2/rfa/maintainer.js +3 -0
 - package/lib/v2/rfa/radar.js +13 -0
 - package/lib/v2/rfa/router.js +3 -0
 - package/lib/v2/rsshub/maintainer.js +4 -0
 - package/lib/v2/rsshub/radar.js +19 -0
 - package/lib/v2/rsshub/router.js +6 -0
 - package/lib/v2/rsshub/routes.js +69 -0
 - package/lib/v2/rsshub/sponsors.js +47 -0
 - package/lib/v2/ruc/hr.js +22 -16
 - package/lib/v2/sciencenet/blog.js +61 -0
 - package/lib/v2/sciencenet/maintainer.js +4 -0
 - package/lib/v2/sciencenet/radar.js +19 -0
 - package/lib/v2/sciencenet/router.js +4 -0
 - package/lib/v2/sciencenet/user.js +65 -0
 - package/lib/v2/sdu/cmse.js +59 -0
 - package/lib/v2/sdu/cs.js +57 -0
 - package/lib/v2/sdu/data.js +110 -0
 - package/lib/v2/sdu/epe.js +55 -0
 - package/lib/v2/sdu/extractor/index.js +15 -0
 - package/lib/v2/sdu/extractor/sdrj.js +21 -0
 - package/lib/v2/sdu/extractor/view.js +21 -0
 - package/lib/v2/sdu/extractor/wh/jwc.js +24 -0
 - package/lib/v2/sdu/extractor/wh/news.js +21 -0
 - package/lib/v2/sdu/maintainer.js +9 -0
 - package/lib/v2/sdu/mech.js +60 -0
 - package/lib/v2/sdu/radar.js +159 -0
 - package/lib/v2/sdu/router.js +9 -0
 - package/lib/v2/sdu/sc.js +61 -0
 - package/lib/v2/sdu/wh/jwc.js +42 -0
 - package/lib/v2/sdu/wh/news.js +38 -0
 - package/lib/v2/segmentfault/channel.js +46 -0
 - package/lib/v2/segmentfault/maintainer.js +4 -0
 - package/lib/v2/segmentfault/radar.js +19 -0
 - package/lib/v2/segmentfault/router.js +4 -0
 - package/lib/v2/segmentfault/user.js +43 -0
 - package/lib/v2/shmeea/index.js +44 -0
 - package/lib/v2/shmeea/maintainer.js +4 -0
 - package/lib/v2/shmeea/radar.js +19 -0
 - package/lib/v2/shmeea/router.js +4 -0
 - package/lib/v2/shmeea/self-study.js +61 -0
 - package/lib/v2/shopback/maintainer.js +3 -0
 - package/lib/v2/shopback/radar.js +13 -0
 - package/lib/v2/shopback/router.js +3 -0
 - package/lib/v2/shopback/store.js +37 -0
 - package/lib/v2/sicau/dky.js +53 -0
 - package/lib/v2/sicau/maintainer.js +2 -0
 - package/lib/v2/sicau/radar.js +14 -0
 - package/lib/v2/sicau/router.js +2 -0
 - package/lib/v2/sicau/yan.js +53 -0
 - package/lib/v2/sohu/maintainer.js +3 -0
 - package/lib/v2/sohu/mp.js +56 -0
 - package/lib/v2/sohu/radar.js +13 -0
 - package/lib/v2/sohu/router.js +3 -0
 - package/lib/v2/solidot/_article.js +4 -1
 - package/lib/v2/soundofhope/channel.js +42 -0
 - package/lib/v2/soundofhope/maintainer.js +3 -0
 - package/lib/v2/soundofhope/radar.js +13 -0
 - package/lib/v2/soundofhope/router.js +3 -0
 - package/lib/v2/spotify/artist.js +41 -0
 - package/lib/v2/spotify/maintainer.js +7 -0
 - package/lib/v2/spotify/playlist.js +31 -0
 - package/lib/v2/spotify/radar.js +37 -0
 - package/lib/v2/spotify/router.js +7 -0
 - package/lib/v2/spotify/saved.js +30 -0
 - package/lib/v2/spotify/top.js +24 -0
 - package/lib/v2/spotify/utils.js +62 -0
 - package/lib/v2/sputniknews/index.js +93 -0
 - package/lib/v2/sputniknews/maintainer.js +3 -0
 - package/lib/v2/sputniknews/radar.js +13 -0
 - package/lib/v2/sputniknews/router.js +3 -0
 - package/lib/v2/ssm/maintainer.js +3 -0
 - package/lib/v2/ssm/news.js +38 -0
 - package/lib/v2/ssm/radar.js +13 -0
 - package/lib/v2/ssm/router.js +3 -0
 - package/lib/v2/ssm/templates/news.art +1 -0
 - package/lib/v2/stcn/index.js +71 -0
 - package/lib/v2/stcn/maintainer.js +6 -0
 - package/lib/v2/stcn/radar.js +31 -0
 - package/lib/v2/stcn/router.js +3 -0
 - package/lib/v2/storm/index.js +57 -0
 - package/lib/v2/storm/maintainer.js +3 -0
 - package/lib/v2/storm/radar.js +13 -0
 - package/lib/v2/storm/router.js +3 -0
 - package/lib/v2/stratechery/index.js +20 -0
 - package/lib/v2/stratechery/maintainer.js +3 -0
 - package/lib/v2/stratechery/radar.js +11 -0
 - package/lib/v2/stratechery/router.js +3 -0
 - package/lib/v2/swissinfo/index.js +73 -0
 - package/lib/v2/swissinfo/maintainer.js +3 -0
 - package/lib/v2/swissinfo/radar.js +13 -0
 - package/lib/v2/swissinfo/router.js +3 -0
 - package/lib/v2/swpu/bgw.js +58 -0
 - package/lib/v2/swpu/dean.js +59 -0
 - package/lib/v2/swpu/dxy.js +61 -0
 - package/lib/v2/swpu/maintainer.js +6 -0
 - package/lib/v2/swpu/radar.js +31 -0
 - package/lib/v2/swpu/router.js +6 -0
 - package/lib/v2/swpu/scs.js +58 -0
 - package/lib/v2/swpu/utils.js +22 -0
 - package/lib/v2/syosetu/chapter.js +61 -0
 - package/lib/v2/syosetu/maintainer.js +3 -0
 - package/lib/v2/syosetu/radar.js +21 -0
 - package/lib/v2/syosetu/router.js +1 -0
 - package/lib/v2/sysu/cse.js +103 -0
 - package/lib/v2/sysu/maintainer.js +3 -0
 - package/lib/v2/sysu/radar.js +13 -0
 - package/lib/v2/sysu/router.js +3 -0
 - package/lib/v2/taobao/maintainer.js +3 -0
 - package/lib/v2/taobao/radar.js +117 -0
 - package/lib/v2/taobao/router.js +3 -0
 - package/lib/v2/taobao/templates/zhongchou.art +4 -0
 - package/lib/v2/taobao/zhongchou.js +46 -0
 - package/lib/v2/taptap/changelog.js +40 -0
 - package/lib/v2/taptap/maintainer.js +5 -0
 - package/lib/v2/taptap/radar.js +25 -0
 - package/lib/v2/taptap/review.js +69 -0
 - package/lib/v2/taptap/router.js +5 -0
 - package/lib/v2/taptap/templates/videoPost.art +2 -0
 - package/lib/v2/taptap/topic.js +79 -0
 - package/lib/v2/taptap/utils.js +48 -0
 - package/lib/v2/telegram/blog.js +35 -0
 - package/lib/v2/telegram/channel.js +569 -0
 - package/lib/v2/telegram/maintainer.js +5 -0
 - package/lib/v2/telegram/radar.js +35 -0
 - package/lib/v2/telegram/router.js +5 -0
 - package/lib/v2/telegram/stickerpack.js +26 -0
 - package/lib/v2/telegram/templates/video.art +7 -0
 - package/lib/v2/tencent/maintainer.js +3 -0
 - package/lib/v2/tencent/qq/sdk/changelog.js +56 -0
 - package/lib/v2/tencent/radar.js +56 -0
 - package/lib/v2/tencent/router.js +3 -0
 - package/lib/v2/test/index.js +2 -1
 - package/lib/v2/thecover/channel.js +66 -0
 - package/lib/v2/thecover/maintainer.js +3 -0
 - package/lib/v2/thecover/radar.js +13 -0
 - package/lib/v2/thecover/router.js +3 -0
 - package/lib/{routes → v2}/thepaper/839studio/category.js +0 -0
 - package/lib/{routes → v2}/thepaper/839studio/studio.js +0 -0
 - package/lib/{routes → v2}/thepaper/channel.js +0 -0
 - package/lib/v2/thepaper/factpaper.js +61 -0
 - package/lib/{routes → v2}/thepaper/featured.js +0 -0
 - package/lib/{routes → v2}/thepaper/list.js +0 -0
 - package/lib/v2/thepaper/maintainer.js +8 -0
 - package/lib/v2/thepaper/radar.js +42 -0
 - package/lib/v2/thepaper/router.js +8 -0
 - package/lib/v2/thepaper/templates/factpaper.art +12 -0
 - package/lib/v2/thepaper/utils.js +55 -0
 - package/lib/v2/tisi/index.js +38 -0
 - package/lib/v2/tisi/maintainer.js +3 -0
 - package/lib/v2/tisi/radar.js +17 -0
 - package/lib/v2/tisi/router.js +3 -0
 - package/lib/v2/tokeninsight/blog.js +52 -0
 - package/lib/v2/tokeninsight/bulletin.js +44 -0
 - package/lib/v2/tokeninsight/maintainer.js +5 -0
 - package/lib/v2/tokeninsight/radar.js +25 -0
 - package/lib/v2/tokeninsight/report.js +52 -0
 - package/lib/v2/tokeninsight/router.js +5 -0
 - package/lib/v2/topys/index.js +66 -0
 - package/lib/v2/topys/maintainer.js +3 -0
 - package/lib/v2/topys/radar.js +13 -0
 - package/lib/v2/topys/router.js +3 -0
 - package/lib/v2/twreporter/category.js +31 -0
 - package/lib/v2/twreporter/fetch_article.js +67 -0
 - package/lib/v2/twreporter/maintainer.js +5 -0
 - package/lib/v2/twreporter/newest.js +29 -0
 - package/lib/v2/twreporter/photography.js +46 -0
 - package/lib/v2/twreporter/radar.js +25 -0
 - package/lib/v2/twreporter/router.js +5 -0
 - package/lib/v2/txrjy/fornumtopic.js +72 -0
 - package/lib/v2/txrjy/maintainer.js +3 -0
 - package/lib/v2/txrjy/radar.js +17 -0
 - package/lib/v2/txrjy/router.js +3 -0
 - package/lib/v2/txrjy/templates/fornumtopic.art +6 -0
 - package/lib/v2/ucas/index.js +59 -0
 - package/lib/v2/ucas/maintainer.js +3 -0
 - package/lib/v2/ucas/rader.js +47 -0
 - package/lib/v2/ucas/router.js +3 -0
 - package/lib/v2/uibe/hr.js +19 -15
 - package/lib/v2/ulapia/index.js +47 -0
 - package/lib/v2/ulapia/maintainer.js +3 -0
 - package/lib/v2/ulapia/radar.js +55 -0
 - package/lib/v2/ulapia/research.js +38 -0
 - package/lib/v2/ulapia/router.js +4 -0
 - package/lib/v2/ustb/maintainer.js +24 -0
 - package/lib/v2/ustb/radar.js +13 -0
 - package/lib/v2/ustb/router.js +3 -0
 - package/lib/v2/ustb/yjsy/news.js +464 -0
 - package/lib/v2/verfghbw/maintainer.js +3 -0
 - package/lib/v2/verfghbw/press.js +60 -0
 - package/lib/v2/verfghbw/radar.js +13 -0
 - package/lib/v2/verfghbw/router.js +3 -0
 - package/lib/v2/vimeo/category.js +64 -0
 - package/lib/v2/vimeo/channel.js +72 -0
 - package/lib/v2/vimeo/radar.js +33 -0
 - package/lib/v2/vimeo/router.js +5 -0
 - package/lib/v2/vimeo/templates/description.art +4 -0
 - package/lib/v2/vimeo/usr-videos.js +76 -0
 - package/lib/v2/wallhaven/index.js +55 -0
 - package/lib/v2/wallhaven/maintainer.js +4 -0
 - package/lib/v2/wallhaven/radar.js +53 -0
 - package/lib/v2/wallhaven/router.js +4 -0
 - package/lib/v2/wallstreetcn/live.js +52 -0
 - package/lib/v2/wallstreetcn/maintainer.js +5 -0
 - package/lib/v2/wallstreetcn/news.js +61 -0
 - package/lib/v2/wallstreetcn/radar.js +19 -0
 - package/lib/v2/wallstreetcn/router.js +5 -0
 - package/lib/v2/wechat/_README +1 -0
 - package/lib/v2/wechat/announce.js +33 -0
 - package/lib/v2/wechat/ce.js +69 -0
 - package/lib/v2/wechat/data258.js +137 -0
 - package/lib/v2/wechat/ershcimi.js +35 -0
 - package/lib/v2/wechat/feeddd.js +4 -39
 - package/lib/v2/wechat/feeds.js +23 -0
 - package/lib/v2/wechat/maintainer.js +12 -1
 - package/lib/v2/wechat/mp.js +59 -0
 - package/lib/v2/wechat/msgalbum.js +41 -0
 - package/lib/v2/wechat/radar.js +76 -1
 - package/lib/v2/wechat/router.js +11 -0
 - package/lib/v2/wechat/tgchannel.js +146 -0
 - package/lib/{routes/tencent → v2}/wechat/uread.js +0 -0
 - package/lib/{routes/tencent → v2}/wechat/wemp.js +0 -0
 - package/lib/{routes/tencent → v2}/wechat/wxnmh.js +0 -0
 - package/lib/{routes → v2}/wenku8/chapter.js +0 -0
 - package/lib/v2/wenku8/index.js +52 -0
 - package/lib/v2/wenku8/maintainer.js +5 -0
 - package/lib/v2/wenku8/radar.js +85 -0
 - package/lib/v2/wenku8/router.js +5 -0
 - package/lib/{routes → v2}/wenku8/volume.js +0 -0
 - package/lib/v2/wfu/jwc.js +54 -0
 - package/lib/v2/wfu/maintainer.js +4 -0
 - package/lib/v2/wfu/news.js +96 -0
 - package/lib/v2/wfu/radar.js +21 -0
 - package/lib/v2/wfu/router.js +4 -0
 - package/lib/v2/whitehouse/briefing-room.js +50 -0
 - package/lib/v2/whitehouse/maintainer.js +4 -0
 - package/lib/v2/whitehouse/ostp.js +50 -0
 - package/lib/v2/whitehouse/radar.js +19 -0
 - package/lib/v2/whitehouse/router.js +4 -0
 - package/lib/v2/who/maintainer.js +5 -0
 - package/lib/v2/who/news-room.js +76 -0
 - package/lib/v2/who/news.js +43 -0
 - package/lib/v2/who/radar.js +25 -0
 - package/lib/v2/who/router.js +5 -0
 - package/lib/{routes → v2}/who/speeches.js +0 -0
 - package/lib/v2/whoscall/index.js +55 -0
 - package/lib/v2/whoscall/maintainer.js +5 -0
 - package/lib/v2/whoscall/radar.js +25 -0
 - package/lib/v2/whoscall/router.js +3 -0
 - package/lib/v2/wikinews/index.js +43 -0
 - package/lib/v2/wikinews/maintainer.js +3 -0
 - package/lib/v2/wikinews/radar.js +13 -0
 - package/lib/v2/wikinews/router.js +4 -0
 - package/lib/v2/wp-china/maintainer.js +3 -0
 - package/lib/v2/wp-china/news.js +57 -0
 - package/lib/v2/wp-china/radar.js +13 -0
 - package/lib/v2/wp-china/router.js +3 -0
 - package/lib/v2/wsj/index.js +141 -0
 - package/lib/v2/wsj/maintainer.js +3 -0
 - package/lib/v2/wsj/radar.js +21 -0
 - package/lib/v2/wsj/router.js +3 -0
 - package/lib/v2/wsyu/maintainer.js +3 -0
 - package/lib/{routes/universities → v2}/wsyu/news.js +0 -0
 - package/lib/v2/wsyu/radar.js +25 -0
 - package/lib/v2/wsyu/router.js +3 -0
 - package/lib/v2/wyzxwk/article.js +65 -0
 - package/lib/v2/wyzxwk/maintainer.js +3 -0
 - package/lib/v2/wyzxwk/radar.js +13 -0
 - package/lib/v2/wyzxwk/router.js +3 -0
 - package/lib/v2/xaut/index.js +72 -0
 - package/lib/v2/xaut/jwc.js +65 -0
 - package/lib/v2/xaut/maintainer.js +5 -0
 - package/lib/v2/xaut/radar.js +23 -0
 - package/lib/v2/xaut/router.js +5 -0
 - package/lib/v2/xaut/rsc.js +67 -0
 - package/lib/v2/xiaoyuzhou/maintainer.js +4 -0
 - package/lib/v2/xiaoyuzhou/pickup.js +96 -0
 - package/lib/v2/xiaoyuzhou/podcast.js +36 -0
 - package/lib/v2/xiaoyuzhou/radar.js +19 -0
 - package/lib/v2/xiaoyuzhou/router.js +4 -0
 - package/lib/v2/xmanhua/index.js +74 -0
 - package/lib/v2/xmanhua/radar.js +13 -0
 - package/lib/v2/xmanhua/router.js +3 -0
 - package/lib/v2/xueqiu/favorite.js +38 -0
 - package/lib/v2/xueqiu/fund.js +50 -0
 - package/lib/v2/xueqiu/hots.js +45 -0
 - package/lib/v2/xueqiu/maintainer.js +10 -0
 - package/lib/v2/xueqiu/radar.js +60 -0
 - package/lib/v2/xueqiu/router.js +10 -0
 - package/lib/v2/xueqiu/snb.js +43 -0
 - package/lib/v2/xueqiu/stock_comments.js +45 -0
 - package/lib/v2/xueqiu/stock_info.js +72 -0
 - package/lib/v2/xueqiu/templates/comments_description.art +10 -0
 - package/lib/v2/xueqiu/user.js +54 -0
 - package/lib/v2/xueqiu/user_stock.js +48 -0
 - package/lib/v2/youku/channel.js +56 -0
 - package/lib/v2/youku/maintainer.js +3 -0
 - package/lib/v2/youku/radar.js +13 -0
 - package/lib/v2/youku/router.js +3 -0
 - package/lib/v2/youku/templates/channel.art +5 -0
 - package/lib/v2/youzhiyouxing/maintainer.js +3 -0
 - package/lib/v2/youzhiyouxing/materials.js +46 -0
 - package/lib/v2/youzhiyouxing/radar.js +73 -0
 - package/lib/v2/youzhiyouxing/router.js +3 -0
 - package/lib/v2/yunspe/maintainer.js +3 -0
 - package/lib/v2/yunspe/newsflash.js +42 -0
 - package/lib/v2/yunspe/radar.js +13 -0
 - package/lib/v2/yunspe/router.js +3 -0
 - package/lib/v2/yxdzqb/index.js +53 -0
 - package/lib/v2/yxdzqb/maintainer.js +3 -0
 - package/lib/v2/yxdzqb/radar.js +13 -0
 - package/lib/v2/yxdzqb/router.js +3 -0
 - package/lib/v2/yxdzqb/templates/description.art +2 -0
 - package/lib/v2/yystv/category.js +65 -0
 - package/lib/v2/yystv/docs.js +34 -0
 - package/lib/v2/yystv/maintainer.js +4 -0
 - package/lib/v2/yystv/radar.js +49 -0
 - package/lib/v2/yystv/router.js +4 -0
 - package/lib/v2/zaker/index.js +65 -0
 - package/lib/v2/zaker/maintainer.js +3 -0
 - package/lib/v2/zaker/radar.js +19 -0
 - package/lib/v2/zaker/router.js +3 -0
 - package/lib/v2/zaobao/index.js +17 -0
 - package/lib/{routes → v2}/zaobao/interactive.js +0 -0
 - package/lib/v2/zaobao/maintainer.js +6 -0
 - package/lib/v2/zaobao/radar.js +28 -0
 - package/lib/v2/zaobao/realtime.js +30 -0
 - package/lib/v2/zaobao/router.js +6 -0
 - package/lib/v2/zaobao/templates/zaobao.art +17 -0
 - package/lib/v2/zaobao/util.js +166 -0
 - package/lib/v2/zaobao/znews.js +32 -0
 - package/lib/v2/zhibo8/forum.js +47 -0
 - package/lib/v2/zhibo8/maintainer.js +5 -0
 - package/lib/v2/zhibo8/more.js +82 -0
 - package/lib/v2/zhibo8/post.js +39 -0
 - package/lib/v2/zhibo8/radar.js +27 -0
 - package/lib/v2/zhibo8/router.js +5 -0
 - package/lib/v2/zhubai/index.js +29 -0
 - package/lib/v2/zhubai/maintainer.js +3 -0
 - package/lib/v2/zhubai/radar.js +12 -0
 - package/lib/v2/zhubai/router.js +3 -0
 - package/lib/v2/zjgtjy/index.js +46 -0
 - package/lib/v2/zjgtjy/maintainer.js +3 -0
 - package/lib/v2/zjgtjy/radar.js +31 -0
 - package/lib/v2/zjgtjy/router.js +3 -0
 - package/lib/v2/zju/career/index.js +43 -0
 - package/lib/v2/zju/cst/custom.js +45 -0
 - package/lib/v2/zju/cst/index.js +90 -0
 - package/lib/v2/zju/grs/index.js +43 -0
 - package/lib/v2/zju/list.js +66 -0
 - package/lib/v2/zju/maintainer.js +8 -0
 - package/lib/v2/zju/physics/index.js +52 -0
 - package/lib/v2/zju/radar.js +139 -0
 - package/lib/v2/zju/router.js +8 -0
 - package/lib/v2/zooTeam/blog.js +32 -0
 - package/lib/v2/zooTeam/maintainer.js +4 -0
 - package/lib/v2/zooTeam/radar.js +21 -0
 - package/lib/v2/zooTeam/router.js +4 -0
 - package/lib/v2/zooTeam/weekly.js +34 -0
 - package/lib/v2/zuel/maintainer.js +3 -0
 - package/lib/v2/zuel/notice.js +52 -0
 - package/lib/v2/zuel/radar.js +13 -0
 - package/lib/v2/zuel/router.js +3 -0
 - package/lib/views/atom.art +17 -3
 - package/lib/views/error.art +5 -4
 - package/lib/views/rss.art +5 -4
 - package/lib/views/welcome.art +4 -1
 - package/package.json +77 -68
 - package/lib/routes/36kr/motif.js +0 -35
 - package/lib/routes/36kr/news.js +0 -94
 - package/lib/routes/36kr/newsflashes.js +0 -36
 - package/lib/routes/36kr/search/article.js +0 -69
 - package/lib/routes/36kr/user.js +0 -35
 - package/lib/routes/8kcos/article.js +0 -17
 - package/lib/routes/8kcos/cat.js +0 -28
 - package/lib/routes/8kcos/latest.js +0 -27
 - package/lib/routes/95mm/category.js +0 -18
 - package/lib/routes/95mm/tab.js +0 -9
 - package/lib/routes/95mm/tag.js +0 -7
 - package/lib/routes/95mm/utils.js +0 -51
 - package/lib/routes/apple/appstore/gofans.js +0 -34
 - package/lib/routes/apple/appstore/xianmian.js +0 -27
 - package/lib/routes/apple/exchange_repair.js +0 -47
 - package/lib/routes/arknights/japan.js +0 -24
 - package/lib/routes/arknights/news.js +0 -41
 - package/lib/routes/bendibao/news.js +0 -84
 - package/lib/routes/bilibili/article.js +0 -30
 - package/lib/routes/bilibili/cache.js +0 -104
 - package/lib/routes/bilibili/dynamic.js +0 -205
 - package/lib/routes/bilibili/liveArea.js +0 -74
 - package/lib/routes/bilibili/page.js +0 -37
 - package/lib/routes/bilibili/video.js +0 -35
 - package/lib/routes/bioone/featured.js +0 -49
 - package/lib/routes/bjx/huanbao.js +0 -78
 - package/lib/routes/ccreports/index.js +0 -40
 - package/lib/routes/cctv/category.js +0 -20
 - package/lib/routes/cctv/jx.js +0 -46
 - package/lib/routes/cctv/lm.js +0 -78
 - package/lib/routes/cctv/special.js +0 -108
 - package/lib/routes/cctv/utils/mzzlbg.js +0 -39
 - package/lib/routes/cctv/utils/news.js +0 -102
 - package/lib/routes/cctv/utils/xinwen1j1.js +0 -78
 - package/lib/routes/cctv/xwlb.js +0 -48
 - package/lib/routes/changba/user.js +0 -71
 - package/lib/routes/chaping/banner.js +0 -39
 - package/lib/routes/chaping/news.js +0 -54
 - package/lib/routes/cnbeta/home.js +0 -53
 - package/lib/routes/cnbeta/topic.js +0 -75
 - package/lib/routes/cntv/cntv.js +0 -24
 - package/lib/routes/cool18/index.js +0 -57
 - package/lib/routes/dapenti/subject.js +0 -5
 - package/lib/routes/dapenti/tugua.js +0 -5
 - package/lib/routes/dapenti/utils.js +0 -73
 - package/lib/routes/dbmv/index.js +0 -45
 - package/lib/routes/dockerhub/build.js +0 -29
 - package/lib/routes/dongqiudi/daily.js +0 -50
 - package/lib/routes/dongqiudi/result.js +0 -41
 - package/lib/routes/dongqiudi/top_news.js +0 -42
 - package/lib/routes/dongqiudi/utils.js +0 -136
 - package/lib/routes/douban/explore.js +0 -33
 - package/lib/routes/douban/group.js +0 -48
 - package/lib/routes/douban/people/status.js +0 -483
 - package/lib/routes/douban/people/wish.js +0 -79
 - package/lib/routes/douban/topic.js +0 -80
 - package/lib/routes/dtcj/datahero.js +0 -49
 - package/lib/routes/eagle/changelog.js +0 -75
 - package/lib/routes/eastday/sh.js +0 -62
 - package/lib/routes/eastmoney/user.js +0 -30
 - package/lib/routes/ehentai/ehapi.js +0 -134
 - package/lib/routes/ehentai/favorites.js +0 -19
 - package/lib/routes/ehentai/search.js +0 -25
 - package/lib/routes/ehentai/tag.js +0 -13
 - package/lib/routes/ezone/index.js +0 -60
 - package/lib/routes/ff14/ff14_global.js +0 -31
 - package/lib/routes/ff14/ff14_zh.js +0 -36
 - package/lib/routes/flyertea/creditcard.js +0 -85
 - package/lib/routes/flyertea/preferential.js +0 -33
 - package/lib/routes/flyertea/utils.js +0 -66
 - package/lib/routes/ft/channel.js +0 -8
 - package/lib/routes/ft/myft.js +0 -46
 - package/lib/routes/ft/utils.js +0 -88
 - package/lib/routes/gamer/gnn_index.js +0 -131
 - package/lib/routes/gamer/hot.js +0 -48
 - package/lib/routes/gcores/category.js +0 -127
 - package/lib/routes/github/follower.js +0 -50
 - package/lib/routes/github/issue.js +0 -48
 - package/lib/routes/github/pulls.js +0 -43
 - package/lib/routes/github/star.js +0 -51
 - package/lib/routes/github/starred_repos.js +0 -63
 - package/lib/routes/github/trending.js +0 -43
 - package/lib/routes/gov/fmprc/fyrbt.js +0 -24
 - package/lib/routes/gov/fmprc/utils.js +0 -54
 - package/lib/routes/gov/mee/gs.js +0 -54
 - package/lib/routes/gov/moe/moe.js +0 -84
 - package/lib/routes/guancha/headline.js +0 -48
 - package/lib/routes/guancha/index.js +0 -132
 - package/lib/routes/guancha/member.js +0 -71
 - package/lib/routes/guancha/topic.js +0 -55
 - package/lib/routes/guokr/calendar.js +0 -47
 - package/lib/routes/guokr/scientific.js +0 -30
 - package/lib/routes/hackernews/story.js +0 -60
 - package/lib/routes/hex-rays/index.js +0 -28
 - package/lib/routes/hkepc/index.js +0 -164
 - package/lib/routes/houxu/events.js +0 -27
 - package/lib/routes/houxu/live.js +0 -39
 - package/lib/routes/houxu/lives.js +0 -58
 - package/lib/routes/hupu/all.js +0 -53
 - package/lib/routes/hupu/bbs.js +0 -83
 - package/lib/routes/hupu/dept.js +0 -66
 - package/lib/routes/ifeng/feng.js +0 -69
 - package/lib/routes/iresearch/report.js +0 -63
 - package/lib/routes/ithome/index.js +0 -81
 - package/lib/routes/ixigua/userVideo.js +0 -35
 - package/lib/routes/jandan/article.js +0 -62
 - package/lib/routes/jandan/pic.js +0 -89
 - package/lib/routes/javbus/genre.js +0 -7
 - package/lib/routes/javbus/home.js +0 -3
 - package/lib/routes/javbus/series.js +0 -7
 - package/lib/routes/javbus/star.js +0 -7
 - package/lib/routes/javbus/uncensored/genre.js +0 -6
 - package/lib/routes/javbus/uncensored/home.js +0 -3
 - package/lib/routes/javbus/uncensored/series.js +0 -7
 - package/lib/routes/javbus/uncensored/star.js +0 -7
 - package/lib/routes/javbus/util.js +0 -211
 - package/lib/routes/javbus/western/genre.js +0 -7
 - package/lib/routes/javbus/western/home.js +0 -3
 - package/lib/routes/javbus/western/series.js +0 -7
 - package/lib/routes/javbus/western/star.js +0 -7
 - package/lib/routes/javdb/actors.js +0 -20
 - package/lib/routes/javdb/index.js +0 -32
 - package/lib/routes/javdb/makers.js +0 -21
 - package/lib/routes/javdb/rankings.js +0 -12
 - package/lib/routes/javdb/search.js +0 -26
 - package/lib/routes/javdb/series.js +0 -21
 - package/lib/routes/javdb/tags.js +0 -12
 - package/lib/routes/javdb/utils.js +0 -82
 - package/lib/routes/javlibrary/bestreviews.js +0 -11
 - package/lib/routes/javlibrary/stars.js +0 -9
 - package/lib/routes/javlibrary/users.js +0 -22
 - package/lib/routes/javlibrary/utils.js +0 -68
 - package/lib/routes/javlibrary/videos.js +0 -9
 - package/lib/routes/latepost/index.js +0 -84
 - package/lib/routes/learnku/topic.js +0 -53
 - package/lib/routes/lkong/forum.js +0 -75
 - package/lib/routes/lkong/thread.js +0 -56
 - package/lib/routes/lofter/posts.js +0 -54
 - package/lib/routes/lofter/tag.js +0 -59
 - package/lib/routes/medsci/recommend.js +0 -51
 - package/lib/routes/mpaypass/main.js +0 -73
 - package/lib/routes/mpaypass/news.js +0 -43
 - package/lib/routes/natgeo/dailyphoto.js +0 -27
 - package/lib/routes/natgeo/natgeo.js +0 -70
 - package/lib/routes/nbd/article.js +0 -60
 - package/lib/routes/nbd/index.js +0 -49
 - package/lib/routes/news/whxw.js +0 -59
 - package/lib/routes/nogizaka46/news.js +0 -35
 - package/lib/routes/nowcoder/discuss.js +0 -62
 - package/lib/routes/nowcoder/recommend.js +0 -20
 - package/lib/routes/nowcoder/schedule.js +0 -31
 - package/lib/routes/nytimes/book.js +0 -71
 - package/lib/routes/nytimes/index.js +0 -111
 - package/lib/routes/odaily/activity.js +0 -47
 - package/lib/routes/odaily/newsflash.js +0 -25
 - package/lib/routes/odaily/post.js +0 -60
 - package/lib/routes/odaily/user.js +0 -53
 - package/lib/routes/pbc/goutongjiaoliu.js +0 -52
 - package/lib/routes/pbc/tradeAnnouncement.js +0 -52
 - package/lib/routes/people/cpc/24h.js +0 -52
 - package/lib/routes/people/env.js +0 -73
 - package/lib/routes/people/opinion.js +0 -69
 - package/lib/routes/picuki/profile.js +0 -51
 - package/lib/routes/producthunt/today.js +0 -24
 - package/lib/routes/pubmed/trending.js +0 -65
 - package/lib/routes/quicker/person.js +0 -32
 - package/lib/routes/quicker/qa.js +0 -41
 - package/lib/routes/quicker/update.js +0 -30
 - package/lib/routes/readhub/category.js +0 -102
 - package/lib/routes/rfa/index.js +0 -46
 - package/lib/routes/rsshub/routes.js +0 -67
 - package/lib/routes/rsshub/sponsors.js +0 -46
 - package/lib/routes/sciencenet/blog.js +0 -56
 - package/lib/routes/segmentfault/channel.js +0 -90
 - package/lib/routes/segmentfault/user.js +0 -90
 - package/lib/routes/sohu/mp.js +0 -55
 - package/lib/routes/stcn/data.js +0 -84
 - package/lib/routes/stcn/kuaixun.js +0 -91
 - package/lib/routes/stcn/news.js +0 -85
 - package/lib/routes/taobao/zhongchou.js +0 -47
 - package/lib/routes/taptap/changelog.js +0 -39
 - package/lib/routes/taptap/review.js +0 -39
 - package/lib/routes/taptap/topic.js +0 -85
 - package/lib/routes/telegram/blog.js +0 -35
 - package/lib/routes/telegram/channel.js +0 -226
 - package/lib/routes/telegram/stickerpack.js +0 -26
 - package/lib/routes/tencent/wechat/announce.js +0 -32
 - package/lib/routes/tencent/wechat/ce.js +0 -40
 - package/lib/routes/tencent/wechat/csm.js +0 -59
 - package/lib/routes/tencent/wechat/ershcimi.js +0 -43
 - package/lib/routes/tencent/wechat/feeds.js +0 -47
 - package/lib/routes/tencent/wechat/mp.js +0 -77
 - package/lib/routes/tencent/wechat/msgalbum.js +0 -59
 - package/lib/routes/tencent/wechat/tgchannel.js +0 -65
 - package/lib/routes/tencent/wechat/wjdn.js +0 -28
 - package/lib/routes/thepaper/utils.js +0 -48
 - package/lib/routes/topys/article.js +0 -55
 - package/lib/routes/twreporter/category.js +0 -36
 - package/lib/routes/twreporter/fetch_article.js +0 -66
 - package/lib/routes/twreporter/newest.js +0 -34
 - package/lib/routes/twreporter/photography.js +0 -57
 - package/lib/routes/universities/bjfu/jwc/utils.js +0 -62
 - package/lib/routes/universities/bjfu/news/utils.js +0 -62
 - package/lib/routes/universities/cqwu/news.js +0 -39
 - package/lib/routes/universities/dut/index.js +0 -60
 - package/lib/routes/universities/dut/subsite.js +0 -50
 - package/lib/routes/universities/njupt/jwc.js +0 -84
 - package/lib/routes/universities/nuaa/cs/index.js +0 -84
 - package/lib/routes/universities/nuaa/jwc/jwc.js +0 -105
 - package/lib/routes/universities/nuaa/utils/pypasswaf.js +0 -24
 - package/lib/routes/universities/nuaa/yjsy/yjsy.js +0 -61
 - package/lib/routes/universities/pku/bbs/hot.js +0 -61
 - package/lib/routes/universities/pku/cls/lecture.js +0 -27
 - package/lib/routes/universities/pku/eecs.js +0 -41
 - package/lib/routes/universities/pku/pkuyjs.js +0 -23
 - package/lib/routes/universities/pku/rccp/mzyt.js +0 -33
 - package/lib/routes/universities/sdu/cmse.js +0 -55
 - package/lib/routes/universities/sdu/cs.js +0 -55
 - package/lib/routes/universities/sdu/epe.js +0 -54
 - package/lib/routes/universities/sdu/mech.js +0 -58
 - package/lib/routes/universities/sdu/sc.js +0 -56
 - package/lib/routes/universities/sysu/sdcs.js +0 -103
 - package/lib/routes/universities/zju/career/index.js +0 -42
 - package/lib/routes/universities/zju/cst/custom.js +0 -44
 - package/lib/routes/universities/zju/cst/index.js +0 -94
 - package/lib/routes/universities/zju/grs/index.js +0 -44
 - package/lib/routes/universities/zju/list.js +0 -78
 - package/lib/routes/universities/zju/physics/index.js +0 -55
 - package/lib/routes/verfghbw/press.js +0 -52
 - package/lib/routes/wallstreetcn/live.js +0 -44
 - package/lib/routes/wallstreetcn/news.js +0 -33
 - package/lib/routes/who/news-room.js +0 -56
 - package/lib/routes/who/news.js +0 -43
 - package/lib/routes/wsj/index.js +0 -139
 - package/lib/routes/xiaoyuzhou/pickup.js +0 -96
 - package/lib/routes/xueqiu/favorite.js +0 -37
 - package/lib/routes/xueqiu/fund.js +0 -71
 - package/lib/routes/xueqiu/hots.js +0 -44
 - package/lib/routes/xueqiu/snb.js +0 -42
 - package/lib/routes/xueqiu/stock_comments.js +0 -61
 - package/lib/routes/xueqiu/stock_info.js +0 -71
 - package/lib/routes/xueqiu/user.js +0 -52
 - package/lib/routes/xueqiu/user_stock.js +0 -47
 - package/lib/routes/youku/channel.js +0 -56
 - package/lib/routes/yxdzqb/index.js +0 -49
 - package/lib/routes/yystv/category.js +0 -65
 - package/lib/routes/yystv/docs.js +0 -34
 - package/lib/routes/zaker/focusread.js +0 -65
 - package/lib/routes/zaker/source.js +0 -66
 - package/lib/routes/zaobao/index.js +0 -17
 - package/lib/routes/zaobao/realtime.js +0 -28
 - package/lib/routes/zaobao/util.js +0 -129
 - package/lib/routes/zaobao/znews.js +0 -35
 - package/lib/routes/zhibo8/forum.js +0 -55
 - package/lib/routes/zhibo8/more.js +0 -45
 - package/lib/routes/zhibo8/post.js +0 -39
 - package/lib/v2/wechat/templates/image.art +0 -1
 
    
        package/lib/router.js
    CHANGED
    
    | 
         @@ -14,63 +14,25 @@ const lazyloadRouteHandler = (routeHandlerPath) => (ctx) => { 
     | 
|
| 
       14 
14 
     | 
    
         
             
                return handler(ctx);
         
     | 
| 
       15 
15 
     | 
    
         
             
            };
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
            // Deprecated: DO NOT ADD  
     | 
| 
      
 17 
     | 
    
         
            +
            // Deprecated: DO NOT ADD ANY NEW ROUTES HERE
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            // RSSHub
         
     | 
| 
       20 
     | 
    
         
            -
            router.get('/rsshub/rss', lazyloadRouteHandler('./routes/rsshub/routes')); // 弃用
         
     | 
| 
       21 
     | 
    
         
            -
            router.get('/rsshub/routes', lazyloadRouteHandler('./routes/rsshub/routes'));
         
     | 
| 
       22 
     | 
    
         
            -
            router.get('/rsshub/sponsors', lazyloadRouteHandler('./routes/rsshub/sponsors'));
         
     | 
| 
      
 19 
     | 
    
         
            +
            // RSSHub migrated to v2
         
     | 
| 
      
 20 
     | 
    
         
            +
            // router.get('/rsshub/rss', lazyloadRouteHandler('./routes/rsshub/routes')); // 弃用
         
     | 
| 
      
 21 
     | 
    
         
            +
            // router.get('/rsshub/routes', lazyloadRouteHandler('./routes/rsshub/routes'));
         
     | 
| 
      
 22 
     | 
    
         
            +
            // router.get('/rsshub/sponsors', lazyloadRouteHandler('./routes/rsshub/sponsors'));
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
            // 1draw
         
     | 
| 
       25 
25 
     | 
    
         
             
            router.get('/1draw', lazyloadRouteHandler('./routes/1draw/index'));
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
            // quicker
         
     | 
| 
       28 
     | 
    
         
            -
            router.get('/quicker/qa', lazyloadRouteHandler('./routes/quicker/qa.js'));
         
     | 
| 
       29 
     | 
    
         
            -
            router.get('/quicker/update', lazyloadRouteHandler('./routes/quicker/update.js'));
         
     | 
| 
       30 
     | 
    
         
            -
            router.get('/quicker/user/action/:uid/:person', lazyloadRouteHandler('./routes/quicker/person.js'));
         
     | 
| 
       31 
     | 
    
         
            -
            router.get('/quicker/user/:uid/:person', lazyloadRouteHandler('./routes/quicker/person.js'));
         
     | 
| 
      
 28 
     | 
    
         
            +
            // router.get('/quicker/qa', lazyloadRouteHandler('./routes/quicker/qa.js'));
         
     | 
| 
      
 29 
     | 
    
         
            +
            // router.get('/quicker/update', lazyloadRouteHandler('./routes/quicker/update.js'));
         
     | 
| 
      
 30 
     | 
    
         
            +
            // router.get('/quicker/user/action/:uid/:person', lazyloadRouteHandler('./routes/quicker/person.js'));
         
     | 
| 
      
 31 
     | 
    
         
            +
            // router.get('/quicker/user/:uid/:person', lazyloadRouteHandler('./routes/quicker/person.js'));
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
            // Benedict Evans
         
     | 
| 
       34 
34 
     | 
    
         
             
            router.get('/benedictevans', lazyloadRouteHandler('./routes/benedictevans/recent.js'));
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
       36 
     | 
    
         
            -
            // bilibili
         
     | 
| 
       37 
     | 
    
         
            -
            router.get('/bilibili/user/video/:uid/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/video'));
         
     | 
| 
       38 
     | 
    
         
            -
            router.get('/bilibili/user/article/:uid', lazyloadRouteHandler('./routes/bilibili/article'));
         
     | 
| 
       39 
     | 
    
         
            -
            router.get('/bilibili/user/fav/:uid/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/userFav'));
         
     | 
| 
       40 
     | 
    
         
            -
            router.get('/bilibili/user/coin/:uid/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/coin'));
         
     | 
| 
       41 
     | 
    
         
            -
            router.get('/bilibili/user/dynamic/:uid/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/dynamic'));
         
     | 
| 
       42 
     | 
    
         
            -
            router.get('/bilibili/user/followers/:uid', lazyloadRouteHandler('./routes/bilibili/followers'));
         
     | 
| 
       43 
     | 
    
         
            -
            router.get('/bilibili/user/followings/:uid', lazyloadRouteHandler('./routes/bilibili/followings'));
         
     | 
| 
       44 
     | 
    
         
            -
            router.get('/bilibili/user/bangumi/:uid/:type?', lazyloadRouteHandler('./routes/bilibili/user_bangumi'));
         
     | 
| 
       45 
     | 
    
         
            -
            router.get('/bilibili/partion/:tid/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/partion'));
         
     | 
| 
       46 
     | 
    
         
            -
            router.get('/bilibili/partion/ranking/:tid/:days?/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/partion-ranking'));
         
     | 
| 
       47 
     | 
    
         
            -
            router.get('/bilibili/bangumi/:seasonid', lazyloadRouteHandler('./routes/bilibili/bangumi')); // 弃用
         
     | 
| 
       48 
     | 
    
         
            -
            router.get('/bilibili/bangumi/media/:mediaid', lazyloadRouteHandler('./routes/bilibili/bangumi'));
         
     | 
| 
       49 
     | 
    
         
            -
            router.get('/bilibili/video/page/:bvid/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/page'));
         
     | 
| 
       50 
     | 
    
         
            -
            router.get('/bilibili/video/reply/:bvid', lazyloadRouteHandler('./routes/bilibili/reply'));
         
     | 
| 
       51 
     | 
    
         
            -
            router.get('/bilibili/video/danmaku/:bvid/:pid?', lazyloadRouteHandler('./routes/bilibili/danmaku'));
         
     | 
| 
       52 
     | 
    
         
            -
            router.get('/bilibili/link/news/:product', lazyloadRouteHandler('./routes/bilibili/linkNews'));
         
     | 
| 
       53 
     | 
    
         
            -
            router.get('/bilibili/live/room/:roomID', lazyloadRouteHandler('./routes/bilibili/liveRoom'));
         
     | 
| 
       54 
     | 
    
         
            -
            router.get('/bilibili/live/search/:key/:order', lazyloadRouteHandler('./routes/bilibili/liveSearch'));
         
     | 
| 
       55 
     | 
    
         
            -
            router.get('/bilibili/live/area/:areaID/:order', lazyloadRouteHandler('./routes/bilibili/liveArea'));
         
     | 
| 
       56 
     | 
    
         
            -
            router.get('/bilibili/fav/:uid/:fid/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/fav'));
         
     | 
| 
       57 
     | 
    
         
            -
            router.get('/bilibili/blackboard', lazyloadRouteHandler('./routes/bilibili/blackboard'));
         
     | 
| 
       58 
     | 
    
         
            -
            router.get('/bilibili/mall/new/:category?', lazyloadRouteHandler('./routes/bilibili/mallNew'));
         
     | 
| 
       59 
     | 
    
         
            -
            router.get('/bilibili/mall/ip/:id', lazyloadRouteHandler('./routes/bilibili/mallIP'));
         
     | 
| 
       60 
     | 
    
         
            -
            router.get('/bilibili/ranking/:rid?/:day?/:arc_type?/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/ranking'));
         
     | 
| 
       61 
     | 
    
         
            -
            router.get('/bilibili/user/channel/:uid/:cid/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/userChannel'));
         
     | 
| 
       62 
     | 
    
         
            -
            router.get('/bilibili/topic/:topic', lazyloadRouteHandler('./routes/bilibili/topic'));
         
     | 
| 
       63 
     | 
    
         
            -
            router.get('/bilibili/audio/:id', lazyloadRouteHandler('./routes/bilibili/audio'));
         
     | 
| 
       64 
     | 
    
         
            -
            router.get('/bilibili/vsearch/:kw/:order?/:disableEmbed?/:tid?', lazyloadRouteHandler('./routes/bilibili/vsearch'));
         
     | 
| 
       65 
     | 
    
         
            -
            router.get('/bilibili/followings/dynamic/:uid/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/followings_dynamic'));
         
     | 
| 
       66 
     | 
    
         
            -
            router.get('/bilibili/followings/video/:uid/:disableEmbed?', lazyloadRouteHandler('./routes/bilibili/followings_video'));
         
     | 
| 
       67 
     | 
    
         
            -
            router.get('/bilibili/followings/article/:uid', lazyloadRouteHandler('./routes/bilibili/followings_article'));
         
     | 
| 
       68 
     | 
    
         
            -
            router.get('/bilibili/readlist/:listid', lazyloadRouteHandler('./routes/bilibili/readlist'));
         
     | 
| 
       69 
     | 
    
         
            -
            router.get('/bilibili/weekly', lazyloadRouteHandler('./routes/bilibili/weekly_recommend'));
         
     | 
| 
       70 
     | 
    
         
            -
            router.get('/bilibili/manga/update/:comicid', lazyloadRouteHandler('./routes/bilibili/manga_update'));
         
     | 
| 
       71 
     | 
    
         
            -
            router.get('/bilibili/manga/followings/:uid/:limits?', lazyloadRouteHandler('./routes/bilibili/manga_followings'));
         
     | 
| 
       72 
     | 
    
         
            -
            router.get('/bilibili/app/:id?', lazyloadRouteHandler('./routes/bilibili/app'));
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
36 
     | 
    
         
             
            // bangumi
         
     | 
| 
       75 
37 
     | 
    
         
             
            router.get('/bangumi/calendar/today', lazyloadRouteHandler('./routes/bangumi/calendar/today'));
         
     | 
| 
       76 
38 
     | 
    
         
             
            router.get('/bangumi/subject/:id/:type', lazyloadRouteHandler('./routes/bangumi/subject'));
         
     | 
| 
         @@ -80,16 +42,16 @@ router.get('/bangumi/group/:id', lazyloadRouteHandler('./routes/bangumi/group/to 
     | 
|
| 
       80 
42 
     | 
    
         
             
            router.get('/bangumi/subject/:id', lazyloadRouteHandler('./routes/bangumi/subject'));
         
     | 
| 
       81 
43 
     | 
    
         
             
            router.get('/bangumi/user/blog/:id', lazyloadRouteHandler('./routes/bangumi/user/blog'));
         
     | 
| 
       82 
44 
     | 
    
         | 
| 
       83 
     | 
    
         
            -
            // 報導者
         
     | 
| 
       84 
     | 
    
         
            -
            router.get('/twreporter/newest', lazyloadRouteHandler('./routes/twreporter/newest'));
         
     | 
| 
       85 
     | 
    
         
            -
            router.get('/twreporter/photography', lazyloadRouteHandler('./routes/twreporter/photography'));
         
     | 
| 
       86 
     | 
    
         
            -
            router.get('/twreporter/category/:cid', lazyloadRouteHandler('./routes/twreporter/category'));
         
     | 
| 
      
 45 
     | 
    
         
            +
            // 報導者 migrated to v2
         
     | 
| 
      
 46 
     | 
    
         
            +
            // router.get('/twreporter/newest', lazyloadRouteHandler('./routes/twreporter/newest'));
         
     | 
| 
      
 47 
     | 
    
         
            +
            // router.get('/twreporter/photography', lazyloadRouteHandler('./routes/twreporter/photography'));
         
     | 
| 
      
 48 
     | 
    
         
            +
            // router.get('/twreporter/category/:cid', lazyloadRouteHandler('./routes/twreporter/category'));
         
     | 
| 
       87 
49 
     | 
    
         | 
| 
       88 
50 
     | 
    
         
             
            // 微博
         
     | 
| 
       89 
51 
     | 
    
         
             
            router.get('/weibo/user/:uid/:routeParams?', lazyloadRouteHandler('./routes/weibo/user'));
         
     | 
| 
       90 
52 
     | 
    
         
             
            router.get('/weibo/keyword/:keyword/:routeParams?', lazyloadRouteHandler('./routes/weibo/keyword'));
         
     | 
| 
       91 
53 
     | 
    
         
             
            router.get('/weibo/search/hot', lazyloadRouteHandler('./routes/weibo/search/hot'));
         
     | 
| 
       92 
     | 
    
         
            -
            router.get('/weibo/super_index/:id/:routeParams?', lazyloadRouteHandler('./routes/weibo/super_index'));
         
     | 
| 
      
 54 
     | 
    
         
            +
            router.get('/weibo/super_index/:id/:type?/:routeParams?', lazyloadRouteHandler('./routes/weibo/super_index'));
         
     | 
| 
       93 
55 
     | 
    
         
             
            router.get('/weibo/oasis/user/:userid', lazyloadRouteHandler('./routes/weibo/oasis/user'));
         
     | 
| 
       94 
56 
     | 
    
         | 
| 
       95 
57 
     | 
    
         
             
            // 贴吧
         
     | 
| 
         @@ -104,6 +66,7 @@ router.get('/ncm/playlist/:id', lazyloadRouteHandler('./routes/ncm/playlist')); 
     | 
|
| 
       104 
66 
     | 
    
         
             
            router.get('/ncm/user/playlist/:uid', lazyloadRouteHandler('./routes/ncm/userplaylist'));
         
     | 
| 
       105 
67 
     | 
    
         
             
            router.get('/ncm/artist/:id', lazyloadRouteHandler('./routes/ncm/artist'));
         
     | 
| 
       106 
68 
     | 
    
         
             
            router.get('/ncm/djradio/:id', lazyloadRouteHandler('./routes/ncm/djradio'));
         
     | 
| 
      
 69 
     | 
    
         
            +
            router.get('/ncm/user/playrecords/:uid/:type?', lazyloadRouteHandler('./routes/ncm/userplayrecords'));
         
     | 
| 
       107 
70 
     | 
    
         | 
| 
       108 
71 
     | 
    
         
             
            // 掘金
         
     | 
| 
       109 
72 
     | 
    
         
             
            router.get('/juejin/category/:category', lazyloadRouteHandler('./routes/juejin/category'));
         
     | 
| 
         @@ -127,7 +90,7 @@ router.get('/jianshu/collection/:id', lazyloadRouteHandler('./routes/jianshu/col 
     | 
|
| 
       127 
90 
     | 
    
         
             
            router.get('/jianshu/user/:id', lazyloadRouteHandler('./routes/jianshu/user'));
         
     | 
| 
       128 
91 
     | 
    
         | 
| 
       129 
92 
     | 
    
         
             
            // 知乎
         
     | 
| 
       130 
     | 
    
         
            -
            router.get('/zhihu/collection/:id', lazyloadRouteHandler('./routes/zhihu/collection'));
         
     | 
| 
      
 93 
     | 
    
         
            +
            router.get('/zhihu/collection/:id/:getAll?', lazyloadRouteHandler('./routes/zhihu/collection'));
         
     | 
| 
       131 
94 
     | 
    
         
             
            router.get('/zhihu/people/activities/:id', lazyloadRouteHandler('./routes/zhihu/activities'));
         
     | 
| 
       132 
95 
     | 
    
         
             
            router.get('/zhihu/people/answers/:id', lazyloadRouteHandler('./routes/zhihu/answers'));
         
     | 
| 
       133 
96 
     | 
    
         
             
            router.get('/zhihu/posts/:usertype/:id', lazyloadRouteHandler('./routes/zhihu/posts'));
         
     | 
| 
         @@ -162,43 +125,16 @@ router.get('/pixiv/search/:keyword/:order?/:mode?', lazyloadRouteHandler('./rout 
     | 
|
| 
       162 
125 
     | 
    
         
             
            // pixiv-fanbox
         
     | 
| 
       163 
126 
     | 
    
         
             
            router.get('/fanbox/:user?', lazyloadRouteHandler('./routes/fanbox/main'));
         
     | 
| 
       164 
127 
     | 
    
         | 
| 
       165 
     | 
    
         
            -
            // 豆瓣
         
     | 
| 
       166 
     | 
    
         
            -
            router.get('/douban/movie/playing', lazyloadRouteHandler('./routes/douban/playing'));
         
     | 
| 
       167 
     | 
    
         
            -
            router.get('/douban/movie/playing/:score', lazyloadRouteHandler('./routes/douban/playing'));
         
     | 
| 
       168 
     | 
    
         
            -
            router.get('/douban/movie/playing/:score/:city', lazyloadRouteHandler('./routes/douban/playing'));
         
     | 
| 
       169 
     | 
    
         
            -
            router.get('/douban/movie/later', lazyloadRouteHandler('./routes/douban/later'));
         
     | 
| 
       170 
     | 
    
         
            -
            router.get('/douban/movie/ustop', lazyloadRouteHandler('./routes/douban/ustop'));
         
     | 
| 
       171 
     | 
    
         
            -
            router.get('/douban/movie/weekly/:type?', lazyloadRouteHandler('./routes/douban/weekly_best'));
         
     | 
| 
       172 
     | 
    
         
            -
            router.get('/douban/movie/classification/:sort?/:score?/:tags?', lazyloadRouteHandler('./routes/douban/classification.js'));
         
     | 
| 
       173 
     | 
    
         
            -
            router.get('/douban/group/:groupid/:type?', lazyloadRouteHandler('./routes/douban/group'));
         
     | 
| 
       174 
     | 
    
         
            -
            router.get('/douban/explore', lazyloadRouteHandler('./routes/douban/explore'));
         
     | 
| 
       175 
     | 
    
         
            -
            router.get('/douban/music/latest/:area?', lazyloadRouteHandler('./routes/douban/latest_music'));
         
     | 
| 
       176 
     | 
    
         
            -
            router.get('/douban/book/latest', lazyloadRouteHandler('./routes/douban/latest_book'));
         
     | 
| 
       177 
     | 
    
         
            -
            router.get('/douban/event/hot/:locationId', lazyloadRouteHandler('./routes/douban/event/hot'));
         
     | 
| 
       178 
     | 
    
         
            -
            router.get('/douban/commercialpress/latest', lazyloadRouteHandler('./routes/douban/commercialpress/latest'));
         
     | 
| 
       179 
     | 
    
         
            -
            router.get('/douban/bookstore', lazyloadRouteHandler('./routes/douban/bookstore'));
         
     | 
| 
       180 
     | 
    
         
            -
            router.get('/douban/book/rank/:type?', lazyloadRouteHandler('./routes/douban/book/rank'));
         
     | 
| 
       181 
     | 
    
         
            -
            router.get('/douban/doulist/:id', lazyloadRouteHandler('./routes/douban/doulist'));
         
     | 
| 
       182 
     | 
    
         
            -
            router.get('/douban/explore/column/:id', lazyloadRouteHandler('./routes/douban/explore_column'));
         
     | 
| 
       183 
     | 
    
         
            -
            router.get('/douban/people/:userid/status/:routeParams?', lazyloadRouteHandler('./routes/douban/people/status.js'));
         
     | 
| 
       184 
     | 
    
         
            -
            router.get('/douban/people/:userid/wish/:routeParams?', lazyloadRouteHandler('./routes/douban/people/wish.js'));
         
     | 
| 
       185 
     | 
    
         
            -
            router.get('/douban/replies/:uid', lazyloadRouteHandler('./routes/douban/replies'));
         
     | 
| 
       186 
     | 
    
         
            -
            router.get('/douban/replied/:uid', lazyloadRouteHandler('./routes/douban/replied'));
         
     | 
| 
       187 
     | 
    
         
            -
            router.get('/douban/topic/:id/:sort?', lazyloadRouteHandler('./routes/douban/topic.js'));
         
     | 
| 
       188 
     | 
    
         
            -
            router.get('/douban/channel/:id/:nav?', lazyloadRouteHandler('./routes/douban/channel/topic.js'));
         
     | 
| 
       189 
     | 
    
         
            -
            router.get('/douban/channel/:id/subject/:nav', lazyloadRouteHandler('./routes/douban/channel/subject.js'));
         
     | 
| 
       190 
     | 
    
         
            -
            router.get('/douban/celebrity/:id/:sort?', lazyloadRouteHandler('./routes/douban/celebrity.js'));
         
     | 
| 
       191 
     | 
    
         
            -
             
     | 
| 
       192 
128 
     | 
    
         
             
            // 法律白話文運動
         
     | 
| 
       193 
129 
     | 
    
         
             
            router.get('/plainlaw/archives', lazyloadRouteHandler('./routes/plainlaw/archives.js'));
         
     | 
| 
       194 
130 
     | 
    
         | 
| 
       195 
131 
     | 
    
         
             
            // 煎蛋
         
     | 
| 
       196 
     | 
    
         
            -
            router.get('/jandan/article', lazyloadRouteHandler('./routes/jandan/article'));
         
     | 
| 
       197 
     | 
    
         
            -
            router.get('/jandan/:sub_model', lazyloadRouteHandler('./routes/jandan/pic'));
         
     | 
| 
      
 132 
     | 
    
         
            +
            // router.get('/jandan/article', lazyloadRouteHandler('./routes/jandan/article'));
         
     | 
| 
      
 133 
     | 
    
         
            +
            // router.get('/jandan/:sub_model', lazyloadRouteHandler('./routes/jandan/pic'));
         
     | 
| 
       198 
134 
     | 
    
         | 
| 
       199 
135 
     | 
    
         
             
            // 喷嚏
         
     | 
| 
       200 
     | 
    
         
            -
            router.get('/dapenti/tugua', lazyloadRouteHandler('./routes/dapenti/tugua'));
         
     | 
| 
       201 
     | 
    
         
            -
            router.get('/dapenti/subject/:id', lazyloadRouteHandler('./routes/dapenti/subject'));
         
     | 
| 
      
 136 
     | 
    
         
            +
            // router.get('/dapenti/tugua', lazyloadRouteHandler('./routes/dapenti/tugua'));
         
     | 
| 
      
 137 
     | 
    
         
            +
            // router.get('/dapenti/subject/:id', lazyloadRouteHandler('./routes/dapenti/subject'));
         
     | 
| 
       202 
138 
     | 
    
         | 
| 
       203 
139 
     | 
    
         
             
            // Dockone
         
     | 
| 
       204 
140 
     | 
    
         
             
            router.get('/dockone/weekly', lazyloadRouteHandler('./routes/dockone/weekly'));
         
     | 
| 
         @@ -268,27 +204,9 @@ router.get('/v2ex/topics/:type', lazyloadRouteHandler('./routes/v2ex/topics')); 
     | 
|
| 
       268 
204 
     | 
    
         
             
            router.get('/v2ex/post/:postid', lazyloadRouteHandler('./routes/v2ex/post'));
         
     | 
| 
       269 
205 
     | 
    
         
             
            router.get('/v2ex/tab/:tabid', lazyloadRouteHandler('./routes/v2ex/tab'));
         
     | 
| 
       270 
206 
     | 
    
         | 
| 
       271 
     | 
    
         
            -
            //  
     | 
| 
       272 
     | 
    
         
            -
            router.get('/ 
     | 
| 
       273 
     | 
    
         
            -
            router.get('/ 
     | 
| 
       274 
     | 
    
         
            -
            router.get('/telegram/blog', lazyloadRouteHandler('./routes/telegram/blog'));
         
     | 
| 
       275 
     | 
    
         
            -
             
     | 
| 
       276 
     | 
    
         
            -
            // readhub
         
     | 
| 
       277 
     | 
    
         
            -
            router.get('/readhub/category/:category', lazyloadRouteHandler('./routes/readhub/category'));
         
     | 
| 
       278 
     | 
    
         
            -
             
     | 
| 
       279 
     | 
    
         
            -
            // GitHub
         
     | 
| 
       280 
     | 
    
         
            -
            router.get('/github/repos/:user', lazyloadRouteHandler('./routes/github/repos'));
         
     | 
| 
       281 
     | 
    
         
            -
            router.get('/github/trending/:since/:language?/:spoken_language?', lazyloadRouteHandler('./routes/github/trending'));
         
     | 
| 
       282 
     | 
    
         
            -
            router.get('/github/issue/:user/:repo/:state?/:labels?', lazyloadRouteHandler('./routes/github/issue'));
         
     | 
| 
       283 
     | 
    
         
            -
            router.get('/github/pull/:user/:repo', lazyloadRouteHandler('./routes/github/pulls'));
         
     | 
| 
       284 
     | 
    
         
            -
            router.get('/github/user/followers/:user', lazyloadRouteHandler('./routes/github/follower'));
         
     | 
| 
       285 
     | 
    
         
            -
            router.get('/github/stars/:user/:repo', lazyloadRouteHandler('./routes/github/star'));
         
     | 
| 
       286 
     | 
    
         
            -
            router.get('/github/search/:query/:sort?/:order?', lazyloadRouteHandler('./routes/github/search'));
         
     | 
| 
       287 
     | 
    
         
            -
            router.get('/github/branches/:user/:repo', lazyloadRouteHandler('./routes/github/branches'));
         
     | 
| 
       288 
     | 
    
         
            -
            router.get('/github/file/:user/:repo/:branch/:filepath+', lazyloadRouteHandler('./routes/github/file'));
         
     | 
| 
       289 
     | 
    
         
            -
            router.get('/github/starred_repos/:user', lazyloadRouteHandler('./routes/github/starred_repos'));
         
     | 
| 
       290 
     | 
    
         
            -
            router.get('/github/contributors/:user/:repo/:order?/:anon?', lazyloadRouteHandler('./routes/github/contributors'));
         
     | 
| 
       291 
     | 
    
         
            -
            router.get('/github/topics/:name/:qs?', lazyloadRouteHandler('./routes/github/topic'));
         
     | 
| 
      
 207 
     | 
    
         
            +
            // Readhub migrated to v2
         
     | 
| 
      
 208 
     | 
    
         
            +
            // router.get('/readhub/category/:category?', lazyloadRouteHandler('./routes/readhub/index'));
         
     | 
| 
      
 209 
     | 
    
         
            +
            // router.get('/readhub/:category?', lazyloadRouteHandler('./routes/readhub/index'));
         
     | 
| 
       292 
210 
     | 
    
         | 
| 
       293 
211 
     | 
    
         
             
            // f-droid
         
     | 
| 
       294 
212 
     | 
    
         
             
            router.get('/fdroid/apprelease/:app', lazyloadRouteHandler('./routes/fdroid/apprelease'));
         
     | 
| 
         @@ -316,18 +234,19 @@ router.get('/prestige-av/series/:mid/:sort?', lazyloadRouteHandler('./routes/pre 
     | 
|
| 
       316 
234 
     | 
    
         
             
            router.get('/yande.re/post/popular_recent', lazyloadRouteHandler('./routes/yande.re/post_popular_recent'));
         
     | 
| 
       317 
235 
     | 
    
         
             
            router.get('/yande.re/post/popular_recent/:period', lazyloadRouteHandler('./routes/yande.re/post_popular_recent'));
         
     | 
| 
       318 
236 
     | 
    
         | 
| 
       319 
     | 
    
         
            -
            // 纽约时报
         
     | 
| 
       320 
     | 
    
         
            -
            router.get('/nytimes/daily_briefing_chinese', lazyloadRouteHandler('./routes/nytimes/daily_briefing_chinese'));
         
     | 
| 
       321 
     | 
    
         
            -
            router.get('/nytimes/book/:category?', lazyloadRouteHandler('./routes/nytimes/book.js'));
         
     | 
| 
       322 
     | 
    
         
            -
            router.get('/nytimes/: 
     | 
| 
      
 237 
     | 
    
         
            +
            // 纽约时报 migrated to v2
         
     | 
| 
      
 238 
     | 
    
         
            +
            // router.get('/nytimes/daily_briefing_chinese', lazyloadRouteHandler('./routes/nytimes/daily_briefing_chinese'));
         
     | 
| 
      
 239 
     | 
    
         
            +
            // router.get('/nytimes/book/:category?', lazyloadRouteHandler('./routes/nytimes/book.js'));
         
     | 
| 
      
 240 
     | 
    
         
            +
            // router.get('/nytimes/author/:byline', lazyloadRouteHandler('./routes/nytimes/author.js'));
         
     | 
| 
      
 241 
     | 
    
         
            +
            // router.get('/nytimes/:lang?', lazyloadRouteHandler('./routes/nytimes/index'));
         
     | 
| 
       323 
242 
     | 
    
         | 
| 
       324 
243 
     | 
    
         
             
            // 3dm
         
     | 
| 
       325 
244 
     | 
    
         
             
            router.get('/3dm/:name/:type', lazyloadRouteHandler('./routes/3dm/game'));
         
     | 
| 
       326 
245 
     | 
    
         
             
            router.get('/3dm/news', lazyloadRouteHandler('./routes/3dm/news_center'));
         
     | 
| 
       327 
246 
     | 
    
         | 
| 
       328 
247 
     | 
    
         
             
            // 喜马拉雅
         
     | 
| 
       329 
     | 
    
         
            -
            router.get('/ximalaya 
     | 
| 
       330 
     | 
    
         
            -
            router.get('/ximalaya 
     | 
| 
      
 248 
     | 
    
         
            +
            router.get('/ximalaya/:type/:id/:all?', lazyloadRouteHandler('./routes/ximalaya/album'));
         
     | 
| 
      
 249 
     | 
    
         
            +
            router.get('/ximalaya/:type/:id/:all/:shownote?', lazyloadRouteHandler('./routes/ximalaya/album'));
         
     | 
| 
       331 
250 
     | 
    
         | 
| 
       332 
251 
     | 
    
         
             
            // EZTV
         
     | 
| 
       333 
252 
     | 
    
         
             
            router.get('/eztv/torrents/:imdb_id', lazyloadRouteHandler('./routes/eztv/imdb'));
         
     | 
| 
         @@ -359,14 +278,13 @@ router.get('/tingshuitz/wuhan', lazyloadRouteHandler('./routes/tingshuitz/wuhan' 
     | 
|
| 
       359 
278 
     | 
    
         
             
            router.get('/mihoyo/bh3/:type', lazyloadRouteHandler('./routes/mihoyo/bh3'));
         
     | 
| 
       360 
279 
     | 
    
         
             
            router.get('/mihoyo/bh2/:type', lazyloadRouteHandler('./routes/mihoyo/bh2'));
         
     | 
| 
       361 
280 
     | 
    
         | 
| 
       362 
     | 
    
         
            -
            // 新闻联播
         
     | 
| 
       363 
     | 
    
         
            -
            router.get('/cctv/xwlb', lazyloadRouteHandler('./routes/cctv/xwlb'));
         
     | 
| 
       364 
     | 
    
         
            -
             
     | 
| 
      
 281 
     | 
    
         
            +
            // 新闻联播 migrated to v2
         
     | 
| 
      
 282 
     | 
    
         
            +
            // router.get('/cctv/xwlb', lazyloadRouteHandler('./routes/cctv/xwlb'));
         
     | 
| 
       365 
283 
     | 
    
         
             
            // 央视新闻
         
     | 
| 
       366 
     | 
    
         
            -
            router.get('/cctv/lm/:id?', lazyloadRouteHandler('./routes/cctv/lm'));
         
     | 
| 
       367 
     | 
    
         
            -
            router.get('/cctv/:category', lazyloadRouteHandler('./routes/cctv/category'));
         
     | 
| 
       368 
     | 
    
         
            -
            router.get('/cctv/photo/jx', lazyloadRouteHandler('./routes/cctv/jx'));
         
     | 
| 
       369 
     | 
    
         
            -
            router.get('/cctv-special/:id?', lazyloadRouteHandler('./routes/cctv/special'));
         
     | 
| 
      
 284 
     | 
    
         
            +
            // router.get('/cctv/lm/:id?', lazyloadRouteHandler('./routes/cctv/lm'));
         
     | 
| 
      
 285 
     | 
    
         
            +
            // router.get('/cctv/:category', lazyloadRouteHandler('./routes/cctv/category'));
         
     | 
| 
      
 286 
     | 
    
         
            +
            // router.get('/cctv/photo/jx', lazyloadRouteHandler('./routes/cctv/jx'));
         
     | 
| 
      
 287 
     | 
    
         
            +
            // router.get('/cctv-special/:id?', lazyloadRouteHandler('./routes/cctv/special'));
         
     | 
| 
       370 
288 
     | 
    
         | 
| 
       371 
289 
     | 
    
         
             
            // 财新博客
         
     | 
| 
       372 
290 
     | 
    
         
             
            router.get('/caixin/blog/:column', lazyloadRouteHandler('./routes/caixin/blog'));
         
     | 
| 
         @@ -382,12 +300,10 @@ router.get('/t66y/:id/:type?', lazyloadRouteHandler('./routes/t66y/index')); 
     | 
|
| 
       382 
300 
     | 
    
         
             
            // 色中色
         
     | 
| 
       383 
301 
     | 
    
         
             
            router.get('/sexinsex/:id/:type?', lazyloadRouteHandler('./routes/sexinsex/index'));
         
     | 
| 
       384 
302 
     | 
    
         | 
| 
       385 
     | 
    
         
            -
            //  
     | 
| 
       386 
     | 
    
         
            -
            router.get('/ 
     | 
| 
       387 
     | 
    
         
            -
             
     | 
| 
       388 
     | 
    
         
            -
            //  
     | 
| 
       389 
     | 
    
         
            -
            router.get('/natgeo/dailyphoto', lazyloadRouteHandler('./routes/natgeo/dailyphoto'));
         
     | 
| 
       390 
     | 
    
         
            -
            router.get('/natgeo/:cat/:type?', lazyloadRouteHandler('./routes/natgeo/natgeo'));
         
     | 
| 
      
 303 
     | 
    
         
            +
            // 国家地理 migrated to v2
         
     | 
| 
      
 304 
     | 
    
         
            +
            // router.get('/natgeo/dailyselection', lazyloadRouteHandler('./routes/natgeo/dailyselection'));
         
     | 
| 
      
 305 
     | 
    
         
            +
            // router.get('/natgeo/dailyphoto', lazyloadRouteHandler('./routes/natgeo/dailyphoto'));
         
     | 
| 
      
 306 
     | 
    
         
            +
            // router.get('/natgeo/:cat/:type?', lazyloadRouteHandler('./routes/natgeo/natgeo'));
         
     | 
| 
       391 
307 
     | 
    
         | 
| 
       392 
308 
     | 
    
         
             
            // 一个
         
     | 
| 
       393 
309 
     | 
    
         
             
            router.get('/one', lazyloadRouteHandler('./routes/one/index'));
         
     | 
| 
         @@ -405,6 +321,7 @@ router.get('/tuicool/mags/:type', lazyloadRouteHandler('./routes/tuicool/mags')) 
     | 
|
| 
       405 
321 
     | 
    
         
             
            // Hexo
         
     | 
| 
       406 
322 
     | 
    
         
             
            router.get('/hexo/next/:url', lazyloadRouteHandler('./routes/hexo/next'));
         
     | 
| 
       407 
323 
     | 
    
         
             
            router.get('/hexo/yilia/:url', lazyloadRouteHandler('./routes/hexo/yilia'));
         
     | 
| 
      
 324 
     | 
    
         
            +
            router.get('/hexo/fluid/:url', lazyloadRouteHandler('./routes/hexo/fluid'));
         
     | 
| 
       408 
325 
     | 
    
         | 
| 
       409 
326 
     | 
    
         
             
            // cpython
         
     | 
| 
       410 
327 
     | 
    
         
             
            router.get('/cpython/:pre?', lazyloadRouteHandler('./routes/cpython'));
         
     | 
| 
         @@ -439,13 +356,13 @@ router.get('/namoc/media', lazyloadRouteHandler('./routes/namoc/media')); 
     | 
|
| 
       439 
356 
     | 
    
         
             
            router.get('/namoc/exhibition', lazyloadRouteHandler('./routes/namoc/exhibition'));
         
     | 
| 
       440 
357 
     | 
    
         
             
            router.get('/namoc/specials', lazyloadRouteHandler('./routes/namoc/specials'));
         
     | 
| 
       441 
358 
     | 
    
         | 
| 
       442 
     | 
    
         
            -
            // 懂球帝
         
     | 
| 
       443 
     | 
    
         
            -
            router.get('/dongqiudi/daily', lazyloadRouteHandler('./routes/dongqiudi/daily'));
         
     | 
| 
       444 
     | 
    
         
            -
            router.get('/dongqiudi/result/:team', lazyloadRouteHandler('./routes/dongqiudi/result'));
         
     | 
| 
       445 
     | 
    
         
            -
            router.get('/dongqiudi/team_news/:team', lazyloadRouteHandler('./routes/dongqiudi/team_news'));
         
     | 
| 
       446 
     | 
    
         
            -
            router.get('/dongqiudi/player_news/:id', lazyloadRouteHandler('./routes/dongqiudi/player_news'));
         
     | 
| 
       447 
     | 
    
         
            -
            router.get('/dongqiudi/special/:id', lazyloadRouteHandler('./routes/dongqiudi/special'));
         
     | 
| 
       448 
     | 
    
         
            -
            router.get('/dongqiudi/top_news/:id?', lazyloadRouteHandler('./routes/dongqiudi/top_news'));
         
     | 
| 
      
 359 
     | 
    
         
            +
            // 懂球帝 migrated to v2
         
     | 
| 
      
 360 
     | 
    
         
            +
            // router.get('/dongqiudi/daily', lazyloadRouteHandler('./routes/dongqiudi/daily'));
         
     | 
| 
      
 361 
     | 
    
         
            +
            // router.get('/dongqiudi/result/:team', lazyloadRouteHandler('./routes/dongqiudi/result'));
         
     | 
| 
      
 362 
     | 
    
         
            +
            // router.get('/dongqiudi/team_news/:team', lazyloadRouteHandler('./routes/dongqiudi/team_news'));
         
     | 
| 
      
 363 
     | 
    
         
            +
            // router.get('/dongqiudi/player_news/:id', lazyloadRouteHandler('./routes/dongqiudi/player_news'));
         
     | 
| 
      
 364 
     | 
    
         
            +
            // router.get('/dongqiudi/special/:id', lazyloadRouteHandler('./routes/dongqiudi/special'));
         
     | 
| 
      
 365 
     | 
    
         
            +
            // router.get('/dongqiudi/top_news/:id?', lazyloadRouteHandler('./routes/dongqiudi/top_news'));
         
     | 
| 
       449 
366 
     | 
    
         | 
| 
       450 
367 
     | 
    
         
             
            // 维基百科 Wikipedia
         
     | 
| 
       451 
368 
     | 
    
         
             
            router.get('/wikipedia/mainland', lazyloadRouteHandler('./routes/wikipedia/mainland'));
         
     | 
| 
         @@ -459,15 +376,15 @@ router.get('/egsea/flash', lazyloadRouteHandler('./routes/egsea/flash')); 
     | 
|
| 
       459 
376 
     | 
    
         
             
            // 选股宝
         
     | 
| 
       460 
377 
     | 
    
         
             
            router.get('/xuangubao/subject/:subject_id', lazyloadRouteHandler('./routes/xuangubao/subject'));
         
     | 
| 
       461 
378 
     | 
    
         | 
| 
       462 
     | 
    
         
            -
            // 雪球
         
     | 
| 
       463 
     | 
    
         
            -
            router.get('/xueqiu/user/:id/:type?', lazyloadRouteHandler('./routes/xueqiu/user'));
         
     | 
| 
       464 
     | 
    
         
            -
            router.get('/xueqiu/favorite/:id', lazyloadRouteHandler('./routes/xueqiu/favorite'));
         
     | 
| 
       465 
     | 
    
         
            -
            router.get('/xueqiu/user_stock/:id', lazyloadRouteHandler('./routes/xueqiu/user_stock'));
         
     | 
| 
       466 
     | 
    
         
            -
            router.get('/xueqiu/fund/:id', lazyloadRouteHandler('./routes/xueqiu/fund'));
         
     | 
| 
       467 
     | 
    
         
            -
            router.get('/xueqiu/stock_info/:id/:type?', lazyloadRouteHandler('./routes/xueqiu/stock_info'));
         
     | 
| 
       468 
     | 
    
         
            -
            router.get('/xueqiu/snb/:id', lazyloadRouteHandler('./routes/xueqiu/snb'));
         
     | 
| 
       469 
     | 
    
         
            -
            router.get('/xueqiu/hots', lazyloadRouteHandler('./routes/xueqiu/hots'));
         
     | 
| 
       470 
     | 
    
         
            -
            router.get('/xueqiu/stock_comments/:id/:titleLength?', lazyloadRouteHandler('./routes/xueqiu/stock_comments'));
         
     | 
| 
      
 379 
     | 
    
         
            +
            // 雪球 migrated to v2
         
     | 
| 
      
 380 
     | 
    
         
            +
            // router.get('/xueqiu/user/:id/:type?', lazyloadRouteHandler('./routes/xueqiu/user'));
         
     | 
| 
      
 381 
     | 
    
         
            +
            // router.get('/xueqiu/favorite/:id', lazyloadRouteHandler('./routes/xueqiu/favorite'));
         
     | 
| 
      
 382 
     | 
    
         
            +
            // router.get('/xueqiu/user_stock/:id', lazyloadRouteHandler('./routes/xueqiu/user_stock'));
         
     | 
| 
      
 383 
     | 
    
         
            +
            // router.get('/xueqiu/fund/:id', lazyloadRouteHandler('./routes/xueqiu/fund'));
         
     | 
| 
      
 384 
     | 
    
         
            +
            // router.get('/xueqiu/stock_info/:id/:type?', lazyloadRouteHandler('./routes/xueqiu/stock_info'));
         
     | 
| 
      
 385 
     | 
    
         
            +
            // router.get('/xueqiu/snb/:id', lazyloadRouteHandler('./routes/xueqiu/snb'));
         
     | 
| 
      
 386 
     | 
    
         
            +
            // router.get('/xueqiu/hots', lazyloadRouteHandler('./routes/xueqiu/hots'));
         
     | 
| 
      
 387 
     | 
    
         
            +
            // router.get('/xueqiu/stock_comments/:id/:titleLength?', lazyloadRouteHandler('./routes/xueqiu/stock_comments'));
         
     | 
| 
       471 
388 
     | 
    
         | 
| 
       472 
389 
     | 
    
         
             
            // Greasy Fork
         
     | 
| 
       473 
390 
     | 
    
         
             
            router.get('/greasyfork/:language/:domain?', lazyloadRouteHandler('./routes/greasyfork/scripts'));
         
     | 
| 
         @@ -504,20 +421,18 @@ router.get('/tucaoqq/post/:project/:key', lazyloadRouteHandler('./routes/tencent 
     | 
|
| 
       504 
421 
     | 
    
         
             
            // Bugly SDK
         
     | 
| 
       505 
422 
     | 
    
         
             
            router.get('/bugly/changelog/:platform', lazyloadRouteHandler('./routes/tencent/bugly/changelog'));
         
     | 
| 
       506 
423 
     | 
    
         | 
| 
       507 
     | 
    
         
            -
            // wechat
         
     | 
| 
       508 
     | 
    
         
            -
            router.get('/wechat/wemp/:id', lazyloadRouteHandler('./routes/tencent/wechat/wemp'));
         
     | 
| 
       509 
     | 
    
         
            -
            router.get('/wechat/ 
     | 
| 
       510 
     | 
    
         
            -
            router.get('/wechat/ 
     | 
| 
       511 
     | 
    
         
            -
            router.get('/wechat/announce', lazyloadRouteHandler('./routes/tencent/wechat/announce'));
         
     | 
| 
      
 424 
     | 
    
         
            +
            // wechat migrated to v2
         
     | 
| 
      
 425 
     | 
    
         
            +
            // router.get('/wechat/wemp/:id', lazyloadRouteHandler('./routes/tencent/wechat/wemp'));
         
     | 
| 
      
 426 
     | 
    
         
            +
            // router.get('/wechat/ce/:id', lazyloadRouteHandler('./routes/tencent/wechat/ce'));
         
     | 
| 
      
 427 
     | 
    
         
            +
            // router.get('/wechat/announce', lazyloadRouteHandler('./routes/tencent/wechat/announce'));
         
     | 
| 
       512 
428 
     | 
    
         
             
            router.get('/wechat/miniprogram/plugins', lazyloadRouteHandler('./routes/tencent/wechat/miniprogram/plugins'));
         
     | 
| 
       513 
     | 
    
         
            -
            router.get('/wechat/tgchannel/:id', lazyloadRouteHandler('./routes/tencent/wechat/tgchannel'));
         
     | 
| 
       514 
     | 
    
         
            -
            router.get('/wechat/uread/:userid', lazyloadRouteHandler('./routes/tencent/wechat/uread'));
         
     | 
| 
       515 
     | 
    
         
            -
            router.get('/wechat/ershicimi/:id', lazyloadRouteHandler('./routes/tencent/wechat/ershcimi'));
         
     | 
| 
       516 
     | 
    
         
            -
            router.get('/wechat/ 
     | 
| 
       517 
     | 
    
         
            -
            router.get('/wechat/ 
     | 
| 
       518 
     | 
    
         
            -
            router.get('/wechat/mp/ 
     | 
| 
       519 
     | 
    
         
            -
            router.get('/wechat/ 
     | 
| 
       520 
     | 
    
         
            -
            router.get('/wechat/feeds/:id', lazyloadRouteHandler('./routes/tencent/wechat/feeds'));
         
     | 
| 
      
 429 
     | 
    
         
            +
            // router.get('/wechat/tgchannel/:id/:mpName?/:searchQueryType?', lazyloadRouteHandler('./routes/tencent/wechat/tgchannel'));
         
     | 
| 
      
 430 
     | 
    
         
            +
            // router.get('/wechat/uread/:userid', lazyloadRouteHandler('./routes/tencent/wechat/uread'));
         
     | 
| 
      
 431 
     | 
    
         
            +
            // router.get('/wechat/ershicimi/:id', lazyloadRouteHandler('./routes/tencent/wechat/ershcimi'));
         
     | 
| 
      
 432 
     | 
    
         
            +
            // router.get('/wechat/wxnmh/:id', lazyloadRouteHandler('./routes/tencent/wechat/wxnmh'));
         
     | 
| 
      
 433 
     | 
    
         
            +
            // router.get('/wechat/mp/homepage/:biz/:hid/:cid?', lazyloadRouteHandler('./routes/tencent/wechat/mp'));
         
     | 
| 
      
 434 
     | 
    
         
            +
            // router.get('/wechat/mp/msgalbum/:biz/:aid', lazyloadRouteHandler('./routes/tencent/wechat/msgalbum'));
         
     | 
| 
      
 435 
     | 
    
         
            +
            // router.get('/wechat/feeds/:id', lazyloadRouteHandler('./routes/tencent/wechat/feeds'));
         
     | 
| 
       521 
436 
     | 
    
         | 
| 
       522 
437 
     | 
    
         
             
            // All the Flight Deals
         
     | 
| 
       523 
438 
     | 
    
         
             
            router.get('/atfd/:locations/:nearby?', lazyloadRouteHandler('./routes/atfd/index'));
         
     | 
| 
         @@ -528,23 +443,9 @@ router.get('/fir/update/:id', lazyloadRouteHandler('./routes/fir/update')); 
     | 
|
| 
       528 
443 
     | 
    
         
             
            // Nvidia Web Driver
         
     | 
| 
       529 
444 
     | 
    
         
             
            router.get('/nvidia/webdriverupdate', lazyloadRouteHandler('./routes/nvidia/webdriverupdate'));
         
     | 
| 
       530 
445 
     | 
    
         | 
| 
       531 
     | 
    
         
            -
            // Google
         
     | 
| 
       532 
     | 
    
         
            -
            router.get('/google/citations/:id', lazyloadRouteHandler('./routes/google/citations'));
         
     | 
| 
       533 
     | 
    
         
            -
            router.get('/google/scholar/:query', lazyloadRouteHandler('./routes/google/scholar'));
         
     | 
| 
       534 
     | 
    
         
            -
            router.get('/google/doodles/:language?', lazyloadRouteHandler('./routes/google/doodles'));
         
     | 
| 
       535 
     | 
    
         
            -
            router.get('/google/album/:id', lazyloadRouteHandler('./routes/google/album'));
         
     | 
| 
       536 
     | 
    
         
            -
            router.get('/google/sites/:id', lazyloadRouteHandler('./routes/google/sites'));
         
     | 
| 
       537 
     | 
    
         
            -
             
     | 
| 
       538 
446 
     | 
    
         
             
            // 每日环球展览 iMuseum
         
     | 
| 
       539 
447 
     | 
    
         
             
            router.get('/imuseum/:city/:type?', lazyloadRouteHandler('./routes/imuseum'));
         
     | 
| 
       540 
448 
     | 
    
         | 
| 
       541 
     | 
    
         
            -
            // AppStore
         
     | 
| 
       542 
     | 
    
         
            -
            router.get('/appstore/update/:country/:id', lazyloadRouteHandler('./routes/apple/appstore/update'));
         
     | 
| 
       543 
     | 
    
         
            -
            router.get('/appstore/price/:country/:type/:id', lazyloadRouteHandler('./routes/apple/appstore/price'));
         
     | 
| 
       544 
     | 
    
         
            -
            router.get('/appstore/iap/:country/:id', lazyloadRouteHandler('./routes/apple/appstore/in-app-purchase'));
         
     | 
| 
       545 
     | 
    
         
            -
            router.get('/appstore/xianmian', lazyloadRouteHandler('./routes/apple/appstore/xianmian'));
         
     | 
| 
       546 
     | 
    
         
            -
            router.get('/appstore/gofans', lazyloadRouteHandler('./routes/apple/appstore/gofans'));
         
     | 
| 
       547 
     | 
    
         
            -
             
     | 
| 
       548 
449 
     | 
    
         
             
            // Hopper
         
     | 
| 
       549 
450 
     | 
    
         
             
            router.get('/hopper/:lowestOnly/:from/:to?', lazyloadRouteHandler('./routes/hopper/index'));
         
     | 
| 
       550 
451 
     | 
    
         | 
| 
         @@ -587,11 +488,12 @@ router.get('/sayhuahuo', lazyloadRouteHandler('./routes/galgame/sayhuahuo')); 
     | 
|
| 
       587 
488 
     | 
    
         
             
            // 终点分享
         
     | 
| 
       588 
489 
     | 
    
         
             
            router.get('/zdfx', lazyloadRouteHandler('./routes/galgame/zdfx'));
         
     | 
| 
       589 
490 
     | 
    
         | 
| 
       590 
     | 
    
         
            -
            // 北京林业大学
         
     | 
| 
       591 
     | 
    
         
            -
            router.get('/bjfu/grs', lazyloadRouteHandler('./routes/universities/bjfu/grs'));
         
     | 
| 
       592 
     | 
    
         
            -
            router.get('/bjfu/kjc', lazyloadRouteHandler('./routes/universities/bjfu/kjc'));
         
     | 
| 
       593 
     | 
    
         
            -
            router.get('/bjfu/jwc/:type', lazyloadRouteHandler('./routes/universities/bjfu/jwc/index'));
         
     | 
| 
       594 
     | 
    
         
            -
            router.get('/bjfu/news/:type', lazyloadRouteHandler('./routes/universities/bjfu/news/index'));
         
     | 
| 
      
 491 
     | 
    
         
            +
            // 北京林业大学 migrated to v2
         
     | 
| 
      
 492 
     | 
    
         
            +
            // router.get('/bjfu/grs', lazyloadRouteHandler('./routes/universities/bjfu/grs'));
         
     | 
| 
      
 493 
     | 
    
         
            +
            // router.get('/bjfu/kjc', lazyloadRouteHandler('./routes/universities/bjfu/kjc'));
         
     | 
| 
      
 494 
     | 
    
         
            +
            // router.get('/bjfu/jwc/:type', lazyloadRouteHandler('./routes/universities/bjfu/jwc/index'));
         
     | 
| 
      
 495 
     | 
    
         
            +
            // router.get('/bjfu/news/:type', lazyloadRouteHandler('./routes/universities/bjfu/news/index'));
         
     | 
| 
      
 496 
     | 
    
         
            +
            // router.get('/bjfu/it/:type', lazyloadRouteHandler('./routes/universities/bjfu/it/index'));
         
     | 
| 
       595 
497 
     | 
    
         | 
| 
       596 
498 
     | 
    
         
             
            // 北京理工大学
         
     | 
| 
       597 
499 
     | 
    
         
             
            router.get('/bit/jwc', lazyloadRouteHandler('./routes/universities/bit/jwc/jwc'));
         
     | 
| 
         @@ -605,7 +507,7 @@ router.get('/dpu/jiaowu/news/:type?', lazyloadRouteHandler('./routes/universitie 
     | 
|
| 
       605 
507 
     | 
    
         
             
            router.get('/dpu/wlfw/news/:type?', lazyloadRouteHandler('./routes/universities/dpu/wlfw/news'));
         
     | 
| 
       606 
508 
     | 
    
         | 
| 
       607 
509 
     | 
    
         
             
            // 大连理工大学
         
     | 
| 
       608 
     | 
    
         
            -
            router.get('/dut/:subsite/:type', lazyloadRouteHandler('./routes/universities/dut/index'));
         
     | 
| 
      
 510 
     | 
    
         
            +
            // router.get('/dut/:subsite/:type', lazyloadRouteHandler('./routes/universities/dut/index'));
         
     | 
| 
       609 
511 
     | 
    
         | 
| 
       610 
512 
     | 
    
         
             
            // 东南大学
         
     | 
| 
       611 
513 
     | 
    
         
             
            router.get('/seu/radio/academic', lazyloadRouteHandler('./routes/universities/seu/radio/academic'));
         
     | 
| 
         @@ -615,10 +517,10 @@ router.get('/seu/cse/:type?', lazyloadRouteHandler('./routes/universities/seu/cs 
     | 
|
| 
       615 
517 
     | 
    
         
             
            // 南京工业大学
         
     | 
| 
       616 
518 
     | 
    
         
             
            router.get('/njtech/jwc', lazyloadRouteHandler('./routes/universities/njtech/jwc'));
         
     | 
| 
       617 
519 
     | 
    
         | 
| 
       618 
     | 
    
         
            -
            // 南京航空航天大学
         
     | 
| 
       619 
     | 
    
         
            -
            router.get('/nuaa/jwc/:type?', lazyloadRouteHandler('./routes/universities/nuaa/jwc/jwc'));
         
     | 
| 
       620 
     | 
    
         
            -
            router.get('/nuaa/cs/:type?', lazyloadRouteHandler('./routes/universities/nuaa/cs/index'));
         
     | 
| 
       621 
     | 
    
         
            -
            router.get('/nuaa/yjsy/:type?', lazyloadRouteHandler('./routes/universities/nuaa/yjsy/yjsy'));
         
     | 
| 
      
 520 
     | 
    
         
            +
            // 南京航空航天大学 migrated to v2
         
     | 
| 
      
 521 
     | 
    
         
            +
            // router.get('/nuaa/jwc/:type/:getDescription?', lazyloadRouteHandler('./routes/universities/nuaa/jwc/jwc'));
         
     | 
| 
      
 522 
     | 
    
         
            +
            // router.get('/nuaa/cs/:type/:getDescription?', lazyloadRouteHandler('./routes/universities/nuaa/cs/index'));
         
     | 
| 
      
 523 
     | 
    
         
            +
            // router.get('/nuaa/yjsy/:type?', lazyloadRouteHandler('./routes/universities/nuaa/yjsy/yjsy'));
         
     | 
| 
       622 
524 
     | 
    
         | 
| 
       623 
525 
     | 
    
         
             
            // 河海大学
         
     | 
| 
       624 
526 
     | 
    
         
             
            router.get('/hhu/libNews', lazyloadRouteHandler('./routes/universities/hhu/libNews'));
         
     | 
| 
         @@ -661,11 +563,12 @@ router.get('/lit/tw/:name?', lazyloadRouteHandler('./routes/universities/lit/tw' 
     | 
|
| 
       661 
563 
     | 
    
         
             
            router.get('/thu/career', lazyloadRouteHandler('./routes/universities/thu/career'));
         
     | 
| 
       662 
564 
     | 
    
         
             
            router.get('/thu/:type', lazyloadRouteHandler('./routes/universities/thu/index'));
         
     | 
| 
       663 
565 
     | 
    
         | 
| 
       664 
     | 
    
         
            -
            // 北京大学
         
     | 
| 
       665 
     | 
    
         
            -
            router.get('/pku/eecs/:type?', lazyloadRouteHandler('./routes/universities/pku/eecs'));
         
     | 
| 
       666 
     | 
    
         
            -
            router.get('/pku/rccp/mzyt', lazyloadRouteHandler('./routes/universities/pku/rccp/mzyt'));
         
     | 
| 
       667 
     | 
    
         
            -
            router.get('/pku/cls/lecture', lazyloadRouteHandler('./routes/universities/pku/cls/lecture'));
         
     | 
| 
       668 
     | 
    
         
            -
            router.get('/pku/bbs/hot', lazyloadRouteHandler('./routes/universities/pku/bbs/hot'));
         
     | 
| 
      
 566 
     | 
    
         
            +
            // 北京大学 migrated to v2
         
     | 
| 
      
 567 
     | 
    
         
            +
            // router.get('/pku/eecs/:type?', lazyloadRouteHandler('./routes/universities/pku/eecs'));
         
     | 
| 
      
 568 
     | 
    
         
            +
            // router.get('/pku/rccp/mzyt', lazyloadRouteHandler('./routes/universities/pku/rccp/mzyt'));
         
     | 
| 
      
 569 
     | 
    
         
            +
            // router.get('/pku/cls/lecture', lazyloadRouteHandler('./routes/universities/pku/cls/lecture'));
         
     | 
| 
      
 570 
     | 
    
         
            +
            // router.get('/pku/bbs/hot', lazyloadRouteHandler('./routes/universities/pku/bbs/hot'));
         
     | 
| 
      
 571 
     | 
    
         
            +
            // router.get('/pku/scc/recruit/:type?', lazyloadRouteHandler('./routes/universities/pku/scc/recruit'));
         
     | 
| 
       669 
572 
     | 
    
         | 
| 
       670 
573 
     | 
    
         
             
            // 上海海事大学
         
     | 
| 
       671 
574 
     | 
    
         
             
            router.get('/shmtu/www/:type', lazyloadRouteHandler('./routes/universities/shmtu/www'));
         
     | 
| 
         @@ -704,9 +607,6 @@ router.get('/ustc/job/:category?', lazyloadRouteHandler('./routes/universities/u 
     | 
|
| 
       704 
607 
     | 
    
         
             
            // UTdallas ISSO
         
     | 
| 
       705 
608 
     | 
    
         
             
            router.get('/utdallas/isso', lazyloadRouteHandler('./routes/universities/utdallas/isso'));
         
     | 
| 
       706 
609 
     | 
    
         | 
| 
       707 
     | 
    
         
            -
            // 南京邮电大学
         
     | 
| 
       708 
     | 
    
         
            -
            router.get('/njupt/jwc/:type?', lazyloadRouteHandler('./routes/universities/njupt/jwc'));
         
     | 
| 
       709 
     | 
    
         
            -
             
     | 
| 
       710 
610 
     | 
    
         
             
            // 南昌航空大学
         
     | 
| 
       711 
611 
     | 
    
         
             
            router.get('/nchu/jwc/:type?', lazyloadRouteHandler('./routes/universities/nchu/jwc'));
         
     | 
| 
       712 
612 
     | 
    
         | 
| 
         @@ -718,9 +618,6 @@ router.get('/cqu/youth/:category', lazyloadRouteHandler('./routes/universities/c 
     | 
|
| 
       718 
618 
     | 
    
         
             
            router.get('/cqu/sci/:category', lazyloadRouteHandler('./routes/universities/cqu/sci/info'));
         
     | 
| 
       719 
619 
     | 
    
         
             
            router.get('/cqu/net/:category', lazyloadRouteHandler('./routes/universities/cqu/net/info'));
         
     | 
| 
       720 
620 
     | 
    
         | 
| 
       721 
     | 
    
         
            -
            // 重庆文理学院
         
     | 
| 
       722 
     | 
    
         
            -
            router.get('/cqwu/news/:type?', lazyloadRouteHandler('./routes/universities/cqwu/news'));
         
     | 
| 
       723 
     | 
    
         
            -
             
     | 
| 
       724 
621 
     | 
    
         
             
            // 南京信息工程大学
         
     | 
| 
       725 
622 
     | 
    
         
             
            router.get('/nuist/bulletin/:category?', lazyloadRouteHandler('./routes/universities/nuist/bulletin'));
         
     | 
| 
       726 
623 
     | 
    
         
             
            router.get('/nuist/jwc/:category?', lazyloadRouteHandler('./routes/universities/nuist/jwc'));
         
     | 
| 
         @@ -801,6 +698,10 @@ router.get('/kmust/job/jobfairs', lazyloadRouteHandler('./routes/universities/km 
     | 
|
| 
       801 
698 
     | 
    
         
             
            router.get('/whu/cs/:type', lazyloadRouteHandler('./routes/universities/whu/cs'));
         
     | 
| 
       802 
699 
     | 
    
         
             
            router.get('/whu/news/:type?', lazyloadRouteHandler('./routes/universities/whu/news'));
         
     | 
| 
       803 
700 
     | 
    
         | 
| 
      
 701 
     | 
    
         
            +
            // 潍坊学院 migrated to v2
         
     | 
| 
      
 702 
     | 
    
         
            +
            // router.get('/wfu/news/:type?', require('./routes/universities/wfu/news'));
         
     | 
| 
      
 703 
     | 
    
         
            +
            // router.get('/wfu/jwc', require('./routes/universities/wfu/jwc'));
         
     | 
| 
      
 704 
     | 
    
         
            +
             
     | 
| 
       804 
705 
     | 
    
         
             
            // 华中科技大学
         
     | 
| 
       805 
706 
     | 
    
         
             
            router.get('/hust/auto/notice/:type?', lazyloadRouteHandler('./routes/universities/hust/aia/notice'));
         
     | 
| 
       806 
707 
     | 
    
         
             
            router.get('/hust/auto/news', lazyloadRouteHandler('./routes/universities/hust/aia/news'));
         
     | 
| 
         @@ -810,15 +711,12 @@ router.get('/hust/aia/notice/:type?', lazyloadRouteHandler('./routes/universitie 
     | 
|
| 
       810 
711 
     | 
    
         
             
            // 井冈山大学
         
     | 
| 
       811 
712 
     | 
    
         
             
            router.get('/jgsu/jwc', lazyloadRouteHandler('./routes/universities/jgsu/jwc'));
         
     | 
| 
       812 
713 
     | 
    
         | 
| 
       813 
     | 
    
         
            -
            //  
     | 
| 
       814 
     | 
    
         
            -
            router.get('/ 
     | 
| 
       815 
     | 
    
         
            -
             
     | 
| 
       816 
     | 
    
         
            -
            //  
     | 
| 
       817 
     | 
    
         
            -
            router.get('/sdu/ 
     | 
| 
       818 
     | 
    
         
            -
            router.get('/sdu/ 
     | 
| 
       819 
     | 
    
         
            -
            router.get('/sdu/cmse/:type?', lazyloadRouteHandler('./routes/universities/sdu/cmse'));
         
     | 
| 
       820 
     | 
    
         
            -
            router.get('/sdu/mech/:type?', lazyloadRouteHandler('./routes/universities/sdu/mech'));
         
     | 
| 
       821 
     | 
    
         
            -
            router.get('/sdu/epe/:type?', lazyloadRouteHandler('./routes/universities/sdu/epe'));
         
     | 
| 
      
 714 
     | 
    
         
            +
            // 山东大学 migrated to v2
         
     | 
| 
      
 715 
     | 
    
         
            +
            // router.get('/sdu/sc/:type?', lazyloadRouteHandler('./routes/universities/sdu/sc'));
         
     | 
| 
      
 716 
     | 
    
         
            +
            // router.get('/sdu/cs/:type?', lazyloadRouteHandler('./routes/universities/sdu/cs'));
         
     | 
| 
      
 717 
     | 
    
         
            +
            // router.get('/sdu/cmse/:type?', lazyloadRouteHandler('./routes/universities/sdu/cmse'));
         
     | 
| 
      
 718 
     | 
    
         
            +
            // router.get('/sdu/mech/:type?', lazyloadRouteHandler('./routes/universities/sdu/mech'));
         
     | 
| 
      
 719 
     | 
    
         
            +
            // router.get('/sdu/epe/:type?', lazyloadRouteHandler('./routes/universities/sdu/epe'));
         
     | 
| 
       822 
720 
     | 
    
         | 
| 
       823 
721 
     | 
    
         
             
            // 中国海洋大学
         
     | 
| 
       824 
722 
     | 
    
         
             
            router.get('/ouc/it/:type?', lazyloadRouteHandler('./routes/universities/ouc/it'));
         
     | 
| 
         @@ -910,17 +808,14 @@ router.get('/xmu/aero/:type', lazyloadRouteHandler('./routes/universities/xmu/ae 
     | 
|
| 
       910 
808 
     | 
    
         
             
            router.get('/ifanr/:channel?', lazyloadRouteHandler('./routes/ifanr/index'));
         
     | 
| 
       911 
809 
     | 
    
         | 
| 
       912 
810 
     | 
    
         
             
            // 果壳网
         
     | 
| 
       913 
     | 
    
         
            -
            router.get('/guokr/scientific', lazyloadRouteHandler('./routes/guokr/scientific'));
         
     | 
| 
       914 
     | 
    
         
            -
            router.get('/guokr/:channel', lazyloadRouteHandler('./routes/guokr/calendar'));
         
     | 
| 
       915 
     | 
    
         
            -
             
     | 
| 
       916 
     | 
    
         
            -
            // 联合早报
         
     | 
| 
       917 
     | 
    
         
            -
            router.get('/zaobao/realtime/:section?', lazyloadRouteHandler('./routes/zaobao/realtime'));
         
     | 
| 
       918 
     | 
    
         
            -
            router.get('/zaobao/znews/:section?', lazyloadRouteHandler('./routes/zaobao/znews'));
         
     | 
| 
       919 
     | 
    
         
            -
            router.get('/zaobao/:type/:section', lazyloadRouteHandler('./routes/zaobao/index'));
         
     | 
| 
       920 
     | 
    
         
            -
            router.get('/zaobao/interactive-graphics', lazyloadRouteHandler('./routes/zaobao/interactive'));
         
     | 
| 
      
 811 
     | 
    
         
            +
            // router.get('/guokr/scientific', lazyloadRouteHandler('./routes/guokr/scientific'));
         
     | 
| 
      
 812 
     | 
    
         
            +
            // router.get('/guokr/:channel', lazyloadRouteHandler('./routes/guokr/calendar'));
         
     | 
| 
       921 
813 
     | 
    
         | 
| 
       922 
     | 
    
         
            -
            //  
     | 
| 
       923 
     | 
    
         
            -
            router.get('/ 
     | 
| 
      
 814 
     | 
    
         
            +
            // 联合早报 已经迁移至v2模板
         
     | 
| 
      
 815 
     | 
    
         
            +
            // router.get('/zaobao/realtime/:section?', require('./routes/zaobao/realtime'));
         
     | 
| 
      
 816 
     | 
    
         
            +
            // router.get('/zaobao/znews/:section?', require('./routes/zaobao/znews'));
         
     | 
| 
      
 817 
     | 
    
         
            +
            // router.get('/zaobao/:type/:section', lazyloadRouteHandler('./routes/zaobao/index'));
         
     | 
| 
      
 818 
     | 
    
         
            +
            // router.get('/zaobao/interactive-graphics', lazyloadRouteHandler('./routes/zaobao/interactive'));
         
     | 
| 
       924 
819 
     | 
    
         | 
| 
       925 
820 
     | 
    
         
             
            // IPSW.me
         
     | 
| 
       926 
821 
     | 
    
         
             
            router.get('/ipsw/index/:ptype/:pname', lazyloadRouteHandler('./routes/ipsw/index'));
         
     | 
| 
         @@ -949,13 +844,13 @@ router.get('/xclient/app/:name', lazyloadRouteHandler('./routes/xclient/app')); 
     | 
|
| 
       949 
844 
     | 
    
         
             
            router.get('/embassy/:country/:city?', lazyloadRouteHandler('./routes/embassy/index'));
         
     | 
| 
       950 
845 
     | 
    
         | 
| 
       951 
846 
     | 
    
         
             
            // 澎湃新闻
         
     | 
| 
       952 
     | 
    
         
            -
            router.get('/thepaper/featured', lazyloadRouteHandler('./routes/thepaper/featured'));
         
     | 
| 
       953 
     | 
    
         
            -
            router.get('/thepaper/channel/:id', lazyloadRouteHandler('./routes/thepaper/channel'));
         
     | 
| 
       954 
     | 
    
         
            -
            router.get('/thepaper/list/:id', lazyloadRouteHandler('./routes/thepaper/list'));
         
     | 
| 
      
 847 
     | 
    
         
            +
            // router.get('/thepaper/featured', lazyloadRouteHandler('./routes/thepaper/featured'));
         
     | 
| 
      
 848 
     | 
    
         
            +
            // router.get('/thepaper/channel/:id', lazyloadRouteHandler('./routes/thepaper/channel'));
         
     | 
| 
      
 849 
     | 
    
         
            +
            // router.get('/thepaper/list/:id', lazyloadRouteHandler('./routes/thepaper/list'));
         
     | 
| 
       955 
850 
     | 
    
         | 
| 
       956 
851 
     | 
    
         
             
            // 澎湃美数课
         
     | 
| 
       957 
     | 
    
         
            -
            router.get('/thepaper/839studio', lazyloadRouteHandler('./routes/thepaper/839studio/studio.js'));
         
     | 
| 
       958 
     | 
    
         
            -
            router.get('/thepaper/839studio/:id', lazyloadRouteHandler('./routes/thepaper/839studio/category.js'));
         
     | 
| 
      
 852 
     | 
    
         
            +
            // router.get('/thepaper/839studio', lazyloadRouteHandler('./routes/thepaper/839studio/studio.js'));
         
     | 
| 
      
 853 
     | 
    
         
            +
            // router.get('/thepaper/839studio/:id', lazyloadRouteHandler('./routes/thepaper/839studio/category.js'));
         
     | 
| 
       959 
854 
     | 
    
         | 
| 
       960 
855 
     | 
    
         
             
            // 电影首发站
         
     | 
| 
       961 
856 
     | 
    
         
             
            router.get('/dysfz', lazyloadRouteHandler('./routes/dysfz/index'));
         
     | 
| 
         @@ -989,9 +884,9 @@ router.get('/nhk/news_web_easy', lazyloadRouteHandler('./routes/nhk/news_web_eas 
     | 
|
| 
       989 
884 
     | 
    
         
             
            // BBC
         
     | 
| 
       990 
885 
     | 
    
         
             
            router.get('/bbc/:site?/:channel?', lazyloadRouteHandler('./routes/bbc/index'));
         
     | 
| 
       991 
886 
     | 
    
         | 
| 
       992 
     | 
    
         
            -
            // Financial Times
         
     | 
| 
       993 
     | 
    
         
            -
            router.get('/ft/myft/:key', lazyloadRouteHandler('./routes/ft/myft'));
         
     | 
| 
       994 
     | 
    
         
            -
            router.get('/ft/:language/:channel?', lazyloadRouteHandler('./routes/ft/channel'));
         
     | 
| 
      
 887 
     | 
    
         
            +
            // Financial Times migrated to v2
         
     | 
| 
      
 888 
     | 
    
         
            +
            // router.get('/ft/myft/:key', lazyloadRouteHandler('./routes/ft/myft'));
         
     | 
| 
      
 889 
     | 
    
         
            +
            // router.get('/ft/:language/:channel?', lazyloadRouteHandler('./routes/ft/channel'));
         
     | 
| 
       995 
890 
     | 
    
         | 
| 
       996 
891 
     | 
    
         
             
            // The Verge
         
     | 
| 
       997 
892 
     | 
    
         
             
            router.get('/verge', lazyloadRouteHandler('./routes/verge/index'));
         
     | 
| 
         @@ -1008,9 +903,9 @@ router.get('/miniapp/article/:category', lazyloadRouteHandler('./routes/miniapp/ 
     | 
|
| 
       1008 
903 
     | 
    
         
             
            router.get('/miniapp/store/newest', lazyloadRouteHandler('./routes/miniapp/store/newest'));
         
     | 
| 
       1009 
904 
     | 
    
         | 
| 
       1010 
905 
     | 
    
         
             
            // 后续
         
     | 
| 
       1011 
     | 
    
         
            -
            router.get('/houxu/live/:id/:timeline?', lazyloadRouteHandler('./routes/houxu/live'));
         
     | 
| 
       1012 
     | 
    
         
            -
            router.get('/houxu/events', lazyloadRouteHandler('./routes/houxu/events'));
         
     | 
| 
       1013 
     | 
    
         
            -
            router.get('/houxu/lives/:type', lazyloadRouteHandler('./routes/houxu/lives'));
         
     | 
| 
      
 906 
     | 
    
         
            +
            // router.get('/houxu/live/:id/:timeline?', lazyloadRouteHandler('./routes/houxu/live'));
         
     | 
| 
      
 907 
     | 
    
         
            +
            // router.get('/houxu/events', lazyloadRouteHandler('./routes/houxu/events'));
         
     | 
| 
      
 908 
     | 
    
         
            +
            // router.get('/houxu/lives/:type', lazyloadRouteHandler('./routes/houxu/lives'));
         
     | 
| 
       1014 
909 
     | 
    
         | 
| 
       1015 
910 
     | 
    
         
             
            // 老司机
         
     | 
| 
       1016 
911 
     | 
    
         
             
            router.get('/laosiji/hot', lazyloadRouteHandler('./routes/laosiji/hot'));
         
     | 
| 
         @@ -1049,9 +944,6 @@ router.get('/xidian/jwc/:category?', lazyloadRouteHandler('./routes/universities 
     | 
|
| 
       1049 
944 
     | 
    
         
             
            // Westore
         
     | 
| 
       1050 
945 
     | 
    
         
             
            router.get('/westore/new', lazyloadRouteHandler('./routes/westore/new'));
         
     | 
| 
       1051 
946 
     | 
    
         | 
| 
       1052 
     | 
    
         
            -
            // 优酷
         
     | 
| 
       1053 
     | 
    
         
            -
            router.get('/youku/channel/:channelId/:embed?', lazyloadRouteHandler('./routes/youku/channel'));
         
     | 
| 
       1054 
     | 
    
         
            -
             
     | 
| 
       1055 
947 
     | 
    
         
             
            // 油价
         
     | 
| 
       1056 
948 
     | 
    
         
             
            router.get('/oilprice/:area', lazyloadRouteHandler('./routes/oilprice'));
         
     | 
| 
       1057 
949 
     | 
    
         | 
| 
         @@ -1120,9 +1012,11 @@ router.get('/eeo/:column?/:category?', lazyloadRouteHandler('./routes/eeo/index' 
     | 
|
| 
       1120 
1012 
     | 
    
         
             
            router.get('/tencentvideo/playlist/:id', lazyloadRouteHandler('./routes/tencent/video/playlist'));
         
     | 
| 
       1121 
1013 
     | 
    
         | 
| 
       1122 
1014 
     | 
    
         
             
            // 看漫画
         
     | 
| 
       1123 
     | 
    
         
            -
            router.get('/manhuagui/comic/:id', lazyloadRouteHandler('./routes/manhuagui/comic'));
         
     | 
| 
       1124 
     | 
    
         
            -
            router.get('/mhgui/comic/:id', lazyloadRouteHandler('./routes/mhgui/comic'));
         
     | 
| 
       1125 
     | 
    
         
            -
            router.get('/twmanhuagui/comic/:id', lazyloadRouteHandler('./routes/twmanhuagui/comic'));
         
     | 
| 
      
 1015 
     | 
    
         
            +
            router.get('/manhuagui/comic/:id/:chapterCnt?', lazyloadRouteHandler('./routes/manhuagui/comic'));
         
     | 
| 
      
 1016 
     | 
    
         
            +
            router.get('/mhgui/comic/:id/:chapterCnt?', lazyloadRouteHandler('./routes/mhgui/comic'));
         
     | 
| 
      
 1017 
     | 
    
         
            +
            router.get('/twmanhuagui/comic/:id/:chapterCnt?', lazyloadRouteHandler('./routes/twmanhuagui/comic'));
         
     | 
| 
      
 1018 
     | 
    
         
            +
            // 拷贝漫画
         
     | 
| 
      
 1019 
     | 
    
         
            +
            router.get('/copymanga/comic/:id/:chapterCnt?', lazyloadRouteHandler('./routes/copymanga/comic'));
         
     | 
| 
       1126 
1020 
     | 
    
         | 
| 
       1127 
1021 
     | 
    
         
             
            // 拷贝漫画
         
     | 
| 
       1128 
1022 
     | 
    
         
             
            router.get('/copymanga/comic/:id', lazyloadRouteHandler('./routes/copymanga/comic'));
         
     | 
| 
         @@ -1188,22 +1082,24 @@ router.get('/nga/post/:tid', lazyloadRouteHandler('./routes/nga/post')); 
     | 
|
| 
       1188 
1082 
     | 
    
         
             
            // Nautilus
         
     | 
| 
       1189 
1083 
     | 
    
         
             
            router.get('/nautilus/topic/:tid', lazyloadRouteHandler('./routes/nautilus/topics'));
         
     | 
| 
       1190 
1084 
     | 
    
         | 
| 
       1191 
     | 
    
         
            -
            // JavBus
         
     | 
| 
       1192 
     | 
    
         
            -
            router.get('/javbus/home', lazyloadRouteHandler('./routes/javbus/home'));
         
     | 
| 
       1193 
     | 
    
         
            -
            router.get('/javbus/genre/:gid', lazyloadRouteHandler('./routes/javbus/genre'));
         
     | 
| 
       1194 
     | 
    
         
            -
            router.get('/javbus/star/:sid', lazyloadRouteHandler('./routes/javbus/star'));
         
     | 
| 
       1195 
     | 
    
         
            -
            router.get('/javbus/series/:seriesid', lazyloadRouteHandler('./routes/javbus/series'));
         
     | 
| 
       1196 
     | 
    
         
            -
            router.get('/javbus/ 
     | 
| 
       1197 
     | 
    
         
            -
            router.get('/javbus/ 
     | 
| 
       1198 
     | 
    
         
            -
            router.get('/javbus/uncensored/ 
     | 
| 
       1199 
     | 
    
         
            -
            router.get('/javbus/uncensored/ 
     | 
| 
       1200 
     | 
    
         
            -
            router.get('/javbus/ 
     | 
| 
       1201 
     | 
    
         
            -
            router.get('/javbus/ 
     | 
| 
       1202 
     | 
    
         
            -
            router.get('/javbus/western/ 
     | 
| 
       1203 
     | 
    
         
            -
            router.get('/javbus/western/ 
     | 
| 
      
 1085 
     | 
    
         
            +
            // JavBus migrated to v2
         
     | 
| 
      
 1086 
     | 
    
         
            +
            // router.get('/javbus/home', lazyloadRouteHandler('./routes/javbus/home'));
         
     | 
| 
      
 1087 
     | 
    
         
            +
            // router.get('/javbus/genre/:gid', lazyloadRouteHandler('./routes/javbus/genre'));
         
     | 
| 
      
 1088 
     | 
    
         
            +
            // router.get('/javbus/star/:sid', lazyloadRouteHandler('./routes/javbus/star'));
         
     | 
| 
      
 1089 
     | 
    
         
            +
            // router.get('/javbus/series/:seriesid', lazyloadRouteHandler('./routes/javbus/series'));
         
     | 
| 
      
 1090 
     | 
    
         
            +
            // router.get('/javbus/studio/:studioid', lazyloadRouteHandler('./routes/javbus/studio'));
         
     | 
| 
      
 1091 
     | 
    
         
            +
            // router.get('/javbus/label/:labelid', lazyloadRouteHandler('./routes/javbus/label'));
         
     | 
| 
      
 1092 
     | 
    
         
            +
            // router.get('/javbus/uncensored/home', lazyloadRouteHandler('./routes/javbus/uncensored/home'));
         
     | 
| 
      
 1093 
     | 
    
         
            +
            // router.get('/javbus/uncensored/genre/:gid', lazyloadRouteHandler('./routes/javbus/uncensored/genre'));
         
     | 
| 
      
 1094 
     | 
    
         
            +
            // router.get('/javbus/uncensored/star/:sid', lazyloadRouteHandler('./routes/javbus/uncensored/star'));
         
     | 
| 
      
 1095 
     | 
    
         
            +
            // router.get('/javbus/uncensored/series/:seriesid', lazyloadRouteHandler('./routes/javbus/uncensored/series'));
         
     | 
| 
      
 1096 
     | 
    
         
            +
            // router.get('/javbus/western/home', lazyloadRouteHandler('./routes/javbus/western/home'));
         
     | 
| 
      
 1097 
     | 
    
         
            +
            // router.get('/javbus/western/genre/:gid', lazyloadRouteHandler('./routes/javbus/western/genre'));
         
     | 
| 
      
 1098 
     | 
    
         
            +
            // router.get('/javbus/western/star/:sid', lazyloadRouteHandler('./routes/javbus/western/star'));
         
     | 
| 
      
 1099 
     | 
    
         
            +
            // router.get('/javbus/western/series/:seriesid', lazyloadRouteHandler('./routes/javbus/western/series'));
         
     | 
| 
       1204 
1100 
     | 
    
         | 
| 
       1205 
1101 
     | 
    
         
             
            // 中山大学
         
     | 
| 
       1206 
     | 
    
         
            -
            router.get('/sysu/ 
     | 
| 
      
 1102 
     | 
    
         
            +
            // router.get('/sysu/cse', lazyloadRouteHandler('./routes/universities/sysu/cse'));
         
     | 
| 
       1207 
1103 
     | 
    
         | 
| 
       1208 
1104 
     | 
    
         
             
            // 動畫瘋
         
     | 
| 
       1209 
1105 
     | 
    
         
             
            router.get('/anigamer/new_anime', lazyloadRouteHandler('./routes/anigamer/new_anime'));
         
     | 
| 
         @@ -1212,8 +1108,8 @@ router.get('/anigamer/anime/:sn', lazyloadRouteHandler('./routes/anigamer/anime' 
     | 
|
| 
       1212 
1108 
     | 
    
         
             
            // Apkpure
         
     | 
| 
       1213 
1109 
     | 
    
         
             
            router.get('/apkpure/versions/:region/:pkg', lazyloadRouteHandler('./routes/apkpure/versions'));
         
     | 
| 
       1214 
1110 
     | 
    
         | 
| 
       1215 
     | 
    
         
            -
            // 豆瓣美女
         
     | 
| 
       1216 
     | 
    
         
            -
            router.get('/dbmv/:category?', lazyloadRouteHandler('./routes/dbmv/index'));
         
     | 
| 
      
 1111 
     | 
    
         
            +
            // 豆瓣美女 migrated to v2
         
     | 
| 
      
 1112 
     | 
    
         
            +
            // router.get('/dbmv/:category?', lazyloadRouteHandler('./routes/dbmv/index'));
         
     | 
| 
       1217 
1113 
     | 
    
         | 
| 
       1218 
1114 
     | 
    
         
             
            // 中国药科大学
         
     | 
| 
       1219 
1115 
     | 
    
         
             
            router.get('/cpu/home', lazyloadRouteHandler('./routes/universities/cpu/home'));
         
     | 
| 
         @@ -1257,12 +1153,12 @@ router.get('/bihu/activaties/:id', lazyloadRouteHandler('./routes/bihu/activatie 
     | 
|
| 
       1257 
1153 
     | 
    
         
             
            router.get('/tingdiantz/nanjing', lazyloadRouteHandler('./routes/tingdiantz/nanjing'));
         
     | 
| 
       1258 
1154 
     | 
    
         
             
            router.get('/tingdiantz/95598/:province/:city/:district?', lazyloadRouteHandler('./routes/tingdiantz/95598'));
         
     | 
| 
       1259 
1155 
     | 
    
         | 
| 
       1260 
     | 
    
         
            -
            // 36kr
         
     | 
| 
       1261 
     | 
    
         
            -
            router.get('/36kr/search/article/:keyword', lazyloadRouteHandler('./routes/36kr/search/article'));
         
     | 
| 
       1262 
     | 
    
         
            -
            router.get('/36kr/newsflashes', lazyloadRouteHandler('./routes/36kr/newsflashes'));
         
     | 
| 
       1263 
     | 
    
         
            -
            router.get('/36kr/news/: 
     | 
| 
       1264 
     | 
    
         
            -
            router.get('/36kr/user/:uid', lazyloadRouteHandler('./routes/36kr/user'));
         
     | 
| 
       1265 
     | 
    
         
            -
            router.get('/36kr/motif/:mid', lazyloadRouteHandler('./routes/36kr/motif'));
         
     | 
| 
      
 1156 
     | 
    
         
            +
            // 36kr migrated to v2
         
     | 
| 
      
 1157 
     | 
    
         
            +
            // router.get('/36kr/search/article/:keyword', lazyloadRouteHandler('./routes/36kr/search/article'));
         
     | 
| 
      
 1158 
     | 
    
         
            +
            // router.get('/36kr/newsflashes', lazyloadRouteHandler('./routes/36kr/newsflashes'));
         
     | 
| 
      
 1159 
     | 
    
         
            +
            // router.get('/36kr/news/:category?', lazyloadRouteHandler('./routes/36kr/news'));
         
     | 
| 
      
 1160 
     | 
    
         
            +
            // router.get('/36kr/user/:uid', lazyloadRouteHandler('./routes/36kr/user'));
         
     | 
| 
      
 1161 
     | 
    
         
            +
            // router.get('/36kr/motif/:mid', lazyloadRouteHandler('./routes/36kr/motif'));
         
     | 
| 
       1266 
1162 
     | 
    
         | 
| 
       1267 
1163 
     | 
    
         
             
            // PMCAFF
         
     | 
| 
       1268 
1164 
     | 
    
         
             
            router.get('/pmcaff/list/:typeid', lazyloadRouteHandler('./routes/pmcaff/list'));
         
     | 
| 
         @@ -1278,15 +1174,12 @@ router.get('/patchwork.kernel.org/comments/:id', lazyloadRouteHandler('./routes/ 
     | 
|
| 
       1278 
1174 
     | 
    
         
             
            // 京东众筹
         
     | 
| 
       1279 
1175 
     | 
    
         
             
            router.get('/jingdong/zhongchou/:type/:status/:sort', lazyloadRouteHandler('./routes/jingdong/zhongchou'));
         
     | 
| 
       1280 
1176 
     | 
    
         | 
| 
       1281 
     | 
    
         
            -
            // 淘宝众筹
         
     | 
| 
       1282 
     | 
    
         
            -
            router.get('/taobao/zhongchou/:type?', lazyloadRouteHandler('./routes/taobao/zhongchou'));
         
     | 
| 
       1283 
     | 
    
         
            -
             
     | 
| 
       1284 
1177 
     | 
    
         
             
            // All Poetry
         
     | 
| 
       1285 
1178 
     | 
    
         
             
            router.get('/allpoetry/:order?', lazyloadRouteHandler('./routes/allpoetry/order'));
         
     | 
| 
       1286 
1179 
     | 
    
         | 
| 
       1287 
1180 
     | 
    
         
             
            // 华尔街见闻
         
     | 
| 
       1288 
     | 
    
         
            -
            router.get('/wallstreetcn/news/global', lazyloadRouteHandler('./routes/wallstreetcn/news'));
         
     | 
| 
       1289 
     | 
    
         
            -
            router.get('/wallstreetcn/live/:channel?', lazyloadRouteHandler('./routes/wallstreetcn/live'));
         
     | 
| 
      
 1181 
     | 
    
         
            +
            // router.get('/wallstreetcn/news/global', lazyloadRouteHandler('./routes/wallstreetcn/news'));
         
     | 
| 
      
 1182 
     | 
    
         
            +
            // router.get('/wallstreetcn/live/:channel?', lazyloadRouteHandler('./routes/wallstreetcn/live'));
         
     | 
| 
       1290 
1183 
     | 
    
         | 
| 
       1291 
1184 
     | 
    
         
             
            // 多抓鱼搜索
         
     | 
| 
       1292 
1185 
     | 
    
         
             
            router.get('/duozhuayu/search/:wd', lazyloadRouteHandler('./routes/duozhuayu/search'));
         
     | 
| 
         @@ -1325,14 +1218,11 @@ router.get('/gov/ndrc/xwdt/:caty?', lazyloadRouteHandler('./routes/gov/ndrc/xwdt 
     | 
|
| 
       1325 
1218 
     | 
    
         
             
            // 中华人民共和国-海关总署
         
     | 
| 
       1326 
1219 
     | 
    
         
             
            router.get('/gov/customs/list/:gchannel', lazyloadRouteHandler('./routes/gov/customs/list'));
         
     | 
| 
       1327 
1220 
     | 
    
         | 
| 
       1328 
     | 
    
         
            -
            //  
     | 
| 
       1329 
     | 
    
         
            -
            router.get('/gov/ 
     | 
| 
       1330 
     | 
    
         
            -
             
     | 
| 
       1331 
     | 
    
         
            -
            // 中华人民共和国教育部
         
     | 
| 
       1332 
     | 
    
         
            -
            router.get('/gov/moe/:type', lazyloadRouteHandler('./routes/gov/moe/moe'));
         
     | 
| 
      
 1221 
     | 
    
         
            +
            // 中华人民共和国教育部 migrated to v2
         
     | 
| 
      
 1222 
     | 
    
         
            +
            // router.get('/gov/moe/:type', lazyloadRouteHandler('./routes/gov/moe/moe'));
         
     | 
| 
       1333 
1223 
     | 
    
         | 
| 
       1334 
1224 
     | 
    
         
             
            // 中华人民共和国外交部
         
     | 
| 
       1335 
     | 
    
         
            -
            router.get('/gov/fmprc/fyrbt', lazyloadRouteHandler('./routes/gov/fmprc/fyrbt'));
         
     | 
| 
      
 1225 
     | 
    
         
            +
            // router.get('/gov/fmprc/fyrbt', lazyloadRouteHandler('./routes/gov/fmprc/fyrbt'));
         
     | 
| 
       1336 
1226 
     | 
    
         | 
| 
       1337 
1227 
     | 
    
         
             
            // 中华人民共和国住房和城乡建设部
         
     | 
| 
       1338 
1228 
     | 
    
         
             
            router.get('/gov/mohurd/policy', lazyloadRouteHandler('./routes/gov/mohurd/policy'));
         
     | 
| 
         @@ -1370,9 +1260,9 @@ router.get('/xiaoheihe/discount/:platform?', lazyloadRouteHandler('./routes/xiao 
     | 
|
| 
       1370 
1260 
     | 
    
         
             
            // 惠誉评级
         
     | 
| 
       1371 
1261 
     | 
    
         
             
            router.get('/fitchratings/site/:type', lazyloadRouteHandler('./routes/fitchratings/site'));
         
     | 
| 
       1372 
1262 
     | 
    
         | 
| 
       1373 
     | 
    
         
            -
            // 移动支付
         
     | 
| 
       1374 
     | 
    
         
            -
            router.get('/mpaypass/news', lazyloadRouteHandler('./routes/mpaypass/news'));
         
     | 
| 
       1375 
     | 
    
         
            -
            router.get('/mpaypass/main/:type?', lazyloadRouteHandler('./routes/mpaypass/main'));
         
     | 
| 
      
 1263 
     | 
    
         
            +
            // 移动支付 migrated to v2
         
     | 
| 
      
 1264 
     | 
    
         
            +
            // router.get('/mpaypass/news', lazyloadRouteHandler('./routes/mpaypass/news'));
         
     | 
| 
      
 1265 
     | 
    
         
            +
            // router.get('/mpaypass/main/:type?', lazyloadRouteHandler('./routes/mpaypass/main'));
         
     | 
| 
       1376 
1266 
     | 
    
         | 
| 
       1377 
1267 
     | 
    
         
             
            // 新浪科技探索
         
     | 
| 
       1378 
1268 
     | 
    
         
             
            router.get('/sina/discovery/:type', lazyloadRouteHandler('./routes/sina/discovery'));
         
     | 
| 
         @@ -1410,9 +1300,6 @@ router.get('/meipai/user/:uid', lazyloadRouteHandler('./routes/meipai/user')); 
     | 
|
| 
       1410 
1300 
     | 
    
         
             
            // 多知网
         
     | 
| 
       1411 
1301 
     | 
    
         
             
            router.get('/duozhi', lazyloadRouteHandler('./routes/duozhi'));
         
     | 
| 
       1412 
1302 
     | 
    
         | 
| 
       1413 
     | 
    
         
            -
            // Docker Hub
         
     | 
| 
       1414 
     | 
    
         
            -
            router.get('/dockerhub/build/:owner/:image/:tag?', lazyloadRouteHandler('./routes/dockerhub/build'));
         
     | 
| 
       1415 
     | 
    
         
            -
             
     | 
| 
       1416 
1303 
     | 
    
         
             
            // 人人都是产品经理
         
     | 
| 
       1417 
1304 
     | 
    
         
             
            router.get('/woshipm/popular', lazyloadRouteHandler('./routes/woshipm/popular'));
         
     | 
| 
       1418 
1305 
     | 
    
         
             
            router.get('/woshipm/wen', lazyloadRouteHandler('./routes/woshipm/wen'));
         
     | 
| 
         @@ -1423,10 +1310,6 @@ router.get('/woshipm/latest', lazyloadRouteHandler('./routes/woshipm/latest')); 
     | 
|
| 
       1423 
1310 
     | 
    
         
             
            // 高清电台
         
     | 
| 
       1424 
1311 
     | 
    
         
             
            router.get('/gaoqing/latest', lazyloadRouteHandler('./routes/gaoqing/latest'));
         
     | 
| 
       1425 
1312 
     | 
    
         | 
| 
       1426 
     | 
    
         
            -
            // 轻小说文库
         
     | 
| 
       1427 
     | 
    
         
            -
            router.get('/wenku8/chapter/:id', lazyloadRouteHandler('./routes/wenku8/chapter'));
         
     | 
| 
       1428 
     | 
    
         
            -
            router.get('/wenku8/volume/:id', lazyloadRouteHandler('./routes/wenku8/volume'));
         
     | 
| 
       1429 
     | 
    
         
            -
             
     | 
| 
       1430 
1313 
     | 
    
         
             
            // 鲸跃汽车
         
     | 
| 
       1431 
1314 
     | 
    
         
             
            router.get('/whalegogo/home', lazyloadRouteHandler('./routes/whalegogo/home'));
         
     | 
| 
       1432 
1315 
     | 
    
         
             
            router.get('/whalegogo/portal/:type_id/:tagid?', lazyloadRouteHandler('./routes/whalegogo/portal'));
         
     | 
| 
         @@ -1437,28 +1320,24 @@ router.get('/aisixiang/ranking/:type?/:range?', lazyloadRouteHandler('./routes/a 
     | 
|
| 
       1437 
1320 
     | 
    
         
             
            router.get('/aisixiang/thinktank/:name/:type?', lazyloadRouteHandler('./routes/aisixiang/thinktank'));
         
     | 
| 
       1438 
1321 
     | 
    
         | 
| 
       1439 
1322 
     | 
    
         
             
            // Hacker News
         
     | 
| 
       1440 
     | 
    
         
            -
            router.get('/hackernews/:section/:type?', lazyloadRouteHandler('./routes/hackernews/story'));
         
     | 
| 
      
 1323 
     | 
    
         
            +
            // router.get('/hackernews/:section/:type?', lazyloadRouteHandler('./routes/hackernews/story'));
         
     | 
| 
       1441 
1324 
     | 
    
         | 
| 
       1442 
1325 
     | 
    
         
             
            // LeetCode
         
     | 
| 
       1443 
1326 
     | 
    
         
             
            router.get('/leetcode/articles', lazyloadRouteHandler('./routes/leetcode/articles'));
         
     | 
| 
       1444 
1327 
     | 
    
         
             
            router.get('/leetcode/submission/us/:user', lazyloadRouteHandler('./routes/leetcode/check-us'));
         
     | 
| 
       1445 
1328 
     | 
    
         
             
            router.get('/leetcode/submission/cn/:user', lazyloadRouteHandler('./routes/leetcode/check-cn'));
         
     | 
| 
       1446 
1329 
     | 
    
         | 
| 
       1447 
     | 
    
         
            -
            // segmentfault
         
     | 
| 
       1448 
     | 
    
         
            -
            router.get('/segmentfault/channel/:name', lazyloadRouteHandler('./routes/segmentfault/channel'));
         
     | 
| 
       1449 
     | 
    
         
            -
            router.get('/segmentfault/user/:name', lazyloadRouteHandler('./routes/segmentfault/user'));
         
     | 
| 
       1450 
     | 
    
         
            -
             
     | 
| 
       1451 
1330 
     | 
    
         
             
            // 虎扑
         
     | 
| 
       1452 
     | 
    
         
            -
            router.get('/hupu/bxj/:id/:order?', lazyloadRouteHandler('./routes/hupu/bbs'));
         
     | 
| 
       1453 
     | 
    
         
            -
            router.get('/hupu/bbs/:id/:order?', lazyloadRouteHandler('./routes/hupu/bbs'));
         
     | 
| 
       1454 
     | 
    
         
            -
            router.get('/hupu/all/:caty', lazyloadRouteHandler('./routes/hupu/all'));
         
     | 
| 
       1455 
     | 
    
         
            -
            router.get('/hupu/dept/:dept', lazyloadRouteHandler('./routes/hupu/dept'));
         
     | 
| 
      
 1331 
     | 
    
         
            +
            // router.get('/hupu/bxj/:id/:order?', lazyloadRouteHandler('./routes/hupu/bbs'));
         
     | 
| 
      
 1332 
     | 
    
         
            +
            // router.get('/hupu/bbs/:id/:order?', lazyloadRouteHandler('./routes/hupu/bbs'));
         
     | 
| 
      
 1333 
     | 
    
         
            +
            // router.get('/hupu/all/:caty', lazyloadRouteHandler('./routes/hupu/all'));
         
     | 
| 
      
 1334 
     | 
    
         
            +
            // router.get('/hupu/dept/:dept', lazyloadRouteHandler('./routes/hupu/dept'));
         
     | 
| 
       1456 
1335 
     | 
    
         | 
| 
       1457 
     | 
    
         
            -
            // 牛客网
         
     | 
| 
       1458 
     | 
    
         
            -
            router.get('/nowcoder/discuss/:type/:order', lazyloadRouteHandler('./routes/nowcoder/discuss'));
         
     | 
| 
       1459 
     | 
    
         
            -
            router.get('/nowcoder/schedule/:propertyId?/:typeId?', lazyloadRouteHandler('./routes/nowcoder/schedule'));
         
     | 
| 
       1460 
     | 
    
         
            -
            router.get('/nowcoder/recommend', lazyloadRouteHandler('./routes/nowcoder/recommend'));
         
     | 
| 
       1461 
     | 
    
         
            -
            router.get('/nowcoder/jobcenter/:recruitType?/:city?/:type?/:order?/:latest?', lazyloadRouteHandler('./routes/nowcoder/jobcenter'));
         
     | 
| 
      
 1336 
     | 
    
         
            +
            // 牛客网 migrated to v2
         
     | 
| 
      
 1337 
     | 
    
         
            +
            // router.get('/nowcoder/discuss/:type/:order', lazyloadRouteHandler('./routes/nowcoder/discuss'));
         
     | 
| 
      
 1338 
     | 
    
         
            +
            // router.get('/nowcoder/schedule/:propertyId?/:typeId?', lazyloadRouteHandler('./routes/nowcoder/schedule'));
         
     | 
| 
      
 1339 
     | 
    
         
            +
            // router.get('/nowcoder/recommend', lazyloadRouteHandler('./routes/nowcoder/recommend'));
         
     | 
| 
      
 1340 
     | 
    
         
            +
            // router.get('/nowcoder/jobcenter/:recruitType?/:city?/:type?/:order?/:latest?', lazyloadRouteHandler('./routes/nowcoder/jobcenter'));
         
     | 
| 
       1462 
1341 
     | 
    
         | 
| 
       1463 
1342 
     | 
    
         
             
            // Xiaomi.eu
         
     | 
| 
       1464 
1343 
     | 
    
         
             
            router.get('/xiaomieu/releases', lazyloadRouteHandler('./routes/xiaomieu/releases'));
         
     | 
| 
         @@ -1487,9 +1366,6 @@ router.get('/ui-cn/user/:id', lazyloadRouteHandler('./routes/ui-cn/user')); 
     | 
|
| 
       1487 
1366 
     | 
    
         
             
            // Dcard
         
     | 
| 
       1488 
1367 
     | 
    
         
             
            router.get('/dcard/:section/:type?', lazyloadRouteHandler('./routes/dcard/section'));
         
     | 
| 
       1489 
1368 
     | 
    
         | 
| 
       1490 
     | 
    
         
            -
            // 12306
         
     | 
| 
       1491 
     | 
    
         
            -
            router.get('/12306/zxdt/:id?', lazyloadRouteHandler('./routes/12306/zxdt'));
         
     | 
| 
       1492 
     | 
    
         
            -
             
     | 
| 
       1493 
1369 
     | 
    
         
             
            // 北京天文馆每日一图
         
     | 
| 
       1494 
1370 
     | 
    
         
             
            router.get('/bjp/apod', lazyloadRouteHandler('./routes/bjp/apod'));
         
     | 
| 
       1495 
1371 
     | 
    
         | 
| 
         @@ -1561,22 +1437,22 @@ router.get('/dianping/user/:id?', lazyloadRouteHandler('./routes/dianping/user') 
     | 
|
| 
       1561 
1437 
     | 
    
         
             
            router.get('/banyuetan/byt/:time?', lazyloadRouteHandler('./routes/banyuetan/byt'));
         
     | 
| 
       1562 
1438 
     | 
    
         
             
            router.get('/banyuetan/:name', lazyloadRouteHandler('./routes/banyuetan'));
         
     | 
| 
       1563 
1439 
     | 
    
         | 
| 
       1564 
     | 
    
         
            -
            //  
     | 
| 
       1565 
     | 
    
         
            -
            router.get('/people/opinion/:id', lazyloadRouteHandler('./routes/people/opinion'));
         
     | 
| 
       1566 
     | 
    
         
            -
            router.get('/people/env/:id', lazyloadRouteHandler('./routes/people/env'));
         
     | 
| 
       1567 
     | 
    
         
            -
            router.get('/people/xjpjh/:keyword?/:year?', lazyloadRouteHandler('./routes/people/xjpjh'));
         
     | 
| 
       1568 
     | 
    
         
            -
            router.get('/people/cpc/24h', lazyloadRouteHandler('./routes/people/cpc/24h'));
         
     | 
| 
      
 1440 
     | 
    
         
            +
            // 人民网
         
     | 
| 
      
 1441 
     | 
    
         
            +
            // router.get('/people/opinion/:id', lazyloadRouteHandler('./routes/people/opinion'));
         
     | 
| 
      
 1442 
     | 
    
         
            +
            // router.get('/people/env/:id', lazyloadRouteHandler('./routes/people/env'));
         
     | 
| 
      
 1443 
     | 
    
         
            +
            // router.get('/people/xjpjh/:keyword?/:year?', lazyloadRouteHandler('./routes/people/xjpjh'));
         
     | 
| 
      
 1444 
     | 
    
         
            +
            // router.get('/people/cpc/24h', lazyloadRouteHandler('./routes/people/cpc/24h'));
         
     | 
| 
       1569 
1445 
     | 
    
         | 
| 
       1570 
     | 
    
         
            -
            // 北极星电力网
         
     | 
| 
       1571 
     | 
    
         
            -
            router.get('/bjx/huanbao', lazyloadRouteHandler('./routes/bjx/huanbao'));
         
     | 
| 
      
 1446 
     | 
    
         
            +
            // 北极星电力网 migrated to v2
         
     | 
| 
      
 1447 
     | 
    
         
            +
            // router.get('/bjx/huanbao', lazyloadRouteHandler('./routes/bjx/huanbao'));
         
     | 
| 
       1572 
1448 
     | 
    
         | 
| 
       1573 
1449 
     | 
    
         
             
            // gamersky
         
     | 
| 
       1574 
1450 
     | 
    
         
             
            router.get('/gamersky/news', lazyloadRouteHandler('./routes/gamersky/news'));
         
     | 
| 
       1575 
1451 
     | 
    
         
             
            router.get('/gamersky/ent/:category', lazyloadRouteHandler('./routes/gamersky/ent'));
         
     | 
| 
       1576 
1452 
     | 
    
         | 
| 
       1577 
1453 
     | 
    
         
             
            // 游研社
         
     | 
| 
       1578 
     | 
    
         
            -
            router.get('/yystv/category/:category', lazyloadRouteHandler('./routes/yystv/category'));
         
     | 
| 
       1579 
     | 
    
         
            -
            router.get('/yystv/docs', lazyloadRouteHandler('./routes/yystv/docs'));
         
     | 
| 
      
 1454 
     | 
    
         
            +
            // router.get('/yystv/category/:category', lazyloadRouteHandler('./routes/yystv/category'));
         
     | 
| 
      
 1455 
     | 
    
         
            +
            // router.get('/yystv/docs', lazyloadRouteHandler('./routes/yystv/docs'));
         
     | 
| 
       1580 
1456 
     | 
    
         | 
| 
       1581 
1457 
     | 
    
         
             
            // konami
         
     | 
| 
       1582 
1458 
     | 
    
         
             
            router.get('/konami/pesmobile/:lang?/:os?', lazyloadRouteHandler('./routes/konami/pesmobile'));
         
     | 
| 
         @@ -1589,13 +1465,13 @@ router.get('/psnine/game', lazyloadRouteHandler('./routes/psnine/game')); 
     | 
|
| 
       1589 
1465 
     | 
    
         
             
            router.get('/psnine/news/:order?', lazyloadRouteHandler('./routes/psnine/news'));
         
     | 
| 
       1590 
1466 
     | 
    
         
             
            router.get('/psnine/node/:id?/:order?', lazyloadRouteHandler('./routes/psnine/node'));
         
     | 
| 
       1591 
1467 
     | 
    
         | 
| 
       1592 
     | 
    
         
            -
            // 浙江大学
         
     | 
| 
       1593 
     | 
    
         
            -
            router.get('/zju/list/:type', lazyloadRouteHandler('./routes/universities/zju/list'));
         
     | 
| 
       1594 
     | 
    
         
            -
            router.get('/zju/physics/:type', lazyloadRouteHandler('./routes/universities/zju/physics'));
         
     | 
| 
       1595 
     | 
    
         
            -
            router.get('/zju/grs/:type', lazyloadRouteHandler('./routes/universities/zju/grs'));
         
     | 
| 
       1596 
     | 
    
         
            -
            router.get('/zju/career/:type', lazyloadRouteHandler('./routes/universities/zju/career'));
         
     | 
| 
       1597 
     | 
    
         
            -
            router.get('/zju/cst/:type', lazyloadRouteHandler('./routes/universities/zju/cst'));
         
     | 
| 
       1598 
     | 
    
         
            -
            router.get('/zju/cst/custom/:id', lazyloadRouteHandler('./routes/universities/zju/cst/custom'));
         
     | 
| 
      
 1468 
     | 
    
         
            +
            // 浙江大学 migrated to v2
         
     | 
| 
      
 1469 
     | 
    
         
            +
            // router.get('/zju/list/:type', lazyloadRouteHandler('./routes/universities/zju/list'));
         
     | 
| 
      
 1470 
     | 
    
         
            +
            // router.get('/zju/physics/:type', lazyloadRouteHandler('./routes/universities/zju/physics'));
         
     | 
| 
      
 1471 
     | 
    
         
            +
            // router.get('/zju/grs/:type', lazyloadRouteHandler('./routes/universities/zju/grs'));
         
     | 
| 
      
 1472 
     | 
    
         
            +
            // router.get('/zju/career/:type', lazyloadRouteHandler('./routes/universities/zju/career'));
         
     | 
| 
      
 1473 
     | 
    
         
            +
            // router.get('/zju/cst/:type', lazyloadRouteHandler('./routes/universities/zju/cst'));
         
     | 
| 
      
 1474 
     | 
    
         
            +
            // router.get('/zju/cst/custom/:id', lazyloadRouteHandler('./routes/universities/zju/cst/custom'));
         
     | 
| 
       1599 
1475 
     | 
    
         | 
| 
       1600 
1476 
     | 
    
         
             
            // 浙江大学城市学院
         
     | 
| 
       1601 
1477 
     | 
    
         
             
            router.get('/zucc/news/latest', lazyloadRouteHandler('./routes/universities/zucc/news'));
         
     | 
| 
         @@ -1611,12 +1487,9 @@ router.get('/infoq/topic/:id', lazyloadRouteHandler('./routes/infoq/topic')); 
     | 
|
| 
       1611 
1487 
     | 
    
         
             
            // checkee
         
     | 
| 
       1612 
1488 
     | 
    
         
             
            router.get('/checkee/:dispdate', lazyloadRouteHandler('./routes/checkee/index'));
         
     | 
| 
       1613 
1489 
     | 
    
         | 
| 
       1614 
     | 
    
         
            -
            //  
     | 
| 
       1615 
     | 
    
         
            -
            router.get('/ 
     | 
| 
       1616 
     | 
    
         
            -
             
     | 
| 
       1617 
     | 
    
         
            -
            // ZAKER
         
     | 
| 
       1618 
     | 
    
         
            -
            router.get('/zaker/:type/:id', lazyloadRouteHandler('./routes/zaker/source'));
         
     | 
| 
       1619 
     | 
    
         
            -
            router.get('/zaker/focusread', lazyloadRouteHandler('./routes/zaker/focusread'));
         
     | 
| 
      
 1490 
     | 
    
         
            +
            // ZAKER migrated to v2
         
     | 
| 
      
 1491 
     | 
    
         
            +
            // router.get('/zaker/:type/:id', lazyloadRouteHandler('./routes/zaker/source'));
         
     | 
| 
      
 1492 
     | 
    
         
            +
            // router.get('/zaker/focusread', lazyloadRouteHandler('./routes/zaker/focusread'));
         
     | 
| 
       1620 
1493 
     | 
    
         | 
| 
       1621 
1494 
     | 
    
         
             
            // Matters
         
     | 
| 
       1622 
1495 
     | 
    
         
             
            router.get('/matters/latest/:type?', lazyloadRouteHandler('./routes/matters/latest'));
         
     | 
| 
         @@ -1685,10 +1558,10 @@ router.get('/nintendo/news/china', lazyloadRouteHandler('./routes/nintendo/news_ 
     | 
|
| 
       1685 
1558 
     | 
    
         
             
            router.get('/nintendo/direct', lazyloadRouteHandler('./routes/nintendo/direct'));
         
     | 
| 
       1686 
1559 
     | 
    
         
             
            router.get('/nintendo/system-update', lazyloadRouteHandler('./routes/nintendo/system-update'));
         
     | 
| 
       1687 
1560 
     | 
    
         | 
| 
       1688 
     | 
    
         
            -
            // 世界卫生组织
         
     | 
| 
       1689 
     | 
    
         
            -
            router.get('/who/news-room/: 
     | 
| 
       1690 
     | 
    
         
            -
            router.get('/who/speeches/:language?', lazyloadRouteHandler('./routes/who/speeches'));
         
     | 
| 
       1691 
     | 
    
         
            -
            router.get('/who/news/:language?', lazyloadRouteHandler('./routes/who/news'));
         
     | 
| 
      
 1561 
     | 
    
         
            +
            // 世界卫生组织 migrated to v2
         
     | 
| 
      
 1562 
     | 
    
         
            +
            // router.get('/who/news-room/:category?/:language?', lazyloadRouteHandler('./routes/who/news-room'));
         
     | 
| 
      
 1563 
     | 
    
         
            +
            // router.get('/who/speeches/:language?', lazyloadRouteHandler('./routes/who/speeches'));
         
     | 
| 
      
 1564 
     | 
    
         
            +
            // router.get('/who/news/:language?', lazyloadRouteHandler('./routes/who/news'));
         
     | 
| 
       1692 
1565 
     | 
    
         | 
| 
       1693 
1566 
     | 
    
         
             
            // 福利资源-met.red
         
     | 
| 
       1694 
1567 
     | 
    
         
             
            router.get('/metred/fuli', lazyloadRouteHandler('./routes/metred/fuli'));
         
     | 
| 
         @@ -1748,15 +1621,15 @@ router.get('/zfrontier/postlist/:type', lazyloadRouteHandler('./routes/zfrontier 
     | 
|
| 
       1748 
1621 
     | 
    
         
             
            router.get('/zfrontier/board/:boardId', lazyloadRouteHandler('./routes/zfrontier/board_postlist'));
         
     | 
| 
       1749 
1622 
     | 
    
         | 
| 
       1750 
1623 
     | 
    
         
             
            // 观察者网
         
     | 
| 
       1751 
     | 
    
         
            -
            router.get('/guancha/headline', lazyloadRouteHandler('./routes/guancha/headline'));
         
     | 
| 
       1752 
     | 
    
         
            -
            router.get('/guancha/topic/:id/:order?', lazyloadRouteHandler('./routes/guancha/topic'));
         
     | 
| 
       1753 
     | 
    
         
            -
            router.get('/guancha/member/:caty?', lazyloadRouteHandler('./routes/guancha/member'));
         
     | 
| 
       1754 
     | 
    
         
            -
            router.get('/guancha/personalpage/:uid', lazyloadRouteHandler('./routes/guancha/personalpage'));
         
     | 
| 
       1755 
     | 
    
         
            -
            router.get('/guancha/:caty?', lazyloadRouteHandler('./routes/guancha/index'));
         
     | 
| 
      
 1624 
     | 
    
         
            +
            // router.get('/guancha/headline', lazyloadRouteHandler('./routes/guancha/headline'));
         
     | 
| 
      
 1625 
     | 
    
         
            +
            // router.get('/guancha/topic/:id/:order?', lazyloadRouteHandler('./routes/guancha/topic'));
         
     | 
| 
      
 1626 
     | 
    
         
            +
            // router.get('/guancha/member/:caty?', lazyloadRouteHandler('./routes/guancha/member'));
         
     | 
| 
      
 1627 
     | 
    
         
            +
            // router.get('/guancha/personalpage/:uid', lazyloadRouteHandler('./routes/guancha/personalpage'));
         
     | 
| 
      
 1628 
     | 
    
         
            +
            // router.get('/guancha/:caty?', lazyloadRouteHandler('./routes/guancha/index'));
         
     | 
| 
       1756 
1629 
     | 
    
         | 
| 
       1757 
     | 
    
         
            -
            router.get('/guanchazhe/topic/:id/:order?', lazyloadRouteHandler('./routes/guancha/topic'));
         
     | 
| 
       1758 
     | 
    
         
            -
            router.get('/guanchazhe/personalpage/:uid', lazyloadRouteHandler('./routes/guancha/personalpage'));
         
     | 
| 
       1759 
     | 
    
         
            -
            router.get('/guanchazhe/index/:caty?', lazyloadRouteHandler('./routes/guancha/index'));
         
     | 
| 
      
 1630 
     | 
    
         
            +
            // router.get('/guanchazhe/topic/:id/:order?', lazyloadRouteHandler('./routes/guancha/topic'));
         
     | 
| 
      
 1631 
     | 
    
         
            +
            // router.get('/guanchazhe/personalpage/:uid', lazyloadRouteHandler('./routes/guancha/personalpage'));
         
     | 
| 
      
 1632 
     | 
    
         
            +
            // router.get('/guanchazhe/index/:caty?', lazyloadRouteHandler('./routes/guancha/index'));
         
     | 
| 
       1760 
1633 
     | 
    
         | 
| 
       1761 
1634 
     | 
    
         
             
            // Hpoi 手办维基
         
     | 
| 
       1762 
1635 
     | 
    
         
             
            router.get('/hpoi/info/:type?', lazyloadRouteHandler('./routes/hpoi/info'));
         
     | 
| 
         @@ -1820,10 +1693,11 @@ router.get('/aqicn/:city/:pollution?', lazyloadRouteHandler('./routes/aqicn/inde 
     | 
|
| 
       1820 
1693 
     | 
    
         
             
            // 猫眼电影
         
     | 
| 
       1821 
1694 
     | 
    
         
             
            router.get('/maoyan/hot', lazyloadRouteHandler('./routes/maoyan/hot'));
         
     | 
| 
       1822 
1695 
     | 
    
         
             
            router.get('/maoyan/upcoming', lazyloadRouteHandler('./routes/maoyan/upcoming'));
         
     | 
| 
      
 1696 
     | 
    
         
            +
            router.get('/maoyan/hotComplete/:orderby?/:ascOrDesc?/:top?', lazyloadRouteHandler('./routes/maoyan/hotComplete'));
         
     | 
| 
       1823 
1697 
     | 
    
         | 
| 
       1824 
1698 
     | 
    
         
             
            // cnBeta
         
     | 
| 
       1825 
     | 
    
         
            -
            router.get('/cnbeta', lazyloadRouteHandler('./routes/cnbeta/home'));
         
     | 
| 
       1826 
     | 
    
         
            -
            router.get('/cnbeta/topic/:topic_id', lazyloadRouteHandler('./routes/cnbeta/topic'));
         
     | 
| 
      
 1699 
     | 
    
         
            +
            // router.get('/cnbeta', lazyloadRouteHandler('./routes/cnbeta/home'));
         
     | 
| 
      
 1700 
     | 
    
         
            +
            // router.get('/cnbeta/topic/:topic_id', lazyloadRouteHandler('./routes/cnbeta/topic'));
         
     | 
| 
       1827 
1701 
     | 
    
         | 
| 
       1828 
1702 
     | 
    
         
             
            // 国家退伍士兵信息
         
     | 
| 
       1829 
1703 
     | 
    
         
             
            router.get('/gov/veterans/:type', lazyloadRouteHandler('./routes/gov/veterans/china'));
         
     | 
| 
         @@ -1835,7 +1709,7 @@ router.get('/gov/veterans/hebei/:type', lazyloadRouteHandler('./routes/gov/veter 
     | 
|
| 
       1835 
1709 
     | 
    
         
             
            router.get('/dilbert/strip', lazyloadRouteHandler('./routes/dilbert/strip'));
         
     | 
| 
       1836 
1710 
     | 
    
         | 
| 
       1837 
1711 
     | 
    
         
             
            // 游戏打折情报
         
     | 
| 
       1838 
     | 
    
         
            -
            router.get('/yxdzqb/:type', lazyloadRouteHandler('./routes/yxdzqb'));
         
     | 
| 
      
 1712 
     | 
    
         
            +
            // router.get('/yxdzqb/:type', lazyloadRouteHandler('./routes/yxdzqb'));
         
     | 
| 
       1839 
1713 
     | 
    
         | 
| 
       1840 
1714 
     | 
    
         
             
            // 怪物猎人
         
     | 
| 
       1841 
1715 
     | 
    
         
             
            router.get('/monsterhunter/update', lazyloadRouteHandler('./routes/mhw/update'));
         
     | 
| 
         @@ -1851,13 +1725,14 @@ router.get('/polimi/news/:language?', lazyloadRouteHandler('./routes/polimi/news 
     | 
|
| 
       1851 
1725 
     | 
    
         
             
            // dekudeals
         
     | 
| 
       1852 
1726 
     | 
    
         
             
            router.get('/dekudeals/:type', lazyloadRouteHandler('./routes/dekudeals'));
         
     | 
| 
       1853 
1727 
     | 
    
         | 
| 
       1854 
     | 
    
         
            -
            // 直播吧
         
     | 
| 
       1855 
     | 
    
         
            -
            router.get('/zhibo8/forum/:id', lazyloadRouteHandler('./routes/zhibo8/forum'));
         
     | 
| 
       1856 
     | 
    
         
            -
            router.get('/zhibo8/post/:id', lazyloadRouteHandler('./routes/zhibo8/post'));
         
     | 
| 
       1857 
     | 
    
         
            -
            router.get('/zhibo8/more/: 
     | 
| 
      
 1728 
     | 
    
         
            +
            // 直播吧 migrated to v2
         
     | 
| 
      
 1729 
     | 
    
         
            +
            // router.get('/zhibo8/forum/:id', lazyloadRouteHandler('./routes/zhibo8/forum'));
         
     | 
| 
      
 1730 
     | 
    
         
            +
            // router.get('/zhibo8/post/:id', lazyloadRouteHandler('./routes/zhibo8/post'));
         
     | 
| 
      
 1731 
     | 
    
         
            +
            // router.get('/zhibo8/more/:category?', lazyloadRouteHandler('./routes/zhibo8/more'));
         
     | 
| 
       1858 
1732 
     | 
    
         | 
| 
       1859 
     | 
    
         
            -
            //  
     | 
| 
       1860 
     | 
    
         
            -
            router.get('/eastday/sh',  
     | 
| 
      
 1733 
     | 
    
         
            +
            // 东方网 migrated to v2
         
     | 
| 
      
 1734 
     | 
    
         
            +
            // router.get('/eastday/sh', require('./routes/eastday/sh'));
         
     | 
| 
      
 1735 
     | 
    
         
            +
            // router.get('/eastday/24/:category?', require('./routes/eastday/24'));
         
     | 
| 
       1861 
1736 
     | 
    
         | 
| 
       1862 
1737 
     | 
    
         
             
            // Metacritic
         
     | 
| 
       1863 
1738 
     | 
    
         
             
            router.get('/metacritic/release/:platform/:type/:sort?', lazyloadRouteHandler('./routes/metacritic/release'));
         
     | 
| 
         @@ -1878,14 +1753,16 @@ router.get('/aiyanxishe/:id/:sort?', lazyloadRouteHandler('./routes/aiyanxishe/h 
     | 
|
| 
       1878 
1753 
     | 
    
         
             
            router.get('/huodongxing/explore', lazyloadRouteHandler('./routes/hdx/explore'));
         
     | 
| 
       1879 
1754 
     | 
    
         | 
| 
       1880 
1755 
     | 
    
         
             
            // 飞客茶馆优惠信息
         
     | 
| 
       1881 
     | 
    
         
            -
            router.get('/ 
     | 
| 
       1882 
     | 
    
         
            -
            router.get('/ 
     | 
| 
      
 1756 
     | 
    
         
            +
            // router.get('/flyert/preferential', lazyloadRouteHandler('./routes/flyert/preferential'));
         
     | 
| 
      
 1757 
     | 
    
         
            +
            // router.get('/flyert/creditcard/:bank', lazyloadRouteHandler('./routes/flyert/creditcard'));
         
     | 
| 
      
 1758 
     | 
    
         
            +
            // router.get('/flyertea/preferential', lazyloadRouteHandler('./routes/flyert/preferential'));
         
     | 
| 
      
 1759 
     | 
    
         
            +
            // router.get('/flyertea/creditcard/:bank', lazyloadRouteHandler('./routes/flyert/creditcard'));
         
     | 
| 
       1883 
1760 
     | 
    
         | 
| 
       1884 
1761 
     | 
    
         
             
            // 中国广播
         
     | 
| 
       1885 
1762 
     | 
    
         
             
            router.get('/radio/:channelname/:name', lazyloadRouteHandler('./routes/radio/radio'));
         
     | 
| 
       1886 
1763 
     | 
    
         | 
| 
       1887 
1764 
     | 
    
         
             
            // TOPYS
         
     | 
| 
       1888 
     | 
    
         
            -
            router.get('/topys/:category', lazyloadRouteHandler('./routes/topys/article'));
         
     | 
| 
      
 1765 
     | 
    
         
            +
            // router.get('/topys/:category', lazyloadRouteHandler('./routes/topys/article'));
         
     | 
| 
       1889 
1766 
     | 
    
         | 
| 
       1890 
1767 
     | 
    
         
             
            // 巴比特作者专栏
         
     | 
| 
       1891 
1768 
     | 
    
         
             
            router.get('/8btc/:authorid', lazyloadRouteHandler('./routes/8btc/author'));
         
     | 
| 
         @@ -1902,14 +1779,12 @@ router.get('/csrc/auditstatus/:apply_id', lazyloadRouteHandler('./routes/csrc/au 
     | 
|
| 
       1902 
1779 
     | 
    
         
             
            // LWN.net Alerts
         
     | 
| 
       1903 
1780 
     | 
    
         
             
            router.get('/lwn/alerts/:distributor', lazyloadRouteHandler('./routes/lwn/alerts'));
         
     | 
| 
       1904 
1781 
     | 
    
         | 
| 
       1905 
     | 
    
         
            -
            // 唱吧
         
     | 
| 
       1906 
     | 
    
         
            -
            router.get('/changba/:userid', lazyloadRouteHandler('./routes/changba/user'));
         
     | 
| 
       1907 
     | 
    
         
            -
             
     | 
| 
       1908 
1782 
     | 
    
         
             
            // 英雄联盟
         
     | 
| 
       1909 
1783 
     | 
    
         
             
            router.get('/lol/newsindex/:type', lazyloadRouteHandler('./routes/lol/newsindex'));
         
     | 
| 
       1910 
1784 
     | 
    
         | 
| 
       1911 
1785 
     | 
    
         
             
            // 掌上英雄联盟
         
     | 
| 
       1912 
1786 
     | 
    
         
             
            router.get('/lolapp/recommend', lazyloadRouteHandler('./routes/lolapp/recommend'));
         
     | 
| 
      
 1787 
     | 
    
         
            +
            router.get('/lolapp/article/:uuid', lazyloadRouteHandler('./routes/lolapp/article'));
         
     | 
| 
       1913 
1788 
     | 
    
         | 
| 
       1914 
1789 
     | 
    
         
             
            // 左岸读书
         
     | 
| 
       1915 
1790 
     | 
    
         
             
            router.get('/zreading', lazyloadRouteHandler('./routes/zreading/home'));
         
     | 
| 
         @@ -1978,16 +1853,16 @@ router.get('/simonsfoundation/recommend', lazyloadRouteHandler('./routes/simonsf 
     | 
|
| 
       1978 
1853 
     | 
    
         
             
            // 王者荣耀
         
     | 
| 
       1979 
1854 
     | 
    
         
             
            router.get('/tencent/pvp/newsindex/:type', lazyloadRouteHandler('./routes/tencent/pvp/newsindex'));
         
     | 
| 
       1980 
1855 
     | 
    
         | 
| 
       1981 
     | 
    
         
            -
            // 《明日方舟》游戏
         
     | 
| 
       1982 
     | 
    
         
            -
            router.get('/arknights/news', lazyloadRouteHandler('./routes/arknights/news'));
         
     | 
| 
       1983 
     | 
    
         
            -
            // アークナイツ(明日方舟日服)
         
     | 
| 
       1984 
     | 
    
         
            -
            router.get('/arknights/japan', lazyloadRouteHandler('./routes/arknights/japan'));
         
     | 
| 
      
 1856 
     | 
    
         
            +
            // 《明日方舟》游戏 (migrated to v2)
         
     | 
| 
      
 1857 
     | 
    
         
            +
            // router.get('/arknights/news', lazyloadRouteHandler('./routes/arknights/news'));
         
     | 
| 
      
 1858 
     | 
    
         
            +
            // アークナイツ(明日方舟日服) (migrated to v2)
         
     | 
| 
      
 1859 
     | 
    
         
            +
            // router.get('/arknights/japan', lazyloadRouteHandler('./routes/arknights/japan'));
         
     | 
| 
       1985 
1860 
     | 
    
         
             
            // 塞壬唱片
         
     | 
| 
       1986 
1861 
     | 
    
         
             
            router.get('/siren/news', lazyloadRouteHandler('./routes/siren/index'));
         
     | 
| 
       1987 
1862 
     | 
    
         | 
| 
       1988 
     | 
    
         
            -
            // ff14
         
     | 
| 
       1989 
     | 
    
         
            -
            router.get('/ff14/ff14_zh/:type', lazyloadRouteHandler('./routes/ff14/ff14_zh'));
         
     | 
| 
       1990 
     | 
    
         
            -
            router.get('/ff14/ff14_global/:lang/:type', lazyloadRouteHandler('./routes/ff14/ff14_global'));
         
     | 
| 
      
 1863 
     | 
    
         
            +
            // ff14 migrated to v2
         
     | 
| 
      
 1864 
     | 
    
         
            +
            // router.get('/ff14/ff14_zh/:type', lazyloadRouteHandler('./routes/ff14/ff14_zh'));
         
     | 
| 
      
 1865 
     | 
    
         
            +
            // router.get('/ff14/ff14_global/:lang/:type', lazyloadRouteHandler('./routes/ff14/ff14_global'));
         
     | 
| 
       1991 
1866 
     | 
    
         | 
| 
       1992 
1867 
     | 
    
         
             
            // 学堂在线
         
     | 
| 
       1993 
1868 
     | 
    
         
             
            router.get('/xuetangx/course/:cid/:type', lazyloadRouteHandler('./routes/xuetangx/course_info'));
         
     | 
| 
         @@ -2024,13 +1899,12 @@ router.get('/yidoutang/case/:type', lazyloadRouteHandler('./routes/yidoutang/cas 
     | 
|
| 
       2024 
1899 
     | 
    
         
             
            router.get('/kaiyan/index', lazyloadRouteHandler('./routes/kaiyan/index'));
         
     | 
| 
       2025 
1900 
     | 
    
         | 
| 
       2026 
1901 
     | 
    
         
             
            // 龙空
         
     | 
| 
       2027 
     | 
    
         
            -
            router.get('/lkong/forum/:id/:digest?', lazyloadRouteHandler('./routes/lkong/forum'));
         
     | 
| 
       2028 
     | 
    
         
            -
            router.get('/lkong/thread/:id', lazyloadRouteHandler('./routes/lkong/thread'));
         
     | 
| 
      
 1902 
     | 
    
         
            +
            // router.get('/lkong/forum/:id/:digest?', lazyloadRouteHandler('./routes/lkong/forum'));
         
     | 
| 
      
 1903 
     | 
    
         
            +
            // router.get('/lkong/thread/:id', lazyloadRouteHandler('./routes/lkong/thread'));
         
     | 
| 
       2029 
1904 
     | 
    
         
             
            // router.get('/lkong/user/:id', lazyloadRouteHandler('./routes/lkong/user'));
         
     | 
| 
       2030 
1905 
     | 
    
         | 
| 
       2031 
1906 
     | 
    
         
             
            // 坂道系列资讯
         
     | 
| 
       2032 
1907 
     | 
    
         
             
            // 坂道系列官网新闻
         
     | 
| 
       2033 
     | 
    
         
            -
            router.get('/nogizaka46/news', lazyloadRouteHandler('./routes/nogizaka46/news'));
         
     | 
| 
       2034 
1908 
     | 
    
         
             
            router.get('/keyakizaka46/news', lazyloadRouteHandler('./routes/keyakizaka46/news'));
         
     | 
| 
       2035 
1909 
     | 
    
         
             
            router.get('/hinatazaka46/news', lazyloadRouteHandler('./routes/hinatazaka46/news'));
         
     | 
| 
       2036 
1910 
     | 
    
         
             
            router.get('/keyakizaka46/blog', lazyloadRouteHandler('./routes/keyakizaka46/blog'));
         
     | 
| 
         @@ -2127,6 +2001,7 @@ router.get('/weidian/goods/:id', lazyloadRouteHandler('./routes/weidian/goods')) 
     | 
|
| 
       2127 
2001 
     | 
    
         | 
| 
       2128 
2002 
     | 
    
         
             
            // 有赞
         
     | 
| 
       2129 
2003 
     | 
    
         
             
            router.get('/youzan/goods/:id', lazyloadRouteHandler('./routes/youzan/goods'));
         
     | 
| 
      
 2004 
     | 
    
         
            +
             
     | 
| 
       2130 
2005 
     | 
    
         
             
            // 币世界快讯
         
     | 
| 
       2131 
2006 
     | 
    
         
             
            router.get('/bishijie/kuaixun', lazyloadRouteHandler('./routes/bishijie/kuaixun'));
         
     | 
| 
       2132 
2007 
     | 
    
         | 
| 
         @@ -2190,9 +2065,6 @@ router.get('/nciae/xsxx', lazyloadRouteHandler('./routes/universities/nciae/xsxx 
     | 
|
| 
       2190 
2065 
     | 
    
         
             
            // cfan
         
     | 
| 
       2191 
2066 
     | 
    
         
             
            router.get('/cfan/news', lazyloadRouteHandler('./routes/cfan/news'));
         
     | 
| 
       2192 
2067 
     | 
    
         | 
| 
       2193 
     | 
    
         
            -
            // 搜狐 - 搜狐号
         
     | 
| 
       2194 
     | 
    
         
            -
            router.get('/sohu/mp/:id', lazyloadRouteHandler('./routes/sohu/mp'));
         
     | 
| 
       2195 
     | 
    
         
            -
             
     | 
| 
       2196 
2068 
     | 
    
         
             
            // 腾讯企鹅号
         
     | 
| 
       2197 
2069 
     | 
    
         
             
            router.get('/tencent/news/author/:mid', lazyloadRouteHandler('./routes/tencent/news/author'));
         
     | 
| 
       2198 
2070 
     | 
    
         | 
| 
         @@ -2235,16 +2107,16 @@ router.get('/reuters/channel/:site/:channel', lazyloadRouteHandler('./routes/reu 
     | 
|
| 
       2235 
2107 
     | 
    
         
             
            router.get('/pgyer/:app?', lazyloadRouteHandler('./routes/pgyer/app'));
         
     | 
| 
       2236 
2108 
     | 
    
         | 
| 
       2237 
2109 
     | 
    
         
             
            // 微博个人时间线
         
     | 
| 
       2238 
     | 
    
         
            -
            router.get('/weibo/timeline/:uid/:feature?', lazyloadRouteHandler('./routes/weibo/timeline'));
         
     | 
| 
      
 2110 
     | 
    
         
            +
            router.get('/weibo/timeline/:uid/:feature?/:routeParams?', lazyloadRouteHandler('./routes/weibo/timeline'));
         
     | 
| 
       2239 
2111 
     | 
    
         | 
| 
       2240 
     | 
    
         
            -
            // TAPTAP
         
     | 
| 
       2241 
     | 
    
         
            -
            router.get('/taptap/topic/:id/:label?', lazyloadRouteHandler('./routes/taptap/topic'));
         
     | 
| 
       2242 
     | 
    
         
            -
            router.get('/taptap/changelog/:id', lazyloadRouteHandler('./routes/taptap/changelog'));
         
     | 
| 
       2243 
     | 
    
         
            -
            router.get('/taptap/review/:id/:order?', lazyloadRouteHandler('./routes/taptap/review'));
         
     | 
| 
      
 2112 
     | 
    
         
            +
            // TAPTAP migrated to v2
         
     | 
| 
      
 2113 
     | 
    
         
            +
            // router.get('/taptap/topic/:id/:label?', lazyloadRouteHandler('./routes/taptap/topic'));
         
     | 
| 
      
 2114 
     | 
    
         
            +
            // router.get('/taptap/changelog/:id', lazyloadRouteHandler('./routes/taptap/changelog'));
         
     | 
| 
      
 2115 
     | 
    
         
            +
            // router.get('/taptap/review/:id/:order?/:lang?', lazyloadRouteHandler('./routes/taptap/review'));
         
     | 
| 
       2244 
2116 
     | 
    
         | 
| 
       2245 
     | 
    
         
            -
            // lofter
         
     | 
| 
       2246 
     | 
    
         
            -
            router.get('/lofter/tag/:name?/:type?', lazyloadRouteHandler('./routes/lofter/tag'));
         
     | 
| 
       2247 
     | 
    
         
            -
            router.get('/lofter/user/: 
     | 
| 
      
 2117 
     | 
    
         
            +
            // lofter migrated to v2
         
     | 
| 
      
 2118 
     | 
    
         
            +
            // router.get('/lofter/tag/:name?/:type?', lazyloadRouteHandler('./routes/lofter/tag'));
         
     | 
| 
      
 2119 
     | 
    
         
            +
            // router.get('/lofter/user/:name?', lazyloadRouteHandler('./routes/lofter/user'));
         
     | 
| 
       2248 
2120 
     | 
    
         | 
| 
       2249 
2121 
     | 
    
         
             
            // 米坛社区表盘
         
     | 
| 
       2250 
2122 
     | 
    
         
             
            router.get('/watchface/:watch_type?/:list_type?', lazyloadRouteHandler('./routes/watchface/update'));
         
     | 
| 
         @@ -2263,9 +2135,9 @@ router.get('/wineyun/:category', lazyloadRouteHandler('./routes/wineyun')); 
     | 
|
| 
       2263 
2135 
     | 
    
         
             
            router.get('/xiaohongshu/user/:user_id/:category', lazyloadRouteHandler('./routes/xiaohongshu/user'));
         
     | 
| 
       2264 
2136 
     | 
    
         
             
            router.get('/xiaohongshu/board/:board_id', lazyloadRouteHandler('./routes/xiaohongshu/board'));
         
     | 
| 
       2265 
2137 
     | 
    
         | 
| 
       2266 
     | 
    
         
            -
            // 每经网
         
     | 
| 
       2267 
     | 
    
         
            -
            router.get('/nbd/daily', lazyloadRouteHandler('./routes/nbd/article'));
         
     | 
| 
       2268 
     | 
    
         
            -
            router.get('/nbd/:id?', lazyloadRouteHandler('./routes/nbd/index'));
         
     | 
| 
      
 2138 
     | 
    
         
            +
            // 每经网 migrated to v2
         
     | 
| 
      
 2139 
     | 
    
         
            +
            // router.get('/nbd/daily', lazyloadRouteHandler('./routes/nbd/article'));
         
     | 
| 
      
 2140 
     | 
    
         
            +
            // router.get('/nbd/:id?', lazyloadRouteHandler('./routes/nbd/index'));
         
     | 
| 
       2269 
2141 
     | 
    
         | 
| 
       2270 
2142 
     | 
    
         
             
            // 快知
         
     | 
| 
       2271 
2143 
     | 
    
         
             
            router.get('/kzfeed/topic/:id', lazyloadRouteHandler('./routes/kzfeed/topic'));
         
     | 
| 
         @@ -2305,7 +2177,7 @@ router.get('/kaggle/competitions/:category?', lazyloadRouteHandler('./routes/kag 
     | 
|
| 
       2305 
2177 
     | 
    
         
             
            router.get('/kaggle/user/:user', lazyloadRouteHandler('./routes/kaggle/user'));
         
     | 
| 
       2306 
2178 
     | 
    
         | 
| 
       2307 
2179 
     | 
    
         
             
            // PubMed Trending
         
     | 
| 
       2308 
     | 
    
         
            -
            router.get('/pubmed/trending', lazyloadRouteHandler('./routes/pubmed/trending'));
         
     | 
| 
      
 2180 
     | 
    
         
            +
            // router.get('/pubmed/trending', lazyloadRouteHandler('./routes/pubmed/trending'));
         
     | 
| 
       2309 
2181 
     | 
    
         | 
| 
       2310 
2182 
     | 
    
         
             
            // 领科 (linkresearcher.com)
         
     | 
| 
       2311 
2183 
     | 
    
         
             
            router.get('/linkresearcher/:params', lazyloadRouteHandler('./routes/linkresearcher/index'));
         
     | 
| 
         @@ -2365,11 +2237,6 @@ router.get('/noi/winners-list', lazyloadRouteHandler('./routes/noi/winners-list' 
     | 
|
| 
       2365 
2237 
     | 
    
         
             
            router.get('/noi/province-news', lazyloadRouteHandler('./routes/noi/province-news'));
         
     | 
| 
       2366 
2238 
     | 
    
         
             
            router.get('/noi/rg-news', lazyloadRouteHandler('./routes/noi/rg-news'));
         
     | 
| 
       2367 
2239 
     | 
    
         | 
| 
       2368 
     | 
    
         
            -
            // 中国工业化和信息部
         
     | 
| 
       2369 
     | 
    
         
            -
            router.get('/gov/miit/zcwj', lazyloadRouteHandler('./routes/gov/miit/zcwj'));
         
     | 
| 
       2370 
     | 
    
         
            -
            router.get('/gov/miit/wjgs', lazyloadRouteHandler('./routes/gov/miit/wjgs'));
         
     | 
| 
       2371 
     | 
    
         
            -
            router.get('/gov/miit/zcjd', lazyloadRouteHandler('./routes/gov/miit/zcjd'));
         
     | 
| 
       2372 
     | 
    
         
            -
             
     | 
| 
       2373 
2240 
     | 
    
         
             
            // 中国国家认证认可监管管理员会
         
     | 
| 
       2374 
2241 
     | 
    
         
             
            router.get('/gov/cnca/jgdt', lazyloadRouteHandler('./routes/gov/cnca/jgdt'));
         
     | 
| 
       2375 
2242 
     | 
    
         
             
            router.get('/gov/cnca/hydt', lazyloadRouteHandler('./routes/gov/cnca/hydt'));
         
     | 
| 
         @@ -2422,10 +2289,6 @@ router.get('/nyaa/search/:query?', lazyloadRouteHandler('./routes/nyaa/search')) 
     | 
|
| 
       2422 
2289 
     | 
    
         
             
            // 片源网
         
     | 
| 
       2423 
2290 
     | 
    
         
             
            router.get('/pianyuan/:media?', lazyloadRouteHandler('./routes/pianyuan/app'));
         
     | 
| 
       2424 
2291 
     | 
    
         | 
| 
       2425 
     | 
    
         
            -
            // ITHome
         
     | 
| 
       2426 
     | 
    
         
            -
            router.get('/ithome/:caty', lazyloadRouteHandler('./routes/ithome/index'));
         
     | 
| 
       2427 
     | 
    
         
            -
            router.get('/ithome/ranking/:type', lazyloadRouteHandler('./routes/ithome/ranking'));
         
     | 
| 
       2428 
     | 
    
         
            -
             
     | 
| 
       2429 
2292 
     | 
    
         
             
            // 巴哈姆特
         
     | 
| 
       2430 
2293 
     | 
    
         
             
            router.get('/bahamut/creation/:author/:category?', lazyloadRouteHandler('./routes/bahamut/creation'));
         
     | 
| 
       2431 
2294 
     | 
    
         
             
            router.get('/bahamut/creation_index/:category?/:subcategory?/:type?', lazyloadRouteHandler('./routes/bahamut/creation_index'));
         
     | 
| 
         @@ -2461,9 +2324,6 @@ router.get('/blogs/paulgraham', lazyloadRouteHandler('./routes/blogs/paulgraham' 
     | 
|
| 
       2461 
2324 
     | 
    
         
             
            // invisionapp
         
     | 
| 
       2462 
2325 
     | 
    
         
             
            router.get('/invisionapp/inside-design', lazyloadRouteHandler('./routes/invisionapp/inside-design'));
         
     | 
| 
       2463 
2326 
     | 
    
         | 
| 
       2464 
     | 
    
         
            -
            // producthunt
         
     | 
| 
       2465 
     | 
    
         
            -
            router.get('/producthunt/today', lazyloadRouteHandler('./routes/producthunt/today'));
         
     | 
| 
       2466 
     | 
    
         
            -
             
     | 
| 
       2467 
2327 
     | 
    
         
             
            // mlog.club
         
     | 
| 
       2468 
2328 
     | 
    
         
             
            router.get('/mlog-club/topics/:node', lazyloadRouteHandler('./routes/mlog-club/topics'));
         
     | 
| 
       2469 
2329 
     | 
    
         
             
            router.get('/mlog-club/projects', lazyloadRouteHandler('./routes/mlog-club/projects'));
         
     | 
| 
         @@ -2510,8 +2370,8 @@ router.get('/galaxylab', lazyloadRouteHandler('./routes/galaxylab/index')); 
     | 
|
| 
       2510 
2370 
     | 
    
         
             
            // NOSEC 安全讯息平台
         
     | 
| 
       2511 
2371 
     | 
    
         
             
            router.get('/nosec/:keykind?', lazyloadRouteHandler('./routes/nosec/index'));
         
     | 
| 
       2512 
2372 
     | 
    
         | 
| 
       2513 
     | 
    
         
            -
            // Hex-Rays News
         
     | 
| 
       2514 
     | 
    
         
            -
            router.get('/hex-rays/news', lazyloadRouteHandler('./routes/hex-rays/index'));
         
     | 
| 
      
 2373 
     | 
    
         
            +
            // Hex-Rays News migrated to v2
         
     | 
| 
      
 2374 
     | 
    
         
            +
            // router.get('/hex-rays/news', lazyloadRouteHandler('./routes/hex-rays/index'));
         
     | 
| 
       2515 
2375 
     | 
    
         | 
| 
       2516 
2376 
     | 
    
         
             
            // 新趣集
         
     | 
| 
       2517 
2377 
     | 
    
         
             
            router.get('/xinquji/today', lazyloadRouteHandler('./routes/xinquji/today'));
         
     | 
| 
         @@ -2550,7 +2410,7 @@ router.get('/weixin/miniprogram/framework', lazyloadRouteHandler('./routes/tence 
     | 
|
| 
       2550 
2410 
     | 
    
         
             
            router.get('/weixin/miniprogram/devtools', lazyloadRouteHandler('./routes/tencent/wechat/miniprogram/devtools')); // 开发者工具更新日志
         
     | 
| 
       2551 
2411 
     | 
    
         
             
            router.get('/weixin/miniprogram/wxcloud/:caty?', lazyloadRouteHandler('./routes/tencent/wechat/miniprogram/wxcloud')); // 云开发更新日志
         
     | 
| 
       2552 
2412 
     | 
    
         | 
| 
       2553 
     | 
    
         
            -
            //  
     | 
| 
      
 2413 
     | 
    
         
            +
            // 新冠肺炎疫情动态
         
     | 
| 
       2554 
2414 
     | 
    
         
             
            router.get('/coronavirus/caixin', lazyloadRouteHandler('./routes/coronavirus/caixin'));
         
     | 
| 
       2555 
2415 
     | 
    
         
             
            router.get('/coronavirus/dxy/data/:province?/:city?', lazyloadRouteHandler('./routes/coronavirus/dxy-data'));
         
     | 
| 
       2556 
2416 
     | 
    
         
             
            router.get('/coronavirus/dxy', lazyloadRouteHandler('./routes/coronavirus/dxy'));
         
     | 
| 
         @@ -2579,10 +2439,10 @@ router.get('/letterboxd/user/diary/:username', lazyloadRouteHandler('./routes/le 
     | 
|
| 
       2579 
2439 
     | 
    
         
             
            router.get('/letterboxd/user/followingdiary/:username', lazyloadRouteHandler('./routes/letterboxd/followingdiary'));
         
     | 
| 
       2580 
2440 
     | 
    
         | 
| 
       2581 
2441 
     | 
    
         
             
            // javlibrary
         
     | 
| 
       2582 
     | 
    
         
            -
            router.get('/javlibrary/users/:uid/:utype', lazyloadRouteHandler('./routes/javlibrary/users'));
         
     | 
| 
       2583 
     | 
    
         
            -
            router.get('/javlibrary/videos/:vtype', lazyloadRouteHandler('./routes/javlibrary/videos'));
         
     | 
| 
       2584 
     | 
    
         
            -
            router.get('/javlibrary/stars/:sid', lazyloadRouteHandler('./routes/javlibrary/stars'));
         
     | 
| 
       2585 
     | 
    
         
            -
            router.get('/javlibrary/bestreviews', lazyloadRouteHandler('./routes/javlibrary/bestreviews'));
         
     | 
| 
      
 2442 
     | 
    
         
            +
            // router.get('/javlibrary/users/:uid/:utype', lazyloadRouteHandler('./routes/javlibrary/users'));
         
     | 
| 
      
 2443 
     | 
    
         
            +
            // router.get('/javlibrary/videos/:vtype', lazyloadRouteHandler('./routes/javlibrary/videos'));
         
     | 
| 
      
 2444 
     | 
    
         
            +
            // router.get('/javlibrary/stars/:sid', lazyloadRouteHandler('./routes/javlibrary/stars'));
         
     | 
| 
      
 2445 
     | 
    
         
            +
            // router.get('/javlibrary/bestreviews', lazyloadRouteHandler('./routes/javlibrary/bestreviews'));
         
     | 
| 
       2586 
2446 
     | 
    
         | 
| 
       2587 
2447 
     | 
    
         
             
            // Last.FM
         
     | 
| 
       2588 
2448 
     | 
    
         
             
            router.get('/lastfm/recent/:user', lazyloadRouteHandler('./routes/lastfm/recent'));
         
     | 
| 
         @@ -2593,13 +2453,15 @@ router.get('/lastfm/top/:country?', lazyloadRouteHandler('./routes/lastfm/top')) 
     | 
|
| 
       2593 
2453 
     | 
    
         
             
            router.get('/piapro/user/:pid', lazyloadRouteHandler('./routes/piapro/user'));
         
     | 
| 
       2594 
2454 
     | 
    
         
             
            router.get('/piapro/public/:type/:tag?/:category?', lazyloadRouteHandler('./routes/piapro/public'));
         
     | 
| 
       2595 
2455 
     | 
    
         | 
| 
       2596 
     | 
    
         
            -
            // 凤凰网
         
     | 
| 
       2597 
     | 
    
         
            -
            router.get('/ifeng/feng/:id/:type', lazyloadRouteHandler('./routes/ifeng/feng'));
         
     | 
| 
      
 2456 
     | 
    
         
            +
            // 凤凰网 migrated to v2
         
     | 
| 
      
 2457 
     | 
    
         
            +
            // router.get('/ifeng/feng/:id/:type', lazyloadRouteHandler('./routes/ifeng/feng'));
         
     | 
| 
       2598 
2458 
     | 
    
         | 
| 
       2599 
2459 
     | 
    
         
             
            // 第一版主
         
     | 
| 
       2600 
2460 
     | 
    
         
             
            router.get('/novel/d1bz/:category/:id', lazyloadRouteHandler('./routes/d1bz/novel'));
         
     | 
| 
       2601 
2461 
     | 
    
         | 
| 
       2602 
2462 
     | 
    
         
             
            // 爱下电子书
         
     | 
| 
      
 2463 
     | 
    
         
            +
            router.get('/axdzs/:novel', lazyloadRouteHandler('./routes/novel/axdzs'));
         
     | 
| 
      
 2464 
     | 
    
         
            +
            // deprecated
         
     | 
| 
       2603 
2465 
     | 
    
         
             
            router.get('/axdzs/:id1/:id2', lazyloadRouteHandler('./routes/novel/axdzs'));
         
     | 
| 
       2604 
2466 
     | 
    
         | 
| 
       2605 
2467 
     | 
    
         
             
            // HackerOne
         
     | 
| 
         @@ -2672,23 +2534,14 @@ router.get('/lagou/jobs/:position/:city', lazyloadRouteHandler('./routes/lagou/j 
     | 
|
| 
       2672 
2534 
     | 
    
         
             
            router.get('/yzu/home/:type', lazyloadRouteHandler('./routes/universities/yzu/home'));
         
     | 
| 
       2673 
2535 
     | 
    
         
             
            router.get('/yzu/yjszs/:type', lazyloadRouteHandler('./routes/universities/yzu/yjszs'));
         
     | 
| 
       2674 
2536 
     | 
    
         | 
| 
       2675 
     | 
    
         
            -
            // 国家自然科学基金委员会
         
     | 
| 
       2676 
     | 
    
         
            -
            router.get('/nsfc/news/:type?', lazyloadRouteHandler('./routes/nsfc/news'));
         
     | 
| 
       2677 
     | 
    
         
            -
             
     | 
| 
       2678 
2537 
     | 
    
         
             
            // 德国新闻社卫健新闻
         
     | 
| 
       2679 
2538 
     | 
    
         
             
            router.get('/krankenkassen', lazyloadRouteHandler('./routes/krankenkassen'));
         
     | 
| 
       2680 
2539 
     | 
    
         | 
| 
       2681 
2540 
     | 
    
         
             
            // 桂林航天工业学院
         
     | 
| 
       2682 
2541 
     | 
    
         
             
            router.get('/guat/news/:type?', lazyloadRouteHandler('./routes/guat/news'));
         
     | 
| 
       2683 
2542 
     | 
    
         | 
| 
       2684 
     | 
    
         
            -
            // 国家留学网
         
     | 
| 
       2685 
     | 
    
         
            -
            router.get('/csc/notice/:type?', lazyloadRouteHandler('./routes/csc/notice'));
         
     | 
| 
       2686 
     | 
    
         
            -
             
     | 
| 
       2687 
     | 
    
         
            -
            // LearnKu
         
     | 
| 
       2688 
     | 
    
         
            -
            router.get('/learnku/:community/:category?', lazyloadRouteHandler('./routes/learnku/topic'));
         
     | 
| 
       2689 
     | 
    
         
            -
             
     | 
| 
       2690 
2543 
     | 
    
         
             
            // NEEA
         
     | 
| 
       2691 
     | 
    
         
            -
            router.get('/neea/:type', lazyloadRouteHandler('./routes/neea'));
         
     | 
| 
      
 2544 
     | 
    
         
            +
            // router.get('/neea/:type', lazyloadRouteHandler('./routes/neea'));
         
     | 
| 
       2692 
2545 
     | 
    
         | 
| 
       2693 
2546 
     | 
    
         
             
            // 中国农业大学
         
     | 
| 
       2694 
2547 
     | 
    
         
             
            router.get('/cauyjs', lazyloadRouteHandler('./routes/universities/cauyjs/cauyjs'));
         
     | 
| 
         @@ -2766,16 +2619,13 @@ router.get('/ccnuwu', lazyloadRouteHandler('./routes/universities/ccnu/ccnuwu')) 
     | 
|
| 
       2766 
2619 
     | 
    
         
             
            // WEEX
         
     | 
| 
       2767 
2620 
     | 
    
         
             
            router.get('/weexcn/news/:typeid', lazyloadRouteHandler('./routes/weexcn/index'));
         
     | 
| 
       2768 
2621 
     | 
    
         | 
| 
       2769 
     | 
    
         
            -
            // 天天基金
         
     | 
| 
       2770 
     | 
    
         
            -
            router.get('/eastmoney/user/:uid', lazyloadRouteHandler('./routes/eastmoney/user'));
         
     | 
| 
      
 2622 
     | 
    
         
            +
            // 天天基金 migrated to v2
         
     | 
| 
      
 2623 
     | 
    
         
            +
            // router.get('/eastmoney/ttjj/user/:uid', lazyloadRouteHandler('./routes/eastmoney/ttjj/user'));
         
     | 
| 
       2771 
2624 
     | 
    
         | 
| 
       2772 
2625 
     | 
    
         
             
            // 紳士漫畫
         
     | 
| 
       2773 
2626 
     | 
    
         
             
            router.get('/ssmh', lazyloadRouteHandler('./routes/ssmh'));
         
     | 
| 
       2774 
2627 
     | 
    
         
             
            router.get('/ssmh/category/:cid', lazyloadRouteHandler('./routes/ssmh/category'));
         
     | 
| 
       2775 
2628 
     | 
    
         | 
| 
       2776 
     | 
    
         
            -
            // 武昌首义学院
         
     | 
| 
       2777 
     | 
    
         
            -
            router.get('/wsyu/news/:type?', lazyloadRouteHandler('./routes/universities/wsyu/news'));
         
     | 
| 
       2778 
     | 
    
         
            -
             
     | 
| 
       2779 
2629 
     | 
    
         
             
            // 华南师范大学研究生学院
         
     | 
| 
       2780 
2630 
     | 
    
         
             
            router.get('/scnuyjs', lazyloadRouteHandler('./routes/universities/scnu/scnuyjs'));
         
     | 
| 
       2781 
2631 
     | 
    
         | 
| 
         @@ -2788,8 +2638,8 @@ router.get('/scutyjs', lazyloadRouteHandler('./routes/universities/scut/scutyjs' 
     | 
|
| 
       2788 
2638 
     | 
    
         
             
            // 华南农业大学研究生院通知公告
         
     | 
| 
       2789 
2639 
     | 
    
         
             
            router.get('/scauyjs', lazyloadRouteHandler('./routes/universities/scauyjs/scauyjs'));
         
     | 
| 
       2790 
2640 
     | 
    
         | 
| 
       2791 
     | 
    
         
            -
            // 北京大学研究生招生网通知公告
         
     | 
| 
       2792 
     | 
    
         
            -
            router.get('/pkuyjs', lazyloadRouteHandler('./routes/universities/pku/pkuyjs'));
         
     | 
| 
      
 2641 
     | 
    
         
            +
            // 北京大学研究生招生网通知公告 migrated to v2
         
     | 
| 
      
 2642 
     | 
    
         
            +
            // router.get('/pkuyjs', lazyloadRouteHandler('./routes/universities/pku/pkuyjs'));
         
     | 
| 
       2793 
2643 
     | 
    
         | 
| 
       2794 
2644 
     | 
    
         
             
            // 北京理工大学研究生通知公告
         
     | 
| 
       2795 
2645 
     | 
    
         
             
            router.get('/bityjs', lazyloadRouteHandler('./routes/universities/bit/bityjs'));
         
     | 
| 
         @@ -2834,9 +2684,6 @@ router.get('/adnmb/:pid', lazyloadRouteHandler('./routes/adnmb/index')); 
     | 
|
| 
       2834 
2684 
     | 
    
         
             
            // MIT科技评论
         
     | 
| 
       2835 
2685 
     | 
    
         
             
            router.get('/mittrchina/:type', lazyloadRouteHandler('./routes/mittrchina'));
         
     | 
| 
       2836 
2686 
     | 
    
         | 
| 
       2837 
     | 
    
         
            -
            // 消费者报道
         
     | 
| 
       2838 
     | 
    
         
            -
            router.get('/ccreports/article', lazyloadRouteHandler('./routes/ccreports'));
         
     | 
| 
       2839 
     | 
    
         
            -
             
     | 
| 
       2840 
2687 
     | 
    
         
             
            // iYouPort
         
     | 
| 
       2841 
2688 
     | 
    
         
             
            router.get('/iyouport/article', lazyloadRouteHandler('./routes/iyouport'));
         
     | 
| 
       2842 
2689 
     | 
    
         
             
            router.get('/iyouport/:category?', lazyloadRouteHandler('./routes/iyouport'));
         
     | 
| 
         @@ -2879,7 +2726,7 @@ router.get('/ptpress/book/:type?', lazyloadRouteHandler('./routes/ptpress/book') 
     | 
|
| 
       2879 
2726 
     | 
    
         
             
            router.get('/uniqlo/stylingbook/:category?', lazyloadRouteHandler('./routes/uniqlo/stylingbook'));
         
     | 
| 
       2880 
2727 
     | 
    
         | 
| 
       2881 
2728 
     | 
    
         
             
            // 本地宝焦点资讯
         
     | 
| 
       2882 
     | 
    
         
            -
            router.get('/bendibao/news/:city', lazyloadRouteHandler('./routes/bendibao/news'));
         
     | 
| 
      
 2729 
     | 
    
         
            +
            // router.get('/bendibao/news/:city', lazyloadRouteHandler('./routes/bendibao/news'));
         
     | 
| 
       2883 
2730 
     | 
    
         | 
| 
       2884 
2731 
     | 
    
         
             
            // unit-image
         
     | 
| 
       2885 
2732 
     | 
    
         
             
            router.get('/unit-image/films/:type?', lazyloadRouteHandler('./routes/unit-image/films'));
         
     | 
| 
         @@ -2987,10 +2834,6 @@ router.get('/aljazeera/news', lazyloadRouteHandler('./routes/aljazeera/news')); 
     | 
|
| 
       2987 
2834 
     | 
    
         
             
            // CFD indices dividend adjustment
         
     | 
| 
       2988 
2835 
     | 
    
         
             
            router.get('/cfd/gbp_div', lazyloadRouteHandler('./routes/cfd/gbp_div'));
         
     | 
| 
       2989 
2836 
     | 
    
         | 
| 
       2990 
     | 
    
         
            -
            // 中国人民银行
         
     | 
| 
       2991 
     | 
    
         
            -
            router.get('/pbc/goutongjiaoliu', lazyloadRouteHandler('./routes/pbc/goutongjiaoliu'));
         
     | 
| 
       2992 
     | 
    
         
            -
            router.get('/pbc/tradeAnnouncement', lazyloadRouteHandler('./routes/pbc/tradeAnnouncement'));
         
     | 
| 
       2993 
     | 
    
         
            -
             
     | 
| 
       2994 
2837 
     | 
    
         
             
            // Monotype
         
     | 
| 
       2995 
2838 
     | 
    
         
             
            router.get('/monotype/article', lazyloadRouteHandler('./routes/monotype/article'));
         
     | 
| 
       2996 
2839 
     | 
    
         | 
| 
         @@ -3099,9 +2942,6 @@ router.get('/open163/latest', lazyloadRouteHandler('./routes/netease/open/latest 
     | 
|
| 
       3099 
2942 
     | 
    
         
             
            // Boston.com
         
     | 
| 
       3100 
2943 
     | 
    
         
             
            router.get('/boston/:tag?', lazyloadRouteHandler('./routes/boston/index'));
         
     | 
| 
       3101 
2944 
     | 
    
         | 
| 
       3102 
     | 
    
         
            -
            // 中国邮政速递物流
         
     | 
| 
       3103 
     | 
    
         
            -
            router.get('/ems/news', lazyloadRouteHandler('./routes/ems/news'));
         
     | 
| 
       3104 
     | 
    
         
            -
             
     | 
| 
       3105 
2945 
     | 
    
         
             
            // 场库
         
     | 
| 
       3106 
2946 
     | 
    
         
             
            router.get('/changku', lazyloadRouteHandler('./routes/changku/index'));
         
     | 
| 
       3107 
2947 
     | 
    
         
             
            router.get('/changku/cate/:postid', lazyloadRouteHandler('./routes/changku/index'));
         
     | 
| 
         @@ -3205,9 +3045,6 @@ router.get('/behance/:user/:type?', lazyloadRouteHandler('./routes/behance/index 
     | 
|
| 
       3205 
3045 
     | 
    
         
             
            // 北京物资学院
         
     | 
| 
       3206 
3046 
     | 
    
         
             
            router.get('/bwu/news', lazyloadRouteHandler('./routes/universities/bwu/news'));
         
     | 
| 
       3207 
3047 
     | 
    
         | 
| 
       3208 
     | 
    
         
            -
            // Picuki
         
     | 
| 
       3209 
     | 
    
         
            -
            router.get('/picuki/profile/:id/:displayVideo?', lazyloadRouteHandler('./routes/picuki/profile'));
         
     | 
| 
       3210 
     | 
    
         
            -
             
     | 
| 
       3211 
3048 
     | 
    
         
             
            // 新榜
         
     | 
| 
       3212 
3049 
     | 
    
         
             
            router.get('/newrank/wechat/:wxid', lazyloadRouteHandler('./routes/newrank/wechat'));
         
     | 
| 
       3213 
3050 
     | 
    
         
             
            router.get('/newrank/douyin/:dyid', lazyloadRouteHandler('./routes/newrank/douyin'));
         
     | 
| 
         @@ -3218,8 +3055,9 @@ router.get('/manxiaosi/book/:id', lazyloadRouteHandler('./routes/manxiaosi/book' 
     | 
|
| 
       3218 
3055 
     | 
    
         
             
            // 吉林大学校内通知
         
     | 
| 
       3219 
3056 
     | 
    
         
             
            router.get('/jlu/oa', lazyloadRouteHandler('./routes/universities/jlu/oa'));
         
     | 
| 
       3220 
3057 
     | 
    
         | 
| 
       3221 
     | 
    
         
            -
            // 小宇宙
         
     | 
| 
       3222 
     | 
    
         
            -
            router.get('/xiaoyuzhou', lazyloadRouteHandler('./routes/xiaoyuzhou/pickup'));
         
     | 
| 
      
 3058 
     | 
    
         
            +
            // 小宇宙 migrated to v2
         
     | 
| 
      
 3059 
     | 
    
         
            +
            // router.get('/xiaoyuzhou', lazyloadRouteHandler('./routes/xiaoyuzhou/pickup'));
         
     | 
| 
      
 3060 
     | 
    
         
            +
            // router.get('/xiaoyuzhou/podcast/:id', lazyloadRouteHandler('./routes/xiaoyuzhou/podcast'));
         
     | 
| 
       3223 
3061 
     | 
    
         | 
| 
       3224 
3062 
     | 
    
         
             
            // 合肥工业大学
         
     | 
| 
       3225 
3063 
     | 
    
         
             
            router.get('/hfut/tzgg', lazyloadRouteHandler('./routes/universities/hfut/tzgg'));
         
     | 
| 
         @@ -3366,10 +3204,6 @@ router.get('/blogs/jianning', lazyloadRouteHandler('./routes/blogs/jianning')); 
     | 
|
| 
       3366 
3204 
     | 
    
         
             
            // 互动吧
         
     | 
| 
       3367 
3205 
     | 
    
         
             
            router.get('/hudongba/:city/:id', lazyloadRouteHandler('./routes/hudongba/index'));
         
     | 
| 
       3368 
3206 
     | 
    
         | 
| 
       3369 
     | 
    
         
            -
            // 差评
         
     | 
| 
       3370 
     | 
    
         
            -
            router.get('/chaping/banner', lazyloadRouteHandler('./routes/chaping/banner'));
         
     | 
| 
       3371 
     | 
    
         
            -
            router.get('/chaping/news/:caty?', lazyloadRouteHandler('./routes/chaping/news'));
         
     | 
| 
       3372 
     | 
    
         
            -
             
     | 
| 
       3373 
3207 
     | 
    
         
             
            // 飞雪娱乐网
         
     | 
| 
       3374 
3208 
     | 
    
         
             
            router.get('/feixuew/:id?', lazyloadRouteHandler('./routes/feixuew/index'));
         
     | 
| 
       3375 
3209 
     | 
    
         | 
| 
         @@ -3402,8 +3236,8 @@ router.get('/appsales/:caty?/:time?', lazyloadRouteHandler('./routes/appsales/in 
     | 
|
| 
       3402 
3236 
     | 
    
         
             
            // Academy of Management
         
     | 
| 
       3403 
3237 
     | 
    
         
             
            router.get('/aom/journal/:id', lazyloadRouteHandler('./routes/aom/journal'));
         
     | 
| 
       3404 
3238 
     | 
    
         | 
| 
       3405 
     | 
    
         
            -
            // 巴哈姆特電玩資訊站
         
     | 
| 
       3406 
     | 
    
         
            -
            router.get('/gamer/hot/:bsn', lazyloadRouteHandler('./routes/gamer/hot'));
         
     | 
| 
      
 3239 
     | 
    
         
            +
            // 巴哈姆特電玩資訊站 migrated to v2
         
     | 
| 
      
 3240 
     | 
    
         
            +
            // router.get('/gamer/hot/:bsn', lazyloadRouteHandler('./routes/gamer/hot'));
         
     | 
| 
       3407 
3241 
     | 
    
         | 
| 
       3408 
3242 
     | 
    
         
             
            // iCity
         
     | 
| 
       3409 
3243 
     | 
    
         
             
            router.get('/icity/:id', lazyloadRouteHandler('./routes/icity/index'));
         
     | 
| 
         @@ -3424,9 +3258,9 @@ router.get('/huawei/xinsheng/:caty?/:order?/:keyword?', lazyloadRouteHandler('./ 
     | 
|
| 
       3424 
3258 
     | 
    
         
             
            router.get('/ow/patch', lazyloadRouteHandler('./routes/ow/patch'));
         
     | 
| 
       3425 
3259 
     | 
    
         | 
| 
       3426 
3260 
     | 
    
         
             
            // MM范
         
     | 
| 
       3427 
     | 
    
         
            -
            router.get('/95mm/tab/:tab?', lazyloadRouteHandler('./routes/95mm/tab'));
         
     | 
| 
       3428 
     | 
    
         
            -
            router.get('/95mm/tag/:tag', lazyloadRouteHandler('./routes/95mm/tag'));
         
     | 
| 
       3429 
     | 
    
         
            -
            router.get('/95mm/category/:category', lazyloadRouteHandler('./routes/95mm/category'));
         
     | 
| 
      
 3261 
     | 
    
         
            +
            // router.get('/95mm/tab/:tab?', lazyloadRouteHandler('./routes/95mm/tab'));
         
     | 
| 
      
 3262 
     | 
    
         
            +
            // router.get('/95mm/tag/:tag', lazyloadRouteHandler('./routes/95mm/tag'));
         
     | 
| 
      
 3263 
     | 
    
         
            +
            // router.get('/95mm/category/:category', lazyloadRouteHandler('./routes/95mm/category'));
         
     | 
| 
       3430 
3264 
     | 
    
         | 
| 
       3431 
3265 
     | 
    
         
             
            // 中国工程科技知识中心
         
     | 
| 
       3432 
3266 
     | 
    
         
             
            router.get('/cktest/app/:ctgroup?/:domain?', lazyloadRouteHandler('./routes/cktest/app'));
         
     | 
| 
         @@ -3442,14 +3276,14 @@ router.get('/mercari/:type/:id', lazyloadRouteHandler('./routes/mercari/index')) 
     | 
|
| 
       3442 
3276 
     | 
    
         
             
            router.get('/notefolio/:caty?/:order?/:time?/:query?', lazyloadRouteHandler('./routes/notefolio/index'));
         
     | 
| 
       3443 
3277 
     | 
    
         | 
| 
       3444 
3278 
     | 
    
         
             
            // JavDB
         
     | 
| 
       3445 
     | 
    
         
            -
            router.get('/javdb/home/:category?/:sort?/:filter?', lazyloadRouteHandler('./routes/javdb'));
         
     | 
| 
       3446 
     | 
    
         
            -
            router.get('/javdb/search/:keyword?/:filter?', lazyloadRouteHandler('./routes/javdb/search'));
         
     | 
| 
       3447 
     | 
    
         
            -
            router.get('/javdb/tags/:query?/:caty?', lazyloadRouteHandler('./routes/javdb/tags'));
         
     | 
| 
       3448 
     | 
    
         
            -
            router.get('/javdb/actors/:id/:filter?', lazyloadRouteHandler('./routes/javdb/actors'));
         
     | 
| 
       3449 
     | 
    
         
            -
            router.get('/javdb/makers/:id/:filter?', lazyloadRouteHandler('./routes/javdb/makers'));
         
     | 
| 
       3450 
     | 
    
         
            -
            router.get('/javdb/series/:id/:filter?', lazyloadRouteHandler('./routes/javdb/series'));
         
     | 
| 
       3451 
     | 
    
         
            -
            router.get('/javdb/rankings/:caty?/:time?', lazyloadRouteHandler('./routes/javdb/rankings'));
         
     | 
| 
       3452 
     | 
    
         
            -
            router.get('/javdb/:category?/:sort?/:filter?', lazyloadRouteHandler('./routes/javdb'));
         
     | 
| 
      
 3279 
     | 
    
         
            +
            // router.get('/javdb/home/:category?/:sort?/:filter?', lazyloadRouteHandler('./routes/javdb'));
         
     | 
| 
      
 3280 
     | 
    
         
            +
            // router.get('/javdb/search/:keyword?/:filter?', lazyloadRouteHandler('./routes/javdb/search'));
         
     | 
| 
      
 3281 
     | 
    
         
            +
            // router.get('/javdb/tags/:query?/:caty?', lazyloadRouteHandler('./routes/javdb/tags'));
         
     | 
| 
      
 3282 
     | 
    
         
            +
            // router.get('/javdb/actors/:id/:filter?', lazyloadRouteHandler('./routes/javdb/actors'));
         
     | 
| 
      
 3283 
     | 
    
         
            +
            // router.get('/javdb/makers/:id/:filter?', lazyloadRouteHandler('./routes/javdb/makers'));
         
     | 
| 
      
 3284 
     | 
    
         
            +
            // router.get('/javdb/series/:id/:filter?', lazyloadRouteHandler('./routes/javdb/series'));
         
     | 
| 
      
 3285 
     | 
    
         
            +
            // router.get('/javdb/rankings/:caty?/:time?', lazyloadRouteHandler('./routes/javdb/rankings'));
         
     | 
| 
      
 3286 
     | 
    
         
            +
            // router.get('/javdb/:category?/:sort?/:filter?', lazyloadRouteHandler('./routes/javdb'));
         
     | 
| 
       3453 
3287 
     | 
    
         | 
| 
       3454 
3288 
     | 
    
         
             
            // World Economic Forum
         
     | 
| 
       3455 
3289 
     | 
    
         
             
            router.get('/weforum/report/:lang?/:year?/:platform?', lazyloadRouteHandler('./routes/weforum/report'));
         
     | 
| 
         @@ -3464,8 +3298,8 @@ router.get('/gov/taiwan/mnd', lazyloadRouteHandler('./routes/gov/taiwan/mnd')); 
     | 
|
| 
       3464 
3298 
     | 
    
         
             
            router.get('/yomiuri/:category', lazyloadRouteHandler('./routes/yomiuri/news'));
         
     | 
| 
       3465 
3299 
     | 
    
         | 
| 
       3466 
3300 
     | 
    
         
             
            // 巴哈姆特
         
     | 
| 
       3467 
     | 
    
         
            -
            // GNN新闻
         
     | 
| 
       3468 
     | 
    
         
            -
            router.get('/gamer/gnn/:category?', lazyloadRouteHandler('./routes/gamer/gnn_index'));
         
     | 
| 
      
 3301 
     | 
    
         
            +
            // GNN新闻 migrated to v2
         
     | 
| 
      
 3302 
     | 
    
         
            +
            // router.get('/gamer/gnn/:category?', lazyloadRouteHandler('./routes/gamer/gnn_index'));
         
     | 
| 
       3469 
3303 
     | 
    
         | 
| 
       3470 
3304 
     | 
    
         
             
            // 中国人大网
         
     | 
| 
       3471 
3305 
     | 
    
         
             
            router.get('/npc/:caty', lazyloadRouteHandler('./routes/npc/index'));
         
     | 
| 
         @@ -3473,9 +3307,6 @@ router.get('/npc/:caty', lazyloadRouteHandler('./routes/npc/index')); 
     | 
|
| 
       3473 
3307 
     | 
    
         
             
            // 高科技行业门户
         
     | 
| 
       3474 
3308 
     | 
    
         
             
            router.get('/ofweek/news', lazyloadRouteHandler('./routes/ofweek/news'));
         
     | 
| 
       3475 
3309 
     | 
    
         | 
| 
       3476 
     | 
    
         
            -
            // eventernote
         
     | 
| 
       3477 
     | 
    
         
            -
            router.get('/eventernote/actors/:name/:id', lazyloadRouteHandler('./routes/eventernote/actors'));
         
     | 
| 
       3478 
     | 
    
         
            -
             
     | 
| 
       3479 
3310 
     | 
    
         
             
            // 八阕
         
     | 
| 
       3480 
3311 
     | 
    
         
             
            router.get('/popyard/:caty?', lazyloadRouteHandler('./routes/popyard/index'));
         
     | 
| 
       3481 
3312 
     | 
    
         | 
| 
         @@ -3498,9 +3329,9 @@ router.get('/allnow/user/:id', lazyloadRouteHandler('./routes/allnow/user')); 
     | 
|
| 
       3498 
3329 
     | 
    
         
             
            router.get('/allnow', lazyloadRouteHandler('./routes/allnow/index'));
         
     | 
| 
       3499 
3330 
     | 
    
         | 
| 
       3500 
3331 
     | 
    
         
             
            // 证券时报网
         
     | 
| 
       3501 
     | 
    
         
            -
            router.get('/stcn/news/:id?', lazyloadRouteHandler('./routes/stcn/news'));
         
     | 
| 
       3502 
     | 
    
         
            -
            router.get('/stcn/data/:id?', lazyloadRouteHandler('./routes/stcn/data'));
         
     | 
| 
       3503 
     | 
    
         
            -
            router.get('/stcn/kuaixun/:id?', lazyloadRouteHandler('./routes/stcn/kuaixun'));
         
     | 
| 
      
 3332 
     | 
    
         
            +
            // router.get('/stcn/news/:id?', lazyloadRouteHandler('./routes/stcn/news'));
         
     | 
| 
      
 3333 
     | 
    
         
            +
            // router.get('/stcn/data/:id?', lazyloadRouteHandler('./routes/stcn/data'));
         
     | 
| 
      
 3334 
     | 
    
         
            +
            // router.get('/stcn/kuaixun/:id?', lazyloadRouteHandler('./routes/stcn/kuaixun'));
         
     | 
| 
       3504 
3335 
     | 
    
         | 
| 
       3505 
3336 
     | 
    
         
             
            // dev.to
         
     | 
| 
       3506 
3337 
     | 
    
         
             
            router.get('/dev.to/top/:period', lazyloadRouteHandler('./routes/dev.to/top'));
         
     | 
| 
         @@ -3536,8 +3367,8 @@ router.get('/liquipedia/dota2/matches/:id', lazyloadRouteHandler('./routes/liqui 
     | 
|
| 
       3536 
3367 
     | 
    
         
             
            // 哈尔滨市科技局
         
     | 
| 
       3537 
3368 
     | 
    
         
             
            router.get('/gov/harbin/kjj', lazyloadRouteHandler('./routes/gov/harbin/kjj'));
         
     | 
| 
       3538 
3369 
     | 
    
         | 
| 
       3539 
     | 
    
         
            -
            // WSJ
         
     | 
| 
       3540 
     | 
    
         
            -
            router.get('/wsj/:lang/:category?', lazyloadRouteHandler('./routes/wsj/index'));
         
     | 
| 
      
 3370 
     | 
    
         
            +
            // WSJ migrated to v2
         
     | 
| 
      
 3371 
     | 
    
         
            +
            // router.get('/wsj/:lang/:category?', lazyloadRouteHandler('./routes/wsj/index'));
         
     | 
| 
       3541 
3372 
     | 
    
         | 
| 
       3542 
3373 
     | 
    
         
             
            // China File
         
     | 
| 
       3543 
3374 
     | 
    
         
             
            router.get('/chinafile/:category?', lazyloadRouteHandler('./routes/chinafile/index'));
         
     | 
| 
         @@ -3545,9 +3376,6 @@ router.get('/chinafile/:category?', lazyloadRouteHandler('./routes/chinafile/ind 
     | 
|
| 
       3545 
3376 
     | 
    
         
             
            // 科技島讀
         
     | 
| 
       3546 
3377 
     | 
    
         
             
            router.get('/daodu/:caty?', lazyloadRouteHandler('./routes/daodu/index'));
         
     | 
| 
       3547 
3378 
     | 
    
         | 
| 
       3548 
     | 
    
         
            -
            // CNTV
         
     | 
| 
       3549 
     | 
    
         
            -
            router.get('/cntv/:column', lazyloadRouteHandler('./routes/cntv/cntv'));
         
     | 
| 
       3550 
     | 
    
         
            -
             
     | 
| 
       3551 
3379 
     | 
    
         
             
            // Grand-Challenge
         
     | 
| 
       3552 
3380 
     | 
    
         
             
            router.get('/grandchallenge/user/:id', lazyloadRouteHandler('./routes/grandchallenge/user'));
         
     | 
| 
       3553 
3381 
     | 
    
         
             
            router.get('/grandchallenge/challenges', lazyloadRouteHandler('./routes/grandchallenge/challenges'));
         
     | 
| 
         @@ -3566,9 +3394,10 @@ router.get('/dedao/:caty?', lazyloadRouteHandler('./routes/dedao/index')); 
     | 
|
| 
       3566 
3394 
     | 
    
         
             
            // 未名新闻
         
     | 
| 
       3567 
3395 
     | 
    
         
             
            router.get('/mitbbs/:caty?', lazyloadRouteHandler('./routes/mitbbs/index'));
         
     | 
| 
       3568 
3396 
     | 
    
         | 
| 
       3569 
     | 
    
         
            -
            // 8kcos
         
     | 
| 
       3570 
     | 
    
         
            -
            router.get('/8kcos/', lazyloadRouteHandler('./routes/8kcos/latest'));
         
     | 
| 
       3571 
     | 
    
         
            -
            router.get('/8kcos/cat/:cat*', lazyloadRouteHandler('./routes/8kcos/cat'));
         
     | 
| 
      
 3397 
     | 
    
         
            +
            // 8kcos migrated to v2
         
     | 
| 
      
 3398 
     | 
    
         
            +
            // router.get('/8kcos/', lazyloadRouteHandler('./routes/8kcos/latest'));
         
     | 
| 
      
 3399 
     | 
    
         
            +
            // router.get('/8kcos/cat/:cat*', lazyloadRouteHandler('./routes/8kcos/cat'));
         
     | 
| 
      
 3400 
     | 
    
         
            +
            // router.get('/8kcos/tag/:tag', lazyloadRouteHandler('./routes/8kcos/tag'));
         
     | 
| 
       3572 
3401 
     | 
    
         | 
| 
       3573 
3402 
     | 
    
         
             
            // 贾真的电商108将
         
     | 
| 
       3574 
3403 
     | 
    
         
             
            router.get('/jiazhen108', lazyloadRouteHandler('./routes/jiazhen108/index'));
         
     | 
| 
         @@ -3626,7 +3455,7 @@ router.get('/blizzard/news/:language?/:category?', lazyloadRouteHandler('./route 
     | 
|
| 
       3626 
3455 
     | 
    
         
             
            router.get('/deepmind/blog/:category?', lazyloadRouteHandler('./routes/deepmind/blog'));
         
     | 
| 
       3627 
3456 
     | 
    
         | 
| 
       3628 
3457 
     | 
    
         
             
            // 东西智库
         
     | 
| 
       3629 
     | 
    
         
            -
            router.get('/dx2025/:type?/:category?', lazyloadRouteHandler('./routes/dx2025/index'));
         
     | 
| 
      
 3458 
     | 
    
         
            +
            // router.get('/dx2025/:type?/:category?', lazyloadRouteHandler('./routes/dx2025/index'));
         
     | 
| 
       3630 
3459 
     | 
    
         | 
| 
       3631 
3460 
     | 
    
         
             
            // DeepL
         
     | 
| 
       3632 
3461 
     | 
    
         
             
            router.get('/deepl/blog/:lang?', lazyloadRouteHandler('./routes/deepl/blog'));
         
     | 
| 
         @@ -3699,6 +3528,9 @@ router.get('/esquirehk/tag/:id', lazyloadRouteHandler('./routes/esquirehk/tag')) 
     | 
|
| 
       3699 
3528 
     | 
    
         
             
            // 国家普通话测试 杭州市
         
     | 
| 
       3700 
3529 
     | 
    
         
             
            router.get('/putonghua', lazyloadRouteHandler('./routes/putonghua/hangzhou'));
         
     | 
| 
       3701 
3530 
     | 
    
         | 
| 
      
 3531 
     | 
    
         
            +
            // 国家自学考试 上海市 migrated to v2 /shmeea/self-study
         
     | 
| 
      
 3532 
     | 
    
         
            +
            // router.get('/self-study/shanghai', require('./routes/self-study/shanghai'));
         
     | 
| 
      
 3533 
     | 
    
         
            +
             
     | 
| 
       3702 
3534 
     | 
    
         
             
            // 有道云笔记
         
     | 
| 
       3703 
3535 
     | 
    
         
             
            router.get('/youdao/xueba', lazyloadRouteHandler('./routes/youdao/xueba'));
         
     | 
| 
       3704 
3536 
     | 
    
         
             
            router.get('/youdao/latest', lazyloadRouteHandler('./routes/youdao/latest'));
         
     | 
| 
         @@ -3711,10 +3543,7 @@ router.get('/yinxiang/personal/:id', lazyloadRouteHandler('./routes/yinxiang/per 
     | 
|
| 
       3711 
3543 
     | 
    
         
             
            router.get('/yinxiang/category/:id', lazyloadRouteHandler('./routes/yinxiang/category'));
         
     | 
| 
       3712 
3544 
     | 
    
         | 
| 
       3713 
3545 
     | 
    
         
             
            // 晚点LatePost
         
     | 
| 
       3714 
     | 
    
         
            -
            router.get('/latepost/:proma?', lazyloadRouteHandler('./routes/latepost/index'));
         
     | 
| 
       3715 
     | 
    
         
            -
             
     | 
| 
       3716 
     | 
    
         
            -
            // 西瓜视频
         
     | 
| 
       3717 
     | 
    
         
            -
            router.get('/ixigua/user/video/:uid/:disableEmbed?', lazyloadRouteHandler('./routes/ixigua/userVideo'));
         
     | 
| 
      
 3546 
     | 
    
         
            +
            // router.get('/latepost/:proma?', lazyloadRouteHandler('./routes/latepost/index'));
         
     | 
| 
       3718 
3547 
     | 
    
         | 
| 
       3719 
3548 
     | 
    
         
             
            // 遠見 gvm.com.tw
         
     | 
| 
       3720 
3549 
     | 
    
         
             
            router.get('/gvm/index/:category?', lazyloadRouteHandler('./routes/gvm/index'));
         
     | 
| 
         @@ -3741,7 +3570,7 @@ router.get('/proletar/:type?/:id?', lazyloadRouteHandler('./routes/proletar/inde 
     | 
|
| 
       3741 
3570 
     | 
    
         
             
            router.get('/qttabbar/change-log', lazyloadRouteHandler('./routes/qttabbar/change-log'));
         
     | 
| 
       3742 
3571 
     | 
    
         | 
| 
       3743 
3572 
     | 
    
         
             
            // 酷18
         
     | 
| 
       3744 
     | 
    
         
            -
            router.get('/cool18/:id?/:type?/:keyword?', lazyloadRouteHandler('./routes/cool18/index'));
         
     | 
| 
      
 3573 
     | 
    
         
            +
            // router.get('/cool18/:id?/:type?/:keyword?', lazyloadRouteHandler('./routes/cool18/index'));
         
     | 
| 
       3745 
3574 
     | 
    
         | 
| 
       3746 
3575 
     | 
    
         
             
            // 美国贸易代表办公室
         
     | 
| 
       3747 
3576 
     | 
    
         
             
            router.get('/ustr/press-releases/:year?/:month?', lazyloadRouteHandler('./routes/us/ustr/press-releases'));
         
     | 
| 
         @@ -3821,7 +3650,7 @@ router.get('/yicas/blog', lazyloadRouteHandler('./routes/yicas/blog')); 
     | 
|
| 
       3821 
3650 
     | 
    
         
             
            router.get('/93/:category?', lazyloadRouteHandler('./routes/93/index'));
         
     | 
| 
       3822 
3651 
     | 
    
         | 
| 
       3823 
3652 
     | 
    
         
             
            // 科学网
         
     | 
| 
       3824 
     | 
    
         
            -
            router.get('/sciencenet/blog/:type?/:time?/:sort?', lazyloadRouteHandler('./routes/sciencenet/blog'));
         
     | 
| 
      
 3653 
     | 
    
         
            +
            // router.get('/sciencenet/blog/:type?/:time?/:sort?', lazyloadRouteHandler('./routes/sciencenet/blog'));
         
     | 
| 
       3825 
3654 
     | 
    
         | 
| 
       3826 
3655 
     | 
    
         
             
            // DailyArt
         
     | 
| 
       3827 
3656 
     | 
    
         
             
            router.get('/dailyart/:language?', lazyloadRouteHandler('./routes/dailyart/index'));
         
     | 
| 
         @@ -3900,9 +3729,6 @@ router.get('/simpread/notice', lazyloadRouteHandler('./routes/simpread/notice')) 
     | 
|
| 
       3900 
3729 
     | 
    
         
             
            // SimpRead-更新日志
         
     | 
| 
       3901 
3730 
     | 
    
         
             
            router.get('/simpread/changelog', lazyloadRouteHandler('./routes/simpread/changelog'));
         
     | 
| 
       3902 
3731 
     | 
    
         | 
| 
       3903 
     | 
    
         
            -
            // Radio Free Asia
         
     | 
| 
       3904 
     | 
    
         
            -
            router.get('/rfa/:language?/:channel?/:subChannel?', lazyloadRouteHandler('./routes/rfa/index'));
         
     | 
| 
       3905 
     | 
    
         
            -
             
     | 
| 
       3906 
3732 
     | 
    
         
             
            // booth.pm
         
     | 
| 
       3907 
3733 
     | 
    
         
             
            router.get('/booth.pm/shop/:subdomain', lazyloadRouteHandler('./routes/booth-pm/shop'));
         
     | 
| 
       3908 
3734 
     | 
    
         | 
| 
         @@ -3958,7 +3784,7 @@ router.get('/tianyancha/hot', lazyloadRouteHandler('./routes/tianyancha/hot')); 
     | 
|
| 
       3958 
3784 
     | 
    
         
             
            router.get('/kingarthur/:type', lazyloadRouteHandler('./routes/kingarthur/index'));
         
     | 
| 
       3959 
3785 
     | 
    
         | 
| 
       3960 
3786 
     | 
    
         
             
            // 新华网
         
     | 
| 
       3961 
     | 
    
         
            -
            router.get('/news/whxw', lazyloadRouteHandler('./routes/news/whxw'));
         
     | 
| 
      
 3787 
     | 
    
         
            +
            // router.get('/news/whxw', lazyloadRouteHandler('./routes/news/whxw'));
         
     | 
| 
       3962 
3788 
     | 
    
         | 
| 
       3963 
3789 
     | 
    
         
             
            // 游讯网
         
     | 
| 
       3964 
3790 
     | 
    
         
             
            router.get('/yxdown/recommend', lazyloadRouteHandler('./routes/yxdown/recommend'));
         
     | 
| 
         @@ -3976,7 +3802,7 @@ router.get('/sznews/ranking', lazyloadRouteHandler('./routes/sznews/ranking')); 
     | 
|
| 
       3976 
3802 
     | 
    
         
             
            router.get('/shuax/project/:name?', lazyloadRouteHandler('./routes/shuax/project'));
         
     | 
| 
       3977 
3803 
     | 
    
         | 
| 
       3978 
3804 
     | 
    
         
             
            // BioOne
         
     | 
| 
       3979 
     | 
    
         
            -
            router.get('/bioone/featured', lazyloadRouteHandler('./routes/bioone/featured'));
         
     | 
| 
      
 3805 
     | 
    
         
            +
            // router.get('/bioone/featured', lazyloadRouteHandler('./routes/bioone/featured'));
         
     | 
| 
       3980 
3806 
     | 
    
         | 
| 
       3981 
3807 
     | 
    
         
             
            // Obsidian
         
     | 
| 
       3982 
3808 
     | 
    
         
             
            router.get('/obsidian/announcements', lazyloadRouteHandler('./routes/obsidian/announcements'));
         
     | 
| 
         @@ -3986,8 +3812,9 @@ router.get('/jlbtc/kyc/:category?', lazyloadRouteHandler('./routes/universities/ 
     | 
|
| 
       3986 
3812 
     | 
    
         
             
            router.get('/jlbtc/jwc/:id?', lazyloadRouteHandler('./routes/universities/jlbtc/jwc'));
         
     | 
| 
       3987 
3813 
     | 
    
         
             
            router.get('/jlbtc/:category?', lazyloadRouteHandler('./routes/universities/jlbtc/index'));
         
     | 
| 
       3988 
3814 
     | 
    
         | 
| 
       3989 
     | 
    
         
            -
            // DT 财经
         
     | 
| 
       3990 
     | 
    
         
            -
            router.get('/dtcj/datahero/:category?', lazyloadRouteHandler('./routes/dtcj/datahero'));
         
     | 
| 
      
 3815 
     | 
    
         
            +
            // DT 财经 migrated to v2
         
     | 
| 
      
 3816 
     | 
    
         
            +
            // router.get('/dtcj/datahero/:category?', lazyloadRouteHandler('./routes/dtcj/datahero'));
         
     | 
| 
      
 3817 
     | 
    
         
            +
            // router.get('/dtcj/datainsight/:id?', lazyloadRouteHandler('./routes/dtcj/datainsight'));
         
     | 
| 
       3991 
3818 
     | 
    
         | 
| 
       3992 
3819 
     | 
    
         
             
            // 劍心.回憶
         
     | 
| 
       3993 
3820 
     | 
    
         
             
            router.get('/kenshin/:category?/:type?', lazyloadRouteHandler('./routes/kenshin/index'));
         
     | 
| 
         @@ -4046,10 +3873,10 @@ router.get('/ccg/:category?', lazyloadRouteHandler('./routes/ccg/index')); 
     | 
|
| 
       4046 
3873 
     | 
    
         
             
            // router.get('/gf-cn/news/:category?', lazyloadRouteHandler('./routes/gf-cn/news'));
         
     | 
| 
       4047 
3874 
     | 
    
         | 
| 
       4048 
3875 
     | 
    
         
             
            // Eagle
         
     | 
| 
       4049 
     | 
    
         
            -
            router.get('/eagle/changelog/:language?', lazyloadRouteHandler('./routes/eagle/changelog'));
         
     | 
| 
      
 3876 
     | 
    
         
            +
            // router.get('/eagle/changelog/:language?', lazyloadRouteHandler('./routes/eagle/changelog'));
         
     | 
| 
       4050 
3877 
     | 
    
         | 
| 
       4051 
3878 
     | 
    
         
             
            // ezone.hk
         
     | 
| 
       4052 
     | 
    
         
            -
            router.get('/ezone/:category?', lazyloadRouteHandler('./routes/ezone/index'));
         
     | 
| 
      
 3879 
     | 
    
         
            +
            // router.get('/ezone/:category?', lazyloadRouteHandler('./routes/ezone/index'));
         
     | 
| 
       4053 
3880 
     | 
    
         | 
| 
       4054 
3881 
     | 
    
         
             
            // 中国橡胶网
         
     | 
| 
       4055 
3882 
     | 
    
         
             
            router.get('/cria/news/:id?', lazyloadRouteHandler('./routes/cria/news'));
         
     | 
| 
         @@ -4077,8 +3904,8 @@ router.get('/liyuan-forums/threads/user/:user_id', lazyloadRouteHandler('./route 
     | 
|
| 
       4077 
3904 
     | 
    
         
             
            // router.get('/jisilu/reply/:user', lazyloadRouteHandler('./routes/jisilu/reply'));
         
     | 
| 
       4078 
3905 
     | 
    
         
             
            // router.get('/jisilu/topic/:user', lazyloadRouteHandler('./routes/jisilu/topic'));
         
     | 
| 
       4079 
3906 
     | 
    
         | 
| 
       4080 
     | 
    
         
            -
            // Constitutional Court of Baden-Württemberg (Germany)
         
     | 
| 
       4081 
     | 
    
         
            -
            router.get('/verfghbw/press/:keyword?', lazyloadRouteHandler('./routes/verfghbw/press'));
         
     | 
| 
      
 3907 
     | 
    
         
            +
            // Constitutional Court of Baden-Württemberg (Germany) migrated to v2
         
     | 
| 
      
 3908 
     | 
    
         
            +
            // router.get('/verfghbw/press/:keyword?', lazyloadRouteHandler('./routes/verfghbw/press'));
         
     | 
| 
       4082 
3909 
     | 
    
         | 
| 
       4083 
3910 
     | 
    
         
             
            // Topbook
         
     | 
| 
       4084 
3911 
     | 
    
         
             
            router.get('/topbook/overview/:id?', lazyloadRouteHandler('./routes/topbook/overview'));
         
     | 
| 
         @@ -4095,8 +3922,9 @@ router.get('/wanwansub/:id?', lazyloadRouteHandler('./routes/wanwansub/index')); 
     | 
|
| 
       4095 
3922 
     | 
    
         
             
            router.get('/zimuxia/portfolio/:id', lazyloadRouteHandler('./routes/zimuxia/portfolio'));
         
     | 
| 
       4096 
3923 
     | 
    
         
             
            router.get('/zimuxia/:category?', lazyloadRouteHandler('./routes/zimuxia/index'));
         
     | 
| 
       4097 
3924 
     | 
    
         | 
| 
       4098 
     | 
    
         
            -
            // Bandcamp
         
     | 
| 
       4099 
     | 
    
         
            -
            router.get('/bandcamp/tag/:tag?', lazyloadRouteHandler('./routes/bandcamp/tag'));
         
     | 
| 
      
 3925 
     | 
    
         
            +
            // Bandcamp migrated to v2
         
     | 
| 
      
 3926 
     | 
    
         
            +
            // router.get('/bandcamp/tag/:tag?', lazyloadRouteHandler('./routes/bandcamp/tag'));
         
     | 
| 
      
 3927 
     | 
    
         
            +
            // router.get('/bandcamp/weekly', lazyloadRouteHandler('./routes/bandcamp/weekly'));
         
     | 
| 
       4100 
3928 
     | 
    
         | 
| 
       4101 
3929 
     | 
    
         
             
            // Hugo 更新日志
         
     | 
| 
       4102 
3930 
     | 
    
         
             
            router.get('/hugo/releases', lazyloadRouteHandler('./routes/hugo/releases'));
         
     | 
| 
         @@ -4107,16 +3935,16 @@ router.get('/tongli/news/:type', lazyloadRouteHandler('./routes/tongli/news')); 
     | 
|
| 
       4107 
3935 
     | 
    
         
             
            // OR
         
     | 
| 
       4108 
3936 
     | 
    
         
             
            router.get('/or/:id?', lazyloadRouteHandler('./routes/or'));
         
     | 
| 
       4109 
3937 
     | 
    
         | 
| 
       4110 
     | 
    
         
            -
            // e-hentai
         
     | 
| 
       4111 
     | 
    
         
            -
            router.get('/ehentai/favorites/:favcat?/:order?/:page?/: 
     | 
| 
       4112 
     | 
    
         
            -
            router.get('/ehentai/search/:params?/:page?/: 
     | 
| 
       4113 
     | 
    
         
            -
            router.get('/ehentai/tag/:tag/:page?/: 
     | 
| 
      
 3938 
     | 
    
         
            +
            // e-hentai migrated to v2
         
     | 
| 
      
 3939 
     | 
    
         
            +
            // router.get('/ehentai/favorites/:favcat?/:order?/:page?/:routeParams?', lazyloadRouteHandler('./routes/ehentai/favorites'));
         
     | 
| 
      
 3940 
     | 
    
         
            +
            // router.get('/ehentai/search/:params?/:page?/:routeParams?', lazyloadRouteHandler('./routes/ehentai/search'));
         
     | 
| 
      
 3941 
     | 
    
         
            +
            // router.get('/ehentai/tag/:tag/:page?/:routeParams?', lazyloadRouteHandler('./routes/ehentai/tag'));
         
     | 
| 
       4114 
3942 
     | 
    
         | 
| 
       4115 
3943 
     | 
    
         
             
            // 字型故事
         
     | 
| 
       4116 
3944 
     | 
    
         
             
            router.get('/fontstory', lazyloadRouteHandler('./routes/fontstory/tw'));
         
     | 
| 
       4117 
3945 
     | 
    
         | 
| 
       4118 
     | 
    
         
            -
            // HKEPC
         
     | 
| 
       4119 
     | 
    
         
            -
            router.get('/hkepc/:category?', lazyloadRouteHandler('./routes/hkepc/index'));
         
     | 
| 
      
 3946 
     | 
    
         
            +
            // HKEPC migrated to v2
         
     | 
| 
      
 3947 
     | 
    
         
            +
            // router.get('/hkepc/:category?', lazyloadRouteHandler('./routes/hkepc/index'));
         
     | 
| 
       4120 
3948 
     | 
    
         | 
| 
       4121 
3949 
     | 
    
         
             
            // 海南大学
         
     | 
| 
       4122 
3950 
     | 
    
         
             
            router.get('/hainanu/ssszs', lazyloadRouteHandler('./routes/hainanu/ssszs'));
         
     | 
| 
         @@ -4237,8 +4065,6 @@ router.get('/sbs/chinese/:category?/:id?/:dialect?/:language?', lazyloadRouteHan 
     | 
|
| 
       4237 
4065 
     | 
    
         
             
            // Asian to lick
         
     | 
| 
       4238 
4066 
     | 
    
         
             
            router.get('/asiantolick/:category?/:keyword?', lazyloadRouteHandler('./routes/asiantolick'));
         
     | 
| 
       4239 
4067 
     | 
    
         | 
| 
       4240 
     | 
    
         
            -
            // Deprecated: DO NOT ADD ROUTE HERE
         
     | 
| 
       4241 
     | 
    
         
            -
             
     | 
| 
       4242 
4068 
     | 
    
         
             
            // Research Gate
         
     | 
| 
       4243 
4069 
     | 
    
         
             
            router.get('/researchgate/publications/:id', lazyloadRouteHandler('./routes/researchgate/publications'));
         
     | 
| 
       4244 
4070 
     | 
    
         | 
| 
         @@ -4249,7 +4075,10 @@ router.get('/questmobile/report/:category?/:label?', lazyloadRouteHandler('./rou 
     | 
|
| 
       4249 
4075 
     | 
    
         
             
            router.get('/rss3/blog', lazyloadRouteHandler('./routes/rss3/blog'));
         
     | 
| 
       4250 
4076 
     | 
    
         | 
| 
       4251 
4077 
     | 
    
         
             
            // 星球日报
         
     | 
| 
       4252 
     | 
    
         
            -
            router.get('/odaily/activity', lazyloadRouteHandler('./routes/odaily/activity'));
         
     | 
| 
      
 4078 
     | 
    
         
            +
            // router.get('/odaily/activity', lazyloadRouteHandler('./routes/odaily/activity'));
         
     | 
| 
      
 4079 
     | 
    
         
            +
            // router.get('/odaily/newsflash', lazyloadRouteHandler('./routes/odaily/newsflash'));
         
     | 
| 
      
 4080 
     | 
    
         
            +
            // router.get('/odaily/user/:id', lazyloadRouteHandler('./routes/odaily/user'));
         
     | 
| 
      
 4081 
     | 
    
         
            +
            // router.get('/odaily/:id?', lazyloadRouteHandler('./routes/odaily/post'));
         
     | 
| 
       4253 
4082 
     | 
    
         | 
| 
       4254 
4083 
     | 
    
         
             
            // Fashion Network
         
     | 
| 
       4255 
4084 
     | 
    
         
             
            router.get('/fashionnetwork/news/:sectors?/:categories?/:language?', lazyloadRouteHandler('./routes/fashionnetwork/news.js'));
         
     | 
| 
         @@ -4261,9 +4090,16 @@ router.get('/dykszx/news/:type?', lazyloadRouteHandler('./routes/dykszx/news')); 
     | 
|
| 
       4261 
4090 
     | 
    
         
             
            router.get('/secrss/category/:category?', lazyloadRouteHandler('./routes/secrss/category'));
         
     | 
| 
       4262 
4091 
     | 
    
         
             
            router.get('/secrss/author/:author?', lazyloadRouteHandler('./routes/secrss/author'));
         
     | 
| 
       4263 
4092 
     | 
    
         | 
| 
       4264 
     | 
    
         
            -
            //  
     | 
| 
       4265 
     | 
    
         
            -
            router.get('/ 
     | 
| 
       4266 
     | 
    
         
            -
             
     | 
| 
       4267 
     | 
    
         
            -
             
     | 
| 
      
 4093 
     | 
    
         
            +
            // Fashion Network
         
     | 
| 
      
 4094 
     | 
    
         
            +
            router.get('/fashionnetwork/headline/:country?', lazyloadRouteHandler('./routes/fashionnetwork/headline.js'));
         
     | 
| 
      
 4095 
     | 
    
         
            +
             
     | 
| 
      
 4096 
     | 
    
         
            +
            // mirror.xyz
         
     | 
| 
      
 4097 
     | 
    
         
            +
            router.get('/mirror/:id', lazyloadRouteHandler('./routes/mirror/entries'));
         
     | 
| 
      
 4098 
     | 
    
         
            +
             
     | 
| 
      
 4099 
     | 
    
         
            +
            // KBS migrated to v2
         
     | 
| 
      
 4100 
     | 
    
         
            +
            // router.get('/kbs/today/:language?', lazyloadRouteHandler('./routes/kbs/today'));
         
     | 
| 
      
 4101 
     | 
    
         
            +
            // router.get('/kbs/news/:category?/:language?', lazyloadRouteHandler('./routes/kbs/news'));
         
     | 
| 
      
 4102 
     | 
    
         
            +
             
     | 
| 
      
 4103 
     | 
    
         
            +
            // Deprecated: DO NOT ADD ANY NEW ROUTES HERE
         
     | 
| 
       4268 
4104 
     | 
    
         | 
| 
       4269 
4105 
     | 
    
         
             
            module.exports = router;
         
     |