rsshub 1.0.0-master.facc6d5 → 1.0.0-master.fad0dfa
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 +1 -1
- package/lib/{app.tsx → app-bootstrap.tsx} +0 -2
- package/lib/app.test.ts +15 -1
- package/lib/app.ts +5 -0
- package/lib/config.ts +8 -0
- package/lib/index.ts +0 -1
- package/lib/middleware/header.test.ts +1 -0
- package/lib/middleware/header.ts +4 -0
- package/lib/middleware/parameter.ts +4 -3
- package/lib/registry.ts +12 -5
- package/lib/routes/005/index.ts +0 -2
- package/lib/routes/10000link/info.ts +251 -0
- package/lib/routes/10000link/namespace.ts +9 -0
- package/lib/routes/10000link/templates/description.art +7 -0
- package/lib/routes/12306/index.ts +0 -2
- package/lib/routes/141jav/index.ts +0 -2
- package/lib/routes/141ppv/index.ts +0 -2
- package/lib/routes/163/ds.ts +0 -2
- package/lib/routes/163/exclusive.ts +0 -2
- package/lib/routes/163/music/artist-songs.ts +0 -2
- package/lib/routes/163/music/artist.ts +0 -2
- package/lib/routes/163/music/djradio.ts +0 -2
- package/lib/routes/163/music/playlist.ts +0 -2
- package/lib/routes/163/music/userevents.ts +0 -2
- package/lib/routes/163/music/userplaylist.ts +0 -2
- package/lib/routes/163/music/userplayrecords.ts +0 -2
- package/lib/routes/163/open/vip.ts +0 -2
- package/lib/routes/163/utils.ts +0 -3
- package/lib/routes/18comic/utils.ts +0 -3
- package/lib/routes/199it/index.ts +2 -4
- package/lib/routes/1point3acres/offer.ts +0 -2
- package/lib/routes/1point3acres/section.ts +2 -2
- package/lib/routes/1point3acres/utils.ts +0 -3
- package/lib/routes/1x/index.ts +1 -3
- package/lib/routes/2048/index.ts +0 -2
- package/lib/routes/2cycd/index.ts +3 -3
- package/lib/routes/36kr/hot-list.ts +9 -1
- package/lib/routes/3dmgame/news-center.ts +1 -1
- package/lib/routes/3kns/index.ts +0 -2
- package/lib/routes/423down/index.ts +6 -8
- package/lib/routes/4gamers/utils.ts +0 -3
- package/lib/routes/4khd/namespace.ts +1 -1
- package/lib/routes/4ksj/forum.ts +0 -2
- package/lib/routes/500px/tribe-set.ts +0 -2
- package/lib/routes/56kog/util.ts +0 -3
- package/lib/routes/591/list.ts +0 -2
- package/lib/routes/6park/news.ts +1 -1
- package/lib/routes/78dm/index.ts +0 -2
- package/lib/routes/7mmtv/index.ts +0 -2
- package/lib/routes/8264/list.ts +0 -2
- package/lib/routes/91porn/author.ts +0 -2
- package/lib/routes/91porn/index.ts +0 -2
- package/lib/routes/95mm/utils.ts +0 -3
- package/lib/routes/a9vg/index.ts +0 -2
- package/lib/routes/aamacau/index.ts +3 -3
- package/lib/routes/abc/index.ts +1 -3
- package/lib/routes/accessbriefing/index.ts +0 -2
- package/lib/routes/acfun/video.ts +1 -1
- package/lib/routes/acs/journal.ts +0 -2
- package/lib/routes/adquan/case-library.ts +144 -0
- package/lib/routes/adquan/index.ts +144 -0
- package/lib/routes/adquan/namespace.ts +9 -0
- package/lib/routes/adquan/templates/description.art +7 -0
- package/lib/routes/aeaweb/index.ts +0 -2
- package/lib/routes/aeon/utils.ts +0 -3
- package/lib/routes/aflcio/blog.ts +158 -0
- package/lib/routes/aflcio/namespace.ts +9 -0
- package/lib/routes/agefans/update.ts +20 -20
- package/lib/routes/agri/index.ts +0 -2
- package/lib/routes/ahjzu/news.ts +3 -3
- package/lib/routes/aibase/util.ts +0 -3
- package/lib/routes/aicaijing/index.ts +0 -2
- package/lib/routes/ainvest/utils.ts +3 -3
- package/lib/routes/aip/journal.ts +26 -30
- package/lib/routes/aip/utils.ts +0 -3
- package/lib/routes/ali213/news.ts +2 -4
- package/lib/routes/ali213/zl.ts +2 -4
- package/lib/routes/aliyun/database-month.ts +3 -3
- package/lib/routes/aliyun/developer/group.ts +12 -18
- package/lib/routes/aliyun/notice.ts +3 -3
- package/lib/routes/aljazeera/index.ts +0 -2
- package/lib/routes/ally/rail.ts +22 -16
- package/lib/routes/amazfitwatchfaces/index.ts +430 -0
- package/lib/routes/amazfitwatchfaces/namespace.ts +10 -0
- package/lib/routes/amazfitwatchfaces/templates/description.art +17 -0
- package/lib/routes/amazon/kindle-software-updates.ts +7 -9
- package/lib/routes/anquanke/vul.ts +1 -1
- package/lib/routes/anthropic/engineering.ts +72 -0
- package/lib/routes/anthropic/news.ts +6 -4
- package/lib/routes/anytxt/namespace.ts +9 -0
- package/lib/routes/anytxt/release-notes.ts +92 -0
- package/lib/routes/apnews/mobile-api.ts +94 -0
- package/lib/routes/apnews/sitemap.ts +3 -2
- package/lib/routes/apnews/topics.ts +3 -2
- package/lib/routes/apnews/utils.ts +2 -10
- package/lib/routes/app-center/release.ts +0 -2
- package/lib/routes/app-sales/index.ts +200 -0
- package/lib/routes/app-sales/mostwanted.ts +194 -0
- package/lib/routes/app-sales/namespace.ts +9 -0
- package/lib/routes/app-sales/templates/description.art +120 -0
- package/lib/routes/app-sales/util.ts +161 -0
- package/lib/routes/apple/podcast.ts +2 -1
- package/lib/routes/appstorrent/programs.ts +0 -2
- package/lib/routes/aqara/post.ts +0 -2
- package/lib/routes/arcteryx/new-arrivals.ts +0 -2
- package/lib/routes/arcteryx/outlet.ts +0 -2
- package/lib/routes/arcteryx/regear-new-arrivals.ts +0 -2
- package/lib/routes/artstation/user.ts +0 -2
- package/lib/routes/asiafruitchina/categories.ts +2 -4
- package/lib/routes/asiafruitchina/news.ts +2 -4
- package/lib/routes/asiantolick/index.ts +0 -2
- package/lib/routes/asmr-200/index.ts +1 -2
- package/lib/routes/asus/bios.ts +0 -2
- package/lib/routes/baidu/gushitong/index.ts +0 -2
- package/lib/routes/baidu/search.ts +0 -2
- package/lib/routes/baidu/tieba/forum.ts +0 -2
- package/lib/routes/baidu/tieba/post.ts +31 -37
- package/lib/routes/baidu/tieba/search.ts +0 -2
- package/lib/routes/baidu/top.ts +0 -2
- package/lib/routes/bakamh/manga.ts +74 -0
- package/lib/routes/bakamh/namespace.ts +8 -0
- package/lib/routes/bandcamp/weekly.ts +0 -2
- package/lib/routes/bangumi.online/online.ts +0 -2
- package/lib/routes/bangumi.tv/calendar/today.ts +0 -2
- package/lib/routes/bangumi.tv/subject/ep.ts +0 -3
- package/lib/routes/bangumi.tv/user/collections.ts +0 -3
- package/lib/routes/baozimh/index.ts +0 -2
- package/lib/routes/bast/index.ts +1 -1
- package/lib/routes/bbc/learningenglish.ts +76 -0
- package/lib/routes/bbcnewslabs/news.ts +4 -4
- package/lib/routes/bc3ts/list.ts +1 -4
- package/lib/routes/bdys/index.ts +37 -40
- package/lib/routes/behance/user.ts +1 -3
- package/lib/routes/bgmlist/onair.ts +0 -2
- package/lib/routes/bilibili/danmaku.ts +1 -1
- package/lib/routes/bilibili/dynamic.ts +2 -0
- package/lib/routes/bilibili/followings-dynamic.ts +10 -4
- package/lib/routes/bilibili/ranking.ts +2 -0
- package/lib/routes/bilibili/utils.ts +5 -4
- package/lib/routes/bilibili/video.ts +76 -26
- package/lib/routes/bilibili/wasm-exec.ts +3 -3
- package/lib/routes/bing/search.ts +2 -2
- package/lib/routes/bjnews/cat.ts +2 -9
- package/lib/routes/bjwxdxh/index.ts +3 -3
- package/lib/routes/bjx/huanbao.ts +4 -12
- package/lib/routes/bjx/types.ts +9 -13
- package/lib/routes/blogread/index.ts +3 -4
- package/lib/routes/bloomberg/authors.ts +13 -14
- package/lib/routes/bloomberg/index.ts +6 -5
- package/lib/routes/bloomberg/utils.ts +5 -17
- package/lib/routes/bnu/bs.ts +3 -3
- package/lib/routes/bnu/dwxgb.ts +3 -3
- package/lib/routes/bnu/jwb.ts +1 -1
- package/lib/routes/bookfere/category.ts +11 -15
- package/lib/routes/booru/mmda.ts +0 -2
- package/lib/routes/bsky/feeds.ts +0 -2
- package/lib/routes/bsky/posts.ts +1 -3
- package/lib/routes/btzj/index.ts +0 -2
- package/lib/routes/buaa/lib/space/newbook.ts +0 -2
- package/lib/routes/bulianglin/rss.ts +3 -3
- package/lib/routes/bullionvault/gold-news.ts +2 -1
- package/lib/routes/bupt/jwc.ts +2 -2
- package/lib/routes/bupt/rczp.ts +3 -3
- package/lib/routes/caai/utils.ts +0 -3
- package/lib/routes/caareviews/utils.ts +3 -6
- package/lib/routes/cahkms/index.ts +0 -2
- package/lib/routes/caixin/blog.ts +1 -1
- package/lib/routes/caixin/database.ts +0 -2
- package/lib/routes/caixin/utils-fulltext.ts +1 -1
- package/lib/routes/caixin/utils.ts +0 -3
- package/lib/routes/cankaoxiaoxi/index.ts +0 -2
- package/lib/routes/cara/likes.ts +0 -3
- package/lib/routes/cara/timeline.ts +0 -3
- package/lib/routes/cara/utils.ts +0 -9
- package/lib/routes/cartoonmad/comic.ts +0 -2
- package/lib/routes/cas/cg/index.ts +3 -3
- package/lib/routes/cas/genetics/index.ts +2 -2
- package/lib/routes/cbaigui/index.ts +0 -2
- package/lib/routes/cccmc/index.ts +2 -1
- package/lib/routes/ccf/ccfcv/index.ts +0 -2
- package/lib/routes/ccf/tfbd/utils.ts +0 -3
- package/lib/routes/ccfa/index.ts +0 -2
- package/lib/routes/ccreports/index.ts +3 -3
- package/lib/routes/cctv/jx.ts +3 -3
- package/lib/routes/cctv/utils/news.ts +3 -3
- package/lib/routes/cctv/utils/xinwen1j1.ts +1 -1
- package/lib/routes/cctv/xwlb.ts +1 -1
- package/lib/routes/cde/xxgk.ts +24 -9
- package/lib/routes/cdzjryb/project-list.ts +0 -2
- package/lib/routes/cebbank/all.ts +6 -8
- package/lib/routes/cebbank/history.ts +3 -5
- package/lib/routes/cfr/index.ts +3 -2
- package/lib/routes/cfr/utils.ts +2 -10
- package/lib/routes/chaincatcher/home.ts +0 -2
- package/lib/routes/changba/user.ts +40 -46
- package/lib/routes/chaoxing/qk.ts +0 -2
- package/lib/routes/china/finance/finance.ts +2 -2
- package/lib/routes/china/news/highlights/news.ts +11 -15
- package/lib/routes/china/news/military/news.ts +11 -15
- package/lib/routes/chinacdc/index.ts +2 -4
- package/lib/routes/chinadaily/language.ts +324 -0
- package/lib/routes/chinadaily/namespace.ts +9 -0
- package/lib/routes/chinadaily/templates/description.art +21 -0
- package/lib/routes/chinadegrees/province.ts +0 -2
- package/lib/routes/chinanews/index.ts +2 -2
- package/lib/routes/chinaratings/credit-research.ts +2 -1
- package/lib/routes/chinaventure/index.ts +3 -5
- package/lib/routes/chnmuseum/namespace.ts +10 -0
- package/lib/routes/chnmuseum/xingnew.ts +73 -0
- package/lib/routes/chnmuseum/xwzt.ts +67 -0
- package/lib/routes/chongbuluo/index.ts +86 -0
- package/lib/routes/chongbuluo/namespace.ts +7 -0
- package/lib/routes/chuanliu/nice.ts +0 -2
- package/lib/routes/cib/whpj.ts +3 -3
- package/lib/routes/cih-index/namespace.ts +7 -0
- package/lib/routes/cih-index/report.ts +74 -0
- package/lib/routes/ciidbnu/index.ts +3 -3
- package/lib/routes/ciweimao/chapter.ts +1 -1
- package/lib/routes/clickme/index.ts +1 -1
- package/lib/routes/cline/blog.ts +80 -0
- package/lib/routes/cline/namespace.ts +13 -0
- package/lib/routes/cls/depth.ts +0 -2
- package/lib/routes/cls/hot.ts +0 -2
- package/lib/routes/cls/subject.ts +0 -2
- package/lib/routes/cls/telegraph.ts +0 -2
- package/lib/routes/cma/channel.ts +0 -2
- package/lib/routes/cna/index.ts +1 -1
- package/lib/routes/cna/web/index.ts +1 -1
- package/lib/routes/cncf/index.ts +3 -3
- package/lib/routes/cncf/reports.ts +3 -3
- package/lib/routes/cngal/entry.ts +0 -2
- package/lib/routes/cngal/weekly.ts +0 -2
- package/lib/routes/cnjxol/index.ts +0 -2
- package/lib/routes/cnki/debut.ts +7 -9
- package/lib/routes/cnki/journals.ts +11 -13
- package/lib/routes/cnki/utils.ts +0 -3
- package/lib/routes/cntheory/paper.ts +0 -2
- package/lib/routes/cntv/column.ts +1 -3
- package/lib/routes/codeforces/contests.ts +4 -6
- package/lib/routes/colamanga/manga.ts +3 -3
- package/lib/routes/comicskingdom/index.ts +1 -3
- package/lib/routes/cool18/index.ts +70 -42
- package/lib/routes/{copernicium → coolpc}/namespace.ts +2 -2
- package/lib/routes/coolpc/news.ts +53 -0
- package/lib/routes/coomer/index.ts +1 -3
- package/lib/routes/copymanga/comic.ts +2 -12
- package/lib/routes/cosplaytele/article.ts +14 -6
- package/lib/routes/cosplaytele/category.ts +12 -6
- package/lib/routes/cosplaytele/latest.ts +12 -3
- package/lib/routes/cosplaytele/popular.ts +2 -4
- package/lib/routes/cosplaytele/tag.ts +12 -6
- package/lib/routes/cpcey/index.ts +3 -3
- package/lib/routes/cpta/handler.ts +2 -6
- package/lib/routes/crac/exam.ts +60 -0
- package/lib/routes/crac/index.ts +9 -4
- package/lib/routes/crac/namespace.ts +1 -0
- package/lib/routes/crac/templates/exam.art +54 -0
- package/lib/routes/creative-comic/book.ts +0 -2
- package/lib/routes/creative-comic/utils.ts +2 -2
- package/lib/routes/cssn/iolaw.ts +3 -3
- package/lib/routes/csu/cse.ts +1 -1
- package/lib/routes/csu/utils.ts +1 -1
- package/lib/routes/cts/news.ts +23 -22
- package/lib/routes/cuilingmag/index.ts +0 -2
- package/lib/routes/curius/links.ts +0 -2
- package/lib/routes/cursor/changelog.ts +2 -1
- package/lib/routes/cyzone/util.ts +8 -10
- package/lib/routes/cztv/daily.ts +0 -2
- package/lib/routes/cztv/zjxwlb.ts +0 -2
- package/lib/routes/daily/utils.ts +0 -2
- package/lib/routes/damai/activity.ts +0 -2
- package/lib/routes/dapenti/utils.ts +1 -1
- package/lib/routes/dayanzai/index.ts +19 -21
- package/lib/routes/dbaplus/rss.ts +3 -4
- package/lib/routes/dcard/utils.ts +38 -37
- package/lib/routes/dcfever/utils.ts +0 -3
- package/lib/routes/ddosi/category.ts +3 -3
- package/lib/routes/ddosi/index.ts +3 -3
- package/lib/routes/deadline/posts.ts +0 -2
- package/lib/routes/dedao/knowledge.ts +0 -2
- package/lib/routes/dedao/user.ts +0 -2
- package/lib/routes/deeplearning/the-batch.ts +0 -2
- package/lib/routes/dehenglaw/index.ts +0 -2
- package/lib/routes/diariofruticola/filtro.ts +2 -1
- package/lib/routes/diershoubing/news.ts +0 -2
- package/lib/routes/discord/channel.ts +0 -2
- package/lib/routes/discord/search.ts +0 -3
- package/lib/routes/disinfo/publications.ts +3 -3
- package/lib/routes/dlnews/category.ts +2 -7
- package/lib/routes/dlsite/utils.ts +0 -3
- package/lib/routes/dmzj/news.ts +5 -5
- package/lib/routes/dn/news.ts +0 -2
- package/lib/routes/dockerhub/tag.ts +1 -1
- package/lib/routes/domp4/detail.ts +8 -6
- package/lib/routes/domp4/latest-movie-bt.ts +10 -10
- package/lib/routes/domp4/latest.ts +8 -8
- package/lib/routes/domp4/namespace.ts +2 -8
- package/lib/routes/domp4/utils.ts +5 -5
- package/lib/routes/douban/commercialpress/latest.ts +3 -3
- package/lib/routes/douban/movie/coming.ts +0 -3
- package/lib/routes/douban/other/celebrity.ts +9 -13
- package/lib/routes/douban/other/doulist.ts +16 -16
- package/lib/routes/douban/other/explore-column.ts +6 -6
- package/lib/routes/douban/other/explore.ts +23 -29
- package/lib/routes/douban/other/group.ts +1 -1
- package/lib/routes/douban/other/jobs.ts +5 -7
- package/lib/routes/douban/other/later.ts +3 -3
- package/lib/routes/douban/other/latest-music.ts +1 -1
- package/lib/routes/douban/other/list.ts +0 -2
- package/lib/routes/douban/other/playing.ts +1 -1
- package/lib/routes/douban/other/recommended.ts +0 -2
- package/lib/routes/douban/other/replied.ts +3 -3
- package/lib/routes/douban/other/replies.ts +3 -3
- package/lib/routes/douban/other/weekly-best.ts +0 -2
- package/lib/routes/douban/people/status.ts +1 -1
- package/lib/routes/douban/people/wish.ts +2 -2
- package/lib/routes/douyin/hashtag.ts +1 -1
- package/lib/routes/douyin/live.ts +1 -1
- package/lib/routes/douyin/utils.ts +0 -3
- package/lib/routes/douyu/group.ts +0 -2
- package/lib/routes/douyu/post.ts +0 -2
- package/lib/routes/dribbble/utils.ts +0 -3
- package/lib/routes/dtcj/datainsight.ts +3 -3
- package/lib/routes/duozhuayu/search.ts +0 -2
- package/lib/routes/dushu/fuzhou/index.ts +0 -2
- package/lib/routes/dw/rss.ts +2 -2
- package/lib/routes/dw/utils.ts +0 -2
- package/lib/routes/dx2025/index.ts +3 -3
- package/lib/routes/dytt/index.ts +2 -1
- package/lib/routes/e-hentai/index.ts +0 -2
- package/lib/routes/ea/apex-news.ts +104 -0
- package/lib/routes/ea/namespace.ts +6 -0
- package/lib/routes/eagle/blog.ts +3 -3
- package/lib/routes/eagle/changelog.ts +25 -29
- package/lib/routes/eastmoney/report/index.ts +0 -3
- package/lib/routes/ecnu/contest.ts +0 -2
- package/lib/routes/ecnu/jwc.ts +3 -3
- package/lib/routes/ehentai/ehapi.ts +1 -1
- package/lib/routes/elsevier/issue.ts +3 -5
- package/lib/routes/elsevier/journal.ts +3 -5
- package/lib/routes/embassy/supported-list.ts +1 -1
- package/lib/routes/epicgames/index.ts +0 -2
- package/lib/routes/eprice/rss.ts +0 -2
- package/lib/routes/eshukan/academic.ts +0 -2
- package/lib/routes/espn/news.ts +1 -4
- package/lib/routes/esquirehk/tag.ts +1 -4
- package/lib/routes/famitsu/category.ts +1 -3
- package/lib/routes/fanbox/utils.ts +0 -3
- package/lib/routes/fangchan/list.ts +2 -4
- package/lib/routes/fansly/utils.ts +0 -3
- package/lib/routes/farmatters/index.ts +0 -2
- package/lib/routes/fashionnetwork/index.ts +0 -2
- package/lib/routes/fastbull/news.ts +0 -2
- package/lib/routes/feng/forum.ts +0 -2
- package/lib/routes/ff14/ff14-global.ts +0 -2
- package/lib/routes/ff14/ff14-zh.ts +0 -2
- package/lib/routes/fffdm/manhua/manhua.ts +1 -3
- package/lib/routes/finviz/quote.ts +14 -16
- package/lib/routes/fisher-spb/news.ts +3 -5
- package/lib/routes/fishshell/index.ts +3 -3
- package/lib/routes/fjksbm/index.ts +1 -1
- package/lib/routes/flyert/creditcard.ts +4 -4
- package/lib/routes/flyert/namespace.ts +1 -1
- package/lib/routes/flyert/preferential.ts +3 -3
- package/lib/routes/flyert/util.ts +0 -3
- package/lib/routes/flyert/utils.ts +17 -11
- package/lib/routes/focustaiwan/index.ts +0 -2
- package/lib/routes/followin/utils.ts +0 -3
- package/lib/routes/foresightnews/util.ts +9 -14
- package/lib/routes/fosshub/index.ts +0 -2
- package/lib/routes/freecomputerbooks/index.ts +0 -2
- package/lib/routes/ft/myft.ts +4 -4
- package/lib/routes/furstar/artists.ts +2 -2
- package/lib/routes/furstar/utils.ts +14 -19
- package/lib/routes/futunn/main.ts +0 -2
- package/lib/routes/fx-markets/channel.ts +12 -14
- package/lib/routes/fx678/kx.ts +2 -2
- package/lib/routes/fzmtr/announcements.ts +3 -3
- package/lib/routes/gameapps/index.ts +1 -3
- package/lib/routes/gamebase/news.ts +0 -3
- package/lib/routes/gamer/gnn-index.ts +3 -3
- package/lib/routes/gamer/hot.ts +3 -3
- package/lib/routes/gamersky/utils.ts +1 -1
- package/lib/routes/gcores/articles.ts +0 -3
- package/lib/routes/gcores/categories.ts +0 -3
- package/lib/routes/gcores/collections.ts +0 -3
- package/lib/routes/gcores/news.ts +0 -3
- package/lib/routes/gcores/parser.ts +1 -4
- package/lib/routes/gcores/program-previews.ts +47 -0
- package/lib/routes/gcores/radio.ts +5 -7
- package/lib/routes/gcores/tags.ts +0 -3
- package/lib/routes/gcores/topics.ts +0 -3
- package/lib/routes/gcores/util.ts +0 -3
- package/lib/routes/gcores/videos.ts +0 -3
- package/lib/routes/gdut/oa-news.ts +85 -84
- package/lib/routes/geekpark/index.ts +0 -2
- package/lib/routes/gelbooru/utils.ts +0 -3
- package/lib/routes/gelonghui/live.ts +0 -2
- package/lib/routes/geocaching/blogs.ts +4 -3
- package/lib/routes/gettr/user.ts +0 -2
- package/lib/routes/gihyo/group.ts +17 -19
- package/lib/routes/github/comments.ts +2 -2
- package/lib/routes/github/contributors.ts +1 -1
- package/lib/routes/github/pulse.ts +0 -2
- package/lib/routes/github/trending.ts +0 -2
- package/lib/routes/gitpod/blog.ts +0 -2
- package/lib/routes/gofans/index.ts +0 -2
- package/lib/routes/google/citations.ts +1 -1
- package/lib/routes/google/fonts.ts +0 -2
- package/lib/routes/google/news.ts +0 -2
- package/lib/routes/google/scholar.ts +1 -1
- package/lib/routes/google/search.ts +0 -2
- package/lib/routes/gov/caac/cjwt.ts +0 -2
- package/lib/routes/gov/chinatax/latest.ts +3 -3
- package/lib/routes/gov/cmse/fxrw.ts +0 -2
- package/lib/routes/gov/cmse/index.ts +0 -2
- package/lib/routes/gov/csrc/news.ts +1 -3
- package/lib/routes/gov/forestry/gjlckjdjt.ts +0 -2
- package/lib/routes/gov/general/general.ts +1 -4
- package/lib/routes/gov/guangdong/tqyb/sncsyjxh.ts +0 -2
- package/lib/routes/gov/guangdong/tqyb/tfxtq.ts +0 -2
- package/lib/routes/gov/hangzhou/zwfw.ts +0 -2
- package/lib/routes/gov/huizhou/zwgk/index.ts +3 -3
- package/lib/routes/gov/hunan/changsha/major-email.ts +3 -3
- package/lib/routes/gov/jiangsu/wlt/index.ts +2 -5
- package/lib/routes/gov/jinan/healthcommission/medical-exam-notice.ts +16 -18
- package/lib/routes/gov/mee/ywdt.ts +3 -3
- package/lib/routes/gov/miit/wjfb.ts +6 -6
- package/lib/routes/gov/miit/yjzj.ts +6 -6
- package/lib/routes/gov/miit/zcwj.ts +1 -1
- package/lib/routes/gov/moa/gjs.ts +2 -1
- package/lib/routes/gov/moa/moa.ts +3 -3
- package/lib/routes/gov/moa/zdscxx.ts +13 -11
- package/lib/routes/gov/moe/moe.ts +35 -37
- package/lib/routes/gov/mof/gss.ts +82 -0
- package/lib/routes/gov/nea/ghs.ts +70 -37
- package/lib/routes/gov/nrta/dsj.ts +13 -14
- package/lib/routes/gov/nrta/news.ts +3 -3
- package/lib/routes/gov/pbc/goutongjiaoliu.ts +3 -3
- package/lib/routes/gov/pbc/gzlw.ts +3 -3
- package/lib/routes/gov/pbc/trade-announcement.ts +3 -3
- package/lib/routes/gov/pbc/zcyj.ts +3 -3
- package/lib/routes/gov/safe/util.ts +0 -3
- package/lib/routes/gov/samr/xgzlyhd.ts +0 -2
- package/lib/routes/gov/sh/fgw/index.ts +0 -2
- package/lib/routes/gov/sh/rsj/ksxm.ts +3 -5
- package/lib/routes/gov/sh/wgj/wgj.ts +3 -5
- package/lib/routes/gov/sh/wsjkw/yqtb/index.ts +14 -18
- package/lib/routes/gov/shenzhen/hrss/szksy/index.ts +3 -3
- package/lib/routes/gov/shenzhen/zzb/index.ts +3 -3
- package/lib/routes/gov/sichuan/deyang/govpublicinfo.ts +0 -2
- package/lib/routes/gov/sichuan/deyang/mztoday.ts +0 -2
- package/lib/routes/gov/stats/index.ts +0 -2
- package/lib/routes/gov/taiyuan/rsj.ts +3 -3
- package/lib/routes/grainoil/category.ts +2 -1
- package/lib/routes/greasyfork/feedback.ts +1 -1
- package/lib/routes/greasyfork/versions.ts +1 -1
- package/lib/routes/guancha/member.ts +1 -1
- package/lib/routes/guangdiu/cheaps.ts +3 -3
- package/lib/routes/guangdiu/index.ts +3 -3
- package/lib/routes/guangdiu/rank.ts +3 -3
- package/lib/routes/guangdiu/search.ts +3 -3
- package/lib/routes/guangzhoumetro/news.ts +3 -3
- package/lib/routes/guduodata/daily.ts +0 -2
- package/lib/routes/gumroad/index.ts +0 -2
- package/lib/routes/guozaoke/index.ts +34 -35
- package/lib/routes/gzdaily/app.ts +0 -2
- package/lib/routes/hackernews/index.ts +5 -5
- package/lib/routes/hackyournews/index.ts +5 -5
- package/lib/routes/hafu/utils.ts +90 -99
- package/lib/routes/hanime1/namespace.ts +7 -0
- package/lib/routes/hanime1/previews.ts +97 -0
- package/lib/routes/hanime1/search.ts +95 -0
- package/lib/routes/hashnode/blog.ts +0 -2
- package/lib/routes/hbr/topic.ts +3 -3
- package/lib/routes/hdu/cs/notice.ts +10 -15
- package/lib/routes/hdu/cs/pg.ts +10 -15
- package/lib/routes/hebtv/nong-bo-shi-zai-xing-dong.ts +0 -2
- package/lib/routes/hellobtc/information.ts +3 -3
- package/lib/routes/hellobtc/kepu.ts +3 -3
- package/lib/routes/hellobtc/news.ts +3 -3
- package/lib/routes/hellogithub/report.ts +0 -2
- package/lib/routes/hellogithub/volume.ts +0 -2
- package/lib/routes/hicairo/rss.ts +3 -3
- package/lib/routes/hiring.cafe/jobs.ts +0 -3
- package/lib/routes/hit/hitgs.ts +3 -3
- package/lib/routes/hitcon/zeroday.ts +0 -3
- package/lib/routes/hitwh/today.ts +3 -3
- package/lib/routes/hk01/utils.ts +0 -3
- package/lib/routes/hkej/index.ts +11 -15
- package/lib/routes/hkepc/index.ts +1 -1
- package/lib/routes/hket/index.ts +1 -3
- package/lib/routes/hkjunkcall/index.ts +3 -3
- package/lib/routes/hostmonit/cloudflareyes.ts +0 -2
- package/lib/routes/hotukdeals/index.ts +2 -2
- package/lib/routes/houxu/events.ts +0 -2
- package/lib/routes/houxu/index.ts +0 -2
- package/lib/routes/houxu/memory.ts +0 -2
- package/lib/routes/howtoforge/rss.ts +3 -3
- package/lib/routes/hoyolab/news.ts +0 -2
- package/lib/routes/hpoi/banner-item.ts +3 -3
- package/lib/routes/hpoi/info.ts +68 -23
- package/lib/routes/hpoi/user.ts +3 -3
- package/lib/routes/hpoi/utils.ts +3 -3
- package/lib/routes/hrbeu/gx/card.ts +3 -3
- package/lib/routes/hrbeu/gx/list.ts +3 -3
- package/lib/routes/hrbeu/job/bigemploy.ts +3 -3
- package/lib/routes/hrbeu/job/calendar.ts +3 -3
- package/lib/routes/hrbeu/job/list.ts +3 -3
- package/lib/routes/hrbeu/uae/news.ts +3 -3
- package/lib/routes/hrbeu/yjsy/list.ts +3 -3
- package/lib/routes/huggingface/blog-community.ts +126 -0
- package/lib/routes/hupu/all.ts +0 -2
- package/lib/routes/hupu/bbs.ts +0 -2
- package/lib/routes/huxiu/util.ts +0 -3
- package/lib/routes/i-cable/news.ts +0 -3
- package/lib/routes/ianspriggs/index.ts +0 -2
- package/lib/routes/icac/news.ts +3 -3
- package/lib/routes/idaily/index.ts +0 -2
- package/lib/routes/idolmaster/news.ts +1 -1
- package/lib/routes/ieee/author.ts +0 -2
- package/lib/routes/ieee/journal.ts +0 -2
- package/lib/routes/ielts/index.ts +1 -1
- package/lib/routes/ifeng/news.ts +0 -2
- package/lib/routes/ifeng/utils.ts +0 -3
- package/lib/routes/iguoguo/index.ts +57 -55
- package/lib/routes/ikea/cn/utils.ts +0 -3
- package/lib/routes/ikea/gb/new.ts +0 -2
- package/lib/routes/ikea/gb/offer.ts +0 -2
- package/lib/routes/iknowwhatyoudownload/daily.ts +1 -4
- package/lib/routes/imdb/chart.ts +1 -3
- package/lib/routes/imhcg/blog.ts +6 -6
- package/lib/routes/imiker/jinghua.ts +0 -2
- package/lib/routes/infoq/presentations.ts +0 -2
- package/lib/routes/infoq/topic.ts +1 -1
- package/lib/routes/informs/index.ts +3 -6
- package/lib/routes/inoreader/index.ts +17 -19
- package/lib/routes/instagram/common-utils.ts +0 -3
- package/lib/routes/instagram/private-api/index.ts +1 -1
- package/lib/routes/instagram/web-api/utils.ts +0 -3
- package/lib/routes/ipsw/index.ts +10 -11
- package/lib/routes/ipsw.dev/index.ts +3 -5
- package/lib/routes/iqilu/program.ts +0 -2
- package/lib/routes/iqiyi/album.ts +0 -2
- package/lib/routes/iqiyi/video.ts +6 -10
- package/lib/routes/iresearch/chart.ts +0 -3
- package/lib/routes/iresearch/report.ts +1 -3
- package/lib/routes/iresearch/weekly.ts +0 -2
- package/lib/routes/itch/devlog.ts +0 -2
- package/lib/routes/itch/index.ts +0 -2
- package/lib/routes/ithome/index.ts +3 -3
- package/lib/routes/ithome/ranking.ts +5 -5
- package/lib/routes/ithome/tag.ts +3 -3
- package/lib/routes/ithome/tw/feeds.ts +1 -1
- package/lib/routes/ithome/zt.ts +0 -2
- package/lib/routes/iwara/subscriptions.ts +0 -2
- package/lib/routes/ixigua/user-video.ts +0 -2
- package/lib/routes/jandan/index.ts +36 -12
- package/lib/routes/jandan/section.ts +102 -44
- package/lib/routes/jandan/utils.ts +248 -0
- package/lib/routes/japanpost/track.ts +46 -53
- package/lib/routes/japanpost/utils.ts +4 -4
- package/lib/routes/javbus/index.ts +0 -2
- package/lib/routes/javlibrary/utils.ts +0 -3
- package/lib/routes/javtiful/utils.ts +0 -3
- package/lib/routes/javtrailers/utils.ts +0 -2
- package/lib/routes/jd/price.ts +0 -2
- package/lib/routes/jewishmuseum/exhibitions.ts +2 -2
- package/lib/routes/jianshu/collection.ts +1 -1
- package/lib/routes/jianshu/home.ts +1 -1
- package/lib/routes/jianshu/user.ts +1 -1
- package/lib/routes/jiemian/account.ts +16 -0
- package/lib/routes/jiemian/common.ts +101 -0
- package/lib/routes/jiemian/lists.ts +93 -106
- package/lib/routes/jiemian/special.ts +12 -0
- package/lib/routes/jiemian/video.ts +19 -0
- package/lib/routes/jiemian/vip.ts +20 -0
- package/lib/routes/jike/utils.ts +0 -1
- package/lib/routes/jimmyspa/books.ts +0 -2
- package/lib/routes/jimmyspa/news.ts +0 -2
- package/lib/routes/jin10/category.ts +221 -0
- package/lib/routes/jin10/index.ts +0 -2
- package/lib/routes/jingzhengu/utils.ts +3 -3
- package/lib/routes/jinse/catalogue.ts +0 -2
- package/lib/routes/jinse/lives.ts +0 -2
- package/lib/routes/jinse/timeline.ts +0 -2
- package/lib/routes/jisilu/util.ts +2 -1
- package/lib/routes/jiuyangongshe/community.ts +1 -4
- package/lib/routes/jjwxc/author.ts +0 -2
- package/lib/routes/jjwxc/book.ts +0 -2
- package/lib/routes/joins/chinese.ts +0 -2
- package/lib/routes/joneslanglasalle/index.ts +2 -4
- package/lib/routes/jpmorganchase/namespace.ts +9 -0
- package/lib/routes/jpmorganchase/research.ts +107 -0
- package/lib/routes/jpxgmn/search.ts +2 -2
- package/lib/routes/jpxgmn/tab.ts +3 -3
- package/lib/routes/jpxgmn/utils.ts +11 -6
- package/lib/routes/jpxgmn/weekly.ts +3 -3
- package/lib/routes/juejin/pins.ts +4 -6
- package/lib/routes/jumeili/home.ts +98 -0
- package/lib/routes/{trending → jumeili}/namespace.ts +2 -2
- package/lib/routes/jump/discount.ts +0 -2
- package/lib/routes/kadokawa/blog.ts +0 -2
- package/lib/routes/kamen-rider-official/news.ts +0 -2
- package/lib/routes/kantarworldpanel/index.ts +0 -2
- package/lib/routes/kanxue/topic.ts +5 -5
- package/lib/routes/kbs/news.ts +3 -3
- package/lib/routes/kbs/today.ts +3 -3
- package/lib/routes/kcna/news.ts +35 -37
- package/lib/routes/keep/templates/user.art +10 -8
- package/lib/routes/keep/user.ts +30 -38
- package/lib/routes/kemono/index.ts +2 -4
- package/lib/routes/kepu/live.ts +0 -2
- package/lib/routes/kpmg/insights.ts +0 -2
- package/lib/routes/kpopping/kpics.ts +10 -13
- package/lib/routes/kpopping/news.ts +2 -4
- package/lib/routes/kuaidi100/utils.ts +1 -1
- package/lib/routes/kurogames/namespace.ts +1 -1
- package/lib/routes/kurogames/wutheringwaves/constants.ts +34 -0
- package/lib/routes/kurogames/wutheringwaves/news.ts +63 -33
- package/lib/routes/kurogames/wutheringwaves/utils.ts +79 -0
- package/lib/routes/kyodonews/index.ts +8 -10
- package/lib/routes/lala/rss.ts +3 -3
- package/lib/routes/lang/room.ts +0 -2
- package/lib/routes/lanqiao/utils.ts +0 -3
- package/lib/routes/learnblockchain/posts.ts +11 -15
- package/lib/routes/learnku/topic.ts +1 -3
- package/lib/routes/leetcode/articles.ts +8 -8
- package/lib/routes/leetcode/dailyquestion-cn.ts +0 -2
- package/lib/routes/leetcode/dailyquestion-en.ts +0 -2
- package/lib/routes/leiphone/index.ts +1 -1
- package/lib/routes/lfsyd/utils.ts +0 -3
- package/lib/routes/lhratings/research.ts +2 -1
- package/lib/routes/linkedin/cn/renderer.ts +1 -1
- package/lib/routes/linkedin/cn/utils.ts +1 -4
- package/lib/routes/linkedin/posts.ts +1 -0
- package/lib/routes/linkresearcher/index.ts +1 -3
- package/lib/routes/linovelib/novel.ts +4 -4
- package/lib/routes/liquipedia/cs-matches.ts +20 -22
- package/lib/routes/literotica/category.ts +3 -3
- package/lib/routes/literotica/new.ts +3 -3
- package/lib/routes/lkong/forum.ts +0 -2
- package/lib/routes/lkong/thread.ts +0 -2
- package/lib/routes/lmu/jobs.ts +0 -2
- package/lib/routes/logclub/index.ts +0 -2
- package/lib/routes/logclub/report.ts +0 -2
- package/lib/routes/logonews/index.ts +0 -2
- package/lib/routes/logrocket/index.ts +1 -8
- package/lib/routes/loltw/news.ts +0 -2
- package/lib/routes/lorientlejour/index.ts +1 -3
- package/lib/routes/lovelive-anime/news.ts +0 -2
- package/lib/routes/lovelive-anime/schedules.ts +2 -4
- package/lib/routes/lovelive-anime/topics.ts +0 -2
- package/lib/routes/lrepacks/index.ts +0 -2
- package/lib/routes/lsnu/jiaowc/tzgg.ts +1 -1
- package/lib/routes/ltaaa/article.ts +2 -4
- package/lib/routes/luogu/contest.ts +25 -25
- package/lib/routes/luolei/index.ts +0 -2
- package/lib/routes/lvv2/news.ts +3 -5
- package/lib/routes/lvv2/top.ts +3 -5
- package/lib/routes/lxixsxa/discography.ts +0 -2
- package/lib/routes/lxixsxa/information.ts +0 -2
- package/lib/routes/m4/index.ts +0 -2
- package/lib/routes/maccms/index.ts +1 -2
- package/lib/routes/magazinelib/latest-magazine.ts +0 -2
- package/lib/routes/manhuagui/comic.ts +30 -31
- package/lib/routes/manhuagui/subscribe.ts +8 -10
- package/lib/routes/manyvids/video.ts +1 -4
- package/lib/routes/mckinsey/cn/index.ts +1 -1
- package/lib/routes/mcmod/index.ts +2 -3
- package/lib/routes/mdpi/journal.ts +3 -5
- package/lib/routes/melonbooks/search.ts +1 -1
- package/lib/routes/mercari/util.ts +0 -2
- package/lib/routes/metacritic/index.ts +0 -2
- package/lib/routes/metacritic/release.ts +1 -1
- package/lib/routes/meteor/utils.ts +0 -3
- package/lib/routes/mi/utils.ts +4 -7
- package/lib/routes/mihoyo/bbs/follow-list.ts +0 -2
- package/lib/routes/mihoyo/bbs/official.ts +0 -2
- package/lib/routes/mihoyo/bbs/utils.ts +0 -3
- package/lib/routes/mihoyo/ys/news.ts +19 -75
- package/lib/routes/mindmeister/example.ts +0 -2
- package/lib/routes/minecraft/version.ts +6 -6
- package/lib/routes/mingpao/index.ts +1 -3
- package/lib/routes/miniflux/entry.ts +5 -5
- package/lib/routes/miniflux/subscription.ts +2 -2
- package/lib/routes/missav/new.ts +0 -2
- package/lib/routes/misskey/home-timeline.ts +1 -1
- package/lib/routes/misskey/user-timeline.ts +1 -1
- package/lib/routes/misskey/utils.ts +0 -3
- package/lib/routes/mittrchina/index.ts +0 -2
- package/lib/routes/modelscope/community.ts +0 -2
- package/lib/routes/modelscope/datasets.ts +0 -2
- package/lib/routes/modelscope/studios.ts +0 -2
- package/lib/routes/modian/zhongchou.ts +3 -3
- package/lib/routes/modrinth/versions.ts +0 -3
- package/lib/routes/mpaypass/main.ts +7 -7
- package/lib/routes/mpaypass/news.ts +2 -2
- package/lib/routes/mrdx/daily.ts +1 -1
- package/lib/routes/msn/index.ts +2 -2
- package/lib/routes/mycard520/news.ts +3 -11
- package/lib/routes/mydrivers/cid.ts +192 -6
- package/lib/routes/mydrivers/index.ts +41 -13
- package/lib/routes/mydrivers/rank.ts +2 -3
- package/lib/routes/mydrivers/util.ts +10 -13
- package/lib/routes/myfans/post.ts +1 -4
- package/lib/routes/myfigurecollection/activity.ts +0 -2
- package/lib/routes/myfigurecollection/index.ts +0 -2
- package/lib/routes/mymusicsheet/usersheets.ts +1 -3
- package/lib/routes/nasa/apod-ncku.ts +3 -3
- package/lib/routes/nasa/apod.ts +3 -3
- package/lib/routes/natgeo/dailyphoto.ts +0 -2
- package/lib/routes/nationalgeographic/latest-stories.ts +0 -2
- package/lib/routes/nautil/topics.ts +0 -2
- package/lib/routes/nber/common.ts +0 -3
- package/lib/routes/ncc-cma/cmdp.ts +0 -2
- package/lib/routes/ncepu/master/masterinfo.ts +3 -3
- package/lib/routes/neea/index.ts +1 -1
- package/lib/routes/neea/jlpt.ts +3 -2
- package/lib/routes/netflav/index.ts +0 -2
- package/lib/routes/neu/bmie.ts +1 -1
- package/lib/routes/newrank/utils.ts +11 -1
- package/lib/routes/news/xhsxw.ts +0 -2
- package/lib/routes/newsmarket/index.ts +3 -3
- package/lib/routes/newzmz/index.ts +1 -1
- package/lib/routes/newzmz/util.ts +0 -3
- package/lib/routes/nextapple/realtime.ts +28 -27
- package/lib/routes/nga/post.ts +3 -2
- package/lib/routes/ngocn2/index.ts +3 -3
- package/lib/routes/nhentai/util.ts +0 -3
- package/lib/routes/nhk/news-web-easy.ts +15 -22
- package/lib/routes/nhk/news.ts +0 -2
- package/lib/routes/nicovideo/utils.ts +1 -4
- package/lib/routes/nifd/research.ts +3 -3
- package/lib/routes/nikkei/asia/index.ts +27 -27
- package/lib/routes/nikkei/cn/index.ts +8 -1
- package/lib/routes/nikkei/news.ts +0 -2
- package/lib/routes/nintendo/direct.ts +0 -2
- package/lib/routes/nintendo/eshop-hk.ts +0 -2
- package/lib/routes/nintendo/eshop-jp.ts +0 -2
- package/lib/routes/nintendo/eshop-us.ts +0 -2
- package/lib/routes/nintendo/system-update.ts +2 -4
- package/lib/routes/nintendo/utils.ts +2 -5
- package/lib/routes/njit/jwc.ts +5 -6
- package/lib/routes/njit/tzgg.ts +6 -6
- package/lib/routes/njnu/ceai/ceai.ts +1 -1
- package/lib/routes/njnu/jwc/jwc.ts +3 -3
- package/lib/routes/nju/gra.ts +2 -2
- package/lib/routes/nju/scit.ts +8 -10
- package/lib/routes/nju/zbb.ts +19 -23
- package/lib/routes/njupt/jwc.ts +6 -6
- package/lib/routes/njust/cwc.ts +5 -9
- package/lib/routes/njust/dgxg.ts +5 -9
- package/lib/routes/njust/eo.ts +5 -9
- package/lib/routes/njust/eoe.ts +5 -9
- package/lib/routes/njust/jwc.ts +5 -9
- package/lib/routes/nltimes/news.ts +5 -5
- package/lib/routes/nmtv/column.ts +0 -2
- package/lib/routes/notateslaapp/update.ts +9 -13
- package/lib/routes/notefolio/search.ts +0 -2
- package/lib/routes/now/news.ts +3 -3
- package/lib/routes/nowcoder/discuss.ts +5 -5
- package/lib/routes/nowcoder/jobcenter.ts +3 -3
- package/lib/routes/npm/package.ts +0 -2
- package/lib/routes/ntdm/video.ts +4 -4
- package/lib/routes/ntdtv/channel.ts +2 -2
- package/lib/routes/nuaa/college/cae.ts +6 -6
- package/lib/routes/nuaa/college/cs.ts +6 -6
- package/lib/routes/nuaa/jwc/jwc.ts +6 -6
- package/lib/routes/nuaa/yjsy/yjsy.ts +6 -6
- package/lib/routes/nuist/bulletin.ts +20 -22
- package/lib/routes/nwafu/all.ts +3 -3
- package/lib/routes/nytimes/book.ts +3 -3
- package/lib/routes/nytimes/daily-briefing-chinese.ts +0 -2
- package/lib/routes/nytimes/rss.ts +5 -1
- package/lib/routes/oceanengine/arithmetic-index.ts +1 -3
- package/lib/routes/oeeee/app/channel.ts +0 -2
- package/lib/routes/oeeee/app/reporter.ts +0 -2
- package/lib/routes/oeeee/web.ts +0 -2
- package/lib/routes/oilchem/index.ts +3 -3
- package/lib/routes/oncc/index.ts +3 -5
- package/lib/routes/oncc/money18.ts +0 -2
- package/lib/routes/onet/news.ts +0 -2
- package/lib/routes/onet/utils.ts +0 -3
- package/lib/routes/openai/chatgpt.ts +2 -2
- package/lib/routes/openai/common.ts +69 -3
- package/lib/routes/openai/news.ts +32 -0
- package/lib/routes/openrice/chart.ts +0 -2
- package/lib/routes/openrice/offers.ts +0 -2
- package/lib/routes/openrice/promos.ts +0 -2
- package/lib/routes/orcid/index.ts +0 -2
- package/lib/routes/oreno3d/main.ts +40 -44
- package/lib/routes/oschina/column.ts +2 -4
- package/lib/routes/oschina/event.ts +2 -4
- package/lib/routes/oshwhub/explore.ts +0 -2
- package/lib/routes/osu/beatmaps/latest-ranked.ts +2 -4
- package/lib/routes/otobanana/utils.ts +0 -3
- package/lib/routes/oup/index.ts +0 -2
- package/lib/routes/p-articles/contributors.ts +5 -5
- package/lib/routes/p-articles/section.ts +5 -5
- package/lib/routes/papers/category.ts +2 -4
- package/lib/routes/papers/query.ts +0 -2
- package/lib/routes/parliament.uk/petitions.ts +0 -3
- package/lib/routes/patagonia/new-arrivals.ts +9 -16
- package/lib/routes/patreon/feed.ts +0 -3
- package/lib/routes/penguin-random-house/articles.ts +5 -7
- package/lib/routes/penguin-random-house/thereaddown.ts +5 -7
- package/lib/routes/penguin-random-house/utils.ts +1 -4
- package/lib/routes/people/index.ts +13 -13
- package/lib/routes/people/xjpjh.ts +5 -5
- package/lib/routes/phoronix/index.ts +2 -2
- package/lib/routes/pianyuan/app.ts +1 -1
- package/lib/routes/pianyuan/search.ts +2 -2
- package/lib/routes/picnob/user.ts +4 -6
- package/lib/routes/picuki/profile.ts +0 -2
- package/lib/routes/pikabu/utils.ts +0 -3
- package/lib/routes/pincong/hot.ts +6 -8
- package/lib/routes/pincong/index.ts +5 -7
- package/lib/routes/pincong/topic.ts +5 -7
- package/lib/routes/pixabay/search.ts +0 -2
- package/lib/routes/pixiv/api/get-ranking.ts +1 -1
- package/lib/routes/pixiv/pixiv-got.ts +1 -1
- package/lib/routes/piyao/jrpy.ts +3 -3
- package/lib/routes/pku/bbs/hot.ts +5 -7
- package/lib/routes/pku/cls/lecture.ts +3 -3
- package/lib/routes/pku/hr.ts +3 -3
- package/lib/routes/pku/nsd.ts +3 -3
- package/lib/routes/pku/pkuyjs.ts +9 -13
- package/lib/routes/pku/rccp/mzyt.ts +3 -3
- package/lib/routes/pku/scc/recruit.ts +3 -3
- package/lib/routes/playpcesor/rss.ts +3 -3
- package/lib/routes/pnas/index.ts +1 -3
- package/lib/routes/podwise/episodes.ts +1 -1
- package/lib/routes/pornhub/category.ts +2 -2
- package/lib/routes/pornhub/utils.ts +0 -3
- package/lib/routes/priconne-redive/news.ts +1 -1
- package/lib/routes/producthunt/today.ts +0 -2
- package/lib/routes/ps/monthly-games.ts +0 -2
- package/lib/routes/ps/trophy.ts +35 -43
- package/lib/routes/psyche/utils.ts +0 -3
- package/lib/routes/pts/curations.ts +0 -2
- package/lib/routes/pts/index.ts +0 -2
- package/lib/routes/pts/live.ts +0 -2
- package/lib/routes/pts/projects.ts +0 -2
- package/lib/routes/pubmed/trending.ts +0 -2
- package/lib/routes/qidian/author.ts +0 -2
- package/lib/routes/qidian/free-next.ts +11 -13
- package/lib/routes/qidian/free.ts +13 -15
- package/lib/routes/qingting/podcast.ts +1 -1
- package/lib/routes/qipamaijia/index.ts +3 -3
- package/lib/routes/qoo-app/apps/comment.ts +0 -2
- package/lib/routes/qoo-app/news.ts +1 -1
- package/lib/routes/qoo-app/notes/note.ts +0 -2
- package/lib/routes/qoo-app/user/app-comment.ts +0 -2
- package/lib/routes/qq/ac/utils.ts +0 -3
- package/lib/routes/qq/fact/index.ts +0 -2
- package/lib/routes/qq88/index.ts +3 -3
- package/lib/routes/questmobile/report.ts +0 -2
- package/lib/routes/qust/jw.ts +3 -3
- package/lib/routes/qweather/3days.ts +0 -2
- package/lib/routes/qweather/now.ts +0 -2
- package/lib/routes/radio/album.ts +0 -2
- package/lib/routes/radio/index.ts +0 -2
- package/lib/routes/radio/zhibo.ts +0 -2
- package/lib/routes/raspberrypi/magazine.ts +2 -4
- package/lib/routes/rattibha/templates/description.art +12 -0
- package/lib/routes/rattibha/user.ts +33 -24
- package/lib/routes/rawkuma/manga.ts +0 -2
- package/lib/routes/readhub/daily.ts +2 -2
- package/lib/routes/readhub/index.ts +0 -2
- package/lib/routes/readhub/util.ts +0 -3
- package/lib/routes/resonac/products.ts +1 -1
- package/lib/routes/reuters/common.ts +17 -4
- package/lib/routes/reuters/investigates.ts +3 -3
- package/lib/routes/rfi/namespace.ts +4 -1
- package/lib/routes/rfi/news.ts +15 -4
- package/lib/routes/routledge/book-series.ts +0 -2
- package/lib/routes/rsc/journal.ts +0 -2
- package/lib/routes/rsshub/routes.ts +1 -1
- package/lib/routes/ruc/ai.ts +2 -2
- package/lib/routes/rustcc/jobs.ts +1 -1
- package/lib/routes/rustcc/news.ts +1 -1
- package/lib/routes/sara/index.ts +1 -1
- package/lib/routes/saraba1st/digest.ts +7 -7
- package/lib/routes/saraba1st/namespace.ts +1 -1
- package/lib/routes/saraba1st/templates/digest.art +1 -1
- package/lib/routes/saraba1st/thread.ts +10 -6
- package/lib/routes/science/cover.ts +0 -2
- package/lib/routes/science/utils.ts +0 -3
- package/lib/routes/sciencedirect/call-for-paper.ts +0 -2
- package/lib/routes/scientificamerican/podcast.ts +0 -3
- package/lib/routes/scmp/index.ts +15 -10
- package/lib/routes/sctv/programme.ts +0 -2
- package/lib/routes/scut/jwc/news.ts +1 -1
- package/lib/routes/scut/jwc/notice.ts +1 -1
- package/lib/routes/scut/jwc/school.ts +1 -1
- package/lib/routes/sdu/cmse.ts +3 -3
- package/lib/routes/sdu/cs/index.ts +4 -4
- package/lib/routes/sdu/epe.ts +3 -3
- package/lib/routes/sdu/mech.ts +3 -4
- package/lib/routes/sdu/sc.ts +3 -3
- package/lib/routes/seekingalpha/index.ts +0 -2
- package/lib/routes/sehuatang/index.ts +1 -1
- package/lib/routes/sensortower/blog.ts +0 -2
- package/lib/routes/shcstheatre/programs.ts +0 -2
- package/lib/routes/shiep/index.ts +0 -2
- package/lib/routes/shmeea/self-study.ts +1 -1
- package/lib/routes/shmtu/portal.ts +0 -2
- package/lib/routes/shoac/recent-show.ts +0 -2
- package/lib/routes/shopback/store.ts +3 -3
- package/lib/routes/shopify/apps/[handle].reviews.ts +1 -1
- package/lib/routes/shoppingdesign/posts.ts +26 -25
- package/lib/routes/shuiguopai/index.ts +0 -2
- package/lib/routes/sicau/dky.ts +3 -3
- package/lib/routes/sicau/jiaowu.ts +1 -1
- package/lib/routes/sicau/yan.ts +3 -3
- package/lib/routes/sicau/zsjy.ts +3 -3
- package/lib/routes/simpleinfo/index.ts +3 -5
- package/lib/routes/sina/utils.ts +0 -3
- package/lib/routes/sinchew/index.ts +0 -2
- package/lib/routes/sjtu/gs.ts +3 -3
- package/lib/routes/sjtu/tongqu/activity.ts +0 -2
- package/lib/routes/skeb/utils.ts +0 -3
- package/lib/routes/snowpeak/us-new-arrivals.ts +4 -6
- package/lib/routes/sobooks/utils.ts +3 -3
- package/lib/routes/sogou/search.ts +0 -2
- package/lib/routes/sohu/mobile.ts +149 -0
- package/lib/routes/sohu/mp.ts +0 -2
- package/lib/routes/soundofhope/channel.ts +3 -3
- package/lib/routes/southcn/nfapp/column.ts +0 -2
- package/lib/routes/southcn/nfapp/reporter.ts +0 -2
- package/lib/routes/spankbang/new-videos.ts +0 -2
- package/lib/routes/spotify/saved.ts +1 -1
- package/lib/routes/springer/journal.ts +5 -7
- package/lib/routes/sqmc/www.ts +1 -1
- package/lib/routes/sse/convert.ts +11 -5
- package/lib/routes/sse/disclosure.ts +9 -5
- package/lib/routes/sse/inquire.ts +0 -2
- package/lib/routes/sse/renewal.ts +2 -4
- package/lib/routes/ssm/news.ts +14 -18
- package/lib/routes/sspai/series.ts +21 -23
- package/lib/routes/startuplatte/index.ts +3 -3
- package/lib/routes/stcn/index.ts +2 -1
- package/lib/routes/stdaily/digitalpaper.ts +9 -11
- package/lib/routes/steam/appcommunityfeed.ts +0 -2
- package/lib/routes/steam/curator.ts +0 -3
- package/lib/routes/steam/search.ts +1 -2
- package/lib/routes/steam/workshop-search.ts +0 -2
- package/lib/routes/stheadline/std/realtime.ts +1 -1
- package/lib/routes/storm/index.ts +3 -3
- package/lib/routes/storyfm/episodes.ts +0 -2
- package/lib/routes/storyfm/index.ts +3 -3
- package/lib/routes/straitstimes/index.ts +0 -2
- package/lib/routes/surfshark/blog.ts +0 -2
- package/lib/routes/swjtu/scai.ts +19 -4
- package/lib/routes/swjtu/utils.ts +0 -3
- package/lib/routes/swpu/cjxy.ts +1 -1
- package/lib/routes/swpu/dean.ts +1 -1
- package/lib/routes/swpu/dxy.ts +1 -1
- package/lib/routes/swpu/is.ts +1 -1
- package/lib/routes/syosetu/ranking-isekai.ts +1 -4
- package/lib/routes/syosetu/ranking-r18.ts +1 -4
- package/lib/routes/syosetu/ranking.ts +1 -4
- package/lib/routes/syosetu/search.ts +1 -4
- package/lib/routes/sysu/ygafz.ts +5 -31
- package/lib/routes/szftedu/gonggao.ts +1 -1
- package/lib/routes/szse/inquire.ts +0 -2
- package/lib/routes/szse/projectdynamic.ts +0 -2
- package/lib/routes/taobao/zhongchou.ts +0 -2
- package/lib/routes/taptap/utils.ts +0 -3
- package/lib/routes/techcrunch/news.ts +0 -2
- package/lib/routes/telecompaper/news.ts +3 -3
- package/lib/routes/telecompaper/search.ts +3 -3
- package/lib/routes/telegram/blog.ts +1 -1
- package/lib/routes/telegram/channel.ts +482 -487
- package/lib/routes/telegram/scripts/get-telegram-session.mjs +1 -1
- package/lib/routes/telegram/tglib/channel.ts +4 -4
- package/lib/routes/telegram/tglib/client.ts +2 -2
- package/lib/routes/tencent/news/author.ts +0 -2
- package/lib/routes/tencent/news/coronavirus/data.ts +0 -2
- package/lib/routes/tencent/news/coronavirus/total.ts +0 -2
- package/lib/routes/tesla/cx.ts +0 -2
- package/lib/routes/tfc-taiwan/category.ts +53 -0
- package/lib/routes/tfc-taiwan/index.ts +26 -10
- package/lib/routes/tfc-taiwan/namespace.ts +4 -1
- package/lib/routes/tfc-taiwan/utils.ts +24 -52
- package/lib/routes/the/index.ts +0 -2
- package/lib/routes/theatlantic/utils.ts +0 -3
- package/lib/routes/theblockbeats/index.ts +0 -3
- package/lib/routes/thecover/channel.ts +6 -8
- package/lib/routes/theinitium/app.ts +5 -5
- package/lib/routes/theinitium/templates/description.art +0 -3
- package/lib/routes/themoviedb/utils.ts +0 -3
- package/lib/routes/thenewslens/index.ts +0 -2
- package/lib/routes/thepaper/839studio/category.ts +8 -12
- package/lib/routes/thepaper/839studio/studio.ts +8 -12
- package/lib/routes/thepaper/factpaper.ts +0 -2
- package/lib/routes/thepaper/utils.ts +0 -3
- package/lib/routes/theverge/index.ts +0 -3
- package/lib/routes/thoughtco/index.ts +0 -2
- package/lib/routes/tiktok/user.ts +0 -2
- package/lib/routes/timednews/news.ts +3 -3
- package/lib/routes/tingshuitz/changsha.ts +3 -3
- package/lib/routes/tingshuitz/dongguan.ts +9 -13
- package/lib/routes/tingshuitz/hangzhou.ts +9 -13
- package/lib/routes/tingshuitz/nanjing.ts +13 -15
- package/lib/routes/tingshuitz/shenzhen.ts +0 -2
- package/lib/routes/tingshuitz/xian.ts +9 -11
- package/lib/routes/tingshuitz/xiaoshan.ts +9 -13
- package/lib/routes/tingshuitz/yangjiang.ts +10 -12
- package/lib/routes/tingtingfm/program.ts +0 -2
- package/lib/routes/tisi/index.ts +3 -3
- package/lib/routes/tju/cic/index.ts +3 -3
- package/lib/routes/tju/news/index.ts +1 -1
- package/lib/routes/tju/oaa/index.ts +3 -3
- package/lib/routes/tju/yzb/index.ts +3 -3
- package/lib/routes/tmtpost/util.ts +0 -3
- package/lib/routes/tophub/list.ts +0 -2
- package/lib/routes/toutiao/user.ts +1 -4
- package/lib/routes/tradingview/blog.ts +42 -44
- package/lib/routes/transcriptforest/index.ts +0 -2
- package/lib/routes/transformer-circuits/index.ts +0 -5
- package/lib/routes/tribalfootball/latest.ts +3 -5
- package/lib/routes/trow/portal.ts +11 -15
- package/lib/routes/tvb/news.ts +0 -2
- package/lib/routes/tvtropes/featured.ts +0 -2
- package/lib/routes/twitter/api/mobile-api/login.ts +1 -1
- package/lib/routes/twitter/utils.ts +9 -8
- package/lib/routes/twreporter/fetch-article.ts +0 -3
- package/lib/routes/txrjy/fornumtopic.ts +5 -7
- package/lib/routes/uber/blog.ts +1 -1
- package/lib/routes/ucas/index.ts +1 -1
- package/lib/routes/udn/breaking-news.ts +2 -4
- package/lib/routes/uestc/auto.ts +3 -3
- package/lib/routes/uestc/cqe.ts +3 -3
- package/lib/routes/uestc/news.ts +3 -3
- package/lib/routes/uestc/scse.ts +3 -3
- package/lib/routes/uestc/sice.ts +3 -3
- package/lib/routes/uestc/sise.ts +3 -3
- package/lib/routes/ulapia/index.ts +4 -4
- package/lib/routes/ulapia/research.ts +3 -3
- package/lib/routes/unusualwhales/news.ts +10 -8
- package/lib/routes/uptimerobot/rss.ts +0 -2
- package/lib/routes/urbandictionary/random.ts +0 -2
- package/lib/routes/ustb/tj/news.ts +1 -1
- package/lib/routes/ustb/yjsy/news.ts +40 -44
- package/lib/routes/ustc/index.ts +4 -4
- package/lib/routes/ustc/jwc.ts +5 -5
- package/lib/routes/usts/jwch.ts +3 -3
- package/lib/routes/utgd/utils.ts +0 -3
- package/lib/routes/uw/gix/news.ts +3 -3
- package/lib/routes/v2ex/xna.ts +1 -1
- package/lib/routes/vcb-s/category.ts +0 -2
- package/lib/routes/vcb-s/index.ts +0 -2
- package/lib/routes/verfghbw/press.ts +3 -3
- package/lib/routes/vice/topic.ts +1 -3
- package/lib/routes/vimeo/category.ts +0 -2
- package/lib/routes/vimeo/channel.ts +16 -20
- package/lib/routes/vimeo/usr-videos.ts +0 -2
- package/lib/routes/visionias/utils.ts +0 -3
- package/lib/routes/wainao/topics.ts +0 -3
- package/lib/routes/wallhaven/index.ts +3 -3
- package/lib/routes/wallpaperhub/index.ts +0 -2
- package/lib/routes/wallstreetcn/live.ts +0 -2
- package/lib/routes/warthunder/news.ts +0 -2
- package/lib/routes/washingtonpost/app.ts +3 -5
- package/lib/routes/wechat/data258.ts +4 -4
- package/lib/routes/wechat/msgalbum.ts +1 -1
- package/lib/routes/wechat/sogou.ts +171 -50
- package/lib/routes/wechat/tgchannel.ts +113 -115
- package/lib/routes/weibo/friends.ts +1 -1
- package/lib/routes/weibo/group.ts +1 -1
- package/lib/routes/weibo/keyword.ts +1 -1
- package/lib/routes/weibo/search/hot.ts +1 -3
- package/lib/routes/weibo/timeline.ts +1 -1
- package/lib/routes/weibo/user-bookmarks.ts +1 -1
- package/lib/routes/weibo/user.ts +9 -8
- package/lib/routes/weibo/utils.ts +1 -1
- package/lib/routes/wellcee/rent.ts +1 -3
- package/lib/routes/wenku8/index.ts +3 -3
- package/lib/routes/wfu/jwc.ts +18 -20
- package/lib/routes/wfu/news.ts +18 -20
- package/lib/routes/who/news-room.ts +8 -10
- package/lib/routes/whu/gs/index.ts +2 -2
- package/lib/routes/whu/news.ts +0 -2
- package/lib/routes/whu/util.ts +0 -3
- package/lib/routes/winstall/update.ts +0 -2
- package/lib/routes/wise/pair.ts +1 -3
- package/lib/routes/wizfile/index.ts +3 -3
- package/lib/routes/wmc-bj/publish.ts +0 -2
- package/lib/routes/wnacg/common.ts +0 -3
- package/lib/routes/woshipm/popular.ts +3 -2
- package/lib/routes/wsj/news.ts +3 -2
- package/lib/routes/wsj/utils.ts +1 -12
- package/lib/routes/wsyu/news.ts +6 -6
- package/lib/routes/wtu/job.ts +3 -3
- package/lib/routes/wzu/news.ts +13 -17
- package/lib/routes/x-mol/news.ts +0 -2
- package/lib/routes/x-mol/paper.ts +17 -22
- package/lib/routes/xaut/index.ts +4 -4
- package/lib/routes/xaut/jwc.ts +3 -3
- package/lib/routes/xaut/rsc.ts +3 -3
- package/lib/routes/xiaohongshu/user.ts +1 -1
- package/lib/routes/xiaohongshu/util.ts +9 -5
- package/lib/routes/xiaomiyoupin/crowdfunding.ts +0 -2
- package/lib/routes/xiaomiyoupin/utils.ts +0 -3
- package/lib/routes/ximalaya/utils.ts +2 -2
- package/lib/routes/xinpianchang/util.ts +0 -3
- package/lib/routes/xjtu/dean.ts +3 -7
- package/lib/routes/xjtu/ee.ts +3 -3
- package/lib/routes/xjtu/gs/tzgg.ts +3 -3
- package/lib/routes/xjtu/job.ts +0 -2
- package/lib/routes/xjtu/std.ts +0 -2
- package/lib/routes/xjtu/zs.ts +171 -0
- package/lib/routes/xkb/index.ts +0 -2
- package/lib/routes/xmanhua/index.ts +13 -15
- package/lib/routes/xmut/jwc/bkjw.ts +3 -3
- package/lib/routes/xueqiu/stock-comments.ts +0 -2
- package/lib/routes/xys/new.ts +0 -2
- package/lib/routes/xyzrank/index.ts +0 -2
- package/lib/routes/yahoo/news/listid.ts +1 -1
- package/lib/routes/yahoo/news/utils.ts +0 -3
- package/lib/routes/yamibo/bbs/forum.ts +5 -4
- package/lib/routes/yamibo/utils.ts +0 -9
- package/lib/routes/ycwb/index.ts +0 -2
- package/lib/routes/yenpress/series.ts +1 -4
- package/lib/routes/ygkkk/rss.ts +3 -3
- package/lib/routes/yicai/dt.ts +0 -2
- package/lib/routes/yicai/utils.ts +0 -3
- package/lib/routes/yilinzazhi/latest.ts +1 -1
- package/lib/routes/ymgal/game.ts +1 -3
- package/lib/routes/yoasobi-music/info.ts +0 -2
- package/lib/routes/yoasobi-music/live.ts +0 -2
- package/lib/routes/yoasobi-music/media.ts +3 -8
- package/lib/routes/yomujp/level.ts +2 -2
- package/lib/routes/youku/channel.ts +24 -28
- package/lib/routes/youtube/api/google.ts +189 -0
- package/lib/routes/youtube/api/youtubei.ts +98 -0
- package/lib/routes/youtube/channel.ts +45 -46
- package/lib/routes/youtube/community.ts +2 -4
- package/lib/routes/youtube/playlist.ts +10 -29
- package/lib/routes/youtube/subscriptions.ts +3 -11
- package/lib/routes/youtube/user.ts +30 -81
- package/lib/routes/youtube/utils.ts +29 -42
- package/lib/routes/yxdown/news.ts +3 -3
- package/lib/routes/yxdown/recommend.ts +3 -3
- package/lib/routes/yxdzqb/index.ts +17 -21
- package/lib/routes/yyets/today.ts +8 -12
- package/lib/routes/zagg/new-arrivals.ts +7 -9
- package/lib/routes/zaimanhua/comic.ts +88 -0
- package/lib/routes/zaimanhua/namespace.ts +7 -0
- package/lib/routes/zaimanhua/template/comic.art +3 -0
- package/lib/routes/zaimanhua/update.ts +86 -0
- package/lib/routes/zaker/channel.ts +2 -5
- package/lib/routes/zaker/focus.ts +2 -5
- package/lib/routes/zaobao/util.ts +2 -5
- package/lib/routes/zcmu/jwc/index.ts +3 -3
- package/lib/routes/zcmu/yxy/index.ts +3 -3
- package/lib/routes/zcool/discover.ts +0 -2
- package/lib/routes/zcool/user.ts +1 -1
- package/lib/routes/zcool/utils.ts +0 -3
- package/lib/routes/zhibo8/luxiang.ts +1 -1
- package/lib/routes/zhihu/hot.ts +28 -8
- package/lib/routes/zhihu/pin/utils.ts +5 -5
- package/lib/routes/zhihu/weekly.ts +7 -7
- package/lib/routes/zhitongcaijing/index.ts +0 -2
- package/lib/routes/zhiy/post.ts +0 -2
- package/lib/routes/zhonglun/index.ts +0 -2
- package/lib/routes/zhubai/top20.ts +0 -2
- package/lib/routes/zhujiceping/rss.ts +3 -3
- package/lib/routes/zimuxia/portfolio.ts +1 -1
- package/lib/routes/zju/career/index.ts +10 -14
- package/lib/routes/zju/cst/custom.ts +11 -16
- package/lib/routes/zju/cst/index.ts +8 -13
- package/lib/routes/zju/grs/index.ts +9 -13
- package/lib/routes/zju/list.ts +6 -6
- package/lib/routes/zju/physics/index.ts +3 -3
- package/lib/routes/zjut/da/index.ts +3 -3
- package/lib/routes/zjut/news.ts +3 -3
- package/lib/routes/zodgame/forum.ts +0 -2
- package/lib/routes/zotero/versions.ts +13 -17
- package/lib/routes/zrblog/rss.ts +3 -3
- package/lib/routes/zuvio/utils.ts +0 -3
- package/lib/routes/zxcs/namespace.ts +7 -0
- package/lib/routes/zxcs/novel.ts +95 -0
- package/lib/routes/zyshow/index.ts +0 -2
- package/lib/setup.test.ts +2 -0
- package/lib/utils/camelcase-keys.spec.ts +3 -3
- package/lib/utils/camelcase-keys.ts +4 -3
- package/lib/utils/common-config.test.ts +3 -2
- package/lib/utils/common-config.ts +17 -13
- package/lib/utils/common-utils.ts +1 -1
- package/lib/utils/git-hash.ts +1 -1
- package/lib/utils/helpers.test.ts +8 -1
- package/lib/utils/helpers.ts +20 -1
- package/lib/utils/md5.ts +1 -1
- package/lib/utils/parse-date.ts +4 -4
- package/lib/utils/rand-user-agent.test.ts +2 -2
- package/lib/utils/timezone.ts +1 -1
- package/lib/utils/wechat-mp.ts +3 -2
- package/package.json +57 -54
- package/lib/routes/apnews/api.ts +0 -77
- package/lib/routes/copernicium/index.ts +0 -75
- package/lib/routes/dnaindia/category.ts +0 -0
- package/lib/routes/jiemian/list.ts +0 -14
- package/lib/routes/mihoyo/templates/ys.art +0 -4
- package/lib/routes/openai/blog.ts +0 -66
- package/lib/routes/rsshub/referer-map.ts +0 -14
- package/lib/routes/tfc-taiwan/common.ts +0 -38
- package/lib/routes/tfc-taiwan/topic.ts +0 -17
- package/lib/routes/trending/all-trending.ts +0 -228
- package/lib/routes/trending/templates/content.art +0 -25
- package/lib/routes-deprecated/jpmorganchase/research.js +0 -52
|
@@ -1,8 +1,140 @@
|
|
|
1
|
-
import { Route } from '@/types';
|
|
2
|
-
import
|
|
1
|
+
import { Route, DataItem } from '@/types';
|
|
2
|
+
import ofetch from '@/utils/ofetch';
|
|
3
3
|
import { load } from 'cheerio';
|
|
4
|
-
|
|
4
|
+
import { parseDate } from '@/utils/parse-date';
|
|
5
5
|
import { finishArticleItem } from '@/utils/wechat-mp';
|
|
6
|
+
import logger from '@/utils/logger';
|
|
7
|
+
|
|
8
|
+
const host = 'https://weixin.sogou.com';
|
|
9
|
+
const hardcodedCookie = 'SNUID=78725B470A0EF2C3F97AA5EB0BBF95C1; ABTEST=0|1680917938|v1; SUID=8F7B1C682B83A20A000000006430C5B2; PHPSESSID=le2lak0vghad5c98ijd3t51ls4; IPLOC=USUS5';
|
|
10
|
+
|
|
11
|
+
interface SogouItemInternal extends DataItem {
|
|
12
|
+
_internal: {
|
|
13
|
+
isWeChatLink: boolean;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async function fetchAndParsePage(wechatId: string): Promise<SogouItemInternal[]> {
|
|
18
|
+
const searchUrl = `${host}/weixin`;
|
|
19
|
+
let response;
|
|
20
|
+
try {
|
|
21
|
+
const responseHtml = await ofetch(searchUrl, {
|
|
22
|
+
query: {
|
|
23
|
+
ie: 'utf8',
|
|
24
|
+
s_from: 'input',
|
|
25
|
+
_sug_: 'n',
|
|
26
|
+
_sug_type_: '1',
|
|
27
|
+
type: '2',
|
|
28
|
+
query: wechatId,
|
|
29
|
+
page: '1',
|
|
30
|
+
},
|
|
31
|
+
headers: {
|
|
32
|
+
Referer: host,
|
|
33
|
+
Cookie: hardcodedCookie,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
response = { data: responseHtml };
|
|
37
|
+
} catch (error) {
|
|
38
|
+
logger.error(`Failed to fetch Sogou search for ${wechatId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const $ = load(response.data);
|
|
43
|
+
const list = $('ul.news-list > li').toArray();
|
|
44
|
+
|
|
45
|
+
const pageItemsPromises = list.map(async (li): Promise<SogouItemInternal | null> => {
|
|
46
|
+
const $li = $(li);
|
|
47
|
+
const title = $li.find('h3 > a').text().trim();
|
|
48
|
+
const sogouLinkHref = $li.find('h3 > a').attr('href');
|
|
49
|
+
if (!sogouLinkHref) {
|
|
50
|
+
logger.warn(`Skipping item with missing link for wechatId: ${wechatId}`);
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const sogouLink = host + sogouLinkHref;
|
|
54
|
+
const description = $li.find('p.txt-info').text().trim();
|
|
55
|
+
|
|
56
|
+
const timeScript = $li.find('span.s2 script').html();
|
|
57
|
+
const timeMatch = timeScript?.match(/timeConvert\('(\d+)'\)/);
|
|
58
|
+
const pubDate = timeMatch ? parseDate(Number.parseInt(timeMatch[1]) * 1000) : undefined;
|
|
59
|
+
|
|
60
|
+
let realLink = sogouLink;
|
|
61
|
+
try {
|
|
62
|
+
const linkResponse = await ofetch.raw(sogouLink, {
|
|
63
|
+
headers: {
|
|
64
|
+
Referer: searchUrl,
|
|
65
|
+
Cookie: hardcodedCookie,
|
|
66
|
+
},
|
|
67
|
+
redirect: 'manual',
|
|
68
|
+
ignoreResponseError: true,
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
let location = linkResponse.headers?.get('location');
|
|
72
|
+
|
|
73
|
+
if (location) {
|
|
74
|
+
if (!location.startsWith('http')) {
|
|
75
|
+
try {
|
|
76
|
+
location = new URL(location, sogouLink).toString();
|
|
77
|
+
} catch (error) {
|
|
78
|
+
logger.warn(`Invalid redirect location "${location}" for title "${title}" (wechatId: ${wechatId}): ${error instanceof Error ? error.message : String(error)}`);
|
|
79
|
+
location = null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (typeof location === 'string' && location) {
|
|
84
|
+
if (location.startsWith('http://mp.weixin.qq.com') || location.startsWith('https://mp.weixin.qq.com')) {
|
|
85
|
+
realLink = location;
|
|
86
|
+
} else {
|
|
87
|
+
try {
|
|
88
|
+
const intermediateResponse = await ofetch.raw(location, {
|
|
89
|
+
headers: {
|
|
90
|
+
Referer: sogouLink,
|
|
91
|
+
Cookie: hardcodedCookie,
|
|
92
|
+
},
|
|
93
|
+
redirect: 'manual',
|
|
94
|
+
ignoreResponseError: true,
|
|
95
|
+
});
|
|
96
|
+
const intermediateLocation = intermediateResponse.headers?.get('location');
|
|
97
|
+
if (intermediateLocation && (intermediateLocation.startsWith('http://mp.weixin.qq.com') || intermediateLocation.startsWith('https://mp.weixin.qq.com'))) {
|
|
98
|
+
realLink = intermediateLocation;
|
|
99
|
+
} else {
|
|
100
|
+
// logger.warn(`Could not resolve final WeChat link for title "${title}" (wechatId: ${wechatId}) after intermediate redirect`);
|
|
101
|
+
}
|
|
102
|
+
} catch (error) {
|
|
103
|
+
logger.warn(`Failed to resolve intermediate redirect for title "${title}" (wechatId: ${wechatId}): ${error instanceof Error ? error.message : String(error)}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
} else {
|
|
108
|
+
logger.debug(`No redirect location found for title "${title}" (wechatId: ${wechatId})`);
|
|
109
|
+
}
|
|
110
|
+
} catch (error: unknown) {
|
|
111
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
112
|
+
if (typeof error === 'object' && error !== null && 'response' in error && typeof error.response === 'object' && error.response !== null && 'status' in error.response) {
|
|
113
|
+
logger.debug(`Redirect request failed for "${title}" (wechatId: ${wechatId}) with status ${error.response.status}: ${errorMsg}`);
|
|
114
|
+
} else {
|
|
115
|
+
logger.debug(`Redirect request failed for "${title}" (wechatId: ${wechatId}): ${errorMsg}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const isWeChatLink = realLink.startsWith('http://mp.weixin.qq.com') || realLink.startsWith('https://mp.weixin.qq.com');
|
|
120
|
+
const author = $li.find('span.all-time-y2').text().trim();
|
|
121
|
+
|
|
122
|
+
return {
|
|
123
|
+
title,
|
|
124
|
+
link: realLink,
|
|
125
|
+
description,
|
|
126
|
+
author,
|
|
127
|
+
pubDate,
|
|
128
|
+
guid: realLink,
|
|
129
|
+
_internal: {
|
|
130
|
+
isWeChatLink,
|
|
131
|
+
},
|
|
132
|
+
} as SogouItemInternal;
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
return (await Promise.all(pageItemsPromises)).filter((item): item is SogouItemInternal => item !== null);
|
|
136
|
+
}
|
|
137
|
+
|
|
6
138
|
export const route: Route = {
|
|
7
139
|
path: '/sogou/:id',
|
|
8
140
|
categories: ['new-media'],
|
|
@@ -11,67 +143,56 @@ export const route: Route = {
|
|
|
11
143
|
features: {
|
|
12
144
|
requireConfig: false,
|
|
13
145
|
requirePuppeteer: false,
|
|
14
|
-
antiCrawler:
|
|
146
|
+
antiCrawler: true,
|
|
15
147
|
supportBT: false,
|
|
16
148
|
supportPodcast: false,
|
|
17
149
|
supportScihub: false,
|
|
18
150
|
},
|
|
19
151
|
name: '公众号(搜狗来源)',
|
|
20
|
-
maintainers: ['EthanWng97'],
|
|
152
|
+
maintainers: ['EthanWng97', 'pseudoyu'],
|
|
21
153
|
handler,
|
|
22
154
|
};
|
|
23
155
|
|
|
24
156
|
async function handler(ctx) {
|
|
25
157
|
const wechatId = ctx.req.param('id');
|
|
26
|
-
let url = `${host}/weixin`;
|
|
27
|
-
let response = await got({
|
|
28
|
-
method: 'get',
|
|
29
|
-
url,
|
|
30
|
-
searchParams: {
|
|
31
|
-
query: wechatId,
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
158
|
|
|
35
|
-
|
|
36
|
-
const href = $('a[uigs="account_article_0"]').attr('href');
|
|
37
|
-
const title = $('a[uigs="account_name_0"]').text();
|
|
38
|
-
url = `${host}${href}`;
|
|
39
|
-
response = await got({
|
|
40
|
-
url,
|
|
41
|
-
method: 'get',
|
|
42
|
-
headers: {
|
|
43
|
-
Cookie: 'SNUID=78725B470A0EF2C3F97AA5EB0BBF95C1; ABTEST=0|1680917938|v1; SUID=8F7B1C682B83A20A000000006430C5B2; PHPSESSID=le2lak0vghad5c98ijd3t51ls4; IPLOC=USUS5',
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
$ = load(response.data);
|
|
47
|
-
const jsCode = $('script').text();
|
|
48
|
-
const regex = /url \+= '([^']+)';/g;
|
|
49
|
-
const matches = [];
|
|
50
|
-
let match;
|
|
51
|
-
|
|
52
|
-
while ((match = regex.exec(jsCode)) !== null) {
|
|
53
|
-
matches.push(match[1]);
|
|
54
|
-
}
|
|
159
|
+
const allItems: SogouItemInternal[] = await fetchAndParsePage(wechatId);
|
|
55
160
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
161
|
+
const firstPageFirstItem = allItems[0];
|
|
162
|
+
const accountTitle = firstPageFirstItem?.author || wechatId;
|
|
163
|
+
|
|
164
|
+
const finalItemsPromises = allItems.map(async (item: SogouItemInternal): Promise<DataItem | null> => {
|
|
165
|
+
let resultItem: DataItem | SogouItemInternal = item;
|
|
166
|
+
if (item._internal.isWeChatLink) {
|
|
167
|
+
try {
|
|
168
|
+
resultItem = await finishArticleItem(item);
|
|
169
|
+
} catch (error) {
|
|
170
|
+
logger.debug(`finishArticleItem failed for ${item.link}: ${error instanceof Error ? error.message : String(error)}`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (resultItem && typeof resultItem === 'object') {
|
|
175
|
+
const finalItem: DataItem = {
|
|
176
|
+
title: resultItem.title,
|
|
177
|
+
link: resultItem.link,
|
|
178
|
+
description: resultItem.description,
|
|
179
|
+
author: resultItem.author,
|
|
180
|
+
pubDate: resultItem.pubDate,
|
|
181
|
+
guid: resultItem.guid,
|
|
182
|
+
...(resultItem.content && { content: resultItem.content }),
|
|
183
|
+
};
|
|
184
|
+
return finalItem;
|
|
185
|
+
}
|
|
186
|
+
logger.debug(`Unexpected null or non-object item during final processing for link: ${item?.link}`);
|
|
187
|
+
return null;
|
|
188
|
+
});
|
|
68
189
|
|
|
69
|
-
await
|
|
190
|
+
const finalItems: DataItem[] = (await Promise.all(finalItemsPromises)).filter((item): item is DataItem => item !== null);
|
|
70
191
|
|
|
71
192
|
return {
|
|
72
|
-
title: `${
|
|
73
|
-
link:
|
|
74
|
-
description: `${
|
|
75
|
-
item:
|
|
193
|
+
title: `${accountTitle} 的微信公众号`,
|
|
194
|
+
link: `${host}/weixin?query=${wechatId}`,
|
|
195
|
+
description: `${accountTitle} 的微信公众号`,
|
|
196
|
+
item: finalItems,
|
|
76
197
|
};
|
|
77
198
|
}
|
|
@@ -50,129 +50,127 @@ async function handler(ctx) {
|
|
|
50
50
|
const list = $('.tgme_widget_message_wrap').slice(-20);
|
|
51
51
|
|
|
52
52
|
const out = await Promise.all(
|
|
53
|
-
list
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
mark.replaceWith(markInnerHtml);
|
|
65
|
-
}
|
|
66
|
-
item = $(item.html()); // 删除关键字高亮后,相邻的裸文本节点不会被自动合并,重新生成 cheerio 对象以确保后续流程正常运行
|
|
53
|
+
list.toArray().map(async (item) => {
|
|
54
|
+
item = $(item);
|
|
55
|
+
|
|
56
|
+
if (searchQuery) {
|
|
57
|
+
// 删除关键字高亮 <mark class="highlight">
|
|
58
|
+
const highlightMarks = item.find('mark.highlight').toArray();
|
|
59
|
+
if (highlightMarks) {
|
|
60
|
+
for (let mark of highlightMarks) {
|
|
61
|
+
mark = $(mark);
|
|
62
|
+
const markInnerHtml = mark.html();
|
|
63
|
+
mark.replaceWith(markInnerHtml);
|
|
67
64
|
}
|
|
65
|
+
item = $(item.html()); // 删除关键字高亮后,相邻的裸文本节点不会被自动合并,重新生成 cheerio 对象以确保后续流程正常运行
|
|
68
66
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
const spaceIndex = authorNode.data.indexOf(' ');
|
|
114
|
-
const colonIndex = authorNode.data.indexOf(':');
|
|
115
|
-
if (authorNode.data.length > 1 && colonIndex !== -1 && (spaceIndex !== -1 || titleElemIs3thA)) {
|
|
116
|
-
// 有三种可能:
|
|
117
|
-
// 不带 # 的完整公众号名 (efb-patch-middleware 未启用)
|
|
118
|
-
// 带 # 的完整公众号名 (efb-patch-middleware 启用,但 hashtag 完全不合法)
|
|
119
|
-
// 被截断的公众号名后半部分 (efb-patch-middleware 启用,但 hashtag 被空格或标点截断,此时空格有意义)
|
|
120
|
-
// (若 efb-patch-middleware 启用,且 hashtag 完全合法,不会进入此流程)
|
|
121
|
-
const sliceStart = titleElemIs3thA ? 0 : spaceIndex + 1;
|
|
122
|
-
author += authorNode.data.slice(sliceStart, colonIndex); // 提取作者
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
if (author.startsWith('#')) {
|
|
126
|
-
author = author.slice(1); // 去掉开头的 #
|
|
127
|
-
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// [ div.tgme_widget_message_text 格式简略说明 ]
|
|
70
|
+
// 若频道只订阅一个公众号:
|
|
71
|
+
// 第 1 个元素: <a href="${用于 link priview 的预览图 url}"><i><b>🔗</b></i></a>
|
|
72
|
+
// 第 2 个元素: <a href="${文章 url}">${文章标题}</a>
|
|
73
|
+
// (余下是文章简介,一般是裸文本,这里用不到)
|
|
74
|
+
//
|
|
75
|
+
// 若频道订阅多于一个公众号:
|
|
76
|
+
// 第 1 个元素: <i><b>${emoji(标注消息来源于什么 slave,这里是表示微信的💬)}</b></i>
|
|
77
|
+
// 第 2 个元素: <i><b>${emoji(标注对话类型,这里是表示私聊的👤)</b></i>
|
|
78
|
+
// 裸文本: (半角空格)${公众号名}(半角冒号)
|
|
79
|
+
// 第 3 个元素: <br />
|
|
80
|
+
// 第 4 个元素: <a href="${用于 link priview 的预览图 url}"><i><b>🔗</b></i></a>
|
|
81
|
+
// 第 5 个元素: <a href="${文章 url}">${文章标题}</a>
|
|
82
|
+
// (余下是文章简介,一般是裸文本,这里用不到)
|
|
83
|
+
//
|
|
84
|
+
// 若启用 efb-patch-middleware 且频道订阅多于一个公众号:
|
|
85
|
+
// 第 1 个元素: <i><b>${emoji(标注消息来源于什么 slave,这里是表示微信的💬)}</b></i>
|
|
86
|
+
// 第 2 个元素: <i><b>${emoji(标注对话类型,这里是表示私聊的👤)</b></i>
|
|
87
|
+
// 第 3 个元素: <a href="${?q=%23url-encoded公众号名}">#${公众号名}</a>
|
|
88
|
+
// 裸文本: ${公众号名余下部分 (若 hashtag 不合法 (遇到空格、标点) 导致被截断才会有)}(半角冒号)
|
|
89
|
+
// 第 4 个元素: <br />
|
|
90
|
+
// 第 5 个元素: <a href="${用于 link priview 的预览图 url}"><i><b>🔗</b></i></a>
|
|
91
|
+
// 第 6 个元素: <a href="${文章 url}">${文章标题}</a>
|
|
92
|
+
// (余下是文章简介,一般是裸文本,这里用不到)
|
|
93
|
+
|
|
94
|
+
let author = '';
|
|
95
|
+
let titleElemIs3thA = false;
|
|
96
|
+
|
|
97
|
+
const brNode = item.find('.tgme_widget_message_text > br:nth-of-type(1)').get(0); // 获取第一个换行
|
|
98
|
+
const authorNode = brNode && brNode.prev; // brNode 不为 undefined 时获取它的前一个节点
|
|
99
|
+
const authorNodePrev = authorNode && authorNode.prev; // authorNode 不为 undefined 时获取它的前一个节点
|
|
100
|
+
if (authorNode && authorNode.type === 'text') {
|
|
101
|
+
// 只有这个节点是一个裸文本时它才可能是公众号名,开始找寻公众号名
|
|
102
|
+
if (authorNodePrev && authorNodePrev.type === 'tag' && authorNodePrev.name === 'a' && authorNodePrev.attribs.href && authorNodePrev.attribs.href.startsWith('?q=%23')) {
|
|
103
|
+
// authorNode 前一个节点是链接, 且是个 hashtag,表示启用了 efb-patch-middleware,这个节点是公众号名
|
|
104
|
+
// 有两种可能:
|
|
105
|
+
// 带 # 的完整公众号名 (efb-patch-middleware 启用,且 hashtag 完全合法)
|
|
106
|
+
// 被截断的公众号名前半部分 (efb-patch-middleware 启用,但 hashtag 被空格或标点截断)
|
|
107
|
+
// (若 efb-patch-middleware 未启用,或 hashtag 完全不合法,不会进入此流程)
|
|
108
|
+
titleElemIs3thA = true;
|
|
109
|
+
author += $(authorNodePrev).text();
|
|
128
110
|
}
|
|
129
111
|
|
|
130
|
-
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
//
|
|
136
|
-
|
|
112
|
+
const spaceIndex = authorNode.data.indexOf(' ');
|
|
113
|
+
const colonIndex = authorNode.data.indexOf(':');
|
|
114
|
+
if (authorNode.data.length > 1 && colonIndex !== -1 && (spaceIndex !== -1 || titleElemIs3thA)) {
|
|
115
|
+
// 有三种可能:
|
|
116
|
+
// 不带 # 的完整公众号名 (efb-patch-middleware 未启用)
|
|
117
|
+
// 带 # 的完整公众号名 (efb-patch-middleware 启用,但 hashtag 完全不合法)
|
|
118
|
+
// 被截断的公众号名后半部分 (efb-patch-middleware 启用,但 hashtag 被空格或标点截断,此时空格有意义)
|
|
119
|
+
// (若 efb-patch-middleware 启用,且 hashtag 完全合法,不会进入此流程)
|
|
120
|
+
const sliceStart = titleElemIs3thA ? 0 : spaceIndex + 1;
|
|
121
|
+
author += authorNode.data.slice(sliceStart, colonIndex); // 提取作者
|
|
137
122
|
}
|
|
138
123
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (mpName && author !== mpName) {
|
|
143
|
-
// 指定了要筛选的公众号名,且该文章不是该公众号发的
|
|
144
|
-
return; // 丢弃
|
|
145
|
-
} else if (!mpName && author) {
|
|
146
|
-
// 没有指定要筛选的公众号名,且匹配到了作者
|
|
147
|
-
title = author + ': ' + title; // 给标题里加上获取到的作者
|
|
124
|
+
if (author.startsWith('#')) {
|
|
125
|
+
author = author.slice(1); // 去掉开头的 #
|
|
148
126
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// 如果启用了 efb-patch-middleware 且 hashtag (部分)合法,第三个 a 元素会是文章链接,否则是第二个
|
|
130
|
+
const titleElemNth = titleElemIs3thA ? 3 : 2;
|
|
131
|
+
const titleElem = item.find(`.tgme_widget_message_text > a:nth-of-type(${titleElemNth})`);
|
|
132
|
+
|
|
133
|
+
if (titleElem.length === 0) {
|
|
134
|
+
// 获取不到标题 a 元素,这可能是公众号发的服务消息,丢弃它
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
let title = titleElem.text();
|
|
139
|
+
const link = titleElem.attr('href');
|
|
140
|
+
|
|
141
|
+
if (mpName && author !== mpName) {
|
|
142
|
+
// 指定了要筛选的公众号名,且该文章不是该公众号发的
|
|
143
|
+
return; // 丢弃
|
|
144
|
+
} else if (!mpName && author) {
|
|
145
|
+
// 没有指定要筛选的公众号名,且匹配到了作者
|
|
146
|
+
title = author + ': ' + title; // 给标题里加上获取到的作者
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
const pubDate = new Date(item.find('.tgme_widget_message_date time').attr('datetime')).toUTCString();
|
|
150
|
+
|
|
151
|
+
/*
|
|
152
|
+
* Since 2024/4/20, t.me/s/ mistakenly have every '&' in **hyperlinks** replaced by '&'.
|
|
153
|
+
* wechat-mp will take care of this, so no need to fix it here.
|
|
154
|
+
* However, once the bug is eventually fixed, all guid will be changed again.
|
|
155
|
+
* Considering that this is almost certain to happen, let's break guid consistency now by using
|
|
156
|
+
* normalized URL from wechat-mp as guid to avoid similar issues in the future.
|
|
157
|
+
*/
|
|
158
|
+
const single = {
|
|
159
|
+
title,
|
|
160
|
+
pubDate,
|
|
161
|
+
link,
|
|
162
|
+
// guid: link,
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
if (link !== undefined) {
|
|
166
|
+
try {
|
|
167
|
+
return await finishArticleItem(single);
|
|
168
|
+
} catch {
|
|
169
|
+
single.description = item.find('.tgme_widget_message_text').html();
|
|
172
170
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
171
|
+
}
|
|
172
|
+
return single;
|
|
173
|
+
})
|
|
176
174
|
);
|
|
177
175
|
|
|
178
176
|
out.reverse();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Route, ViewType } from '@/types';
|
|
2
2
|
import cache from '@/utils/cache';
|
|
3
|
-
import querystring from 'querystring';
|
|
3
|
+
import querystring from 'node:querystring';
|
|
4
4
|
import got from '@/utils/got';
|
|
5
5
|
import weiboUtils from './utils';
|
|
6
6
|
import timezone from '@/utils/timezone';
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { Route, ViewType } from '@/types';
|
|
2
|
-
import { getCurrentPath } from '@/utils/helpers';
|
|
3
|
-
const __dirname = getCurrentPath(import.meta.url);
|
|
4
2
|
|
|
5
3
|
import cache from '@/utils/cache';
|
|
6
4
|
import got from '@/utils/got';
|
|
@@ -142,7 +140,7 @@ function seekContent(clist) {
|
|
|
142
140
|
if (curitem.card_type === 9) {
|
|
143
141
|
const tbpic = curitem.mblog.thumbnail_pic ?? '';
|
|
144
142
|
const index = tbpic.lastIndexOf('/');
|
|
145
|
-
const thumbfolder = tbpic.
|
|
143
|
+
const thumbfolder = tbpic.slice(0, index + 1);
|
|
146
144
|
|
|
147
145
|
const curcontent = load(curitem.mblog.text);
|
|
148
146
|
if (wpic === 'true') {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Route } from '@/types';
|
|
2
2
|
import cache from '@/utils/cache';
|
|
3
|
-
import querystring from 'querystring';
|
|
3
|
+
import querystring from 'node:querystring';
|
|
4
4
|
import got from '@/utils/got';
|
|
5
5
|
import { parseDate } from '@/utils/parse-date';
|
|
6
6
|
import { config } from '@/config';
|
package/lib/routes/weibo/user.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Route, ViewType } from '@/types';
|
|
2
2
|
import cache from '@/utils/cache';
|
|
3
|
-
import querystring from 'querystring';
|
|
3
|
+
import querystring from 'node:querystring';
|
|
4
4
|
import got from '@/utils/got';
|
|
5
5
|
import weiboUtils from './utils';
|
|
6
6
|
import { config } from '@/config';
|
|
@@ -129,6 +129,7 @@ async function handler(ctx) {
|
|
|
129
129
|
// TODO: getShowData() on demand? The API seems to return most things we need since 2022/05/21.
|
|
130
130
|
// Need more investigation, pending for now since the current version works fine.
|
|
131
131
|
let { bid } = item.mblog;
|
|
132
|
+
const { retweeted_status, created_at } = item.mblog;
|
|
132
133
|
if (bid === '') {
|
|
133
134
|
const url = new URL(item.scheme);
|
|
134
135
|
bid = url.searchParams.get('mblogid');
|
|
@@ -141,20 +142,20 @@ async function handler(ctx) {
|
|
|
141
142
|
item.mblog.text = data.text;
|
|
142
143
|
item.mblog.created_at = parseDate(data.created_at);
|
|
143
144
|
item.mblog.pics = data.pics;
|
|
144
|
-
if (
|
|
145
|
-
|
|
145
|
+
if (retweeted_status && data.retweeted_status) {
|
|
146
|
+
retweeted_status.created_at = data.retweeted_status.created_at;
|
|
146
147
|
}
|
|
147
148
|
} else {
|
|
148
|
-
item.mblog.created_at = timezone(
|
|
149
|
+
item.mblog.created_at = timezone(created_at, +8);
|
|
149
150
|
}
|
|
150
151
|
|
|
151
152
|
// 转发的长微博处理
|
|
152
|
-
const retweet =
|
|
153
|
+
const retweet = retweeted_status;
|
|
153
154
|
if (retweet && retweet.isLongText) {
|
|
154
155
|
// TODO: unify cache key and ...
|
|
155
156
|
const retweetData = await cache.tryGet(`weibo:retweeted:${retweet.user.id}:${retweet.bid}`, () => weiboUtils.getShowData(retweet.user.id, retweet.bid));
|
|
156
157
|
if (retweetData !== undefined && retweetData.text) {
|
|
157
|
-
|
|
158
|
+
retweeted_status.text = retweetData.text;
|
|
158
159
|
}
|
|
159
160
|
}
|
|
160
161
|
|
|
@@ -164,7 +165,7 @@ async function handler(ctx) {
|
|
|
164
165
|
// 视频的处理
|
|
165
166
|
if (displayVideo === '1') {
|
|
166
167
|
// 含被转发微博时需要从被转发微博中获取视频
|
|
167
|
-
description =
|
|
168
|
+
description = retweeted_status ? weiboUtils.formatVideo(description, retweeted_status) : weiboUtils.formatVideo(description, item.mblog);
|
|
168
169
|
}
|
|
169
170
|
|
|
170
171
|
// 评论的处理
|
|
@@ -175,7 +176,7 @@ async function handler(ctx) {
|
|
|
175
176
|
// 文章的处理
|
|
176
177
|
if (displayArticle === '1') {
|
|
177
178
|
// 含被转发微博时需要从被转发微博中获取文章
|
|
178
|
-
description = await (
|
|
179
|
+
description = await (retweeted_status ? weiboUtils.formatArticle(ctx, description, retweeted_status) : weiboUtils.formatArticle(ctx, description, item.mblog));
|
|
179
180
|
}
|
|
180
181
|
|
|
181
182
|
return {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import cache from '@/utils/cache';
|
|
2
|
-
import querystring from 'querystring';
|
|
2
|
+
import querystring from 'node:querystring';
|
|
3
3
|
import got from '@/utils/got';
|
|
4
4
|
import { load } from 'cheerio';
|
|
5
5
|
import { fallback, queryToBoolean, queryToInteger } from '@/utils/readable-social';
|
|
@@ -8,10 +8,8 @@ import { baseUrl, getCitys, getDistricts } from './utils';
|
|
|
8
8
|
import InvalidParameterError from '@/errors/types/invalid-parameter';
|
|
9
9
|
import { art } from '@/utils/render';
|
|
10
10
|
import path from 'node:path';
|
|
11
|
-
import { getCurrentPath } from '@/utils/helpers';
|
|
12
11
|
|
|
13
|
-
const
|
|
14
|
-
const render = (data) => art(path.join(__dirname, 'templates', 'house.art'), data);
|
|
12
|
+
const render = (data) => art(path.join(__dirname, 'templates/house.art'), data);
|
|
15
13
|
|
|
16
14
|
export const route: Route = {
|
|
17
15
|
path: '/rent/:city/:district?',
|