rsshub 1.0.0-master.f944cc9 → 1.0.0-master.f97cdb2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/lib/config.js +149 -109
- 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 +0 -609
- package/lib/router.js +208 -355
- 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/bookwalkertw/news.js +2 -2
- 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/dilbert/strip.js +7 -4
- package/lib/routes/disqus/posts.js +1 -1
- package/lib/routes/dongqiudi/result.js +13 -25
- package/lib/routes/dsndsht23/index.js +3 -2
- package/lib/routes/dykszx/news.js +5 -2
- package/lib/routes/ehentai/ehapi.js +16 -7
- package/lib/routes/ehentai/favorites.js +14 -7
- package/lib/routes/ehentai/search.js +14 -5
- package/lib/routes/ehentai/tag.js +14 -5
- 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/fdroid/apprelease.js +1 -1
- package/lib/routes/futunn/highlights.js +39 -37
- package/lib/routes/gov/customs/list.js +2 -2
- 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 +16 -14
- package/lib/routes/hentaimama/videos.js +1 -1
- package/lib/routes/hexo/fluid.js +45 -0
- package/lib/routes/hkej/index.js +2 -2
- 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/manhuagui/comic.js +74 -28
- package/lib/routes/manxiaosi/book.js +1 -1
- 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/ncm/djradio.js +58 -44
- package/lib/routes/ncm/templates/djradio-content.art +11 -0
- package/lib/routes/nhentai/util.js +3 -3
- 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/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/radio/radio.js +1 -1
- package/lib/routes/sina/rollnews.js +8 -3
- package/lib/routes/telecompaper/news.js +1 -1
- package/lib/routes/tencent/wechat/_README +1 -0
- package/lib/routes/tencent/wechat/feeds.js +8 -32
- package/lib/routes/tencent/wechat/mp.js +8 -26
- package/lib/routes/tencent/wechat/msgalbum.js +7 -25
- package/lib/routes/tencent/wechat/tgchannel.js +110 -29
- 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/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/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/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 +2 -2
- 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-utils.js +26 -0
- package/lib/utils/parse-date.js +171 -17
- package/lib/utils/puppeteer.js +1 -1
- package/lib/utils/torrent.js +9 -1
- package/lib/utils/wechat-mp.js +164 -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/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 +52 -0
- package/lib/v2/abskoop/maintainer.js +3 -0
- package/lib/v2/abskoop/radar.js +13 -0
- package/lib/v2/abskoop/router.js +3 -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 +71 -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/agirls/templates/description.art +1 -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 +1 -1
- 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/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/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 +31 -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/{routes → v2}/bilibili/page.js +0 -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 +37 -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/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/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/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/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/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/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/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/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/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/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/{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/{routes/douban → v2/douban/other}/topic.js +0 -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/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/e-hentai/index.js +115 -0
- package/lib/v2/e-hentai/maintainer.js +5 -0
- package/lib/v2/e-hentai/radar.js +25 -0
- package/lib/v2/e-hentai/router.js +3 -0
- package/lib/v2/e-hentai/templates/images.art +3 -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/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 +1 -1
- package/lib/v2/eprice/rss.js +4 -2
- 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 +69 -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 +122 -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 +52 -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/huizhou/zwgk/index.js +58 -0
- package/lib/v2/gov/maintainer.js +18 -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/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 +434 -3
- package/lib/v2/gov/router.js +19 -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/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/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 +2 -2
- package/lib/v2/hkepc/index.js +198 -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 +2 -2
- 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/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/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/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 +6 -1
- 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/utils.js +1 -1
- 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/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/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/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/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 +6 -6
- 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/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/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/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/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/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/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/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/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/{routes → v2}/rsshub/sponsors.js +0 -0
- package/lib/v2/ruc/hr.js +22 -16
- 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/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/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/swissinfo/index.js +1 -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/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/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/{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/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/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/feeddd.js +4 -39
- package/lib/v2/wechat/maintainer.js +1 -1
- 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/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/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/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/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/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/views/atom.art +4 -2
- package/lib/views/error.art +5 -4
- package/lib/views/rss.art +5 -4
- package/package.json +54 -46
- 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/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/video.js +0 -35
- package/lib/routes/bioone/featured.js +0 -49
- package/lib/routes/ccreports/index.js +0 -40
- 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/cntv/cntv.js +0 -24
- package/lib/routes/cool18/index.js +0 -57
- package/lib/routes/dbmv/index.js +0 -45
- package/lib/routes/dockerhub/build.js +0 -29
- package/lib/routes/douban/explore.js +0 -33
- package/lib/routes/douban/group.js +0 -48
- package/lib/routes/douban/people/status.js +0 -493
- package/lib/routes/douban/people/wish.js +0 -79
- package/lib/routes/dtcj/datahero.js +0 -49
- package/lib/routes/eastday/sh.js +0 -62
- package/lib/routes/eastmoney/user.js +0 -30
- 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/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/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/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/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/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/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/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/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/csm.js +0 -59
- 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/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/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/sysu/sdcs.js +0 -103
- 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/youku/channel.js +0 -56
- package/lib/routes/yxdzqb/index.js +0 -49
- 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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const querystring = require('querystring');
|
|
2
2
|
const got = require('@/utils/got');
|
|
3
|
+
const cheerio = require('cheerio');
|
|
3
4
|
const { fallback, queryToBoolean, queryToInteger } = require('@/utils/readable-social');
|
|
4
5
|
|
|
5
6
|
const weiboUtils = {
|
|
@@ -22,6 +23,8 @@ const weiboUtils = {
|
|
|
22
23
|
widthOfPics: fallback(params.widthOfPics, queryToInteger(routeParams.widthOfPics), -1),
|
|
23
24
|
heightOfPics: fallback(params.heightOfPics, queryToInteger(routeParams.heightOfPics), -1),
|
|
24
25
|
sizeOfAuthorAvatar: fallback(params.sizeOfAuthorAvatar, queryToInteger(routeParams.sizeOfAuthorAvatar), 48),
|
|
26
|
+
showEmojiInDescription: fallback(params.showEmojiInDescription, queryToInteger(routeParams.showEmojiInDescription), true),
|
|
27
|
+
showLinkIconInDescription: fallback(params.showLinkIconInDescription, queryToInteger(routeParams.showLinkIconInDescription), true),
|
|
25
28
|
};
|
|
26
29
|
|
|
27
30
|
params = mergedParams;
|
|
@@ -41,17 +44,25 @@ const weiboUtils = {
|
|
|
41
44
|
widthOfPics,
|
|
42
45
|
heightOfPics,
|
|
43
46
|
sizeOfAuthorAvatar,
|
|
47
|
+
showEmojiInDescription,
|
|
48
|
+
showLinkIconInDescription,
|
|
44
49
|
} = params;
|
|
45
50
|
|
|
46
51
|
let retweeted = '';
|
|
47
52
|
// 长文章的处理
|
|
48
53
|
let htmlNewLineUnreplaced = (status.longText && status.longText.longTextContent) || status.text || '';
|
|
49
54
|
// 表情图标转换为文字
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
//
|
|
54
|
-
|
|
55
|
+
if (!showEmojiInDescription) {
|
|
56
|
+
htmlNewLineUnreplaced = htmlNewLineUnreplaced.replace(/<span class=["']?url-icon["']?><img\s[^>]*?alt=["']?([^>]+?)["']?\s[^>]*?\/><\/span>/g, '$1');
|
|
57
|
+
}
|
|
58
|
+
// 去掉链接的图标,保留 a 标签链接
|
|
59
|
+
if (!showLinkIconInDescription) {
|
|
60
|
+
htmlNewLineUnreplaced = htmlNewLineUnreplaced.replace(/(<a\s[^>]*>)<span class=["']?url-icon["']?><img\s[^>]*><\/span>[^<>]*?<span class=["']?surl-text["']?>([^<>]*?)<\/span><\/a>/g, '$1$2</a>');
|
|
61
|
+
}
|
|
62
|
+
// 去掉乱七八糟的图标 // 不需要,上述的替换应该已经把所有的图标都替换掉了,且这条 regex 会破坏上述替换不发生时的输出
|
|
63
|
+
// htmlNewLineUnreplaced = htmlNewLineUnreplaced.replace(/<span class=["']?url-icon["']?>(<img\s[^>]*?>)<\/span>/g, '');
|
|
64
|
+
// 将行内图标的高度设置为一行,改善阅读体验。但有些阅读器删除了 style 属性,无法生效 // 不需要,微博已经作此设置
|
|
65
|
+
// htmlNewLineUnreplaced = htmlNewLineUnreplaced.replace(/(?<=<span class=["']?url-icon["']?>)<img/g, '<img style="height: 1em"');
|
|
55
66
|
// 去掉全文
|
|
56
67
|
htmlNewLineUnreplaced = htmlNewLineUnreplaced.replace(/全文<br>/g, '<br>');
|
|
57
68
|
htmlNewLineUnreplaced = htmlNewLineUnreplaced.replace(/<a href="(.*?)">全文<\/a>/g, '');
|
|
@@ -79,8 +90,28 @@ const weiboUtils = {
|
|
|
79
90
|
html = usernameAndAvatar + html;
|
|
80
91
|
}
|
|
81
92
|
|
|
93
|
+
// 添加文章头图,此处不需要回落到被转发的微博,后续处理被转发的微博时,还会执行到这里
|
|
94
|
+
if (status.page_info && status.page_info.type === 'article' && status.page_info.page_pic && status.page_info.page_pic.url) {
|
|
95
|
+
// 如果以后后续流程会用到其他字段,记得修改这里
|
|
96
|
+
const pagePic = {
|
|
97
|
+
large: {
|
|
98
|
+
url: status.page_info.page_pic.url,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
// 文章微博一般不会有配图,但也有可能有:https://weibo.com/6882481489/Lh85BkS3m
|
|
102
|
+
if (status.pics) {
|
|
103
|
+
status.pics.push(pagePic);
|
|
104
|
+
} else {
|
|
105
|
+
status.pics = [pagePic];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// drop live photo
|
|
110
|
+
const livePhotoCount = status.pics ? status.pics.filter((pic) => pic.type === 'livephotos').length : 0;
|
|
111
|
+
const pics = status.pics && status.pics.filter((pic) => pic.type !== 'livephotos');
|
|
112
|
+
|
|
82
113
|
// 添加微博配图
|
|
83
|
-
if (
|
|
114
|
+
if (pics) {
|
|
84
115
|
if (readable) {
|
|
85
116
|
html += '<br clear="both" /><div style="clear: both"></div>';
|
|
86
117
|
}
|
|
@@ -88,12 +119,12 @@ const weiboUtils = {
|
|
|
88
119
|
// 一些RSS Reader会识别所有<img>标签作为内含图片显示,我们不想要头像也作为内含图片之一
|
|
89
120
|
// 让所有配图在description的最前面再次出现一次,但宽高设为0
|
|
90
121
|
let picsPrefix = '';
|
|
91
|
-
|
|
122
|
+
pics.forEach((item) => {
|
|
92
123
|
picsPrefix += `<img width="0" height="0" hidden="true" src="${item.large.url}">`;
|
|
93
124
|
});
|
|
94
125
|
picsPrefixes.push(picsPrefix);
|
|
95
126
|
|
|
96
|
-
|
|
127
|
+
pics.forEach((item) => {
|
|
97
128
|
if (addLinkForPics) {
|
|
98
129
|
html += '<a href="' + item.large.url + '">';
|
|
99
130
|
}
|
|
@@ -170,16 +201,29 @@ const weiboUtils = {
|
|
|
170
201
|
}
|
|
171
202
|
if (!status.retweeted_status || showRetweetTextInTitle) {
|
|
172
203
|
title += htmlNewLineUnreplaced
|
|
204
|
+
.replace(/<span class=["']url-icon["']><img\s[^>]*?alt=["']?([^>]+?)["']?\s[^>]*?\/><\/span>/g, '$1') // 表情转换
|
|
205
|
+
.replace(/<span class=["']url-icon["']>(<img\s[^>]*?>)<\/span>/g, '') // 去掉所有图标
|
|
173
206
|
.replace(/<img[\s\S]*?>/g, '[图片]')
|
|
174
207
|
.replace(/<.*?>/g, '')
|
|
175
|
-
.replace('\n', '')
|
|
208
|
+
.replace('\n', '')
|
|
209
|
+
.trim();
|
|
176
210
|
}
|
|
177
211
|
if (status.retweeted_status) {
|
|
178
212
|
title += showEmojiForRetweet ? '🔁 ' : ' - 转发 ';
|
|
179
213
|
title += retweeted
|
|
214
|
+
.replace(/<span class=["']url-icon["']><img\s[^>]*?alt=["']?([^>]+?)["']?\s[^>]*?\/><\/span>/g, '$1') // 表情转换
|
|
215
|
+
.replace(/<span class=["']url-icon["']>(<img\s[^>]*?>)<\/span>/g, '') // 去掉所有图标
|
|
180
216
|
.replace(/<img[\s\S]*?>/g, '[图片]')
|
|
181
217
|
.replace(/<.*?>/g, '')
|
|
182
|
-
.replace('\n', '')
|
|
218
|
+
.replace('\n', '')
|
|
219
|
+
.trim();
|
|
220
|
+
}
|
|
221
|
+
if (livePhotoCount > 0) {
|
|
222
|
+
title += ' ';
|
|
223
|
+
title += new Array(livePhotoCount + 1).join('[Live Photo]');
|
|
224
|
+
}
|
|
225
|
+
if (status.page_info && status.page_info === 'video') {
|
|
226
|
+
title += ' [视频]';
|
|
183
227
|
}
|
|
184
228
|
|
|
185
229
|
return { description: html, title };
|
|
@@ -198,14 +242,177 @@ const weiboUtils = {
|
|
|
198
242
|
},
|
|
199
243
|
formatVideo: (itemDesc, status) => {
|
|
200
244
|
const pageInfo = status.page_info;
|
|
245
|
+
const livePhotos = status.pics && status.pics.filter((pic) => pic.type === 'livephotos' && pic.videoSrc);
|
|
246
|
+
let video = '<br clear="both" /><div style="clear: both"></div>';
|
|
247
|
+
let anyVideo = false;
|
|
248
|
+
if (livePhotos) {
|
|
249
|
+
livePhotos.forEach((livePhoto) => {
|
|
250
|
+
video += `<video controls="controls" poster="${(livePhoto.large && livePhoto.large.url) || livePhoto.url}" src="${livePhoto.videoSrc}" style="width: 100%"></video>`;
|
|
251
|
+
anyVideo = true;
|
|
252
|
+
});
|
|
253
|
+
}
|
|
201
254
|
if (pageInfo && pageInfo.type === 'video') {
|
|
202
255
|
const pagePic = pageInfo.page_pic;
|
|
203
|
-
const mediaInfo = pageInfo.media_info;
|
|
204
256
|
const posterUrl = pagePic ? pagePic.url : '';
|
|
205
|
-
const
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
257
|
+
const pageUrl = pageInfo.page_url; // video page url
|
|
258
|
+
const mediaInfo = pageInfo.media_info || {}; // stream_url, stream_url_hd; deprecated: mp4_720p_mp4, mp4_hd_url, mp4_sd_url
|
|
259
|
+
const urls = pageInfo.urls || {}; // mp4_720p_mp4, mp4_hd_mp4, hevc_mp4_hd, mp4_ld_mp4
|
|
260
|
+
|
|
261
|
+
const video720p = urls.mp4_720p_mp4 || mediaInfo.mp4_720p_mp4 || '';
|
|
262
|
+
const videoHd = urls.mp4_hd_mp4 || mediaInfo.mp4_hd_url || mediaInfo.stream_url_hd || '';
|
|
263
|
+
const videoHdHevc = urls.hevc_mp4_hd || '';
|
|
264
|
+
const videoLd = urls.mp4_ld_mp4 || mediaInfo.mp4_sd_url || mediaInfo.stream_url || '';
|
|
265
|
+
|
|
266
|
+
const hasVideo = video720p || videoHd || videoHdHevc || videoLd;
|
|
267
|
+
|
|
268
|
+
if (hasVideo) {
|
|
269
|
+
video += `<video controls="controls" poster="${posterUrl}" style="width: 100%">`;
|
|
270
|
+
if (video720p) {
|
|
271
|
+
video += `<source src="${video720p}">`;
|
|
272
|
+
}
|
|
273
|
+
if (videoHd) {
|
|
274
|
+
video += `<source src="${videoHd}">`;
|
|
275
|
+
}
|
|
276
|
+
if (videoHdHevc) {
|
|
277
|
+
video += `<source src="${videoHdHevc}">`;
|
|
278
|
+
}
|
|
279
|
+
if (videoLd) {
|
|
280
|
+
video += `<source src="${videoLd}">`;
|
|
281
|
+
}
|
|
282
|
+
if (pageUrl) {
|
|
283
|
+
video += `<p>视频无法显示,请前往<a href="${pageUrl}" target="_blank" rel="noopener noreferrer">微博视频</a>观看。</p>`;
|
|
284
|
+
}
|
|
285
|
+
video += '</video>';
|
|
286
|
+
anyVideo = true;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
if (anyVideo) {
|
|
290
|
+
itemDesc += video;
|
|
291
|
+
}
|
|
292
|
+
return itemDesc;
|
|
293
|
+
},
|
|
294
|
+
formatArticle: async (ctx, itemDesc, status) => {
|
|
295
|
+
const pageInfo = status.page_info;
|
|
296
|
+
if (pageInfo && pageInfo.type === 'article' && pageInfo.page_url) {
|
|
297
|
+
const pageUrl = pageInfo.page_url;
|
|
298
|
+
const articleIdMatch = pageUrl.match(/id=(\d+)/);
|
|
299
|
+
if (!articleIdMatch) {
|
|
300
|
+
return itemDesc;
|
|
301
|
+
}
|
|
302
|
+
const articleId = articleIdMatch[1];
|
|
303
|
+
const link = `https://card.weibo.com/article/m/aj/detail?id=${articleId}`;
|
|
304
|
+
const response = await ctx.cache.tryGet(link, async () => {
|
|
305
|
+
const _response = await got.get(link, {
|
|
306
|
+
headers: {
|
|
307
|
+
Referer: `https://card.weibo.com/article/m/show/id/${articleId}`,
|
|
308
|
+
'MWeibo-Pwa': 1,
|
|
309
|
+
'X-Requested-With': 'XMLHttpRequest',
|
|
310
|
+
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
|
|
311
|
+
},
|
|
312
|
+
});
|
|
313
|
+
return _response.data;
|
|
314
|
+
}); // cache it!
|
|
315
|
+
const article = response.data;
|
|
316
|
+
if (article && article.title && article.content) {
|
|
317
|
+
const title = article.title;
|
|
318
|
+
const content = article.content;
|
|
319
|
+
const summary = article.summary;
|
|
320
|
+
const createAt = article.create_at;
|
|
321
|
+
const readCount = article.read_count;
|
|
322
|
+
const isOriginal = article.is_original;
|
|
323
|
+
const isArticleNonFree = article.is_article_free; // 微博起错了字段名,它为 1 时才是收费文章
|
|
324
|
+
|
|
325
|
+
// 许多微博文章都给文字设置了白色背景,这里也只好使用白色背景了
|
|
326
|
+
let html = '<br clear="both" /><br clear="both" />';
|
|
327
|
+
html += '<div style="clear: both"></div><div style="background: #fff;border:5px solid #80808030;margin:0;padding:3% 5%;overflow-wrap: break-word">';
|
|
328
|
+
|
|
329
|
+
html += `<h1 style="font-size: 1.5rem;line-height: 1.25;color: #333;">${title}</h1>`; // 加入标题
|
|
330
|
+
|
|
331
|
+
// 加入文章信息
|
|
332
|
+
const iconStyle =
|
|
333
|
+
'display: inline-block;margin-inline: 0.25rem;width: 2.25rem; height: 1.125rem; background: #eee; border-radius: 2px; box-sizing: border-box; text-align: center; line-height: 1.0625rem; font-size: 0.75rem; color: #aaa;';
|
|
334
|
+
let articleMeta = '<p style="line-height: 1.66; color: #999;margin: 0 0 0.75rem;font-size: 0.75rem;padding: 0">';
|
|
335
|
+
if (isArticleNonFree) {
|
|
336
|
+
articleMeta += `<span style="${iconStyle}">试读</span> `;
|
|
337
|
+
}
|
|
338
|
+
if (isOriginal) {
|
|
339
|
+
articleMeta += `<span style="${iconStyle}">原创</span> `;
|
|
340
|
+
}
|
|
341
|
+
articleMeta += `<span style="margin-inline: 0.25rem;">发布时间: ${createAt}</span> `; // 发布时间
|
|
342
|
+
articleMeta += `<span style="margin-inline: 0.25rem;">阅读量: ${readCount}</span> `; // 阅读量
|
|
343
|
+
articleMeta += '</p>';
|
|
344
|
+
html += articleMeta;
|
|
345
|
+
|
|
346
|
+
if (summary) {
|
|
347
|
+
html += `<p style="color: #999;line-height: 1.5rem;padding: 0.0625rem 0 0.875rem;margin: 0">${summary}</p>`; // 摘要
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
html += '<div style="height: 0;border-bottom: 1px dashed #999;margin-bottom: 0.75rem;"></div>'; // 分割线
|
|
351
|
+
|
|
352
|
+
// 正文处理,加入一些在微博文章页的 CSS 中定义的不可或缺的样式
|
|
353
|
+
const $ = cheerio.load(content);
|
|
354
|
+
$('p').each((_, elem) => {
|
|
355
|
+
elem = $(elem);
|
|
356
|
+
let style = elem.attr('style') || '';
|
|
357
|
+
style = 'margin: 0;padding: 0;border: 0;' + style;
|
|
358
|
+
elem.attr('style', style);
|
|
359
|
+
});
|
|
360
|
+
$('.image').each((_, elem) => {
|
|
361
|
+
elem = $(elem);
|
|
362
|
+
let style = elem.attr('style') || '';
|
|
363
|
+
style = 'display: table;text-align: center;margin-left: auto;margin-right: auto;clear: both;min-width: 50px;' + style;
|
|
364
|
+
elem.attr('style', style);
|
|
365
|
+
});
|
|
366
|
+
$('img').each((_, elem) => {
|
|
367
|
+
elem = $(elem);
|
|
368
|
+
let style = elem.attr('style') || '';
|
|
369
|
+
style = 'display: block;max-width: 100%;margin-left: auto;margin-right: auto;min-width: 50px;' + style;
|
|
370
|
+
elem.attr('style', style);
|
|
371
|
+
});
|
|
372
|
+
const contentHtml = $.html();
|
|
373
|
+
html += `<div style="line-height: 1.59;text-align: justify;font-size: 1.0625rem;color: #333;">${contentHtml}</div>`; // 正文
|
|
374
|
+
|
|
375
|
+
html += '</div>';
|
|
376
|
+
itemDesc += html;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
return itemDesc;
|
|
380
|
+
},
|
|
381
|
+
formatComments: async (ctx, itemDesc, status) => {
|
|
382
|
+
if (status && status.comments_count && status.id && status.mid) {
|
|
383
|
+
const id = status.id;
|
|
384
|
+
const mid = status.mid;
|
|
385
|
+
const link = `https://m.weibo.cn/comments/hotflow?id=${id}&mid=${mid}&max_id_type=0`;
|
|
386
|
+
const response = await ctx.cache.tryGet(link, async () => {
|
|
387
|
+
const _response = await got.get(link, {
|
|
388
|
+
headers: {
|
|
389
|
+
Referer: `https://m.weibo.cn/detail/${id}`,
|
|
390
|
+
'MWeibo-Pwa': 1,
|
|
391
|
+
'X-Requested-With': 'XMLHttpRequest',
|
|
392
|
+
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
|
|
393
|
+
},
|
|
394
|
+
});
|
|
395
|
+
return _response.data;
|
|
396
|
+
});
|
|
397
|
+
if (response.data && response.data.data) {
|
|
398
|
+
const comments = response.data.data;
|
|
399
|
+
itemDesc += `<br clear="both" /><div style="clear: both"></div><div style="background: #80808010;border-top:1px solid #80808030;border-bottom:1px solid #80808030;margin:0;padding:5px 20px;">`;
|
|
400
|
+
itemDesc += '<h3>热门评论</h3>';
|
|
401
|
+
comments.forEach((comment) => {
|
|
402
|
+
itemDesc += '<p style="margin-bottom: 0.5em;margin-top: 0.5em">';
|
|
403
|
+
itemDesc += `<a href="https://weibo.com/${comment.user.id}" target="_blank">${comment.user.screen_name}</a>: ${comment.text}`;
|
|
404
|
+
if (comment.comments) {
|
|
405
|
+
itemDesc += '<blockquote style="border-left:0.2em solid #80808080; margin-left: 0.3em; padding-left: 0.5em; margin-bottom: 0.5em; margin-top: 0.25em">';
|
|
406
|
+
comment.comments.forEach((comment) => {
|
|
407
|
+
itemDesc += '<div style="font-size: 0.9em">';
|
|
408
|
+
itemDesc += `<a href="https://weibo.com/${comment.user.id}" target="_blank">${comment.user.screen_name}</a>: ${comment.text}`;
|
|
409
|
+
itemDesc += '</div>';
|
|
410
|
+
});
|
|
411
|
+
itemDesc += '</blockquote>';
|
|
412
|
+
}
|
|
413
|
+
itemDesc += '</p>';
|
|
414
|
+
});
|
|
415
|
+
itemDesc += '</div>';
|
|
209
416
|
}
|
|
210
417
|
}
|
|
211
418
|
return itemDesc;
|
|
@@ -179,7 +179,7 @@ module.exports = async (ctx) => {
|
|
|
179
179
|
const itunesItemImage = item.coverLarge ? item.coverLarge : albumCover;
|
|
180
180
|
const link = baseUrl + albumUrl + trackId;
|
|
181
181
|
const pubDate = new Date(item.createdAt).toUTCString();
|
|
182
|
-
const
|
|
182
|
+
const duration = item.duration; // 时间长度:单位(秒)
|
|
183
183
|
const enclosureUrl = item.playPathAacv224 || item.playPathAacv164;
|
|
184
184
|
|
|
185
185
|
let resultItem = {
|
|
@@ -199,7 +199,7 @@ module.exports = async (ctx) => {
|
|
|
199
199
|
resultItem = {
|
|
200
200
|
...resultItem,
|
|
201
201
|
enclosure_url: enclosureUrl,
|
|
202
|
-
|
|
202
|
+
itunes_duration: duration,
|
|
203
203
|
enclosure_type: 'audio/x-m4a',
|
|
204
204
|
};
|
|
205
205
|
}
|
|
@@ -3,7 +3,7 @@ const config = require('@/config').value;
|
|
|
3
3
|
|
|
4
4
|
module.exports = async (ctx) => {
|
|
5
5
|
if (!config.youtube || !config.youtube.key) {
|
|
6
|
-
throw 'YouTube RSS is disabled due to the lack of <a href="https://docs.rsshub.app/install
|
|
6
|
+
throw 'YouTube RSS is disabled due to the lack of <a href="https://docs.rsshub.app/install/#pei-zhi-bu-fen-rss-mo-kuai-pei-zhi">relevant config</a>';
|
|
7
7
|
}
|
|
8
8
|
const id = ctx.params.id;
|
|
9
9
|
const embed = !ctx.params.embed;
|
|
@@ -3,7 +3,7 @@ const config = require('@/config').value;
|
|
|
3
3
|
|
|
4
4
|
module.exports = async (ctx) => {
|
|
5
5
|
if (!config.youtube || !config.youtube.key) {
|
|
6
|
-
throw 'YouTube RSS is disabled due to the lack of <a href="https://docs.rsshub.app/install
|
|
6
|
+
throw 'YouTube RSS is disabled due to the lack of <a href="https://docs.rsshub.app/install/#pei-zhi-bu-fen-rss-mo-kuai-pei-zhi">relevant config</a>';
|
|
7
7
|
}
|
|
8
8
|
const id = ctx.params.id;
|
|
9
9
|
const embed = !ctx.params.embed;
|
|
@@ -3,7 +3,7 @@ const config = require('@/config').value;
|
|
|
3
3
|
|
|
4
4
|
module.exports = async (ctx) => {
|
|
5
5
|
if (!config.youtube || !config.youtube.key) {
|
|
6
|
-
throw 'YouTube RSS is disabled due to the lack of <a href="https://docs.rsshub.app/install
|
|
6
|
+
throw 'YouTube RSS is disabled due to the lack of <a href="https://docs.rsshub.app/install/#pei-zhi-bu-fen-rss-mo-kuai-pei-zhi">relevant config</a>';
|
|
7
7
|
}
|
|
8
8
|
const username = ctx.params.username;
|
|
9
9
|
const embed = !ctx.params.embed;
|
|
@@ -28,7 +28,6 @@ module.exports = async (ctx) => {
|
|
|
28
28
|
// 文章链接
|
|
29
29
|
link: `${item.magnet_url}&tr=http://tr.cili001.com:8070/announce&tr=udp://p4p.arenabg.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://open.demonii.com:1337`,
|
|
30
30
|
enclosure_url: `${item.magnet_url}&tr=http://tr.cili001.com:8070/announce&tr=udp://p4p.arenabg.com:1337&tr=udp://tracker.opentrackr.org:1337/announce&tr=udp://open.demonii.com:1337`, // 磁力链接
|
|
31
|
-
enclosure_length: '', // 时间戳 (播放长度) , 一般是秒数,可选
|
|
32
31
|
enclosure_type: 'application/x-bittorrent', // 固定为 'application/x-bittorrent'
|
|
33
32
|
})),
|
|
34
33
|
};
|
package/lib/routes/zcool/top.js
CHANGED
|
@@ -8,7 +8,7 @@ module.exports = async (ctx) => {
|
|
|
8
8
|
const topResponse = await got({
|
|
9
9
|
method: 'get',
|
|
10
10
|
url,
|
|
11
|
-
|
|
11
|
+
headers: {
|
|
12
12
|
Referer: 'https://www.zcool.com.cn',
|
|
13
13
|
},
|
|
14
14
|
});
|
|
@@ -20,7 +20,7 @@ module.exports = async (ctx) => {
|
|
|
20
20
|
const articleResponse = await got({
|
|
21
21
|
method: 'get',
|
|
22
22
|
url: 'https://www.zcool.com.cn/top/article.do?rankType=8&rankId=' + rankId,
|
|
23
|
-
|
|
23
|
+
headers: {
|
|
24
24
|
Referer: url,
|
|
25
25
|
},
|
|
26
26
|
});
|
|
@@ -56,7 +56,7 @@ module.exports = async (ctx) => {
|
|
|
56
56
|
const itemResponse = await got({
|
|
57
57
|
method: 'get',
|
|
58
58
|
url: link,
|
|
59
|
-
|
|
59
|
+
headers: {
|
|
60
60
|
Referer: url,
|
|
61
61
|
},
|
|
62
62
|
});
|
|
@@ -19,6 +19,7 @@ module.exports = async (ctx) => {
|
|
|
19
19
|
ctx.state.data = {
|
|
20
20
|
title: `${data[0].actor.name}的知乎动态`,
|
|
21
21
|
link: `https://www.zhihu.com/people/${id}/activities`,
|
|
22
|
+
image: data[0].actor.avatar_url,
|
|
22
23
|
description: data[0].actor.headline || data[0].actor.description,
|
|
23
24
|
item: data.map((item) => {
|
|
24
25
|
const detail = item.target;
|
|
@@ -5,6 +5,7 @@ const { generateData } = require('./pin/utils');
|
|
|
5
5
|
|
|
6
6
|
module.exports = async (ctx) => {
|
|
7
7
|
const id = ctx.params.id;
|
|
8
|
+
const getAll = ctx.params.getAll;
|
|
8
9
|
|
|
9
10
|
const response = await got({
|
|
10
11
|
method: 'get',
|
|
@@ -17,6 +18,29 @@ module.exports = async (ctx) => {
|
|
|
17
18
|
|
|
18
19
|
const list = response.data.data;
|
|
19
20
|
|
|
21
|
+
if (getAll) {
|
|
22
|
+
const totals = response.data.paging.totals;
|
|
23
|
+
|
|
24
|
+
const offsetList = [...new Array(Math.round(totals / 20)).keys()].map((item) => item * 20).slice(1);
|
|
25
|
+
const otherList = await Promise.all(
|
|
26
|
+
offsetList.map((offset) =>
|
|
27
|
+
ctx.cache.tryGet(`https://www.zhihu.com/api/v4/collections/${id}/items?offset=${offset}&limit=20`, async () => {
|
|
28
|
+
const response = await got({
|
|
29
|
+
method: 'get',
|
|
30
|
+
url: `https://www.zhihu.com/api/v4/collections/${id}/items?offset=${offset}&limit=20`,
|
|
31
|
+
headers: {
|
|
32
|
+
...utils.header,
|
|
33
|
+
Referer: `https://www.zhihu.com/collection/${id}`,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
return response.data.data;
|
|
38
|
+
})
|
|
39
|
+
)
|
|
40
|
+
).then((item) => item.flat());
|
|
41
|
+
list.push(...otherList);
|
|
42
|
+
}
|
|
43
|
+
|
|
20
44
|
const response2 = await got({
|
|
21
45
|
method: 'get',
|
|
22
46
|
url: `https://www.zhihu.com/collection/${id}`,
|
|
@@ -42,9 +66,9 @@ module.exports = async (ctx) => {
|
|
|
42
66
|
item.content.type === 'pin'
|
|
43
67
|
? generateDataPin(item)
|
|
44
68
|
: {
|
|
45
|
-
title: item.content.type === 'article' ? item.content.title : item.content.question.title,
|
|
69
|
+
title: item.content.type === 'article' || item.content.type === 'zvideo' ? item.content.title : item.content.question.title,
|
|
46
70
|
link: item.content.url,
|
|
47
|
-
description: item.content.content,
|
|
71
|
+
description: item.content.type === 'zvideo' ? `<img src=${item.content.video.url}/>` : item.content.content,
|
|
48
72
|
pubDate: new Date((item.content.type === 'article' ? item.content.updated : item.content.updated_time) * 1000).toUTCString(),
|
|
49
73
|
}
|
|
50
74
|
),
|
package/lib/routes/zhihu/hot.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const got = require('@/utils/got');
|
|
2
|
+
const { parseDate } = require('@/utils/parse-date');
|
|
2
3
|
|
|
3
4
|
const titles = {
|
|
4
5
|
total: '全站',
|
|
@@ -23,9 +24,9 @@ module.exports = async (ctx) => {
|
|
|
23
24
|
});
|
|
24
25
|
|
|
25
26
|
const items = response.data.data.map((item) => ({
|
|
26
|
-
link: item.target.
|
|
27
|
+
link: `https://www.zhihu.com/question/${item.target.id}`,
|
|
27
28
|
title: item.target.title,
|
|
28
|
-
pubDate:
|
|
29
|
+
pubDate: parseDate(item.target.created * 1000),
|
|
29
30
|
description: item.target.excerpt ? `<p>${item.target.excerpt}</p>` : '',
|
|
30
31
|
}));
|
|
31
32
|
|
|
@@ -17,13 +17,23 @@ module.exports = {
|
|
|
17
17
|
break;
|
|
18
18
|
|
|
19
19
|
case 'video':
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
try {
|
|
21
|
+
description += `<video
|
|
22
|
+
controls="controls"
|
|
23
|
+
width="${item.playlist.hd.width}"
|
|
24
|
+
height="${item.playlist.hd.height}"
|
|
25
|
+
poster="${item.cover_info.thumbnail}"
|
|
26
|
+
src="${item.playlist.hd.play_url}"
|
|
27
|
+
>`;
|
|
28
|
+
} catch (e) {
|
|
29
|
+
description += `<video
|
|
30
|
+
controls="controls"
|
|
31
|
+
width="${item.playlist.pop().width}"
|
|
32
|
+
height="${item.playlist.pop().height}"
|
|
33
|
+
poster="${item.thumbnail}"
|
|
34
|
+
src="${item.playlist.pop().play_url}"
|
|
35
|
+
>`;
|
|
36
|
+
}
|
|
27
37
|
break;
|
|
28
38
|
|
|
29
39
|
case 'link':
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const got = require('@/utils/got');
|
|
2
2
|
const utils = require('./utils');
|
|
3
3
|
const cheerio = require('cheerio');
|
|
4
|
+
const { parseDate } = require('@/utils/parse-date');
|
|
4
5
|
|
|
5
6
|
module.exports = async (ctx) => {
|
|
6
7
|
const id = ctx.params.id;
|
|
@@ -38,7 +39,7 @@ module.exports = async (ctx) => {
|
|
|
38
39
|
title: String(item.title),
|
|
39
40
|
description: item.content,
|
|
40
41
|
link: item.url,
|
|
41
|
-
pubDate:
|
|
42
|
+
pubDate: parseDate(item.updated * 1000),
|
|
42
43
|
})),
|
|
43
44
|
};
|
|
44
45
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const got = require('@/utils/got');
|
|
2
2
|
const utils = require('./utils');
|
|
3
|
+
const { parseDate } = require('@/utils/parse-date');
|
|
3
4
|
|
|
4
5
|
module.exports = async (ctx) => {
|
|
5
6
|
const { topicId } = ctx.params;
|
|
@@ -32,7 +33,7 @@ module.exports = async (ctx) => {
|
|
|
32
33
|
title = `${item.question.title}-${item.author.name}的回答:${item.excerpt}`;
|
|
33
34
|
description = `<strong>${item.question.title}</strong><br>${item.author.name}的回答<br/>${utils.ProcessImage(item.content)}`;
|
|
34
35
|
link = `https://www.zhihu.com/question/${item.question.id}/answer/${item.id}`;
|
|
35
|
-
pubDate =
|
|
36
|
+
pubDate = parseDate(item.updated_time * 1000);
|
|
36
37
|
author = item.author.name;
|
|
37
38
|
break;
|
|
38
39
|
|
|
@@ -40,7 +41,14 @@ module.exports = async (ctx) => {
|
|
|
40
41
|
title = item.title;
|
|
41
42
|
description = item.title;
|
|
42
43
|
link = `https://www.zhihu.com/question/${item.id}`;
|
|
43
|
-
pubDate =
|
|
44
|
+
pubDate = parseDate(item.created * 1000);
|
|
45
|
+
break;
|
|
46
|
+
|
|
47
|
+
case 'article':
|
|
48
|
+
title = item.title;
|
|
49
|
+
description = item.content;
|
|
50
|
+
link = item.url;
|
|
51
|
+
pubDate = parseDate(item.created * 1000);
|
|
44
52
|
break;
|
|
45
53
|
|
|
46
54
|
default:
|
|
@@ -14,6 +14,17 @@ module.exports = async (ctx) => {
|
|
|
14
14
|
},
|
|
15
15
|
});
|
|
16
16
|
|
|
17
|
+
const pinnedRes = await got({
|
|
18
|
+
method: 'get',
|
|
19
|
+
url: `https://www.zhihu.com/api/v4/columns/${id}/pinned-items`,
|
|
20
|
+
headers: {
|
|
21
|
+
...utils.header,
|
|
22
|
+
Referer: `https://zhuanlan.zhihu.com/${id}`,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
listRes.data.data = listRes.data.data.concat(pinnedRes.data.data);
|
|
27
|
+
|
|
17
28
|
// 知乎专栏链接存在两种格式, 一种以 'zhuanlan.' 开头, 另一种新增的以 'c_' 结尾
|
|
18
29
|
let url = `https://zhuanlan.zhihu.com/${id}`;
|
|
19
30
|
if (id.search('c_') === 0) {
|
|
@@ -41,7 +52,7 @@ module.exports = async (ctx) => {
|
|
|
41
52
|
|
|
42
53
|
if (item.type === 'answer') {
|
|
43
54
|
title = item.question.title;
|
|
44
|
-
author = item.question.author.name;
|
|
55
|
+
author = item.question.author ? item.question.author.name : '';
|
|
45
56
|
link = `https://www.zhihu.com/question/${item.question.id}/answer/${item.id}`;
|
|
46
57
|
pubDate = new Date(item.created_time * 1000);
|
|
47
58
|
} else if (item.type === 'article') {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
const { parseDate } = require('@/utils/parse-date');
|
|
2
|
+
|
|
1
3
|
// convert a string into title case
|
|
2
4
|
const toTitleCase = (str) =>
|
|
3
5
|
str
|
|
@@ -6,6 +8,30 @@ const toTitleCase = (str) =>
|
|
|
6
8
|
.map((word) => word.replace(word[0], word[0].toUpperCase()))
|
|
7
9
|
.join(' ');
|
|
8
10
|
|
|
11
|
+
const rWhiteSpace = /\s+/;
|
|
12
|
+
const rAllWhiteSpace = /\s+/g;
|
|
13
|
+
|
|
14
|
+
// collapse all whitespaces into a single space (like "white-space: normal;" would do), and trim
|
|
15
|
+
const collapseWhitespace = (str) => {
|
|
16
|
+
if (str && rWhiteSpace.test(str)) {
|
|
17
|
+
return str.replace(rAllWhiteSpace, ' ').trim();
|
|
18
|
+
}
|
|
19
|
+
return str;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const convertDateToISO8601 = (date) => {
|
|
23
|
+
if (!date) {
|
|
24
|
+
return date;
|
|
25
|
+
}
|
|
26
|
+
if (typeof date !== 'object') {
|
|
27
|
+
// some routes may call `.toUTCString()` before passing the date to ctx...
|
|
28
|
+
date = parseDate(date);
|
|
29
|
+
}
|
|
30
|
+
return date.toISOString();
|
|
31
|
+
};
|
|
32
|
+
|
|
9
33
|
module.exports = {
|
|
10
34
|
toTitleCase,
|
|
35
|
+
collapseWhitespace,
|
|
36
|
+
convertDateToISO8601,
|
|
11
37
|
};
|