rsshub 1.0.0-master.fd741f1 → 1.0.0-master.fd8463a
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/api/index.ts +2 -2
- 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 +47 -1
- package/lib/errors/index.tsx +2 -1
- package/lib/index.ts +48 -15
- package/lib/middleware/debug.ts +6 -4
- package/lib/middleware/header.test.ts +1 -0
- package/lib/middleware/header.ts +6 -0
- package/lib/middleware/parameter.ts +4 -3
- package/lib/middleware/template.test.ts +8 -0
- package/lib/middleware/template.tsx +5 -0
- package/lib/registry.ts +83 -6
- package/lib/router.js +0 -18
- 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 +332 -0
- package/lib/routes/199it/templates/description.art +20 -0
- 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 +10 -2
- package/lib/routes/36kr/index.ts +1 -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/article.ts +1 -1
- package/lib/routes/4khd/namespace.ts +1 -1
- package/lib/routes/4ksj/forum.ts +0 -2
- package/lib/routes/500px/tribe-set.ts +1 -3
- 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/academia/topics.ts +10 -20
- package/lib/routes/accessbriefing/index.ts +0 -2
- package/lib/routes/acfun/article.ts +1 -1
- package/lib/routes/acfun/bangumi.ts +1 -1
- package/lib/routes/acfun/video.ts +2 -2
- 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/category.ts +1 -1
- package/lib/routes/aeon/type.ts +1 -1
- 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/agirls/topic-list.ts +1 -1
- package/lib/routes/agirls/topic.ts +1 -1
- package/lib/routes/agirls/z-index.ts +1 -1
- package/lib/routes/agri/index.ts +0 -2
- package/lib/routes/ahjzu/news.ts +3 -3
- package/lib/routes/aibase/daily.ts +110 -0
- package/lib/routes/aibase/discover.ts +1 -1
- package/lib/routes/aibase/news.ts +1 -1
- package/lib/routes/aibase/topic.ts +1 -1
- package/lib/routes/aibase/util.ts +3 -3
- package/lib/routes/aicaijing/index.ts +0 -2
- package/lib/routes/ainvest/news.ts +1 -1
- 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/ajmide/index.ts +1 -1
- package/lib/routes/ali213/news.ts +2 -4
- package/lib/routes/ali213/zl.ts +2 -4
- package/lib/routes/aliresearch/information.ts +1 -1
- 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/android/security-bulletin.ts +61 -0
- 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/anthropic/research.ts +112 -0
- 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 +5 -3
- package/lib/routes/apnews/utils.ts +3 -11
- 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/apps.ts +1 -1
- package/lib/routes/apple/podcast.ts +2 -1
- package/lib/routes/apple/security-releases.ts +179 -0
- package/lib/routes/apple/templates/security-releases.art +28 -0
- package/lib/routes/appleinsider/index.ts +1 -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/asianfanfics/tag.ts +2 -0
- package/lib/routes/asianfanfics/text-search.ts +2 -0
- 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/augmentcode/blog.ts +161 -0
- package/lib/routes/augmentcode/namespace.ts +9 -0
- package/lib/routes/augmentcode/templates/description.art +17 -0
- package/lib/routes/baidu/gushitong/index.ts +1 -3
- 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/bandisoft/history.ts +329 -0
- package/lib/routes/bandisoft/namespace.ts +9 -0
- 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/banyuetan/index.ts +238 -0
- package/lib/routes/banyuetan/namespace.ts +9 -0
- package/lib/routes/banyuetan/templates/description.art +21 -0
- package/lib/routes/baobua/article.ts +51 -0
- package/lib/routes/baobua/category.ts +60 -0
- package/lib/routes/baobua/const.ts +4 -0
- package/lib/routes/baobua/latest.ts +57 -0
- package/lib/routes/baobua/namespace.ts +8 -0
- package/lib/routes/baobua/search.ts +60 -0
- 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 +2 -4
- package/lib/routes/bfl/announcements.ts +127 -0
- package/lib/routes/bfl/namespace.ts +9 -0
- package/lib/routes/bgmlist/onair.ts +0 -2
- package/lib/routes/bigquant/collections.ts +1 -1
- package/lib/routes/bilibili/bangumi.ts +1 -1
- package/lib/routes/bilibili/cache.ts +19 -20
- package/lib/routes/bilibili/check-cookie.ts +31 -0
- package/lib/routes/bilibili/danmaku.ts +1 -1
- package/lib/routes/bilibili/dynamic.ts +29 -15
- package/lib/routes/bilibili/followings-dynamic.ts +10 -4
- package/lib/routes/bilibili/manga-update.ts +37 -4
- package/lib/routes/bilibili/ranking.ts +3 -1
- package/lib/routes/bilibili/readlist.ts +1 -1
- package/lib/routes/bilibili/utils.ts +5 -4
- package/lib/routes/bilibili/video.ts +77 -27
- package/lib/routes/bilibili/wasm-exec.ts +649 -0
- package/lib/routes/binance/announcement.ts +1 -1
- package/lib/routes/bing/search.ts +2 -2
- package/lib/routes/bitget/announcement.ts +1 -1
- package/lib/routes/bjnews/cat.ts +2 -9
- package/lib/routes/bjp/apod.ts +1 -1
- 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 +14 -15
- package/lib/routes/bloomberg/index.ts +7 -6
- 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 +12 -16
- package/lib/routes/booru/mmda.ts +0 -2
- package/lib/routes/bsky/feeds.ts +1 -3
- package/lib/routes/bsky/keyword.ts +15 -10
- package/lib/routes/bsky/posts.ts +2 -4
- 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 +232 -0
- package/lib/routes/bullionvault/namespace.ts +9 -0
- package/lib/routes/bupt/jwc.ts +2 -2
- package/lib/routes/bupt/rczp.ts +3 -3
- package/lib/routes/bupt/scss.ts +98 -0
- 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/latest.ts +1 -1
- 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 +1 -4
- package/lib/routes/cara/portfolio.ts +1 -1
- package/lib/routes/cara/timeline.ts +1 -4
- 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/cdu/cdrw.ts +80 -0
- package/lib/routes/cdu/tzggcdunews.ts +80 -0
- 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 +41 -47
- package/lib/routes/chaoxing/qk.ts +0 -2
- package/lib/routes/chaping/banner.ts +1 -1
- package/lib/routes/chaping/news.ts +1 -1
- package/lib/routes/chaping/newsflash.ts +1 -1
- 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/{trending → chiphell}/namespace.ts +2 -2
- package/lib/routes/chiphell/portal.ts +82 -0
- 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/chocolatey/namespace.ts +9 -0
- package/lib/routes/chocolatey/packages.ts +122 -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/chuapp/chuapp.ts +147 -0
- package/lib/routes/chuapp/namespace.ts +7 -0
- package/lib/routes/chub/characters.ts +4 -6
- 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/civitai/user.ts +90 -0
- 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/cmde/index.ts +1 -1
- package/lib/routes/cna/index.ts +2 -24
- package/lib/routes/cna/utils.ts +23 -0
- package/lib/routes/cna/web/index.ts +2 -22
- package/lib/routes/cnbeta/namespace.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 +2 -4
- package/lib/routes/cngal/weekly.ts +3 -5
- 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/cockroachlabs/blog.ts +113 -0
- package/lib/routes/cockroachlabs/namespace.ts +7 -0
- 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 +11 -23
- 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 +1 -3
- package/lib/routes/cupl/jwc.ts +69 -0
- package/lib/routes/cupl/namespace.ts +20 -0
- package/lib/routes/curius/links.ts +0 -2
- package/lib/routes/cursor/changelog.ts +2 -1
- package/lib/routes/cw/utils.ts +2 -0
- package/lib/routes/cyzone/author.ts +1 -1
- package/lib/routes/cyzone/label.ts +1 -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/daum/potplayer.ts +257 -0
- 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/news.ts +1 -1
- package/lib/routes/dcfever/reviews.ts +1 -1
- package/lib/routes/dcfever/trading-search.ts +1 -1
- package/lib/routes/dcfever/trading.ts +1 -1
- 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/index.ts +1 -1
- package/lib/routes/dedao/knowledge.ts +1 -3
- package/lib/routes/dedao/list.ts +1 -1
- package/lib/routes/dedao/user.ts +1 -3
- package/lib/routes/deepl/blog.ts +422 -0
- package/lib/routes/deepl/namespace.ts +9 -0
- package/lib/routes/deepl/templates/description.art +21 -0
- package/lib/routes/deeplearning/the-batch.ts +0 -2
- package/lib/routes/deepmind/blog.ts +1 -1
- package/lib/routes/dehenglaw/index.ts +0 -2
- package/lib/routes/diandong/news.ts +1 -1
- package/lib/routes/diariofruticola/filtro.ts +130 -0
- package/lib/routes/diariofruticola/namespace.ts +9 -0
- package/lib/routes/diershoubing/news.ts +0 -2
- package/lib/routes/digitalcameraworld/news.ts +1 -1
- 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/campaign.ts +1 -1
- package/lib/routes/dlsite/ci-en/article.ts +1 -1
- package/lib/routes/dlsite/new.ts +1 -1
- package/lib/routes/dlsite/utils.ts +0 -3
- package/lib/routes/dmzj/news.ts +5 -5
- package/lib/routes/dn/news.ts +1 -3
- package/lib/routes/dockerhub/build.ts +1 -1
- 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/dongqiudi/daily.ts +1 -1
- package/lib/routes/dongqiudi/player-news.ts +1 -1
- package/lib/routes/dongqiudi/result.ts +1 -1
- package/lib/routes/dongqiudi/special.ts +1 -1
- package/lib/routes/dongqiudi/team-news.ts +1 -1
- package/lib/routes/dongqiudi/top-news.ts +1 -1
- package/lib/routes/dora-world/article.ts +1 -1
- 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 +2 -2
- 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 +3 -5
- 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/topic.ts +1 -1
- package/lib/routes/douban/other/weekly-best.ts +0 -2
- package/lib/routes/douban/people/status.ts +2 -2
- 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 +4 -4
- 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 +1 -4
- package/lib/routes/eastmoney/search/index.ts +1 -1
- package/lib/routes/eastmoney/ttjj/user.ts +1 -1
- package/lib/routes/ecnu/contest.ts +0 -2
- package/lib/routes/ecnu/jwc.ts +3 -3
- package/lib/routes/economist/espresso.ts +1 -1
- package/lib/routes/economist/full.ts +1 -1
- 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 +1 -3
- 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/eventernote/actors.ts +1 -1
- package/lib/routes/everia/article.ts +21 -0
- package/lib/routes/everia/category.ts +54 -0
- package/lib/routes/everia/const.ts +4 -0
- package/lib/routes/everia/latest.ts +49 -0
- package/lib/routes/everia/namespace.ts +6 -0
- package/lib/routes/everia/search.ts +45 -0
- package/lib/routes/everia/tag.ts +54 -0
- package/lib/routes/famitsu/category.ts +1 -3
- package/lib/routes/fanbox/utils.ts +1 -4
- package/lib/routes/fangchan/list.ts +2 -4
- package/lib/routes/fansly/utils.ts +0 -3
- package/lib/routes/fantia/search.ts +1 -1
- package/lib/routes/fantia/user.ts +1 -1
- package/lib/routes/farcaster/namespace.ts +7 -0
- package/lib/routes/farcaster/user.ts +46 -0
- package/lib/routes/farmatters/index.ts +0 -2
- package/lib/routes/fashionnetwork/index.ts +0 -2
- package/lib/routes/fashionnetwork/namespace.ts +1 -1
- package/lib/routes/fastbull/express-news.ts +1 -1
- package/lib/routes/fastbull/news.ts +1 -3
- package/lib/routes/fediverse/timeline.ts +1 -1
- package/lib/routes/feng/forum.ts +0 -2
- package/lib/routes/ff14/ff14-global.ts +1 -3
- package/lib/routes/ff14/ff14-zh.ts +0 -2
- package/lib/routes/fffdm/manhua/manhua.ts +1 -3
- package/lib/routes/finviz/news.ts +1 -1
- 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/index.ts +1 -1
- package/lib/routes/followin/news.ts +1 -1
- package/lib/routes/followin/utils.ts +0 -3
- package/lib/routes/foresightnews/article.ts +1 -1
- package/lib/routes/foresightnews/column.ts +1 -1
- package/lib/routes/foresightnews/index.ts +1 -1
- package/lib/routes/foresightnews/news.ts +1 -1
- 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/freewechat/profile.ts +7 -1
- package/lib/routes/ft/myft.ts +4 -4
- package/lib/routes/ftm/index.ts +1 -1
- package/lib/routes/furaffinity/browse.ts +1 -1
- package/lib/routes/furaffinity/home.ts +1 -1
- package/lib/routes/furaffinity/journals.ts +1 -1
- package/lib/routes/furaffinity/search.ts +1 -1
- package/lib/routes/furaffinity/shouts.ts +1 -1
- package/lib/routes/furaffinity/status.ts +1 -1
- 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 +3 -3
- 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/gamekee/namespace.ts +6 -0
- package/lib/routes/gamekee/news.ts +64 -0
- package/lib/routes/gamer/ani/anime.ts +1 -1
- package/lib/routes/gamer/ani/new-anime.ts +1 -1
- package/lib/routes/gamer/gnn-index.ts +4 -4
- package/lib/routes/gamer/hot.ts +4 -4
- 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 +6 -8
- 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 +1 -3
- package/lib/routes/gelbooru/utils.ts +0 -3
- package/lib/routes/gelonghui/home.ts +1 -1
- package/lib/routes/gelonghui/hot-article.ts +1 -1
- package/lib/routes/gelonghui/keyword.ts +1 -1
- package/lib/routes/gelonghui/live.ts +1 -3
- package/lib/routes/gelonghui/subject.ts +1 -1
- package/lib/routes/gelonghui/user.ts +1 -1
- package/lib/routes/geocaching/blogs.ts +5 -4
- package/lib/routes/gettr/user.ts +1 -3
- package/lib/routes/gihyo/group.ts +17 -19
- package/lib/routes/gitcode/namespace.ts +7 -0
- package/lib/routes/gitcode/repos/commits.ts +67 -0
- package/lib/routes/github/activity.ts +2 -1
- package/lib/routes/github/comments.ts +2 -2
- package/lib/routes/github/contributors.ts +1 -1
- package/lib/routes/github/issue.ts +1 -1
- package/lib/routes/github/pulse.ts +0 -2
- package/lib/routes/github/star.ts +1 -1
- package/lib/routes/github/trending.ts +1 -3
- package/lib/routes/gitpod/blog.ts +0 -2
- package/lib/routes/gmu/namespace.ts +7 -0
- package/lib/routes/gmu/news.ts +136 -0
- package/lib/routes/gmu/yjs.ts +173 -0
- package/lib/routes/go/jihs/idwr.ts +137 -0
- package/lib/routes/gofans/index.ts +0 -2
- package/lib/routes/google/citations.ts +2 -2
- package/lib/routes/google/doodles.ts +1 -1
- package/lib/routes/google/fonts.ts +0 -2
- package/lib/routes/google/news.ts +1 -3
- package/lib/routes/google/scholar.ts +2 -2
- package/lib/routes/google/search.ts +18 -32
- package/lib/routes/gov/caac/cjwt.ts +0 -2
- package/lib/routes/gov/cbirc/index.ts +14 -13
- package/lib/routes/gov/chinatax/latest.ts +3 -3
- package/lib/routes/gov/chongqing/sydwgkzp.ts +22 -6
- 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/customs/list.ts +8 -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/namespace.ts +9 -0
- package/lib/routes/gov/hangzhou/templates/jbxx.art +173 -0
- package/lib/routes/gov/hangzhou/zjzwfw.ts +89 -0
- package/lib/routes/gov/hangzhou/zwfw.ts +110 -0
- 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 +4 -4
- 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 +9 -12
- package/lib/routes/gov/sichuan/deyang/mztoday.ts +0 -2
- package/lib/routes/gov/stats/index.ts +4 -10
- package/lib/routes/gov/taiyuan/rsj.ts +3 -3
- package/lib/routes/gq/news.ts +1 -1
- 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/grist/featured.ts +1 -1
- package/lib/routes/grist/index.ts +1 -1
- package/lib/routes/grist/series.ts +1 -1
- package/lib/routes/grist/topic.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/guokr/channel.ts +1 -1
- package/lib/routes/guokr/scientific.ts +1 -1
- package/lib/routes/guozaoke/index.ts +34 -35
- package/lib/routes/gzdaily/app.ts +0 -2
- package/lib/routes/hackernews/index.ts +6 -6
- 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/harvard/health/blog.ts +1 -1
- package/lib/routes/hashnode/blog.ts +0 -2
- package/lib/routes/hbr/topic.ts +4 -4
- 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/hedwig/namespace.ts +7 -0
- package/lib/routes/hedwig/posts.ts +60 -0
- package/lib/routes/hellobtc/information.ts +4 -4
- package/lib/routes/hellobtc/kepu.ts +4 -4
- package/lib/routes/hellobtc/news.ts +4 -4
- package/lib/routes/hellogithub/index.ts +1 -1
- 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 +2 -2
- 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/all.ts +1 -1
- package/lib/routes/hpoi/banner-item.ts +3 -3
- package/lib/routes/hpoi/character.ts +1 -1
- 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/hpoi/work.ts +1 -1
- package/lib/routes/hrbeu/cec/list.ts +82 -0
- 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/huawei/developer/harmonyos/samplecode.ts +69 -0
- package/lib/routes/huawei/namespace.ts +7 -0
- 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/hupu/templates/description.art +1 -1
- package/lib/routes/huxiu/brief-column.ts +1 -1
- package/lib/routes/huxiu/channel.ts +1 -1
- package/lib/routes/huxiu/club.ts +1 -1
- package/lib/routes/huxiu/collection.ts +1 -1
- package/lib/routes/huxiu/member.ts +1 -1
- package/lib/routes/huxiu/moment.ts +1 -1
- package/lib/routes/huxiu/search.ts +1 -1
- package/lib/routes/huxiu/tag.ts +1 -1
- package/lib/routes/huxiu/util.ts +0 -3
- package/lib/routes/hyperdash/namespace.ts +7 -0
- package/lib/routes/hyperdash/templates/description.art +34 -0
- package/lib/routes/hyperdash/top-traders.ts +84 -0
- package/lib/routes/hyperdash/utils.ts +49 -0
- 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 +1 -3
- package/lib/routes/idolmaster/news.ts +1 -1
- package/lib/routes/idolypride/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 +2 -2
- package/lib/routes/ifanr/category.ts +1 -1
- package/lib/routes/ifanr/digest.ts +1 -1
- package/lib/routes/ifanr/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 +2 -4
- package/lib/routes/imhcg/blog.ts +6 -6
- package/lib/routes/imiker/jinghua.ts +0 -2
- package/lib/routes/infoq/presentations.ts +1 -3
- package/lib/routes/infoq/recommend.ts +1 -1
- package/lib/routes/infoq/topic.ts +17 -14
- package/lib/routes/informedainews/docs.ts +1 -1
- package/lib/routes/informs/index.ts +3 -6
- package/lib/routes/inoreader/index.ts +18 -20
- package/lib/routes/inoreader/rss.ts +1 -1
- 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/index.ts +17 -13
- package/lib/routes/instagram/web-api/utils.ts +46 -66
- package/lib/routes/iplaysoft/index.ts +39 -9
- 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 +1 -3
- 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 +2 -2
- package/lib/routes/jianshu/home.ts +2 -2
- package/lib/routes/jianshu/user.ts +2 -2
- 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/topic.ts +1 -1
- package/lib/routes/jike/user.ts +1 -1
- 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 +1 -3
- package/lib/routes/jin10/topic.ts +1 -1
- package/lib/routes/jingzhengu/utils.ts +3 -3
- package/lib/routes/jinse/catalogue.ts +0 -2
- package/lib/routes/jinse/lives.ts +1 -3
- package/lib/routes/jinse/timeline.ts +1 -3
- package/lib/routes/jisilu/util.ts +2 -1
- package/lib/routes/jiuyangongshe/community.ts +2 -5
- package/lib/routes/jjwxc/author.ts +0 -2
- package/lib/routes/jjwxc/book.ts +1 -3
- 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/jumeili/namespace.ts +7 -0
- 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 +31 -39
- package/lib/routes/kemono/const.ts +9 -0
- package/lib/routes/kemono/index.ts +282 -143
- package/lib/routes/kemono/types.ts +31 -0
- package/lib/routes/kepu/live.ts +0 -2
- package/lib/routes/konachan/post.ts +27 -19
- package/lib/routes/kpmg/insights.ts +0 -2
- package/lib/routes/kpopping/kpics.ts +215 -0
- 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/laohu8/personal.ts +1 -1
- 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/lemmy/index.ts +1 -1
- package/lib/routes/lenovo/drive.ts +65 -0
- package/lib/routes/lenovo/namespace.ts +7 -0
- package/lib/routes/lenovo/templates/drive.art +9 -0
- package/lib/routes/lens/namespace.ts +7 -0
- package/lib/routes/lens/profile.ts +80 -0
- package/lib/routes/lfsyd/utils.ts +0 -3
- package/lib/routes/lhratings/research.ts +2 -1
- package/lib/routes/line/publisher.ts +1 -1
- package/lib/routes/line/today.ts +1 -1
- package/lib/routes/lineageos/changes.ts +79 -0
- package/lib/routes/lineageos/namespace.ts +9 -0
- package/lib/routes/linkedin/cn/renderer.ts +2 -2
- package/lib/routes/linkedin/cn/utils.ts +1 -4
- package/lib/routes/linkedin/jobs.ts +1 -1
- package/lib/routes/linkedin/posts.ts +65 -0
- package/lib/routes/linkedin/utils.ts +75 -1
- package/lib/routes/linkresearcher/index.ts +1 -3
- package/lib/routes/linovelib/novel.ts +4 -4
- package/lib/routes/liquipedia/cs-matches.ts +51 -25
- package/lib/routes/literotica/category.ts +3 -3
- package/lib/routes/literotica/new.ts +3 -3
- package/lib/routes/liveuamap/index.ts +1 -1
- 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/lofter/collection.ts +1 -1
- package/lib/routes/lofter/tag.ts +1 -1
- package/lib/routes/lofter/user.ts +1 -1
- 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/macfilos/blog.ts +1 -1
- package/lib/routes/magazinelib/latest-magazine.ts +0 -2
- package/lib/routes/magnumphotos/magazine.ts +1 -1
- package/lib/routes/makerworld/contest.ts +51 -0
- package/lib/routes/makerworld/namespace.ts +7 -0
- package/lib/routes/makerworld/trending.ts +45 -0
- package/lib/routes/makerworld/user-upload.ts +54 -0
- package/lib/routes/makerworld/utils.ts +18 -0
- package/lib/routes/mangadex/_access.ts +111 -0
- package/lib/routes/mangadex/_constants.ts +75 -0
- package/lib/routes/mangadex/_feed.ts +184 -0
- package/lib/routes/mangadex/_profile.ts +47 -0
- package/lib/routes/mangadex/_utils.ts +49 -0
- package/lib/routes/mangadex/index.ts +16 -67
- package/lib/routes/mangadex/mdlist/feed.ts +156 -0
- package/lib/routes/mangadex/namespace.ts +2 -0
- package/lib/routes/mangadex/user/feed.ts +126 -0
- package/lib/routes/mangadex/user/follows.ts +149 -0
- 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/mastodon/account-id.ts +1 -1
- package/lib/routes/mastodon/acct.ts +1 -1
- package/lib/routes/mastodon/tag.ts +48 -0
- package/lib/routes/mastodon/timeline-local.ts +1 -1
- package/lib/routes/mastodon/timeline-remote.ts +1 -1
- package/lib/routes/mathpix/blog.ts +155 -0
- package/lib/routes/mathpix/namespace.ts +9 -0
- package/lib/routes/mathpix/templates/description.art +21 -0
- package/lib/routes/matters/namespace.ts +1 -1
- package/lib/routes/mckinsey/cn/index.ts +2 -2
- package/lib/routes/mcmod/index.ts +2 -3
- package/lib/routes/mdpi/journal.ts +3 -5
- package/lib/routes/medsci/index.ts +1 -1
- package/lib/routes/melonbooks/namespace.ts +9 -0
- package/lib/routes/melonbooks/parser.ts +39 -0
- package/lib/routes/melonbooks/search.ts +44 -0
- package/lib/routes/mercari/keyword.ts +67 -0
- package/lib/routes/mercari/namespace.ts +9 -0
- package/lib/routes/mercari/templates/item.art +46 -0
- package/lib/routes/mercari/templates/shopItem.art +46 -0
- package/lib/routes/mercari/types.ts +278 -0
- package/lib/routes/mercari/util.ts +306 -0
- package/lib/routes/meta/ai-blog.ts +121 -0
- package/lib/routes/meta/namespace.ts +6 -0
- package/lib/routes/metacritic/index.ts +2 -4
- 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/mirror/index.ts +1 -1
- package/lib/routes/missav/new.ts +27 -11
- package/lib/routes/misskey/featured-notes.ts +1 -1
- package/lib/routes/misskey/home-timeline.ts +1 -1
- package/lib/routes/misskey/user-timeline.ts +2 -2
- package/lib/routes/misskey/utils.ts +0 -3
- package/lib/routes/mittrchina/index.ts +1 -3
- package/lib/routes/mixcloud/config.ts +129 -0
- package/lib/routes/mixcloud/index.ts +163 -107
- package/lib/routes/mixcloud/user-playlist.ts +31 -0
- package/lib/routes/mixi2/community.ts +72 -0
- package/lib/routes/mixi2/discovery.ts +52 -0
- package/lib/routes/mixi2/home.ts +51 -0
- package/lib/routes/mixi2/namespace.ts +8 -0
- package/lib/routes/mixi2/user.ts +77 -0
- package/lib/routes/mixi2/utils.ts +56 -0
- 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/mygopen/index.ts +1 -1
- package/lib/routes/mymusicsheet/usersheets.ts +1 -3
- package/lib/routes/nasa/apod-ncku.ts +3 -3
- package/lib/routes/nasa/apod.ts +4 -4
- package/lib/routes/natgeo/dailyphoto.ts +0 -2
- package/lib/routes/nationalgeographic/latest-stories.ts +0 -2
- package/lib/routes/nautil/topics.ts +1 -3
- 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/newyorker/news.ts +1 -1
- 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/forum.ts +1 -1
- package/lib/routes/nga/post.ts +3 -2
- package/lib/routes/ngocn2/index.ts +3 -3
- package/lib/routes/nhentai/util.ts +3 -4
- package/lib/routes/nhk/news-web-easy.ts +15 -22
- package/lib/routes/nhk/news.ts +1 -3
- package/lib/routes/nicovideo/utils.ts +1 -4
- package/lib/routes/nifd/research.ts +19 -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/cs.ts +58 -0
- 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/njust/utils.ts +1 -1
- 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 +1 -3
- package/lib/routes/now/news.ts +93 -33
- 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/utils/pypasswaf.ts +1 -1
- 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/nwnu/namespace.ts +7 -0
- package/lib/routes/nwnu/routes/college/csse.ts +133 -0
- package/lib/routes/nwnu/routes/department/academic-affairs.ts +115 -0
- package/lib/routes/nwnu/routes/department/postgraduate.ts +139 -0
- package/lib/routes/nwnu/routes/lib/embed-resource.ts +14 -0
- package/lib/routes/nytimes/book.ts +4 -4
- package/lib/routes/nytimes/daily-briefing-chinese.ts +1 -3
- package/lib/routes/nytimes/index.ts +1 -1
- package/lib/routes/nytimes/rss.ts +6 -2
- package/lib/routes/oceanengine/arithmetic-index.ts +1 -3
- package/lib/routes/odaily/activity.ts +1 -1
- package/lib/routes/odaily/newsflash.ts +1 -1
- package/lib/routes/odaily/post.ts +1 -1
- package/lib/routes/odaily/search-news.ts +1 -1
- package/lib/routes/odaily/user.ts +1 -1
- 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/panewslab/author.ts +1 -1
- package/lib/routes/panewslab/news.ts +1 -1
- package/lib/routes/panewslab/profundity.ts +1 -1
- package/lib/routes/panewslab/topic.ts +1 -1
- 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/paulgraham/article.ts +2 -2
- package/lib/routes/pconline/focus.ts +1 -1
- 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 +3 -3
- package/lib/routes/pianyuan/app.ts +1 -1
- package/lib/routes/pianyuan/search.ts +2 -2
- package/lib/routes/picnob/user.ts +68 -152
- package/lib/routes/picnob/utils.ts +14 -12
- package/lib/routes/picuki/namespace.ts +1 -7
- package/lib/routes/picuki/profile.ts +111 -173
- package/lib/routes/picuki/utils.ts +5 -10
- 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/pingwest/status.ts +1 -1
- package/lib/routes/pingwest/tag.ts +1 -1
- package/lib/routes/pingwest/user.ts +1 -1
- package/lib/routes/pixabay/search.ts +1 -3
- package/lib/routes/pixiv/api/get-ranking.ts +1 -1
- package/lib/routes/pixiv/pixiv-got.ts +1 -1
- package/lib/routes/pixiv/ranking.ts +1 -1
- package/lib/routes/pixiv/search.ts +1 -1
- package/lib/routes/pixiv/user.ts +1 -1
- package/lib/routes/pixivision/index.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/plurk/anonymous.ts +1 -1
- package/lib/routes/plurk/hotlinks.ts +1 -1
- package/lib/routes/plurk/news.ts +1 -1
- package/lib/routes/plurk/search.ts +1 -1
- package/lib/routes/plurk/top.ts +1 -1
- package/lib/routes/plurk/topic.ts +1 -1
- package/lib/routes/plurk/user.ts +1 -1
- package/lib/routes/pnas/index.ts +1 -3
- package/lib/routes/podwise/collections.ts +1 -1
- package/lib/routes/podwise/episodes.ts +1 -1
- package/lib/routes/pornhub/category.ts +3 -3
- package/lib/routes/pornhub/model.ts +1 -1
- package/lib/routes/pornhub/pornstar.ts +1 -1
- package/lib/routes/pornhub/search.ts +1 -1
- 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 +1 -3
- package/lib/routes/ps/trophy.ts +35 -43
- package/lib/routes/psnine/game.ts +42 -0
- package/lib/routes/psnine/index.ts +58 -0
- package/lib/routes/psnine/namespace.ts +8 -0
- package/lib/routes/psnine/node.ts +80 -0
- package/lib/routes/psnine/shuzhe.ts +43 -0
- package/lib/routes/psnine/trade.ts +58 -0
- package/lib/routes/psyche/topic.ts +1 -1
- 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/python/namespace.ts +9 -0
- package/lib/routes/python/release.ts +120 -0
- package/lib/routes/qbitai/category.ts +1 -1
- package/lib/routes/qbitai/tag.ts +1 -1
- package/lib/routes/qidian/author.ts +0 -2
- package/lib/routes/qidian/chapter.ts +1 -1
- 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 +1 -3
- 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 +40 -51
- package/lib/routes/radio/index.ts +0 -2
- package/lib/routes/radio/templates/description.art +2 -2
- package/lib/routes/radio/zhibo.ts +0 -2
- package/lib/routes/raspberrypi/magazine.ts +172 -0
- package/lib/routes/raspberrypi/namespace.ts +9 -0
- package/lib/routes/raspberrypi/templates/description.art +21 -0
- 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 +3 -3
- package/lib/routes/readhub/index.ts +1 -3
- package/lib/routes/readhub/util.ts +0 -3
- package/lib/routes/rebase/geekdaily.ts +1 -1
- package/lib/routes/resonac/products.ts +1 -1
- package/lib/routes/reuters/common.ts +18 -5
- package/lib/routes/reuters/investigates.ts +4 -4
- 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 +2 -2
- package/lib/routes/ruankao/news.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/samrdprc/namespace.ts +7 -0
- package/lib/routes/samrdprc/news.ts +79 -0
- package/lib/routes/sankei/namespace.ts +7 -0
- package/lib/routes/sankei/news.ts +68 -0
- package/lib/routes/sankei/topics.ts +71 -0
- 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/sciencedirect/current-issue.ts +93 -0
- package/lib/routes/scientificamerican/podcast.ts +0 -3
- package/lib/routes/scmp/index.ts +15 -10
- package/lib/routes/scoop/apps.ts +188 -0
- package/lib/routes/scoop/namespace.ts +9 -0
- package/lib/routes/scoop/templates/description.art +56 -0
- 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/seu/cyber/index.ts +78 -0
- 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 +4 -6
- 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/seiee/icisee.ts +67 -0
- package/lib/routes/sjtu/tongqu/activity.ts +0 -2
- package/lib/routes/skeb/utils.ts +0 -3
- package/lib/routes/slowmist/slowmist.ts +1 -1
- package/lib/routes/smartlink/index.ts +84 -0
- package/lib/routes/smartlink/namespace.ts +7 -0
- package/lib/routes/smzdm/article.ts +19 -3
- package/lib/routes/smzdm/baoliao.ts +19 -3
- package/lib/routes/smzdm/haowen-fenlei.ts +19 -3
- package/lib/routes/smzdm/haowen.ts +19 -3
- package/lib/routes/smzdm/keyword.ts +15 -2
- package/lib/routes/smzdm/product.ts +19 -3
- package/lib/routes/smzdm/ranking.ts +172 -156
- package/lib/routes/smzdm/utils.ts +7 -0
- 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 +1 -3
- package/lib/routes/solidot/main.ts +1 -1
- 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/artist.ts +1 -1
- package/lib/routes/spotify/playlist.ts +4 -1
- package/lib/routes/spotify/saved.ts +1 -1
- package/lib/routes/spotify/show.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/activity.ts +1 -1
- package/lib/routes/sspai/author.ts +1 -1
- package/lib/routes/sspai/bookmarks.ts +1 -1
- package/lib/routes/sspai/column.ts +1 -1
- package/lib/routes/sspai/index.ts +1 -1
- package/lib/routes/sspai/matrix.ts +1 -1
- package/lib/routes/sspai/series-update.ts +1 -1
- package/lib/routes/sspai/series.ts +22 -24
- package/lib/routes/sspai/shortcuts-gallery.ts +1 -1
- package/lib/routes/sspai/tag.ts +1 -1
- package/lib/routes/sspai/topic.ts +1 -1
- package/lib/routes/sspai/topics.ts +1 -1
- package/lib/routes/startuplatte/index.ts +4 -4
- package/lib/routes/stcn/index.ts +2 -1
- package/lib/routes/stcn/rank.ts +249 -0
- 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/news.ts +281 -0
- package/lib/routes/steam/search.ts +1 -2
- package/lib/routes/steam/workshop-search.ts +0 -2
- package/lib/routes/stheadline/std/realtime.ts +24 -16
- package/lib/routes/stockedge/daily-news.ts +1 -1
- package/lib/routes/storm/channel.ts +80 -0
- 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/tailwindcss/blog.ts +26 -0
- package/lib/routes/tailwindcss/constants.ts +2 -0
- package/lib/routes/tailwindcss/namespace.ts +7 -0
- package/lib/routes/tailwindcss/utils.ts +68 -0
- 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/techflowpost/express.ts +1 -1
- package/lib/routes/techflowpost/index.ts +1 -1
- package/lib/routes/telecompaper/news.ts +3 -3
- package/lib/routes/telecompaper/search.ts +3 -3
- package/lib/routes/telegram/blog.ts +2 -2
- package/lib/routes/telegram/channel.ts +483 -488
- package/lib/routes/telegram/scripts/get-telegram-session.mjs +1 -1
- package/lib/routes/telegram/stickerpack.ts +19 -10
- 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/test/api-index.ts +13 -0
- 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 +3 -6
- package/lib/routes/thecover/channel.ts +6 -8
- package/lib/routes/theinitium/app.ts +7 -7
- package/lib/routes/theinitium/author.ts +1 -1
- package/lib/routes/theinitium/channel.ts +1 -1
- package/lib/routes/theinitium/tags.ts +1 -1
- package/lib/routes/theinitium/templates/description.art +0 -3
- package/lib/routes/themoviedb/seasons.ts +1 -1
- 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/channel.ts +1 -1
- package/lib/routes/thepaper/factpaper.ts +1 -3
- package/lib/routes/thepaper/featured.ts +1 -1
- package/lib/routes/thepaper/list.ts +1 -1
- package/lib/routes/thepaper/sidebar.ts +1 -1
- package/lib/routes/thepaper/user.ts +1 -1
- package/lib/routes/thepaper/utils.ts +8 -6
- package/lib/routes/thepetcity/index.ts +1 -1
- package/lib/routes/theverge/index.ts +1 -4
- package/lib/routes/thoughtco/index.ts +0 -2
- package/lib/routes/threads/index.ts +1 -1
- package/lib/routes/thzt/index.ts +72 -0
- package/lib/routes/thzt/namespace.ts +8 -0
- package/lib/routes/tiktok/user.ts +0 -2
- package/lib/routes/timednews/news.ts +4 -4
- 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 +1 -3
- 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 +5 -5
- package/lib/routes/tmtpost/util.ts +0 -3
- package/lib/routes/tophub/index.ts +1 -1
- package/lib/routes/tophub/list.ts +1 -3
- 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 +119 -0
- package/lib/routes/transformer-circuits/namespace.ts +7 -0
- package/lib/routes/transformer-circuits/templates/article.art +62 -0
- 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/tver/namespace.ts +7 -0
- package/lib/routes/tver/series.ts +98 -0
- package/lib/routes/tvtropes/featured.ts +0 -2
- package/lib/routes/twitch/live.ts +1 -1
- package/lib/routes/twitch/video.ts +1 -1
- package/lib/routes/twitter/api/mobile-api/login.ts +1 -1
- package/lib/routes/twitter/api/web-api/login.ts +1 -3
- package/lib/routes/twitter/api/web-api/utils.ts +24 -2
- package/lib/routes/twitter/keyword.ts +1 -1
- package/lib/routes/twitter/list.ts +1 -1
- package/lib/routes/twitter/media.ts +1 -1
- package/lib/routes/twitter/namespace.ts +1 -0
- package/lib/routes/twitter/user.ts +1 -1
- package/lib/routes/twitter/utils.ts +33 -24
- package/lib/routes/twreporter/category.ts +1 -1
- package/lib/routes/twreporter/fetch-article.ts +0 -3
- package/lib/routes/twreporter/newest.ts +1 -1
- package/lib/routes/txks/news.ts +1 -1
- 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 +3 -5
- package/lib/routes/uestc/auto.ts +4 -4
- package/lib/routes/uestc/cqe.ts +4 -4
- package/lib/routes/uestc/news.ts +3 -3
- package/lib/routes/uestc/scse.ts +4 -4
- package/lib/routes/uestc/sice.ts +4 -4
- package/lib/routes/uestc/sise.ts +4 -4
- package/lib/routes/ulapia/index.ts +4 -4
- package/lib/routes/ulapia/research.ts +3 -3
- package/lib/routes/unipd/ilbolive/news.ts +104 -0
- package/lib/routes/unipd/namespace.ts +7 -0
- 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/category.ts +1 -1
- package/lib/routes/utgd/timeline.ts +1 -1
- package/lib/routes/utgd/topic.ts +1 -1
- package/lib/routes/utgd/utils.ts +0 -3
- package/lib/routes/uw/gix/news.ts +3 -3
- package/lib/routes/v2ex/tab.ts +1 -1
- package/lib/routes/v2ex/topics.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/vertikal/latest.ts +1 -1
- package/lib/routes/vice/topic.ts +1 -3
- package/lib/routes/vimeo/category.ts +1 -3
- package/lib/routes/vimeo/channel.ts +16 -20
- package/lib/routes/vimeo/usr-videos.ts +1 -3
- package/lib/routes/visionias/utils.ts +0 -3
- package/lib/routes/visualstudio/code-blog.ts +67 -0
- package/lib/routes/visualstudio/namespace.ts +7 -0
- package/lib/routes/vocus/publication.ts +1 -1
- package/lib/routes/vocus/user.ts +1 -1
- package/lib/routes/voronoiapp/common.ts +1 -1
- 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/warhammer-community/namespace.ts +7 -0
- package/lib/routes/warhammer-community/news.ts +73 -0
- package/lib/routes/warp/blog.ts +77 -0
- package/lib/routes/warp/namespace.ts +7 -0
- 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 +2 -2
- package/lib/routes/weibo/search/hot.ts +2 -4
- package/lib/routes/weibo/timeline.ts +1 -1
- package/lib/routes/weibo/user-bookmarks.ts +1 -1
- package/lib/routes/weibo/user.ts +18 -11
- 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/windsurf/blog.ts +118 -0
- package/lib/routes/windsurf/changelog.ts +100 -0
- package/lib/routes/windsurf/namespace.ts +9 -0
- package/lib/routes/windsurf/templates/description.art +21 -0
- 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/wordpress/util.ts +1 -1
- 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/check-cookie.ts +16 -0
- package/lib/routes/xiaohongshu/user.ts +4 -4
- package/lib/routes/xiaohongshu/util.ts +25 -13
- package/lib/routes/xiaomiyoupin/crowdfunding.ts +0 -2
- package/lib/routes/xiaomiyoupin/utils.ts +0 -3
- package/lib/routes/xiaoyuzhou/podcast.ts +18 -5
- 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-jzxx.ts +110 -0
- 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/xsijishe/rank.ts +2 -2
- package/lib/routes/xueqiu/cookies.ts +1 -1
- package/lib/routes/xueqiu/stock-comments.ts +0 -2
- package/lib/routes/xueqiu/user.ts +115 -52
- package/lib/routes/xys/new.ts +0 -2
- package/lib/routes/xyzrank/index.ts +0 -2
- package/lib/routes/yahoo/news/index.ts +1 -1
- package/lib/routes/yahoo/news/listid.ts +2 -2
- package/lib/routes/yahoo/news/provider-helper.ts +1 -1
- package/lib/routes/yahoo/news/provider.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/yande/post.ts +1 -1
- 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/index.ts +1 -1
- package/lib/routes/yilinzazhi/latest.ts +2 -2
- 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 +216 -0
- package/lib/routes/youtube/api/youtubei.ts +98 -0
- package/lib/routes/youtube/channel.ts +45 -46
- package/lib/routes/youtube/community.ts +5 -5
- package/lib/routes/youtube/playlist.ts +11 -30
- package/lib/routes/youtube/subscriptions.ts +3 -11
- package/lib/routes/youtube/user.ts +32 -83
- package/lib/routes/youtube/utils.ts +44 -55
- package/lib/routes/youzhiyouxing/materials.ts +1 -1
- package/lib/routes/yuanliao/index.ts +218 -0
- package/lib/routes/yuanliao/namespace.ts +9 -0
- 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/article.ts +1 -1
- package/lib/routes/yyets/today.ts +9 -13
- package/lib/routes/yystv/category.ts +49 -51
- package/lib/routes/yystv/docs.ts +7 -9
- package/lib/routes/yystv/fetcher.ts +10 -0
- 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/top.ts +1 -1
- package/lib/routes/zcool/user.ts +2 -2
- package/lib/routes/zcool/utils.ts +0 -3
- package/lib/routes/zed/blog.ts +75 -0
- package/lib/routes/zed/namespace.ts +7 -0
- package/lib/routes/zhibo8/luxiang.ts +1 -1
- package/lib/routes/zhihu/activities.ts +1 -1
- package/lib/routes/zhihu/all-collections.ts +10 -1
- package/lib/routes/zhihu/check-cookie.ts +31 -0
- package/lib/routes/zhihu/collection.ts +9 -1
- package/lib/routes/zhihu/execlib/x-zse-96-v3.ts +5 -5
- package/lib/routes/zhihu/hot.ts +32 -79
- package/lib/routes/zhihu/pin/utils.ts +5 -5
- package/lib/routes/zhihu/topic.ts +11 -5
- package/lib/routes/zhihu/utils.ts +5 -5
- package/lib/routes/zhihu/weekly.ts +7 -7
- package/lib/routes/zhihu/zhuanlan.ts +8 -4
- package/lib/routes/zhitongcaijing/index.ts +1 -3
- 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/zongheng/detail.ts +77 -0
- package/lib/routes/zongheng/namespace.ts +7 -0
- package/lib/routes/zotero/versions.ts +13 -17
- package/lib/routes/zrblog/rss.ts +3 -3
- package/lib/routes/zsxq/utils.ts +1 -1
- 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/types.ts +48 -3
- package/lib/utils/cache/index.ts +2 -2
- 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/otel/metric.ts +3 -3
- package/lib/utils/otel/trace.ts +16 -16
- package/lib/utils/parse-date.ts +4 -4
- package/lib/utils/proxy/index.ts +102 -18
- package/lib/utils/proxy/multi-proxy.ts +139 -0
- package/lib/utils/proxy/unify-proxy.ts +3 -1
- package/lib/utils/puppeteer-utils.test.ts +1 -1
- package/lib/utils/puppeteer.test.ts +136 -27
- package/lib/utils/puppeteer.ts +152 -28
- package/lib/utils/rand-user-agent.test.ts +2 -2
- package/lib/utils/readable-social.test.ts +65 -0
- package/lib/utils/readable-social.ts +15 -1
- package/lib/utils/request-rewriter/fetch.ts +42 -4
- package/lib/utils/timezone.ts +1 -1
- package/lib/utils/wechat-mp.ts +3 -2
- package/package.json +77 -77
- 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/go/niid/idwr-dl.ts +0 -104
- package/lib/routes/google/templates/description.art +0 -6
- package/lib/routes/jiemian/list.ts +0 -14
- package/lib/routes/mihoyo/templates/ys.art +0 -4
- package/lib/routes/mixcloud/queries.ts +0 -2274
- package/lib/routes/openai/blog.ts +0 -66
- package/lib/routes/picnob/templates/desc.art +0 -20
- 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/blogs/hedwig.js +0 -42
- package/lib/routes-deprecated/chiphell/forum.js +0 -67
- package/lib/routes-deprecated/chuapp/index.js +0 -54
- package/lib/routes-deprecated/jpmorganchase/research.js +0 -52
- package/lib/routes-deprecated/psnine/game.js +0 -32
- package/lib/routes-deprecated/psnine/index.js +0 -33
- package/lib/routes-deprecated/psnine/news.js +0 -53
- package/lib/routes-deprecated/psnine/node.js +0 -54
- package/lib/routes-deprecated/psnine/shuzhe.js +0 -33
- package/lib/routes-deprecated/psnine/trade.js +0 -39
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Route, ViewType } from '@/types';
|
|
2
|
-
import { getCurrentPath } from '@/utils/helpers';
|
|
3
2
|
import cache from '@/utils/cache';
|
|
4
3
|
import { config } from '@/config';
|
|
5
4
|
import ofetch from '@/utils/ofetch';
|
|
@@ -7,12 +6,10 @@ import { load } from 'cheerio';
|
|
|
7
6
|
import { parseDate } from '@/utils/parse-date';
|
|
8
7
|
import { art } from '@/utils/render';
|
|
9
8
|
import path from 'node:path';
|
|
10
|
-
import querystring from 'querystring';
|
|
9
|
+
import querystring from 'node:querystring';
|
|
11
10
|
import { fallback, queryToBoolean } from '@/utils/readable-social';
|
|
12
11
|
import tglibchannel from './tglib/channel';
|
|
13
12
|
|
|
14
|
-
const __dirname = getCurrentPath(import.meta.url);
|
|
15
|
-
|
|
16
13
|
/* message types */
|
|
17
14
|
const REPLY = 'REPLY';
|
|
18
15
|
const FORWARDED = 'FORWARDED';
|
|
@@ -57,7 +54,7 @@ const mediaTagDict = {
|
|
|
57
54
|
|
|
58
55
|
export const route: Route = {
|
|
59
56
|
path: '/channel/:username/:routeParams?',
|
|
60
|
-
categories: ['social-media'
|
|
57
|
+
categories: ['social-media'],
|
|
61
58
|
view: ViewType.SocialMedia,
|
|
62
59
|
example: '/telegram/channel/awesomeRSSHub',
|
|
63
60
|
parameters: {
|
|
@@ -241,522 +238,520 @@ async function handler(ctx) {
|
|
|
241
238
|
itunes_author: channelName,
|
|
242
239
|
image: $('.tgme_page_photo_image > img').attr('src'),
|
|
243
240
|
|
|
244
|
-
item:
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
if (item.find('.
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
return null; // drop unsupported message
|
|
298
|
-
}
|
|
299
|
-
msgTypes.unshift(UNSUPPORTED);
|
|
241
|
+
item: list
|
|
242
|
+
.toArray()
|
|
243
|
+
.map((item) => {
|
|
244
|
+
item = $(item);
|
|
245
|
+
let extra = null;
|
|
246
|
+
|
|
247
|
+
/* message types */
|
|
248
|
+
let msgTypes = [];
|
|
249
|
+
if (item.find('.service_message').length) {
|
|
250
|
+
// service message can have an image (avatar changed)
|
|
251
|
+
msgTypes.push(SERVICE);
|
|
252
|
+
}
|
|
253
|
+
// if (item.find('.tgme_widget_message_video').length) { // fail if video too big
|
|
254
|
+
if (item.find('.tgme_widget_message_video_player').length) {
|
|
255
|
+
// video and gif cannot be mixed, it's safe to do that
|
|
256
|
+
msgTypes.push(item.find('.message_video_play').length ? VIDEO : GIF);
|
|
257
|
+
}
|
|
258
|
+
if (item.find('.tgme_widget_message_photo,.tgme_widget_message_service_photo').length) {
|
|
259
|
+
// video and photo can be mixed
|
|
260
|
+
msgTypes.push(PHOTO);
|
|
261
|
+
}
|
|
262
|
+
// all other types below cannot be mixed
|
|
263
|
+
if (item.find('.tgme_widget_message_poll').length) {
|
|
264
|
+
msgTypes.push(POLL);
|
|
265
|
+
}
|
|
266
|
+
if (item.find('.tgme_widget_message_voice').length) {
|
|
267
|
+
msgTypes.push(VOICE);
|
|
268
|
+
}
|
|
269
|
+
if (item.find('.tgme_widget_message_document').length) {
|
|
270
|
+
// music and document cannot be mixed, it's safe to do that
|
|
271
|
+
msgTypes.push(item.find('.audio').length ? MUSIC : DOCUMENT);
|
|
272
|
+
}
|
|
273
|
+
if (item.find('.tgme_widget_message_location').length) {
|
|
274
|
+
msgTypes.push(LOCATION);
|
|
275
|
+
}
|
|
276
|
+
if (item.find('.tgme_widget_message_contact').length) {
|
|
277
|
+
msgTypes.push(CONTACT);
|
|
278
|
+
}
|
|
279
|
+
if (item.find('.tgme_widget_message_sticker').length) {
|
|
280
|
+
msgTypes.push(STICKER);
|
|
281
|
+
}
|
|
282
|
+
if (item.find('.tgme_widget_message_tgsticker').length) {
|
|
283
|
+
msgTypes.push(ANIMATED_STICKER);
|
|
284
|
+
}
|
|
285
|
+
if (item.find('.tgme_widget_message_videosticker').length) {
|
|
286
|
+
msgTypes.push(VIDEO_STICKER);
|
|
287
|
+
}
|
|
288
|
+
if (item.find('.message_media_not_supported').length) {
|
|
289
|
+
if (item.find('.media_supported_cont').length) {
|
|
290
|
+
msgTypes.unshift(PARTIALLY_UNSUPPORTED);
|
|
291
|
+
} else {
|
|
292
|
+
if (msgTypes.length === 0 && !includeUnsupportedMsg) {
|
|
293
|
+
return null; // drop unsupported message
|
|
300
294
|
}
|
|
295
|
+
msgTypes.unshift(UNSUPPORTED);
|
|
301
296
|
}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
297
|
+
}
|
|
298
|
+
// all other types above cannot be mixed
|
|
299
|
+
if (item.find('.tgme_widget_message_author .tgme_widget_message_via_bot,.tgme_widget_message_forwarded_from .tgme_widget_message_via_bot').length) {
|
|
300
|
+
// can be mixed with other types, excluding service messages
|
|
301
|
+
msgTypes.unshift(VIA_BOT);
|
|
302
|
+
}
|
|
303
|
+
if (item.find('.tgme_widget_message_forwarded_from').length) {
|
|
304
|
+
// can be mixed with other types, excluding service messages and reply messages
|
|
305
|
+
msgTypes.unshift(FORWARDED);
|
|
306
|
+
if (!includeFwd) {
|
|
307
|
+
return null; // drop forwarded message
|
|
306
308
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
309
|
+
}
|
|
310
|
+
if (item.find('.tgme_widget_message_reply').length) {
|
|
311
|
+
// can be mixed with other types, excluding service messages and forwarded messages
|
|
312
|
+
msgTypes.unshift(REPLY);
|
|
313
|
+
if (!includeReply) {
|
|
314
|
+
return null; // drop reply message
|
|
313
315
|
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/* fix emoji */
|
|
319
|
+
item.find('.emoji').each((_, emoji) => {
|
|
320
|
+
emoji = $(emoji);
|
|
321
|
+
emoji.replaceWith(`<span class="emoji">${emoji.text()}</span>`);
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
/* "Forwarded From" tag */
|
|
325
|
+
const fwdFrom = () => {
|
|
326
|
+
let fwdFrom = '';
|
|
327
|
+
const fwdFromNameObj = item.find('.tgme_widget_message_forwarded_from_name');
|
|
328
|
+
if (fwdFromNameObj.length) {
|
|
329
|
+
const userLink = fwdFromNameObj.attr('href');
|
|
330
|
+
const userHtml = userLink ? `<a href="${userLink}">${fwdFromNameObj.text()}</a>` : fwdFromNameObj.text();
|
|
331
|
+
fwdFrom += `<p>Forwarded From <b>${userHtml}</b>`;
|
|
332
|
+
const fwdFromAuthorObj = item.find('.tgme_widget_message_forwarded_from_author');
|
|
333
|
+
if (fwdFromAuthorObj.length && showFwdFromAuthor) {
|
|
334
|
+
fwdFrom += ` (${fwdFromAuthorObj.text()})`;
|
|
319
335
|
}
|
|
336
|
+
fwdFrom += '</p>';
|
|
337
|
+
|
|
338
|
+
extra = {
|
|
339
|
+
links: [
|
|
340
|
+
{
|
|
341
|
+
type: 'repost',
|
|
342
|
+
url: userLink,
|
|
343
|
+
},
|
|
344
|
+
],
|
|
345
|
+
};
|
|
320
346
|
}
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
const
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
return fwdFrom;
|
|
352
|
-
};
|
|
353
|
-
|
|
354
|
-
/* reply */
|
|
355
|
-
const replyContent = () => {
|
|
356
|
-
const replyObj = item.find('.tgme_widget_message_reply');
|
|
357
|
-
if (replyObj.length === 0) {
|
|
358
|
-
return '';
|
|
359
|
-
} else {
|
|
360
|
-
const replyAuthorObj = replyObj.find('.tgme_widget_message_author_name');
|
|
361
|
-
const replyAuthor = replyAuthorObj.length ? replyAuthorObj.text() : '';
|
|
362
|
-
const viaBotObj = replyObj.find('.tgme_widget_message_via_bot');
|
|
363
|
-
const viaBotText = viaBotObj.length ? ` via <b>${viaBotObj.text()}</b>` : '';
|
|
364
|
-
const replyLinkHref = replyObj.attr('href');
|
|
365
|
-
const replyLink = replyLinkHref.length ? replyLinkHref : '';
|
|
366
|
-
const replyMetaTextObj = replyObj.find('.tgme_widget_message_metatext');
|
|
367
|
-
const replyMetaText = replyMetaTextObj.length ? `<p><small>${replyMetaTextObj.html()}</small></p>` : '';
|
|
368
|
-
const replyTextObj = replyObj.find('.tgme_widget_message_text');
|
|
369
|
-
const replyText = replyTextObj.length ? `<p>${replyTextObj.html()}</p>` : '';
|
|
370
|
-
|
|
371
|
-
extra = {
|
|
372
|
-
links: [
|
|
373
|
-
{
|
|
374
|
-
type: 'reply',
|
|
375
|
-
url: replyLink,
|
|
376
|
-
},
|
|
377
|
-
],
|
|
378
|
-
};
|
|
379
|
-
return replyLink === ''
|
|
380
|
-
? `<div class="rsshub-quote"><blockquote>
|
|
347
|
+
return fwdFrom;
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
/* reply */
|
|
351
|
+
const replyContent = () => {
|
|
352
|
+
const replyObj = item.find('.tgme_widget_message_reply');
|
|
353
|
+
if (replyObj.length === 0) {
|
|
354
|
+
return '';
|
|
355
|
+
} else {
|
|
356
|
+
const replyAuthorObj = replyObj.find('.tgme_widget_message_author_name');
|
|
357
|
+
const replyAuthor = replyAuthorObj.length ? replyAuthorObj.text() : '';
|
|
358
|
+
const viaBotObj = replyObj.find('.tgme_widget_message_via_bot');
|
|
359
|
+
const viaBotText = viaBotObj.length ? ` via <b>${viaBotObj.text()}</b>` : '';
|
|
360
|
+
const replyLinkHref = replyObj.attr('href');
|
|
361
|
+
const replyLink = replyLinkHref.length ? replyLinkHref : '';
|
|
362
|
+
const replyMetaTextObj = replyObj.find('.tgme_widget_message_metatext');
|
|
363
|
+
const replyMetaText = replyMetaTextObj.length ? `<p><small>${replyMetaTextObj.html()}</small></p>` : '';
|
|
364
|
+
const replyTextObj = replyObj.find('.tgme_widget_message_text');
|
|
365
|
+
const replyText = replyTextObj.length ? `<p>${replyTextObj.html()}</p>` : '';
|
|
366
|
+
|
|
367
|
+
extra = {
|
|
368
|
+
links: [
|
|
369
|
+
{
|
|
370
|
+
type: 'reply',
|
|
371
|
+
url: replyLink,
|
|
372
|
+
},
|
|
373
|
+
],
|
|
374
|
+
};
|
|
375
|
+
return replyLink === ''
|
|
376
|
+
? `<div class="rsshub-quote"><blockquote>
|
|
381
377
|
<p><b>${replyAuthor}</b>${viaBotText}:</p>
|
|
382
378
|
${replyMetaText}
|
|
383
379
|
${replyText}
|
|
384
380
|
</blockquote></div>`
|
|
385
|
-
|
|
381
|
+
: `<div class="rsshub-quote"><blockquote>
|
|
386
382
|
<p><a href='${replyLink}'><b>${replyAuthor}</b>${viaBotText}:</a></p>
|
|
387
383
|
${replyMetaText}
|
|
388
384
|
${replyText}
|
|
389
385
|
</blockquote></div>`;
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
/* via bot */
|
|
390
|
+
const viaBot = () => {
|
|
391
|
+
const viaBotObj = item.find('.tgme_widget_message_author .tgme_widget_message_via_bot,.tgme_widget_message_forwarded_from .tgme_widget_message_via_bot');
|
|
392
|
+
if (viaBotObj.length) {
|
|
393
|
+
const userLink = viaBotObj.attr('href');
|
|
394
|
+
const userHtml = userLink ? `<a href="${userLink}">${viaBotObj.text()}</a>` : viaBotObj.text();
|
|
395
|
+
return `<p>via <b>${userHtml}</b></p>`;
|
|
396
|
+
} else {
|
|
397
|
+
return '';
|
|
398
|
+
}
|
|
399
|
+
};
|
|
404
400
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
401
|
+
/* images and videos */
|
|
402
|
+
const generateMedia = (selector) => {
|
|
403
|
+
const nodes = item.find(selector);
|
|
404
|
+
if (!nodes.length) {
|
|
405
|
+
return '';
|
|
406
|
+
}
|
|
407
|
+
let tag_media_all = '';
|
|
408
|
+
const pictureNodes = nodes.find('picture');
|
|
409
|
+
const imgNodes = nodes.find('img');
|
|
410
|
+
nodes.each((_, node) => {
|
|
411
|
+
const $node = $(node);
|
|
412
|
+
let tag_media = '';
|
|
413
|
+
if (node.attribs && node.attribs.class && node.attribs.class.search(/(^|\s)tgme_widget_message_video_player(\s|$)/) !== -1) {
|
|
414
|
+
// video
|
|
415
|
+
const videoLink = $node.find('.tgme_widget_message_video').attr('src');
|
|
416
|
+
const thumbBackground = $node.find('.tgme_widget_message_video_thumb').css('background-image');
|
|
417
|
+
const thumbBackgroundUrl = thumbBackground && thumbBackground.match(/url\('(.*)'\)/);
|
|
418
|
+
const thumbBackgroundUrlSrc = thumbBackgroundUrl && thumbBackgroundUrl[1];
|
|
419
|
+
tag_media += art(path.join(__dirname, 'templates/video.art'), {
|
|
420
|
+
source: videoLink,
|
|
421
|
+
poster: thumbBackgroundUrlSrc,
|
|
422
|
+
});
|
|
423
|
+
} else if ($node.attr('data-webp')) {
|
|
424
|
+
// sticker
|
|
425
|
+
tag_media += `<img src="${$node.attr('data-webp')}">`;
|
|
426
|
+
} else if (node.name === 'picture') {
|
|
427
|
+
// animated sticker
|
|
428
|
+
tag_media += '<picture>';
|
|
429
|
+
$node.find('source,img').each((_, source) => {
|
|
430
|
+
tag_media += $(source).toString();
|
|
431
|
+
});
|
|
432
|
+
tag_media += '</picture>';
|
|
433
|
+
} else if (node.attribs && node.attribs.class && node.attribs.class.search(/(^|\s)tgme_widget_message_videosticker(\s|$)/) !== -1) {
|
|
434
|
+
// video sticker
|
|
435
|
+
const videoLink = $node.find('.js-videosticker_video').attr('src');
|
|
436
|
+
tag_media += art(path.join(__dirname, 'templates/video.art'), {
|
|
437
|
+
source: videoLink,
|
|
438
|
+
});
|
|
439
|
+
} else if (node.name === 'img') {
|
|
440
|
+
// unknown
|
|
441
|
+
tag_media += $node.toString();
|
|
442
|
+
} else if (pictureNodes.length) {
|
|
443
|
+
// unknown
|
|
444
|
+
pictureNodes.each((_, picture) => {
|
|
432
445
|
tag_media += '<picture>';
|
|
433
|
-
$
|
|
434
|
-
|
|
435
|
-
|
|
446
|
+
$(picture)
|
|
447
|
+
.find('source,img')
|
|
448
|
+
.each((_, source) => {
|
|
449
|
+
tag_media += $(source).toString();
|
|
450
|
+
});
|
|
436
451
|
tag_media += '</picture>';
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
// service message
|
|
459
|
-
imgNodes.each((_, img) => {
|
|
460
|
-
tag_media += $(img).toString();
|
|
461
|
-
});
|
|
462
|
-
} else {
|
|
463
|
-
// image message, location
|
|
464
|
-
const background = $node.css('background-image');
|
|
465
|
-
const backgroundUrl = background && background.match(/url\('(.*)'\)/);
|
|
466
|
-
const backgroundUrlSrc = backgroundUrl && backgroundUrl[1];
|
|
467
|
-
const attrs = [`src="${backgroundUrlSrc}"`];
|
|
468
|
-
/*
|
|
469
|
-
* If the width is not in px, it is either a percentage (Link Preview/Instant view)
|
|
470
|
-
* or absent (ditto).
|
|
471
|
-
* Only accept px to prevent images from being invisible or too small.
|
|
472
|
-
*/
|
|
473
|
-
let width = 0;
|
|
474
|
-
const widthStr = $node.css('width');
|
|
475
|
-
if (widthStr && widthStr.endsWith('px')) {
|
|
476
|
-
width = Number.parseFloat(widthStr);
|
|
477
|
-
}
|
|
478
|
-
/*
|
|
479
|
-
* Height is present when the message is an album but does not exist in other cases.
|
|
480
|
-
* Ditto, only accept px.
|
|
481
|
-
* !!!NOTE: images in albums may have smaller width and height.
|
|
482
|
-
*/
|
|
483
|
-
let height = 0;
|
|
484
|
-
const heightStr = $node.css('height');
|
|
485
|
-
if (heightStr && heightStr.endsWith('px')) {
|
|
486
|
-
height = Number.parseFloat(heightStr);
|
|
487
|
-
}
|
|
488
|
-
/*
|
|
489
|
-
* Only calculate height when needed.
|
|
490
|
-
* The aspect ratio is either a percentage (single image) or absent (Link Preview).
|
|
491
|
-
* Only accept percentage to prevent images from being invisible or distorted.
|
|
492
|
-
*/
|
|
493
|
-
const aspectRatioStr = $node.find('.tgme_widget_message_photo').css('padding-top');
|
|
494
|
-
if (height <= 0 && width > 0 && aspectRatioStr && aspectRatioStr.endsWith('%')) {
|
|
495
|
-
height = (Number.parseFloat(aspectRatioStr) / 100) * width;
|
|
496
|
-
}
|
|
497
|
-
// Only set width/height when >32 to avoid invisible images.
|
|
498
|
-
width > 32 && attrs.push(`width="${width}"`);
|
|
499
|
-
height > 32 && attrs.push(`height="${height.toFixed(2).replace('.00', '')}"`);
|
|
500
|
-
tag_media += backgroundUrlSrc ? `<img ${attrs.join(' ')}>` : '';
|
|
452
|
+
});
|
|
453
|
+
} else if (imgNodes.length) {
|
|
454
|
+
// service message
|
|
455
|
+
imgNodes.each((_, img) => {
|
|
456
|
+
tag_media += $(img).toString();
|
|
457
|
+
});
|
|
458
|
+
} else {
|
|
459
|
+
// image message, location
|
|
460
|
+
const background = $node.css('background-image');
|
|
461
|
+
const backgroundUrl = background && background.match(/url\('(.*)'\)/);
|
|
462
|
+
const backgroundUrlSrc = backgroundUrl && backgroundUrl[1];
|
|
463
|
+
const attrs = [`src="${backgroundUrlSrc}"`];
|
|
464
|
+
/*
|
|
465
|
+
* If the width is not in px, it is either a percentage (Link Preview/Instant view)
|
|
466
|
+
* or absent (ditto).
|
|
467
|
+
* Only accept px to prevent images from being invisible or too small.
|
|
468
|
+
*/
|
|
469
|
+
let width = 0;
|
|
470
|
+
const widthStr = $node.css('width');
|
|
471
|
+
if (widthStr && widthStr.endsWith('px')) {
|
|
472
|
+
width = Number.parseFloat(widthStr);
|
|
501
473
|
}
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
474
|
+
/*
|
|
475
|
+
* Height is present when the message is an album but does not exist in other cases.
|
|
476
|
+
* Ditto, only accept px.
|
|
477
|
+
* !!!NOTE: images in albums may have smaller width and height.
|
|
478
|
+
*/
|
|
479
|
+
let height = 0;
|
|
480
|
+
const heightStr = $node.css('height');
|
|
481
|
+
if (heightStr && heightStr.endsWith('px')) {
|
|
482
|
+
height = Number.parseFloat(heightStr);
|
|
505
483
|
}
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
const mapBackground = locationObj.find('.tgme_widget_message_location').css('background-image');
|
|
520
|
-
const mapBackgroundUrl = mapBackground && mapBackground.match(/url\('(.*)'\)/);
|
|
521
|
-
const mapBackgroundUrlSrc = mapBackgroundUrl && mapBackgroundUrl[1];
|
|
522
|
-
const mapImgHtml = mapBackgroundUrlSrc ? `<img src="${mapBackgroundUrlSrc}">` : (showMediaTagAsEmoji ? mediaTagDict[LOCATION][1] : mediaTagDict[LOCATION][0]);
|
|
523
|
-
return locationLink ? `<a href="${locationLink}">${mapImgHtml}</a>` : mapImgHtml;
|
|
524
|
-
} else {
|
|
525
|
-
return '';
|
|
484
|
+
/*
|
|
485
|
+
* Only calculate height when needed.
|
|
486
|
+
* The aspect ratio is either a percentage (single image) or absent (Link Preview).
|
|
487
|
+
* Only accept percentage to prevent images from being invisible or distorted.
|
|
488
|
+
*/
|
|
489
|
+
const aspectRatioStr = $node.find('.tgme_widget_message_photo').css('padding-top');
|
|
490
|
+
if (height <= 0 && width > 0 && aspectRatioStr && aspectRatioStr.endsWith('%')) {
|
|
491
|
+
height = (Number.parseFloat(aspectRatioStr) / 100) * width;
|
|
492
|
+
}
|
|
493
|
+
// Only set width/height when >32 to avoid invisible images.
|
|
494
|
+
width > 32 && attrs.push(`width="${width}"`);
|
|
495
|
+
height > 32 && attrs.push(`height="${height.toFixed(2).replace('.00', '')}"`);
|
|
496
|
+
tag_media += backgroundUrlSrc ? `<img ${attrs.join(' ')}>` : '';
|
|
526
497
|
}
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
const voiceObj = item.find('audio.tgme_widget_message_voice');
|
|
531
|
-
const durationObj = item.find('.tgme_widget_message_voice_duration');
|
|
532
|
-
const durationInMmss = durationObj.text();
|
|
533
|
-
const voiceUrl = voiceObj.length ? voiceObj.attr('src') : '';
|
|
534
|
-
let voiceTitle = '';
|
|
535
|
-
let voiceHtml = '';
|
|
536
|
-
if (voiceUrl) {
|
|
537
|
-
if (showMediaTagInTitle) {
|
|
538
|
-
voiceTitle = durationInMmss ? `(${durationInMmss})` : '';
|
|
498
|
+
if (tag_media) {
|
|
499
|
+
tag_media_all += tag_media;
|
|
500
|
+
$node.find('.message_media_not_supported').remove();
|
|
539
501
|
}
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
502
|
+
});
|
|
503
|
+
return tag_media_all;
|
|
504
|
+
};
|
|
505
|
+
// ordinary message photos, service message photos, stickers, animated stickers, video
|
|
506
|
+
const messageMedia = generateMedia(
|
|
507
|
+
'.tgme_widget_message_photo_wrap,.tgme_widget_message_service_photo,.tgme_widget_message_sticker,.tgme_widget_message_tgsticker,.tgme_widget_message_videosticker,.tgme_widget_message_video_player'
|
|
508
|
+
);
|
|
509
|
+
|
|
510
|
+
/* location */
|
|
511
|
+
const location = () => {
|
|
512
|
+
const locationObj = item.find('.tgme_widget_message_location_wrap');
|
|
513
|
+
if (locationObj.length) {
|
|
514
|
+
const locationLink = locationObj.attr('href');
|
|
515
|
+
const mapBackground = locationObj.find('.tgme_widget_message_location').css('background-image');
|
|
516
|
+
const mapBackgroundUrl = mapBackground && mapBackground.match(/url\('(.*)'\)/);
|
|
517
|
+
const mapBackgroundUrlSrc = mapBackgroundUrl && mapBackgroundUrl[1];
|
|
518
|
+
const mapImgHtml = mapBackgroundUrlSrc ? `<img src="${mapBackgroundUrlSrc}">` : (showMediaTagAsEmoji ? mediaTagDict[LOCATION][1] : mediaTagDict[LOCATION][0]);
|
|
519
|
+
return locationLink ? `<a href="${locationLink}">${mapImgHtml}</a>` : mapImgHtml;
|
|
520
|
+
} else {
|
|
521
|
+
return '';
|
|
545
522
|
}
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
const
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
: '';
|
|
574
|
-
};
|
|
575
|
-
|
|
576
|
-
/* poll */
|
|
577
|
-
const pollQuestionObj = item.find('.tgme_widget_message_poll_question');
|
|
578
|
-
const pollQuestion = pollQuestionObj.length ? pollQuestionObj.text() : '';
|
|
579
|
-
const poll = () => {
|
|
580
|
-
let pollHtml = '';
|
|
581
|
-
const pollTypeObj = item.find('.tgme_widget_message_poll_type');
|
|
582
|
-
const pollType = pollTypeObj.length ? pollTypeObj.text() : '';
|
|
583
|
-
const pollOptions = item.find('.tgme_widget_message_poll_option');
|
|
584
|
-
if (pollQuestion && pollType.length > 0 && pollOptions.length > 0) {
|
|
585
|
-
pollHtml += `<p><b>${pollQuestion}</b></p>`;
|
|
586
|
-
pollHtml += `<p><small>${pollType}</small></p>`;
|
|
587
|
-
pollOptions.each((_, option) => {
|
|
588
|
-
const $option = $(option);
|
|
589
|
-
const percentObj = $option.find('.tgme_widget_message_poll_option_percent');
|
|
590
|
-
const percent = percentObj.length ? percentObj.text() : '';
|
|
591
|
-
const textObj = $option.find('.tgme_widget_message_poll_option_text');
|
|
592
|
-
const text = textObj.length ? textObj.text() : '';
|
|
593
|
-
if (percent && text) {
|
|
594
|
-
pollHtml += `<p><b>${percent}</b> - ${text}</p>`;
|
|
595
|
-
}
|
|
596
|
-
});
|
|
523
|
+
};
|
|
524
|
+
|
|
525
|
+
/* voice */
|
|
526
|
+
const voiceObj = item.find('audio.tgme_widget_message_voice');
|
|
527
|
+
const durationObj = item.find('.tgme_widget_message_voice_duration');
|
|
528
|
+
const durationInMmss = durationObj.text();
|
|
529
|
+
const voiceUrl = voiceObj.length ? voiceObj.attr('src') : '';
|
|
530
|
+
let voiceTitle = '';
|
|
531
|
+
let voiceHtml = '';
|
|
532
|
+
if (voiceUrl) {
|
|
533
|
+
if (showMediaTagInTitle) {
|
|
534
|
+
voiceTitle = durationInMmss ? `(${durationInMmss})` : '';
|
|
535
|
+
}
|
|
536
|
+
voiceHtml += '<p><b>';
|
|
537
|
+
voiceHtml += showMediaTagAsEmoji ? mediaTagDict[VOICE][1] : mediaTagDict[VOICE][0];
|
|
538
|
+
voiceHtml += durationInMmss ? ` (${durationInMmss})` : '';
|
|
539
|
+
voiceHtml += '</b></p>';
|
|
540
|
+
voiceHtml += `<audio src="${voiceUrl}"></audio>`;
|
|
541
|
+
}
|
|
542
|
+
const voiceDuration = () => {
|
|
543
|
+
if (durationObj.length) {
|
|
544
|
+
const p = durationInMmss.split(':');
|
|
545
|
+
let second = 0,
|
|
546
|
+
minute = 1;
|
|
547
|
+
while (p.length > 0) {
|
|
548
|
+
second += minute * Number.parseInt(p.pop(), 10);
|
|
549
|
+
minute *= 60;
|
|
597
550
|
}
|
|
598
|
-
return
|
|
599
|
-
}
|
|
600
|
-
|
|
601
|
-
/* attachment (document or music) */
|
|
602
|
-
const documentWrapObj = item.find('.tgme_widget_message_document_wrap');
|
|
603
|
-
let attachmentTitle = '';
|
|
604
|
-
let attachmentHtml = '';
|
|
605
|
-
if (documentWrapObj.length) {
|
|
606
|
-
documentWrapObj.each((_, wrap) => {
|
|
607
|
-
// a message may have multiple attachments
|
|
608
|
-
const $wrap = $(wrap);
|
|
609
|
-
const documentTitleObj = $wrap.find('.tgme_widget_message_document_title');
|
|
610
|
-
const documentExtraObj = $wrap.find('.tgme_widget_message_document_extra');
|
|
611
|
-
const documentTitle = documentTitleObj.length ? documentTitleObj.text() : '';
|
|
612
|
-
const documentExtra = documentExtraObj.length ? documentExtraObj.text() : '';
|
|
613
|
-
const _attachmentTitle = `${documentTitle}${documentTitle && documentExtra ? ' - ' : ''}${documentExtra}`;
|
|
614
|
-
const _attachmentHtml = (documentTitle ? `<p><b>${documentTitle}</b></p>` : '') + (documentExtra ? `<p><small>${documentExtra}</small></p>` : '');
|
|
615
|
-
attachmentTitle += attachmentTitle && _attachmentTitle ? ' | ' : '';
|
|
616
|
-
attachmentTitle += _attachmentTitle;
|
|
617
|
-
attachmentHtml += _attachmentHtml ? `<blockquote>${_attachmentHtml}</blockquote>` : '';
|
|
618
|
-
const wrapNext = $wrap.next('.tgme_widget_message_text');
|
|
619
|
-
if (wrapNext.length) {
|
|
620
|
-
const captionHtml = wrapNext.html();
|
|
621
|
-
if (captionHtml.length) {
|
|
622
|
-
attachmentHtml += `<p>${captionHtml}</p>`;
|
|
623
|
-
}
|
|
624
|
-
// remove them, avoid being duplicated
|
|
625
|
-
wrapNext.each((_, caption) => {
|
|
626
|
-
$(caption).remove();
|
|
627
|
-
});
|
|
628
|
-
}
|
|
629
|
-
});
|
|
551
|
+
return second.toString();
|
|
552
|
+
} else {
|
|
553
|
+
return '';
|
|
630
554
|
}
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
const
|
|
636
|
-
const
|
|
637
|
-
const
|
|
638
|
-
const
|
|
639
|
-
const
|
|
640
|
-
const
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
555
|
+
};
|
|
556
|
+
|
|
557
|
+
/* link preview */
|
|
558
|
+
const linkPreview = () => {
|
|
559
|
+
const linkPreviewSiteObj = item.find('.link_preview_site_name');
|
|
560
|
+
const linkPreviewSite = linkPreviewSiteObj.length ? `<b>${linkPreviewSiteObj.text()}</b><br>` : '';
|
|
561
|
+
const linkPreviewTitleObj = item.find('.link_preview_title');
|
|
562
|
+
const linkPreviewTitle = linkPreviewTitleObj.length ? `<b><a href="${item.find('.tgme_widget_message_link_preview').attr('href')}">${linkPreviewTitleObj.text()}</a></b><br>` : '';
|
|
563
|
+
const linkPreviewDescriptionObj = item.find('.link_preview_description');
|
|
564
|
+
const linkPreviewDescription = linkPreviewDescriptionObj.length ? `<p>${linkPreviewDescriptionObj.html()}</p>` : '';
|
|
565
|
+
const linkPreviewImage = generateMedia('.link_preview_image') + generateMedia('.link_preview_right_image');
|
|
566
|
+
|
|
567
|
+
return linkPreviewSite.length > 0 || linkPreviewTitle.length > 0 || linkPreviewDescription.length > 0 || linkPreviewImage.length > 0
|
|
568
|
+
? `<blockquote>${linkPreviewSite}${linkPreviewTitle}${linkPreviewDescription}${linkPreviewImage}</blockquote>`
|
|
569
|
+
: '';
|
|
570
|
+
};
|
|
571
|
+
|
|
572
|
+
/* poll */
|
|
573
|
+
const pollQuestionObj = item.find('.tgme_widget_message_poll_question');
|
|
574
|
+
const pollQuestion = pollQuestionObj.length ? pollQuestionObj.text() : '';
|
|
575
|
+
const poll = () => {
|
|
576
|
+
let pollHtml = '';
|
|
577
|
+
const pollTypeObj = item.find('.tgme_widget_message_poll_type');
|
|
578
|
+
const pollType = pollTypeObj.length ? pollTypeObj.text() : '';
|
|
579
|
+
const pollOptions = item.find('.tgme_widget_message_poll_option');
|
|
580
|
+
if (pollQuestion && pollType.length > 0 && pollOptions.length > 0) {
|
|
581
|
+
pollHtml += `<p><b>${pollQuestion}</b></p>`;
|
|
582
|
+
pollHtml += `<p><small>${pollType}</small></p>`;
|
|
583
|
+
pollOptions.each((_, option) => {
|
|
584
|
+
const $option = $(option);
|
|
585
|
+
const percentObj = $option.find('.tgme_widget_message_poll_option_percent');
|
|
586
|
+
const percent = percentObj.length ? percentObj.text() : '';
|
|
587
|
+
const textObj = $option.find('.tgme_widget_message_poll_option_text');
|
|
588
|
+
const text = textObj.length ? textObj.text() : '';
|
|
589
|
+
if (percent && text) {
|
|
590
|
+
pollHtml += `<p><b>${percent}</b> - ${text}</p>`;
|
|
591
|
+
}
|
|
651
592
|
});
|
|
652
|
-
inlineButtons += '</tr></tbody></table>';
|
|
653
593
|
}
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
594
|
+
return pollHtml ? `<blockquote>${pollHtml}</blockquote>` : '';
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
/* attachment (document or music) */
|
|
598
|
+
const documentWrapObj = item.find('.tgme_widget_message_document_wrap');
|
|
599
|
+
let attachmentTitle = '';
|
|
600
|
+
let attachmentHtml = '';
|
|
601
|
+
if (documentWrapObj.length) {
|
|
602
|
+
documentWrapObj.each((_, wrap) => {
|
|
603
|
+
// a message may have multiple attachments
|
|
604
|
+
const $wrap = $(wrap);
|
|
605
|
+
const documentTitleObj = $wrap.find('.tgme_widget_message_document_title');
|
|
606
|
+
const documentExtraObj = $wrap.find('.tgme_widget_message_document_extra');
|
|
607
|
+
const documentTitle = documentTitleObj.length ? documentTitleObj.text() : '';
|
|
608
|
+
const documentExtra = documentExtraObj.length ? documentExtraObj.text() : '';
|
|
609
|
+
const _attachmentTitle = `${documentTitle}${documentTitle && documentExtra ? ' - ' : ''}${documentExtra}`;
|
|
610
|
+
const _attachmentHtml = (documentTitle ? `<p><b>${documentTitle}</b></p>` : '') + (documentExtra ? `<p><small>${documentExtra}</small></p>` : '');
|
|
611
|
+
attachmentTitle += attachmentTitle && _attachmentTitle ? ' | ' : '';
|
|
612
|
+
attachmentTitle += _attachmentTitle;
|
|
613
|
+
attachmentHtml += _attachmentHtml ? `<blockquote>${_attachmentHtml}</blockquote>` : '';
|
|
614
|
+
const wrapNext = $wrap.next('.tgme_widget_message_text');
|
|
615
|
+
if (wrapNext.length) {
|
|
616
|
+
const captionHtml = wrapNext.html();
|
|
617
|
+
if (captionHtml.length) {
|
|
618
|
+
attachmentHtml += `<p>${captionHtml}</p>`;
|
|
619
|
+
}
|
|
620
|
+
// remove them, avoid being duplicated
|
|
621
|
+
wrapNext.each((_, caption) => {
|
|
622
|
+
$(caption).remove();
|
|
670
623
|
});
|
|
671
|
-
unsupportedHtml += '</blockquote>';
|
|
672
|
-
} else {
|
|
673
|
-
// remove unsupported type, previous parsing has proved that it is not unsupported
|
|
674
|
-
msgTypes = msgTypes.filter((type) => type !== UNSUPPORTED);
|
|
675
624
|
}
|
|
625
|
+
});
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
/* contact */
|
|
629
|
+
const contactNameObj = item.find('.tgme_widget_message_contact_name');
|
|
630
|
+
const contactName = contactNameObj.length ? contactNameObj.text() : '';
|
|
631
|
+
const contactNameHtml = contactName ? `<b>${contactName}</b>` : '';
|
|
632
|
+
const contactPhoneObj = item.find('.tgme_widget_message_contact_phone');
|
|
633
|
+
const contactPhone = contactPhoneObj.length ? contactPhoneObj.text() : '';
|
|
634
|
+
const contactPhoneHtml = contactPhone ? `<a href="tel:${contactPhone.replace(' ', '')}">${contactPhone}</a>` : '';
|
|
635
|
+
const contactTitle = contactName + (contactName && contactPhone ? ': ' : '') + contactPhone;
|
|
636
|
+
const contactHtml = contactNameHtml || contactPhoneHtml ? `<p>${contactNameHtml}${contactName && contactPhone ? ': ' : ''}${contactPhoneHtml}</p>` : '';
|
|
637
|
+
|
|
638
|
+
/* inline buttons */
|
|
639
|
+
let inlineButtons = '';
|
|
640
|
+
const inlineButtonNodes = item.find('.tgme_widget_message_inline_button_text');
|
|
641
|
+
if (showInlineButtons && inlineButtonNodes.length) {
|
|
642
|
+
inlineButtons += '<table style="width: 100%"><tbody><tr>';
|
|
643
|
+
inlineButtonNodes.each((_, button) => {
|
|
644
|
+
const $button = $(button);
|
|
645
|
+
const buttonText = $button.text();
|
|
646
|
+
inlineButtons += `<td style="border: 2px solid;text-align: center"><b>${buttonText}</b></td>`;
|
|
647
|
+
});
|
|
648
|
+
inlineButtons += '</tr></tbody></table>';
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
/* unsupported */
|
|
652
|
+
let unsupportedHtml = '';
|
|
653
|
+
let unsupportedTitle = '';
|
|
654
|
+
const unsupportedNodes = item.find('.message_media_not_supported');
|
|
655
|
+
if (msgTypes.includes(UNSUPPORTED)) {
|
|
656
|
+
if (unsupportedNodes.length) {
|
|
657
|
+
unsupportedHtml += '<blockquote>';
|
|
658
|
+
unsupportedNodes.find('.message_media_not_supported_label').each(function () {
|
|
659
|
+
const $this = $(this);
|
|
660
|
+
unsupportedTitle += $this.text();
|
|
661
|
+
unsupportedHtml += `<p>${$this.text()}</p>`;
|
|
662
|
+
});
|
|
663
|
+
unsupportedNodes.find('.message_media_view_in_telegram').each(function () {
|
|
664
|
+
const $this = $(this);
|
|
665
|
+
unsupportedHtml += $this.attr('href') ? `<p><a href="${$this.attr('href')}">${$this.text()}</a></p>` : `<p>${$this.text()}</p>`;
|
|
666
|
+
});
|
|
667
|
+
unsupportedHtml += '</blockquote>';
|
|
668
|
+
} else {
|
|
669
|
+
// remove unsupported type, previous parsing has proved that it is not unsupported
|
|
670
|
+
msgTypes = msgTypes.filter((type) => type !== UNSUPPORTED);
|
|
676
671
|
}
|
|
672
|
+
}
|
|
677
673
|
|
|
678
|
-
|
|
679
|
-
|
|
674
|
+
/* pubDate */
|
|
675
|
+
const pubDate = parseDate(item.find('.tgme_widget_message_date time').attr('datetime'));
|
|
680
676
|
|
|
681
|
-
|
|
677
|
+
/* ----- finished parsing ----- */
|
|
682
678
|
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
}
|
|
679
|
+
/* media tag */
|
|
680
|
+
let mediaTag = '';
|
|
681
|
+
if (showMediaTagInTitle) {
|
|
682
|
+
for (const type of msgTypes) {
|
|
683
|
+
if (type !== REPLY || type !== FORWARDED || type !== VIA_BOT || (type === REPLY && showReplyTo) || (type === FORWARDED && showFwdFrom) || (type === VIA_BOT && showViaBot)) {
|
|
684
|
+
mediaTag += showMediaTagAsEmoji ? mediaTagDict[type][1] : mediaTagDict[type][0];
|
|
690
685
|
}
|
|
691
686
|
}
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
/* message text & title */
|
|
690
|
+
const messageTextObj = item.find(`.${msgTypes.includes(PARTIALLY_UNSUPPORTED) ? 'media_supported_cont' : 'tgme_widget_message_bubble'} > .tgme_widget_message_text`);
|
|
691
|
+
let messageHtml = '',
|
|
692
|
+
messageTitle = '';
|
|
693
|
+
|
|
694
|
+
if (messageTextObj.length > 0) {
|
|
695
|
+
messageHtml = `<p>${messageTextObj.html()}</p>`;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
let titleCompleteFlag = false;
|
|
699
|
+
if (pollQuestion) {
|
|
700
|
+
messageTitle = pollQuestion;
|
|
701
|
+
titleCompleteFlag = true;
|
|
702
|
+
} else if (attachmentTitle) {
|
|
703
|
+
messageTitle = attachmentTitle;
|
|
704
|
+
titleCompleteFlag = true;
|
|
705
|
+
} else if (contactTitle) {
|
|
706
|
+
messageTitle = contactTitle;
|
|
707
|
+
titleCompleteFlag = true;
|
|
708
|
+
} else if (voiceTitle) {
|
|
709
|
+
messageTitle = voiceTitle;
|
|
710
|
+
} else if (unsupportedTitle) {
|
|
711
|
+
messageTitle = unsupportedTitle;
|
|
712
|
+
titleCompleteFlag = true;
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
if (messageTextObj.length > 0 && !titleCompleteFlag) {
|
|
716
|
+
const _messageTextObj = $(messageTextObj.toString());
|
|
717
|
+
_messageTextObj.find('br').replaceWith('\n');
|
|
718
|
+
const trimmedTitleText = _messageTextObj.text().split('\n').at(0)?.trim();
|
|
719
|
+
messageTitle += (messageTitle && trimmedTitleText ? ': ' : '') + trimmedTitleText;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
messageTitle = messageTitle === '' ? mediaTag || pubDate.toUTCString() : `${mediaTag}${mediaTag ? ' ' : ''}${messageTitle}`;
|
|
723
|
+
|
|
724
|
+
let description = '';
|
|
725
|
+
if (showFwdFrom) {
|
|
726
|
+
description += fwdFrom();
|
|
727
|
+
}
|
|
728
|
+
if (showReplyTo) {
|
|
729
|
+
description += replyContent();
|
|
730
|
+
}
|
|
731
|
+
if (showViaBot) {
|
|
732
|
+
description += viaBot();
|
|
733
|
+
}
|
|
734
|
+
description += location() + poll() + contactHtml + voiceHtml + attachmentHtml + messageHtml + unsupportedHtml;
|
|
735
|
+
if (showLinkPreview) {
|
|
736
|
+
description += linkPreview();
|
|
737
|
+
}
|
|
738
|
+
description += inlineButtons + messageMedia;
|
|
739
|
+
|
|
740
|
+
return {
|
|
741
|
+
title: messageTitle,
|
|
742
|
+
description,
|
|
743
|
+
pubDate,
|
|
744
|
+
link: item.find('.tgme_widget_message_date').attr('href'),
|
|
745
|
+
author: item.find('.tgme_widget_message_from_author').text(),
|
|
746
|
+
|
|
747
|
+
enclosure_url: voiceUrl,
|
|
748
|
+
itunes_duration: voiceDuration(),
|
|
749
|
+
enclosure_type: 'audio/ogg',
|
|
750
|
+
|
|
751
|
+
_extra: extra,
|
|
752
|
+
};
|
|
753
|
+
})
|
|
754
|
+
.filter(Boolean)
|
|
755
|
+
.reverse(),
|
|
761
756
|
};
|
|
762
757
|
}
|