rsshub 1.0.0-master.fdb1381 → 1.0.0-master.fdb4325
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/lib/api/index.ts +2 -7
- package/lib/config.ts +14 -1
- package/lib/registry.ts +41 -5
- package/lib/router.js +0 -12
- package/lib/routes/005/index.ts +3 -3
- package/lib/routes/0818tuan/index.ts +2 -2
- package/lib/routes/10jqka/realtimenews.ts +2 -2
- package/lib/routes/12306/zxdt.ts +15 -33
- package/lib/routes/12371/zxfb.ts +2 -2
- package/lib/routes/163/exclusive.ts +17 -17
- package/lib/routes/163/news/rank.ts +4 -4
- package/lib/routes/163/news/special.ts +2 -2
- package/lib/routes/163/renjian.ts +2 -2
- package/lib/routes/163/utils.ts +2 -2
- package/lib/routes/18comic/blogs.ts +3 -3
- package/lib/routes/18comic/index.ts +11 -11
- package/lib/routes/199it/index.ts +334 -0
- package/lib/routes/199it/templates/description.art +20 -0
- package/lib/routes/19lou/index.ts +11 -11
- package/lib/routes/1point3acres/blog.ts +2 -2
- package/lib/routes/1point3acres/category.ts +6 -6
- package/lib/routes/1point3acres/section.ts +16 -16
- package/lib/routes/1point3acres/thread.ts +6 -6
- package/lib/routes/2023game/index.ts +3 -3
- package/lib/routes/2048/index.ts +65 -55
- package/lib/routes/21caijing/channel.ts +1 -1
- package/lib/routes/36kr/hot-list.ts +2 -2
- package/lib/routes/36kr/index.ts +2 -2
- package/lib/routes/3dmgame/news-center.ts +2 -2
- package/lib/routes/3kns/index.ts +15 -15
- package/lib/routes/423down/index.ts +18 -18
- package/lib/routes/4khd/article.ts +28 -0
- package/lib/routes/4khd/category.ts +48 -0
- package/lib/routes/4khd/const.ts +4 -0
- package/lib/routes/4khd/latest.ts +41 -0
- package/lib/routes/4khd/namespace.ts +8 -0
- package/lib/routes/4khd/types.ts +12 -0
- package/lib/routes/4kup/article.ts +29 -0
- package/lib/routes/4kup/category.ts +47 -0
- package/lib/routes/4kup/const.ts +4 -0
- package/lib/routes/4kup/latest.ts +41 -0
- package/lib/routes/4kup/namespace.ts +8 -0
- package/lib/routes/4kup/popular.ts +81 -0
- package/lib/routes/4kup/tag.ts +47 -0
- package/lib/routes/4kup/types.ts +12 -0
- package/lib/routes/56kog/class.ts +5 -5
- package/lib/routes/56kog/top.ts +2 -2
- package/lib/routes/5music/index.ts +87 -0
- package/lib/routes/5music/namespace.ts +9 -0
- package/lib/routes/6park/index.ts +10 -5
- package/lib/routes/6park/news.ts +11 -2
- package/lib/routes/78dm/index.ts +65 -65
- package/lib/routes/7mmtv/index.ts +12 -12
- package/lib/routes/8264/list.ts +37 -37
- package/lib/routes/91porn/index.ts +2 -2
- package/lib/routes/95mm/category.ts +2 -2
- package/lib/routes/95mm/tab.ts +1 -1
- package/lib/routes/a9vg/index.ts +11 -11
- package/lib/routes/aamacau/index.ts +2 -2
- package/lib/routes/academia/topics.ts +10 -20
- package/lib/routes/accessbriefing/index.ts +19 -19
- package/lib/routes/acfun/article.ts +8 -8
- package/lib/routes/adquan/index.ts +146 -0
- package/lib/routes/adquan/namespace.ts +9 -0
- package/lib/routes/adquan/templates/description.art +7 -0
- package/lib/routes/afdian/explore.ts +6 -6
- package/lib/routes/agirls/z-index.ts +2 -2
- package/lib/routes/agora0/index.ts +2 -2
- package/lib/routes/agri/index.ts +52 -52
- package/lib/routes/aibase/discover.ts +74 -74
- package/lib/routes/aibase/topic.ts +24 -24
- package/lib/routes/aiea/index.ts +4 -4
- package/lib/routes/aijishu/index.ts +4 -4
- package/lib/routes/aip/journal-pupp.ts +1 -1
- package/lib/routes/aisixiang/thinktank.ts +1 -1
- package/lib/routes/aisixiang/toplist.ts +2 -2
- package/lib/routes/aliresearch/information.ts +1 -1
- package/lib/routes/alistapart/topic.ts +40 -40
- package/lib/routes/aliyun/notice.ts +6 -6
- package/lib/routes/alternativeto/utils.ts +1 -1
- package/lib/routes/anquanke/category.ts +2 -2
- package/lib/routes/anthropic/news.ts +28 -13
- package/lib/routes/apkpure/versions.ts +1 -1
- package/lib/routes/apnews/mobile-api.ts +93 -0
- package/lib/routes/apnews/utils.ts +2 -2
- package/lib/routes/apple/podcast.ts +2 -1
- package/lib/routes/appleinsider/index.ts +2 -2
- package/lib/routes/appstore/price.ts +0 -1
- package/lib/routes/aqara/post.ts +1 -1
- package/lib/routes/aqicn/aqi.ts +1 -0
- package/lib/routes/arcteryx/new-arrivals.ts +6 -6
- package/lib/routes/arcteryx/outlet.ts +6 -6
- package/lib/routes/asiafruitchina/categories.ts +685 -0
- package/lib/routes/asiafruitchina/namespace.ts +9 -0
- package/lib/routes/asiafruitchina/news.ts +184 -0
- package/lib/routes/asiafruitchina/templates/description.art +17 -0
- package/lib/routes/asianfanfics/namespace.ts +7 -0
- package/lib/routes/asianfanfics/tag.ts +91 -0
- package/lib/routes/asianfanfics/text-search.ts +70 -0
- package/lib/routes/asus/bios.ts +1 -3
- package/lib/routes/atcoder/contest.ts +12 -12
- package/lib/routes/auto-stats/index.ts +2 -2
- package/lib/routes/baidu/tieba/search.ts +5 -5
- package/lib/routes/baidu/top.ts +2 -2
- 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/bdys/index.ts +41 -41
- package/lib/routes/beijingprice/index.ts +8 -8
- package/lib/routes/bendibao/news.ts +5 -5
- package/lib/routes/bilibili/cache.ts +4 -4
- package/lib/routes/bilibili/danmaku.ts +1 -1
- package/lib/routes/bilibili/live-room.ts +14 -12
- package/lib/routes/bilibili/mall-new.ts +2 -2
- package/lib/routes/bilibili/manga-update.ts +37 -4
- package/lib/routes/bilibili/partion.ts +57 -57
- package/lib/routes/bilibili/user-collection.ts +2 -1
- package/lib/routes/bilibili/vsearch.ts +3 -3
- package/lib/routes/bilibili/wasm-exec.ts +649 -0
- package/lib/routes/bjfu/it/index.ts +2 -2
- package/lib/routes/bjfu/jwc/index.ts +2 -2
- package/lib/routes/bjfu/news/index.ts +2 -2
- package/lib/routes/bjsk/keti.ts +2 -2
- package/lib/routes/bjtu/gs.ts +18 -18
- package/lib/routes/bjwxdxh/index.ts +2 -2
- package/lib/routes/bjx/fd.ts +1 -1
- package/lib/routes/bjx/types.ts +3 -3
- package/lib/routes/blizzard/news.ts +34 -34
- package/lib/routes/blockworks/index.ts +128 -0
- package/lib/routes/blockworks/namespace.ts +7 -0
- package/lib/routes/bloomberg/index.ts +14 -14
- package/lib/routes/bnu/bs.ts +2 -2
- package/lib/routes/bnu/fe.ts +1 -0
- package/lib/routes/bnu/jwb.ts +1 -0
- package/lib/routes/bnu/mba.ts +20 -20
- package/lib/routes/boc/whpj.ts +2 -2
- package/lib/routes/bookfere/category.ts +2 -2
- package/lib/routes/bossdesign/index.ts +2 -2
- package/lib/routes/bse/index.ts +14 -14
- package/lib/routes/bsky/feeds.ts +72 -0
- package/lib/routes/bsky/utils.ts +34 -1
- package/lib/routes/btzj/index.ts +12 -12
- package/lib/routes/buaa/news/index.ts +2 -2
- package/lib/routes/buct/cist.ts +58 -0
- package/lib/routes/buct/gr.ts +93 -0
- package/lib/routes/buct/jwc.ts +64 -0
- package/lib/routes/buct/namespace.ts +7 -0
- package/lib/routes/bullionvault/gold-news.ts +231 -0
- package/lib/routes/bullionvault/namespace.ts +9 -0
- package/lib/routes/byau/xinwen/index.ts +2 -2
- package/lib/routes/cahkms/index.ts +5 -5
- package/lib/routes/caixin/category.ts +9 -9
- package/lib/routes/camchina/index.ts +2 -2
- package/lib/routes/cankaoxiaoxi/index.ts +20 -20
- package/lib/routes/cas/cg/index.ts +2 -2
- package/lib/routes/casssp/news.ts +2 -2
- package/lib/routes/cast/index.ts +9 -9
- package/lib/routes/catti/news.ts +2 -2
- package/lib/routes/caus/index.ts +2 -2
- package/lib/routes/cbpanet/index.ts +34 -34
- package/lib/routes/ccac/news.ts +3 -3
- package/lib/routes/cccmc/index.ts +21 -21
- package/lib/routes/ccf/ccfcv/index.ts +2 -2
- package/lib/routes/ccf/news.ts +2 -2
- package/lib/routes/ccfa/index.ts +18 -18
- package/lib/routes/cctv/category.ts +2 -2
- package/lib/routes/cctv/lm.ts +5 -5
- package/lib/routes/cde/index.ts +9 -9
- package/lib/routes/cde/xxgk.ts +2 -2
- package/lib/routes/cde/zdyz.ts +2 -2
- package/lib/routes/cdi/index.ts +2 -2
- package/lib/routes/cdu/cdrw.ts +80 -0
- package/lib/routes/cdu/tzggcdunews.ts +80 -0
- package/lib/routes/cebbank/history.ts +3 -3
- package/lib/routes/cfachina/analygarden.ts +2 -2
- package/lib/routes/chaping/news.ts +9 -9
- package/lib/routes/cherrytimes/market.ts +35 -0
- package/lib/routes/cherrytimes/namespace.ts +6 -0
- package/lib/routes/chiculture/topic.ts +2 -2
- package/lib/routes/chikubi/navigation.ts +2 -2
- package/lib/routes/china/finance/finance.ts +2 -2
- package/lib/routes/china/news/highlights/news.ts +3 -3
- package/lib/routes/chinacdc/index.ts +1 -1
- package/lib/routes/chinadegrees/province.ts +33 -33
- package/lib/routes/chinaisa/index.ts +134 -134
- package/lib/routes/chinamoney/notice.ts +17 -17
- package/lib/routes/chinania/index.ts +31 -31
- package/lib/routes/chinathinktanks/viewpoint.ts +46 -46
- package/lib/routes/chinaventure/index.ts +2 -2
- package/lib/routes/chsi/kyzx.ts +6 -6
- package/lib/routes/chuapp/chuapp.ts +147 -0
- package/lib/routes/chuapp/namespace.ts +7 -0
- package/lib/routes/cib/whpj.ts +2 -2
- package/lib/routes/ciidbnu/index.ts +2 -2
- package/lib/routes/cisia/index.ts +31 -31
- package/lib/routes/cjlu/yjsy/index.ts +2 -2
- package/lib/routes/cls/depth.ts +2 -2
- package/lib/routes/cls/telegraph.ts +2 -2
- package/lib/routes/cma/channel.ts +20 -20
- package/lib/routes/cmu/andypavlo/blog.ts +55 -0
- package/lib/routes/cmu/namespace.ts +7 -0
- package/lib/routes/cna/index.ts +2 -2
- package/lib/routes/cnbeta/category.ts +2 -2
- package/lib/routes/cnblogs/common.ts +0 -1
- package/lib/routes/cncf/index.ts +2 -2
- package/lib/routes/cneb/yjxw.ts +2 -2
- package/lib/routes/cngal/weekly.ts +1 -2
- package/lib/routes/cngold/index.ts +22 -22
- package/lib/routes/cntv/column.ts +3 -3
- package/lib/routes/coindesk/{index.ts → consensus-magazine.ts} +17 -21
- package/lib/routes/coindesk/namespace.ts +2 -1
- package/lib/routes/coindesk/news.ts +47 -0
- package/lib/routes/coindesk/utils.ts +26 -0
- package/lib/routes/cointelegraph/index.ts +106 -0
- package/lib/routes/cointelegraph/namespace.ts +7 -0
- package/lib/routes/colamanga/manga.ts +1 -1
- package/lib/routes/collabo-cafe/category.ts +37 -0
- package/lib/routes/collabo-cafe/index.ts +35 -0
- package/lib/routes/collabo-cafe/namespace.ts +9 -0
- package/lib/routes/collabo-cafe/parser.ts +29 -0
- package/lib/routes/collabo-cafe/tag.ts +37 -0
- package/lib/routes/consumer/index.ts +6 -6
- package/lib/routes/consumer/shopping-guide.ts +2 -2
- package/lib/routes/coolapk/hot.ts +5 -5
- package/lib/routes/coolapk/toutiao.ts +2 -2
- package/lib/routes/coolapk/tuwen.ts +2 -2
- package/lib/routes/coomer/index.ts +157 -0
- package/lib/routes/coomer/templates/source.art +24 -0
- package/lib/routes/copymanga/comic.ts +3 -3
- package/lib/routes/cosplaytele/article.ts +13 -0
- package/lib/routes/cosplaytele/category.ts +47 -0
- package/lib/routes/cosplaytele/const.ts +4 -0
- package/lib/routes/cosplaytele/latest.ts +41 -0
- package/lib/routes/cosplaytele/namespace.ts +8 -0
- package/lib/routes/cosplaytele/popular.ts +75 -0
- package/lib/routes/cosplaytele/tag.ts +47 -0
- package/lib/routes/cosplaytele/types.ts +12 -0
- package/lib/routes/counter-strike/news.ts +3 -3
- package/lib/routes/cpcaauto/index.ts +23 -23
- package/lib/routes/cpcey/index.ts +2 -2
- package/lib/routes/cpta/handler.ts +2 -2
- package/lib/routes/cqwu/index.ts +2 -2
- package/lib/routes/crac/index.ts +2 -2
- package/lib/routes/cryptoslate/index.ts +98 -0
- package/lib/routes/cryptoslate/namespace.ts +7 -0
- package/lib/routes/cs/index.ts +30 -30
- package/lib/routes/cs/video.ts +1 -1
- package/lib/routes/cste/index.ts +2 -2
- package/lib/routes/csu/cse.ts +2 -2
- package/lib/routes/csu/mail.ts +2 -2
- package/lib/routes/cts/news.ts +2 -2
- package/lib/routes/cuilingmag/index.ts +8 -9
- package/lib/routes/cupl/jwc.ts +69 -0
- package/lib/routes/cupl/namespace.ts +20 -0
- package/lib/routes/cursor/changelog.ts +94 -51
- package/lib/routes/cw/master.ts +14 -14
- package/lib/routes/cw/utils.ts +2 -0
- package/lib/routes/cyzone/index.ts +8 -8
- package/lib/routes/dahecube/index.ts +2 -2
- package/lib/routes/dangdang/notice.ts +4 -4
- package/lib/routes/dataguidance/index.ts +2 -2
- package/lib/routes/dayanzai/index.ts +2 -2
- package/lib/routes/dcfever/news.ts +2 -2
- package/lib/routes/dcfever/reviews.ts +2 -2
- package/lib/routes/dcfever/trading.ts +3 -3
- package/lib/routes/dealstreetasia/home.ts +1 -1
- package/lib/routes/decrypt/index.ts +115 -0
- package/lib/routes/decrypt/namespace.ts +7 -0
- package/lib/routes/dedao/index.ts +5 -5
- package/lib/routes/dedao/user.ts +2 -2
- package/lib/routes/deeplearning/the-batch.ts +24 -24
- package/lib/routes/deepseek/news.ts +2 -2
- package/lib/routes/dehenglaw/index.ts +3 -3
- package/lib/routes/dewu/declaration.ts +5 -5
- package/lib/routes/dhu/jiaowu/news.ts +2 -2
- package/lib/routes/dhu/yjs/news.ts +2 -2
- package/lib/routes/dhu/yjs/zs.ts +2 -2
- package/lib/routes/diandong/news.ts +3 -3
- package/lib/routes/diariofruticola/filtro.ts +129 -0
- package/lib/routes/diariofruticola/namespace.ts +9 -0
- package/lib/routes/discuz/discuz.ts +7 -9
- package/lib/routes/dlsite/new.ts +2 -2
- package/lib/routes/dmzj/news.ts +2 -2
- package/lib/routes/dn/news.ts +12 -12
- package/lib/routes/docschina/weekly.ts +2 -2
- package/lib/routes/dongqiudi/special.ts +2 -2
- package/lib/routes/dongqiudi/top-news.ts +2 -2
- package/lib/routes/douban/book/latest.ts +2 -2
- package/lib/routes/douban/book/rank.ts +2 -2
- package/lib/routes/douban/channel/subject.ts +2 -2
- package/lib/routes/douban/channel/topic.ts +2 -2
- package/lib/routes/douban/other/jobs.ts +2 -2
- package/lib/routes/douban/other/latest-music.ts +2 -2
- package/lib/routes/douban/other/list.ts +24 -24
- package/lib/routes/douban/other/recommended.ts +3 -3
- package/lib/routes/douban/other/weekly-best.ts +2 -2
- package/lib/routes/douban/people/status.ts +15 -15
- package/lib/routes/douban/people/wish.ts +3 -3
- package/lib/routes/douyin/live.ts +1 -1
- package/lib/routes/douyin/types.ts +1 -5
- package/lib/routes/douyin/user.ts +1 -1
- package/lib/routes/douyu/group.ts +2 -2
- package/lib/routes/dtcj/datahero.ts +2 -2
- package/lib/routes/dtcj/datainsight.ts +2 -2
- package/lib/routes/dx2025/index.ts +17 -17
- package/lib/routes/dytt/index.ts +299 -56
- package/lib/routes/dytt/namespace.ts +1 -1
- package/lib/routes/e-hentai/index.ts +1 -1
- package/lib/routes/eagle/changelog.ts +3 -3
- package/lib/routes/earthquake/ceic.ts +8 -8
- package/lib/routes/eastday/24.ts +5 -5
- package/lib/routes/eastmoney/report/index.ts +2 -2
- package/lib/routes/ecust/jwc/notice.ts +2 -2
- package/lib/routes/ehentai/favorites.ts +7 -2
- package/lib/routes/ehentai/search.ts +2 -2
- package/lib/routes/ehentai/tag.ts +2 -2
- package/lib/routes/ekantipur/issue.ts +3 -3
- package/lib/routes/eleduck/posts.ts +17 -17
- package/lib/routes/epicgames/index.ts +2 -2
- package/lib/routes/eprice/rss.ts +3 -3
- package/lib/routes/espn/news.ts +1 -1
- package/lib/routes/famitsu/category.ts +2 -2
- package/lib/routes/fanbox/types.ts +0 -4
- package/lib/routes/fangchan/list.ts +224 -0
- package/lib/routes/fangchan/namespace.ts +9 -0
- package/lib/routes/fangchan/templates/description.art +7 -0
- package/lib/routes/fantia/search.ts +36 -36
- package/lib/routes/farcaster/namespace.ts +7 -0
- package/lib/routes/farcaster/user.ts +46 -0
- package/lib/routes/fashionnetwork/index.ts +10 -10
- package/lib/routes/feng/forum.ts +2 -2
- package/lib/routes/ff14/ff14-global.ts +5 -5
- package/lib/routes/ff14/ff14-zh.ts +2 -2
- package/lib/routes/finology/category.ts +17 -17
- package/lib/routes/finology/tag.ts +30 -30
- package/lib/routes/finviz/news.ts +2 -2
- package/lib/routes/fjksbm/index.ts +2 -2
- package/lib/routes/flyert/creditcard.ts +20 -20
- package/lib/routes/focustaiwan/index.ts +5 -5
- package/lib/routes/follow/profile.ts +1 -1
- package/lib/routes/followin/index.ts +6 -6
- package/lib/routes/followin/news.ts +1 -1
- package/lib/routes/foreignaffairs/namespace.ts +7 -0
- package/lib/routes/foreignaffairs/rss.ts +55 -0
- package/lib/routes/foresightnews/util.ts +1 -1
- package/lib/routes/forklog/index.ts +72 -0
- package/lib/routes/forklog/namespace.ts +7 -0
- package/lib/routes/fortnite/news.ts +4 -4
- package/lib/routes/fortunechina/index.ts +2 -2
- package/lib/routes/fx-markets/channel.ts +2 -2
- package/lib/routes/fxiaoke/crm.ts +2 -2
- package/lib/routes/gameapps/index.ts +1 -1
- package/lib/routes/gamekee/namespace.ts +6 -0
- package/lib/routes/gamekee/news.ts +64 -0
- package/lib/routes/gamer520/index.ts +3 -3
- package/lib/routes/gamersecret/index.ts +14 -14
- package/lib/routes/gcores/articles.ts +53 -0
- package/lib/routes/gcores/categories.ts +129 -0
- package/lib/routes/gcores/collections.ts +129 -0
- package/lib/routes/gcores/namespace.ts +1 -0
- package/lib/routes/gcores/news.ts +53 -0
- package/lib/routes/gcores/parser.ts +284 -0
- package/lib/routes/gcores/program-previews.ts +50 -0
- package/lib/routes/gcores/tags.ts +129 -0
- package/lib/routes/gcores/templates/description.art +67 -0
- package/lib/routes/gcores/topics.ts +63 -0
- package/lib/routes/gcores/util.ts +176 -0
- package/lib/routes/gcores/videos.ts +52 -0
- package/lib/routes/gdsrx/index.ts +8 -8
- package/lib/routes/geekpark/index.ts +10 -10
- package/lib/routes/gelbooru/namespace.ts +7 -0
- package/lib/routes/gelbooru/post.ts +113 -0
- package/lib/routes/gelbooru/templates/description.art +19 -0
- package/lib/routes/gelbooru/utils.ts +43 -0
- package/lib/routes/gelonghui/home.ts +2 -2
- package/lib/routes/gf-cn/news.ts +2 -2
- package/lib/routes/gitcode/namespace.ts +7 -0
- package/lib/routes/gitcode/repos/commits.ts +67 -0
- package/lib/routes/github/search.ts +5 -5
- package/lib/routes/github/topic.ts +4 -4
- package/lib/routes/google/fonts.ts +2 -2
- package/lib/routes/gov/ah/kjt.ts +18 -18
- package/lib/routes/gov/beijing/bphc/index.ts +1 -1
- package/lib/routes/gov/caac/cjwt.ts +1 -1
- package/lib/routes/gov/cbirc/index.ts +54 -53
- package/lib/routes/gov/ccdi/index.ts +1 -1
- package/lib/routes/gov/chongqing/gzw.ts +2 -2
- package/lib/routes/gov/csrc/csrc.ts +101 -101
- package/lib/routes/gov/customs/list.ts +1 -1
- package/lib/routes/gov/forestry/gjlckjdjt.ts +7 -7
- package/lib/routes/gov/general/general.ts +1 -1
- 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 +112 -0
- package/lib/routes/gov/hebei/czt.ts +2 -2
- package/lib/routes/gov/lswz/index.ts +32 -32
- package/lib/routes/gov/maonan/maonan.ts +2 -2
- package/lib/routes/gov/mem/sgcc.ts +2 -2
- package/lib/routes/gov/mfa/wjdt.ts +10 -10
- package/lib/routes/gov/moa/gjs.ts +210 -0
- package/lib/routes/gov/moa/zdscxx.ts +2 -2
- package/lib/routes/gov/moe/moe.ts +2 -2
- package/lib/routes/gov/mof/bond.ts +3 -3
- package/lib/routes/gov/mof/gss.ts +82 -0
- package/lib/routes/gov/moj/aac/news.ts +2 -2
- package/lib/routes/gov/npc/index.ts +2 -2
- package/lib/routes/gov/nrta/dsj.ts +2 -2
- package/lib/routes/gov/nrta/news.ts +2 -2
- package/lib/routes/gov/pbc/goutongjiaoliu.ts +1 -1
- package/lib/routes/gov/pbc/namespace.ts +28 -28
- package/lib/routes/gov/pbc/trade-announcement.ts +1 -1
- package/lib/routes/gov/samr/xgzlyhd.ts +91 -91
- package/lib/routes/gov/sh/fgw/index.ts +3 -3
- package/lib/routes/gov/shaanxi/kjt.ts +2 -2
- package/lib/routes/gov/shenzhen/hrss/szksy/index.ts +2 -2
- package/lib/routes/gov/shenzhen/xxgk/zfxxgj.ts +2 -2
- package/lib/routes/gov/shenzhen/zjj/index.ts +2 -2
- package/lib/routes/gov/shenzhen/zzb/index.ts +2 -2
- package/lib/routes/gov/sichuan/deyang/govpublicinfo.ts +2 -2
- package/lib/routes/gov/sichuan/deyang/mztoday.ts +2 -2
- package/lib/routes/gov/stats/index.ts +4 -8
- package/lib/routes/gov/suzhou/news.ts +15 -15
- package/lib/routes/gov/taiyuan/rsj.ts +2 -2
- package/lib/routes/gov/tianjin/tjftz.ts +53 -0
- package/lib/routes/gov/tianjin/tjrcgzw.ts +51 -0
- package/lib/routes/gov/xuzhou/hrss.ts +2 -2
- package/lib/routes/gov/zhejiang/gwy.ts +22 -22
- package/lib/routes/gov/zhengce/govall.ts +9 -9
- package/lib/routes/grainoil/category.ts +207 -0
- package/lib/routes/grainoil/namespace.ts +9 -0
- package/lib/routes/grist/topic.ts +43 -43
- package/lib/routes/guancha/index.ts +2 -2
- package/lib/routes/guancha/member.ts +2 -2
- package/lib/routes/guokr/channel.ts +2 -2
- package/lib/routes/gzdaily/app.ts +7 -7
- package/lib/routes/hacking8/index.ts +2 -2
- package/lib/routes/hafu/news.ts +2 -2
- package/lib/routes/hafu/utils.ts +3 -3
- package/lib/routes/hakkatv/type.ts +2 -2
- package/lib/routes/hanime1/namespace.ts +7 -0
- package/lib/routes/hanime1/previews.ts +89 -0
- package/lib/routes/hbr/topic.ts +2 -2
- package/lib/routes/hellobtc/kepu.ts +2 -2
- package/lib/routes/hellogithub/article.ts +2 -2
- package/lib/routes/hellogithub/index.ts +2 -2
- package/lib/routes/hellogithub/report.ts +3 -3
- package/lib/routes/hfut/hf/notice.ts +2 -2
- package/lib/routes/hfut/xc/notice.ts +2 -2
- package/lib/routes/hinatazaka46/blog.ts +35 -35
- package/lib/routes/hitcon/zeroday.ts +3 -3
- package/lib/routes/hitsz/article.ts +2 -2
- package/lib/routes/hizu/index.ts +25 -25
- package/lib/routes/hkej/index.ts +2 -2
- package/lib/routes/hkepc/index.ts +2 -2
- package/lib/routes/hket/index.ts +3 -3
- package/lib/routes/hkushop/namespace.ts +9 -0
- package/lib/routes/hkushop/vinyl-or-picture-lp.ts +87 -0
- package/lib/routes/hljucm/yjsy.ts +2 -2
- package/lib/routes/hnrb/index.ts +11 -11
- package/lib/routes/hongkong/dh.ts +3 -3
- package/lib/routes/hostmonit/cloudflareyes.ts +3 -3
- package/lib/routes/hottoys/index.ts +2 -2
- package/lib/routes/hoyolab/news.ts +21 -21
- package/lib/routes/hrbeu/cec/list.ts +82 -0
- package/lib/routes/hrbeu/job/calendar.ts +2 -2
- package/lib/routes/hrbeu/job/list.ts +2 -2
- package/lib/routes/hrbeu/uae/news.ts +2 -2
- package/lib/routes/hrbeu/ugs/news.ts +21 -21
- package/lib/routes/hrbeu/yjsy/list.ts +2 -2
- package/lib/routes/hrbust/cs.ts +100 -0
- package/lib/routes/hrbust/gzc.ts +97 -0
- package/lib/routes/hrbust/jwzx.ts +8 -8
- package/lib/routes/hrbust/lib.ts +97 -0
- package/lib/routes/hrbust/news.ts +9 -10
- package/lib/routes/hrbust/nic.ts +5 -8
- package/lib/routes/huanqiu/index.ts +2 -2
- package/lib/routes/hubu/index.ts +3 -3
- package/lib/routes/hubu/zhxy.ts +19 -19
- package/lib/routes/hunau/gfxy/index.ts +2 -2
- package/lib/routes/hunau/ied.ts +3 -3
- package/lib/routes/hunau/jwc.ts +2 -2
- package/lib/routes/hunau/xky/index.ts +2 -2
- package/lib/routes/hupu/index.ts +2 -2
- package/lib/routes/hust/aia/notice.ts +2 -2
- package/lib/routes/hust/gs.ts +31 -31
- package/lib/routes/hust/mse.ts +66 -66
- package/lib/routes/huxiu/channel.ts +8 -8
- package/lib/routes/huxiu/member.ts +2 -2
- package/lib/routes/huxiu/util.ts +11 -9
- package/lib/routes/hypergryph/arknights/announce.ts +7 -7
- package/lib/routes/hypergryph/arknights/news.ts +3 -3
- package/lib/routes/ianspriggs/index.ts +2 -2
- package/lib/routes/icbc/whpj.ts +2 -2
- package/lib/routes/idaily/index.ts +3 -3
- package/lib/routes/iehou/index.ts +3 -3
- package/lib/routes/ielts/index.ts +1 -1
- package/lib/routes/ifanr/category.ts +7 -2
- package/lib/routes/ifanr/digest.ts +1 -1
- package/lib/routes/ifanr/index.ts +1 -1
- package/lib/routes/ifeng/feng.ts +2 -2
- package/lib/routes/imdb/chart.ts +2 -2
- package/lib/routes/indienova/column.ts +20 -20
- package/lib/routes/inewsweek/index.ts +3 -3
- package/lib/routes/infzm/index.ts +3 -3
- package/lib/routes/instructables/projects.ts +22 -17
- package/lib/routes/investor/index.ts +16 -16
- package/lib/routes/iplaysoft/category.ts +49 -0
- package/lib/routes/iplaysoft/index.ts +48 -41
- package/lib/routes/iplaysoft/namespace.ts +1 -0
- package/lib/routes/iplaysoft/tag.ts +49 -0
- package/lib/routes/iplaysoft/utils.ts +34 -0
- package/lib/routes/iqiyi/video.ts +1 -1
- package/lib/routes/iresearch/weekly.ts +1 -1
- package/lib/routes/ithome/index.ts +2 -2
- package/lib/routes/ithome/ranking.ts +2 -2
- package/lib/routes/ithome/tw/feeds.ts +2 -2
- package/lib/routes/japanpost/utils.ts +2 -2
- package/lib/routes/javdb/actors.ts +2 -2
- package/lib/routes/javdb/index.ts +9 -9
- package/lib/routes/javdb/makers.ts +2 -2
- package/lib/routes/javdb/rankings.ts +6 -6
- package/lib/routes/javdb/search.ts +6 -6
- package/lib/routes/javdb/series.ts +2 -2
- package/lib/routes/javdb/tags.ts +3 -3
- package/lib/routes/javdb/videocodes.ts +2 -2
- package/lib/routes/javlibrary/bestrated.ts +2 -2
- package/lib/routes/javlibrary/bestreviews.ts +2 -2
- package/lib/routes/javlibrary/genre.ts +2 -2
- package/lib/routes/javlibrary/maker.ts +2 -2
- package/lib/routes/javlibrary/mostwanted.ts +2 -2
- package/lib/routes/javlibrary/newrelease.ts +2 -2
- package/lib/routes/javlibrary/star.ts +2 -2
- package/lib/routes/javlibrary/user.ts +2 -2
- package/lib/routes/jin10/category.ts +223 -0
- package/lib/routes/jinritemai/docs.ts +6 -6
- package/lib/routes/jinse/catalogue.ts +5 -5
- package/lib/routes/jinse/lives.ts +2 -2
- package/lib/routes/jinse/timeline.ts +3 -3
- package/lib/routes/joins/chinese.ts +15 -15
- package/lib/routes/jornada/index.ts +13 -13
- package/lib/routes/joshwcomeau/latest.ts +59 -0
- package/lib/routes/joshwcomeau/namespace.ts +8 -0
- package/lib/routes/joshwcomeau/popular.ts +38 -0
- package/lib/routes/joshwcomeau/utils.ts +61 -0
- package/lib/routes/jsu/jwc.ts +2 -2
- package/lib/routes/juejin/collections.ts +1 -1
- package/lib/routes/juejin/dynamic.ts +11 -1
- package/lib/routes/juejin/pins.ts +2 -2
- package/lib/routes/juejin/trending.ts +17 -17
- package/lib/routes/jump/discount.ts +14 -14
- package/lib/routes/kamen-rider-official/news.ts +31 -31
- package/lib/routes/kanxue/topic.ts +21 -21
- package/lib/routes/kaopu/news.ts +2 -2
- package/lib/routes/kbs/news.ts +2 -2
- package/lib/routes/kbs/today.ts +2 -2
- package/lib/routes/kcna/news.ts +13 -13
- package/lib/routes/kemono/index.ts +6 -5
- package/lib/routes/komiic/comic.ts +88 -0
- package/lib/routes/komiic/namespace.ts +7 -0
- package/lib/routes/konachan/post.ts +2 -2
- package/lib/routes/kpopping/kpics.ts +218 -0
- package/lib/routes/kpopping/namespace.ts +9 -0
- package/lib/routes/kpopping/news.ts +197 -0
- package/lib/routes/kpopping/templates/description.art +17 -0
- package/lib/routes/kurogames/namespace.ts +1 -1
- package/lib/routes/kurogames/wutheringwaves/constants.ts +34 -0
- package/lib/routes/kurogames/wutheringwaves/news.ts +60 -33
- package/lib/routes/kurogames/wutheringwaves/utils.ts +79 -0
- package/lib/routes/landiannews/category.ts +48 -0
- package/lib/routes/landiannews/index.ts +44 -0
- package/lib/routes/landiannews/namespace.ts +9 -0
- package/lib/routes/landiannews/tag.ts +48 -0
- package/lib/routes/landiannews/utils.ts +34 -0
- package/lib/routes/latepost/index.ts +3 -3
- package/lib/routes/leagueoflegends/namespace.ts +8 -0
- package/lib/routes/leagueoflegends/patch-notes.ts +76 -0
- package/lib/routes/learnblockchain/posts.ts +17 -17
- package/lib/routes/lens/namespace.ts +7 -0
- package/lib/routes/lens/profile.ts +80 -0
- package/lib/routes/likeshop/index.ts +43 -0
- package/lib/routes/likeshop/namespace.ts +7 -0
- package/lib/routes/line/today.ts +3 -3
- package/lib/routes/linkedin/cn/index.ts +7 -7
- package/lib/routes/linkedin/jobs.ts +14 -14
- package/lib/routes/linkedin/posts.ts +64 -0
- package/lib/routes/linkedin/utils.ts +75 -1
- package/lib/routes/lofter/tag.ts +2 -2
- package/lib/routes/logclub/report.ts +2 -2
- package/lib/routes/loltw/news.ts +2 -2
- package/lib/routes/loongarch/post.ts +1 -0
- package/lib/routes/lovelive-anime/news.ts +5 -5
- package/lib/routes/lovelive-anime/topics.ts +5 -5
- package/lib/routes/lrepacks/index.ts +11 -11
- package/lib/routes/lsnu/jiaowc/tzgg.ts +2 -2
- package/lib/routes/ltaaa/article.ts +180 -0
- package/lib/routes/ltaaa/namespace.ts +9 -0
- package/lib/routes/ltaaa/templates/description.art +7 -0
- package/lib/routes/lvv2/news.ts +5 -5
- package/lib/routes/lvv2/top.ts +5 -5
- package/lib/routes/malaysiakini/index.ts +8 -8
- package/lib/routes/mashiro/index.ts +62 -0
- package/lib/routes/mashiro/namespace.ts +11 -0
- package/lib/routes/mastodon/timeline-local.ts +1 -1
- package/lib/routes/mastodon/timeline-remote.ts +1 -1
- package/lib/routes/matters/latest.ts +2 -2
- package/lib/routes/mckinsey/cn/index.ts +19 -19
- package/lib/routes/medsci/index.ts +27 -27
- package/lib/routes/meishichina/index.ts +189 -189
- package/lib/routes/meituan/tech.ts +31 -37
- 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 +308 -0
- package/lib/routes/meteor/index.ts +1 -1
- package/lib/routes/mihoyo/bbs/img-ranking.ts +20 -20
- package/lib/routes/mihoyo/bbs/official.ts +6 -6
- package/lib/routes/mihoyo/sr/news.ts +3 -3
- package/lib/routes/mihoyo/ys/news.ts +3 -3
- package/lib/routes/mindmeister/example.ts +27 -27
- package/lib/routes/misskey/home-timeline.ts +99 -0
- package/lib/routes/misskey/user-timeline.ts +11 -9
- package/lib/routes/misskey/utils.ts +6 -6
- package/lib/routes/mittrchina/index.ts +5 -5
- package/lib/routes/miui/firmware/index.ts +6 -6
- package/lib/routes/mixcloud/index.ts +2 -2
- package/lib/routes/modian/zhongchou.ts +18 -18
- package/lib/routes/mrm/index.ts +2 -2
- package/lib/routes/mwm/index.ts +2 -2
- package/lib/routes/mycard520/namespace.ts +9 -0
- package/lib/routes/mycard520/news.ts +252 -0
- package/lib/routes/mydrivers/rank.ts +2 -2
- package/lib/routes/myfigurecollection/activity.ts +19 -19
- package/lib/routes/myfigurecollection/index.ts +2 -2
- package/lib/routes/mygopen/index.ts +1 -1
- package/lib/routes/mysql/release.ts +1 -1
- package/lib/routes/nature/research.ts +10 -10
- package/lib/routes/nautiljon/manga-releases.ts +72 -0
- package/lib/routes/nautiljon/namespace.ts +7 -0
- package/lib/routes/nbd/index.ts +2 -2
- package/lib/routes/ncc-cma/cmdp.ts +27 -27
- package/lib/routes/ncepu/master/masterinfo.ts +2 -2
- package/lib/routes/neea/jlpt.ts +91 -53
- package/lib/routes/neea/namespace.ts +1 -1
- package/lib/routes/neu/bmie.ts +16 -16
- package/lib/routes/neu/news.ts +16 -16
- package/lib/routes/newsmarket/index.ts +5 -5
- package/lib/routes/nextapple/realtime.ts +5 -5
- package/lib/routes/ngocn2/index.ts +2 -2
- package/lib/routes/nhentai/util.ts +7 -2
- package/lib/routes/nhk/news.ts +2 -2
- package/lib/routes/nikkei/news.ts +2 -2
- package/lib/routes/nippon/index.ts +2 -2
- package/lib/routes/njnu/ceai/ceai.ts +2 -2
- package/lib/routes/njnu/jwc/jwc.ts +2 -2
- package/lib/routes/nju/exchangesys.ts +2 -2
- package/lib/routes/nju/jw.ts +2 -2
- package/lib/routes/nju/rczp.ts +2 -2
- package/lib/routes/nju/scit.ts +2 -2
- package/lib/routes/nju/zbb.ts +2 -2
- package/lib/routes/njupt/jwc.ts +2 -2
- package/lib/routes/njust/cwc.ts +2 -2
- package/lib/routes/njust/dgxg.ts +2 -2
- package/lib/routes/njust/eo.ts +6 -6
- package/lib/routes/njust/eoe.ts +2 -2
- package/lib/routes/njust/gs.ts +2 -2
- package/lib/routes/njust/jwc.ts +2 -2
- package/lib/routes/njust/utils.ts +1 -1
- package/lib/routes/nlc/read.ts +3 -3
- package/lib/routes/nltimes/news.ts +2 -2
- package/lib/routes/nodejs/blog.ts +12 -12
- package/lib/routes/nogizaka46/blog.ts +42 -42
- package/lib/routes/nosec/index.ts +8 -8
- package/lib/routes/notefolio/search.ts +14 -14
- package/lib/routes/now/news.ts +9 -9
- package/lib/routes/nowcoder/discuss.ts +2 -2
- package/lib/routes/nowcoder/jobcenter.ts +6 -6
- package/lib/routes/nua/dc.ts +7 -7
- package/lib/routes/nua/gra.ts +4 -4
- package/lib/routes/nua/index.ts +3 -3
- package/lib/routes/nua/lib.ts +5 -5
- package/lib/routes/nua/sxw.ts +6 -6
- package/lib/routes/nuaa/college/cs.ts +2 -2
- package/lib/routes/nuaa/jwc/jwc.ts +2 -2
- package/lib/routes/nuaa/yjsy/yjsy.ts +2 -2
- package/lib/routes/nudt/yjszs.ts +2 -2
- package/lib/routes/nuist/bulletin.ts +5 -5
- package/lib/routes/nuist/cas.ts +2 -2
- package/lib/routes/nuist/jwc.ts +2 -2
- package/lib/routes/nuist/scs.ts +2 -2
- package/lib/routes/nuist/sese.ts +2 -2
- 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/index.ts +1 -1
- package/lib/routes/oceanengine/arithmetic-index.ts +1 -1
- package/lib/routes/odaily/post.ts +2 -2
- package/lib/routes/oilchem/index.ts +1 -1
- package/lib/routes/okx/index.ts +125 -0
- package/lib/routes/okx/namespace.ts +7 -0
- package/lib/routes/oncc/money18.ts +3 -3
- package/lib/routes/oo-software/changelog.ts +5 -5
- package/lib/routes/openai/blog.ts +2 -2
- package/lib/routes/openrice/chart.ts +6 -6
- package/lib/routes/openrice/offers.ts +3 -3
- package/lib/routes/openrice/promos.ts +3 -3
- package/lib/routes/openrice/voting.ts +6 -6
- package/lib/routes/oreno3d/main.ts +2 -2
- package/lib/routes/oschina/column.ts +1 -1
- package/lib/routes/oschina/news.ts +2 -2
- package/lib/routes/ouc/it-tx.ts +2 -2
- package/lib/routes/ouc/it.ts +2 -2
- package/lib/routes/panewslab/profundity.ts +1 -1
- package/lib/routes/papers/category.ts +1222 -0
- package/lib/routes/papers/query.ts +4 -4
- package/lib/routes/papers/templates/description.art +9 -6
- package/lib/routes/parliament/section77.ts +3 -3
- package/lib/routes/parliament.uk/commonslibrary.ts +1 -1
- package/lib/routes/parliament.uk/lordslibrary.ts +1 -1
- package/lib/routes/parliament.uk/petitions.ts +1 -1
- package/lib/routes/patagonia/new-arrivals.ts +2 -2
- package/lib/routes/patreon/feed.ts +2 -2
- package/lib/routes/patreon/templates/description.art +2 -0
- package/lib/routes/patreon/types.ts +8 -12
- package/lib/routes/people/index.ts +2 -2
- package/lib/routes/people/liuyan.ts +2 -2
- package/lib/routes/peopo/topic.ts +18 -18
- package/lib/routes/picnob/user.ts +153 -106
- package/lib/routes/pincong/utils.ts +1 -1
- package/lib/routes/pingwest/tag.ts +3 -3
- package/lib/routes/pingwest/user.ts +3 -3
- package/lib/routes/pinterest/user.ts +9 -0
- package/lib/routes/pixiv/api/get-ranking.ts +1 -1
- package/lib/routes/pixiv/novel-api/content/utils.ts +1 -0
- package/lib/routes/pku/scc/recruit.ts +2 -2
- package/lib/routes/playno1/av.ts +3 -3
- package/lib/routes/playno1/st.ts +2 -2
- package/lib/routes/plurk/top.ts +5 -5
- package/lib/routes/pnas/index.ts +1 -1
- package/lib/routes/priconne-redive/news.ts +3 -3
- package/lib/routes/producthunt/templates/description.art +19 -0
- package/lib/routes/producthunt/today.ts +49 -22
- 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/publico/ciencias.ts +55 -0
- package/lib/routes/publico/culturas.ts +55 -0
- package/lib/routes/publico/economia.ts +55 -0
- package/lib/routes/publico/internacional.ts +55 -0
- package/lib/routes/publico/items-processor.ts +20 -0
- package/lib/routes/publico/mujer.ts +55 -0
- package/lib/routes/publico/namespace.ts +6 -0
- package/lib/routes/publico/opinion.ts +55 -0
- package/lib/routes/publico/politica.ts +56 -0
- package/lib/routes/publico/public.ts +48 -0
- package/lib/routes/publico/sociedad.ts +55 -0
- package/lib/routes/publico/tremending.ts +48 -0
- package/lib/routes/qianzhan/column.ts +2 -2
- package/lib/routes/qianzhan/rank.ts +2 -2
- package/lib/routes/qiche365/recall.ts +2 -2
- package/lib/routes/qm120/news.ts +8 -8
- package/lib/routes/qoo-app/apps/comment.ts +2 -2
- package/lib/routes/qoo-app/news.ts +2 -2
- package/lib/routes/qq/ac/rank.ts +2 -2
- package/lib/routes/qq/cfhd/index.ts +7 -7
- package/lib/routes/qq88/index.ts +2 -2
- package/lib/routes/qqorw/index.ts +2 -2
- package/lib/routes/questmobile/report.ts +75 -75
- package/lib/routes/quicker/qa.ts +12 -12
- package/lib/routes/quicker/share.ts +5 -5
- package/lib/routes/quicker/user.ts +2 -2
- package/lib/routes/radio-canada/latest.ts +2 -2
- package/lib/routes/raspberrypi/magazine.ts +174 -0
- package/lib/routes/raspberrypi/namespace.ts +9 -0
- package/lib/routes/raspberrypi/templates/description.art +21 -0
- package/lib/routes/readhub/daily.ts +2 -2
- package/lib/routes/readhub/index.ts +2 -2
- package/lib/routes/reuters/common.ts +17 -2
- package/lib/routes/rodong/news.ts +2 -2
- package/lib/routes/rsc/journal.ts +3 -3
- package/lib/routes/rsshub/transform/html.ts +7 -7
- package/lib/routes/rsshub/transform/json.ts +10 -10
- package/lib/routes/ruankao/news.ts +1 -1
- package/lib/routes/sakurazaka46/blog.ts +36 -36
- package/lib/routes/sara/index.ts +2 -2
- package/lib/routes/sass/gs/index.ts +2 -2
- package/lib/routes/science/blogs.ts +2 -2
- package/lib/routes/science/current.ts +7 -7
- package/lib/routes/sciencedirect/current-issue.ts +93 -0
- package/lib/routes/sciencenet/blog.ts +9 -9
- package/lib/routes/sctv/programme.ts +47 -47
- package/lib/routes/scut/gzic/notice.ts +2 -2
- package/lib/routes/scut/jwc/notice.ts +2 -2
- package/lib/routes/scut/jwc/school.ts +2 -2
- package/lib/routes/scut/smae/notice.ts +2 -2
- package/lib/routes/sdu/cmse.ts +2 -2
- package/lib/routes/sdu/epe.ts +2 -2
- package/lib/routes/sdu/gjsw.ts +2 -2
- package/lib/routes/sdu/mech.ts +2 -2
- package/lib/routes/sdu/qd/xszxqd.ts +2 -2
- package/lib/routes/sdu/qd/xyb.ts +2 -2
- package/lib/routes/sdu/sc.ts +2 -2
- package/lib/routes/sdu/wh/jwc.ts +2 -2
- package/lib/routes/sdu/wh/news.ts +2 -2
- package/lib/routes/sdu/ygb.ts +2 -2
- package/lib/routes/sdust/yjsy/zhaosheng.ts +6 -6
- package/lib/routes/seekingalpha/index.ts +3 -3
- package/lib/routes/sehuatang/index.ts +7 -7
- package/lib/routes/sensortower/blog.ts +2 -2
- package/lib/routes/setn/index.ts +7 -7
- package/lib/routes/seu/cse/index.ts +2 -2
- package/lib/routes/seu/yzb/index.ts +2 -2
- package/lib/routes/shiep/index.ts +16 -16
- package/lib/routes/shisu/news.ts +2 -2
- package/lib/routes/shopify/apps/[handle].reviews.ts +1 -1
- package/lib/routes/shopify/apps/search.ts +6 -3
- package/lib/routes/shu/global.ts +2 -2
- package/lib/routes/shu/gs.ts +2 -2
- package/lib/routes/shu/index.ts +2 -2
- package/lib/routes/shu/jwb.ts +2 -2
- package/lib/routes/shu/xykd.ts +2 -2
- package/lib/routes/sicau/dky.ts +2 -2
- package/lib/routes/sicau/yan.ts +2 -2
- package/lib/routes/sicau/zsjy.ts +2 -2
- package/lib/routes/simpleinfo/index.ts +8 -8
- package/lib/routes/sina/discovery.ts +2 -2
- package/lib/routes/sina/finance/china.ts +2 -2
- package/lib/routes/sina/finance/stock/usstock.ts +2 -2
- package/lib/routes/sina/rollnews.ts +2 -2
- package/lib/routes/sjtu/gs.ts +8 -8
- package/lib/routes/sjtu/jwc.ts +2 -2
- package/lib/routes/sjtu/tongqu/activity.ts +2 -2
- package/lib/routes/sjtu/yzb/zkxx.ts +2 -2
- package/lib/routes/sketis/isabelle-dev/blog/index.ts +1 -1
- package/lib/routes/slowmist/slowmist.ts +2 -2
- package/lib/routes/smashingmagazine/category.ts +34 -34
- package/lib/routes/smzdm/haowen-fenlei.ts +2 -2
- package/lib/routes/sobooks/index.ts +9 -9
- package/lib/routes/sobooks/tag.ts +7 -7
- package/lib/routes/sohu/mp.ts +3 -2
- package/lib/routes/spankbang/new-videos.ts +1 -1
- package/lib/routes/spotify/playlist.ts +3 -0
- package/lib/routes/spotify/show.ts +1 -1
- package/lib/routes/sputniknews/index.ts +38 -38
- package/lib/routes/sqmc/www.ts +2 -2
- package/lib/routes/sse/sselawsrules.ts +27 -27
- package/lib/routes/startuplatte/index.ts +2 -2
- package/lib/routes/stcn/index.ts +241 -136
- package/lib/routes/stcn/kx.ts +144 -0
- package/lib/routes/stcn/rank.ts +249 -0
- package/lib/routes/steam/search.ts +1 -2
- package/lib/routes/storm/index.ts +2 -2
- package/lib/routes/swjtu/namespace.ts +1 -1
- package/lib/routes/swjtu/scai.ts +117 -0
- package/lib/routes/swjtu/{scai/bks.ts → sports.ts} +16 -15
- package/lib/routes/swjtu/xg.ts +3 -3
- package/lib/routes/swpu/bgw.ts +2 -2
- package/lib/routes/swpu/cjxy.ts +2 -2
- package/lib/routes/swpu/dean.ts +2 -2
- package/lib/routes/swpu/dxy.ts +2 -2
- package/lib/routes/swpu/is.ts +2 -2
- package/lib/routes/swpu/scs.ts +2 -2
- package/lib/routes/sysu/ygafz.ts +6 -6
- package/lib/routes/szse/disclosure/listed-notice.ts +111 -0
- package/lib/routes/szse/inquire.ts +5 -5
- package/lib/routes/szse/projectdynamic.ts +21 -21
- package/lib/routes/szse/rule.ts +70 -70
- package/lib/routes/szse/templates/inquire.art +1 -1
- package/lib/routes/szu/yz/index.ts +2 -2
- package/lib/routes/t66y/index.ts +12 -12
- package/lib/routes/tangshufang/index.ts +8 -8
- package/lib/routes/taobao/zhongchou.ts +2 -2
- package/lib/routes/taoguba/index.ts +2 -2
- package/lib/routes/taptap/changelog-intl.ts +3 -3
- package/lib/routes/tass/news.ts +2 -2
- package/lib/routes/telecompaper/news.ts +3 -3
- package/lib/routes/telecompaper/search.ts +6 -6
- package/lib/routes/telegram/channel.ts +2 -2
- package/lib/routes/telegram/stickerpack.ts +19 -10
- package/lib/routes/telegram/tglib/client.ts +18 -18
- package/lib/routes/tencent/news/author.ts +40 -37
- package/lib/routes/tencent/pvp/newsindex.ts +2 -2
- package/lib/routes/tesla/cx.ts +47 -47
- package/lib/routes/test/index.ts +1 -1
- package/lib/routes/tgbus/list.ts +2 -2
- package/lib/routes/the/index.ts +13 -13
- package/lib/routes/theatlantic/news.ts +2 -2
- package/lib/routes/theblock/index.ts +142 -0
- package/lib/routes/theblock/namespace.ts +7 -0
- package/lib/routes/theblockbeats/index.ts +5 -5
- package/lib/routes/thecover/channel.ts +2 -2
- package/lib/routes/theinitium/app.ts +82 -53
- package/lib/routes/theinitium/channel.ts +3 -3
- package/lib/routes/themoviedb/sheet.ts +6 -6
- package/lib/routes/thepaper/channel.ts +14 -14
- package/lib/routes/thepaper/list.ts +98 -98
- package/lib/routes/thepetcity/index.ts +6 -6
- package/lib/routes/theverge/index.ts +86 -75
- package/lib/routes/theverge/templates/header.art +19 -0
- package/lib/routes/thoughtco/index.ts +293 -293
- package/lib/routes/threads/index.ts +73 -54
- package/lib/routes/threads/utils.ts +60 -78
- package/lib/routes/tiktok/user.ts +1 -1
- package/lib/routes/timednews/news.ts +3 -3
- package/lib/routes/tingshuitz/changsha.ts +4 -4
- package/lib/routes/tju/cic/index.ts +2 -2
- package/lib/routes/tju/news/index.ts +2 -2
- package/lib/routes/tju/oaa/index.ts +2 -2
- package/lib/routes/tju/yzb/index.ts +2 -2
- package/lib/routes/tmtpost/column.ts +298 -0
- package/lib/routes/tmtpost/new.ts +42 -0
- package/lib/routes/tmtpost/templates/description.art +7 -0
- package/lib/routes/tmtpost/util.ts +207 -0
- package/lib/routes/tokeninsight/report.ts +3 -3
- package/lib/routes/tongji/sse/notice.ts +2 -2
- package/lib/routes/topys/index.ts +1 -1
- package/lib/routes/toranoana/namespace.ts +7 -0
- package/lib/routes/toranoana/news.ts +110 -0
- package/lib/routes/toutiao/a-bogus.ts +15 -15
- package/lib/routes/transformer-circuits/index.ts +124 -0
- package/lib/routes/transformer-circuits/namespace.ts +7 -0
- package/lib/routes/transformer-circuits/templates/article.art +62 -0
- package/lib/routes/tsinghua/lib/zydt.ts +3 -3
- package/lib/routes/tvb/news.ts +6 -6
- package/lib/routes/tvtropes/featured.ts +2 -2
- package/lib/routes/twitter/api/developer-api/user.ts +2 -2
- package/lib/routes/twitter/namespace.ts +1 -1
- package/lib/routes/twitter/user.ts +3 -4
- package/lib/routes/twitter/utils.ts +13 -13
- package/lib/routes/txks/news.ts +1 -1
- package/lib/routes/txrjy/fornumtopic.ts +2 -2
- package/lib/routes/ucas/index.ts +2 -2
- package/lib/routes/uchicago/current.ts +3 -3
- package/lib/routes/udn/breaking-news.ts +2 -2
- package/lib/routes/udn/global/index.ts +2 -2
- package/lib/routes/udn/global/tag.ts +1 -1
- package/lib/routes/uestc/cqe.ts +2 -2
- package/lib/routes/uestc/gr.ts +3 -3
- package/lib/routes/uestc/jwc.ts +3 -3
- package/lib/routes/uestc/news.ts +2 -2
- package/lib/routes/uestc/sise.ts +2 -2
- package/lib/routes/ulapia/index.ts +2 -2
- package/lib/routes/unipd/ilbolive/news.ts +104 -0
- package/lib/routes/unipd/namespace.ts +7 -0
- package/lib/routes/upc/jsj.ts +2 -2
- package/lib/routes/upc/jwc.ts +2 -2
- package/lib/routes/upc/main.ts +2 -2
- package/lib/routes/uptimerobot/rss.ts +2 -2
- package/lib/routes/uraaka-joshi/uraaka-joshi-user.ts +2 -2
- package/lib/routes/uraaka-joshi/uraaka-joshi.ts +42 -46
- package/lib/routes/usepanda/index.ts +2 -2
- package/lib/routes/ustb/tj/news.ts +2 -2
- package/lib/routes/ustb/yjsy/news.ts +2 -2
- package/lib/routes/ustc/eeis.ts +2 -2
- package/lib/routes/ustc/gs.ts +2 -2
- package/lib/routes/ustc/index.ts +2 -2
- package/lib/routes/ustc/job.ts +2 -2
- package/lib/routes/ustc/jwc.ts +2 -2
- package/lib/routes/ustc/math.ts +2 -2
- package/lib/routes/ustc/scms.ts +2 -2
- package/lib/routes/ustc/sist.ts +2 -2
- package/lib/routes/usts/jwch.ts +2 -2
- package/lib/routes/utgd/category.ts +2 -2
- package/lib/routes/utgd/topic.ts +1 -1
- package/lib/routes/utgd/utils.ts +1 -1
- package/lib/routes/uw/gix/news.ts +2 -2
- package/lib/routes/vcb-s/category.ts +2 -2
- package/lib/routes/vom/featured.ts +2 -2
- package/lib/routes/wainao/namespace.ts +8 -0
- package/lib/routes/wainao/templates/description.art +9 -0
- package/lib/routes/wainao/topics.ts +214 -0
- package/lib/routes/wainao/wainao-reads.ts +49 -0
- package/lib/routes/wallstreetcn/live.ts +2 -2
- package/lib/routes/wallstreetcn/news.ts +12 -12
- package/lib/routes/wechat/tgchannel.ts +4 -4
- package/lib/routes/weibo/friends.ts +1 -1
- package/lib/routes/weibo/group.ts +1 -1
- package/lib/routes/weibo/namespace.ts +1 -0
- package/lib/routes/weibo/timeline.ts +3 -1
- package/lib/routes/weibo/user-bookmarks.ts +1 -1
- package/lib/routes/weibo/user.ts +11 -3
- package/lib/routes/weibo/utils.ts +11 -3
- package/lib/routes/wfu/news.ts +4 -4
- package/lib/routes/whitehouse/news.ts +2 -2
- package/lib/routes/who/news-room.ts +6 -6
- package/lib/routes/who/news.ts +3 -3
- package/lib/routes/who/speeches.ts +3 -3
- package/lib/routes/whu/cs.ts +2 -2
- package/lib/routes/whu/gs/index.ts +2 -2
- package/lib/routes/whu/swrh.ts +3 -3
- package/lib/routes/wmpvp/index.ts +2 -2
- package/lib/routes/wohnnet/index.ts +129 -0
- package/lib/routes/wohnnet/namespace.ts +8 -0
- package/lib/routes/wordpress/util.ts +1 -1
- package/lib/routes/woshipm/popular.ts +2 -2
- package/lib/routes/wsj/news.ts +6 -6
- package/lib/routes/wsyu/news.ts +2 -2
- package/lib/routes/wtu/index.ts +2 -2
- package/lib/routes/wtu/job.ts +2 -2
- package/lib/routes/wyzxwk/article.ts +21 -21
- package/lib/routes/x6d/index.ts +17 -17
- package/lib/routes/xaufe/jiaowu.ts +2 -2
- package/lib/routes/xaut/index.ts +2 -2
- package/lib/routes/xaut/jwc.ts +3 -3
- package/lib/routes/xaut/rsc.ts +3 -3
- package/lib/routes/xiaoheihe/discount.ts +2 -2
- package/lib/routes/xiaoheihe/util.ts +1 -1
- package/lib/routes/xiaohongshu/util.ts +2 -2
- package/lib/routes/xiaoyuzhou/pickup.ts +1 -1
- package/lib/routes/xiaoyuzhou/podcast.ts +27 -27
- package/lib/routes/xidian/jwc.ts +2 -2
- package/lib/routes/xinpianchang/rank.ts +7 -7
- package/lib/routes/xjtu/2yuan/news.ts +11 -11
- package/lib/routes/xjtu/job.ts +3 -3
- package/lib/routes/xjtu/std.ts +2 -2
- package/lib/routes/xjtu/yz.ts +74 -0
- package/lib/routes/xjtu/zs.ts +170 -0
- package/lib/routes/xkb/index.ts +8 -8
- package/lib/routes/xmnn/epaper.ts +2 -2
- package/lib/routes/xsijishe/rank.ts +49 -17
- package/lib/routes/xsijishe/utils.ts +25 -0
- package/lib/routes/xueqiu/stock-info.ts +2 -2
- package/lib/routes/xueqiu/timeline.ts +3 -3
- package/lib/routes/xueqiu/user.ts +2 -2
- package/lib/routes/yande/post.ts +2 -2
- package/lib/routes/ycwb/index.ts +6 -6
- package/lib/routes/yicai/dt.ts +39 -39
- package/lib/routes/yicai/news.ts +26 -26
- package/lib/routes/yicai/video.ts +36 -36
- package/lib/routes/ymgal/article.ts +2 -2
- package/lib/routes/yomiuri/news.ts +18 -18
- package/lib/routes/youmemark/index.ts +88 -0
- package/lib/routes/youmemark/namespace.ts +7 -0
- package/lib/routes/youtube/channel.ts +40 -16
- package/lib/routes/youtube/charts.ts +30 -30
- package/lib/routes/youtube/community.ts +1 -1
- package/lib/routes/youtube/user.ts +38 -9
- package/lib/routes/youtube/utils.ts +17 -0
- package/lib/routes/youzhiyouxing/materials.ts +2 -2
- package/lib/routes/yuque/book.ts +2 -2
- package/lib/routes/yuque/utils.ts +1 -0
- package/lib/routes/yxdown/news.ts +2 -2
- package/lib/routes/yxdzqb/index.ts +2 -2
- package/lib/routes/yxrb/home.ts +2 -2
- package/lib/routes/yyets/article.ts +2 -2
- 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/zaobao/realtime.ts +2 -2
- package/lib/routes/zaobao/util.ts +12 -3
- package/lib/routes/zaobao/znews.ts +2 -2
- package/lib/routes/zaozao/article.ts +2 -2
- package/lib/routes/zcmu/jwc/index.ts +2 -2
- package/lib/routes/zcmu/yxy/index.ts +2 -2
- package/lib/routes/zcool/discover.ts +51 -51
- package/lib/routes/zhihu/answers.ts +26 -54
- package/lib/routes/zhihu/timeline.ts +1 -2
- package/lib/routes/zhihu/utils.ts +5 -5
- package/lib/routes/zhihu/zhuanlan.ts +1 -2
- package/lib/routes/zhitongcaijing/index.ts +15 -15
- package/lib/routes/zhonglun/index.ts +3 -3
- package/lib/routes/zimuxia/index.ts +2 -2
- package/lib/routes/zjol/paper.ts +2 -2
- package/lib/routes/zju/career/index.ts +2 -2
- package/lib/routes/zju/cst/custom.ts +2 -2
- package/lib/routes/zju/cst/index.ts +2 -2
- package/lib/routes/zju/grs/index.ts +2 -2
- package/lib/routes/zju/physics/index.ts +2 -2
- package/lib/routes/zsxq/group.ts +2 -2
- package/lib/routes/zsxq/utils.ts +1 -1
- package/lib/routes/zyw/hot.ts +2 -2
- package/lib/utils/otel/metric.ts +3 -3
- package/lib/utils/otel/trace.ts +16 -16
- package/lib/utils/puppeteer-utils.test.ts +2 -2
- package/lib/utils/puppeteer.test.ts +2 -2
- package/lib/utils/puppeteer.ts +2 -2
- package/lib/utils/timezone.ts +1 -1
- package/package.json +70 -69
- package/lib/routes/apnews/api.ts +0 -77
- package/lib/routes/coomer/artist.ts +0 -33
- package/lib/routes/coomer/posts.ts +0 -32
- package/lib/routes/coomer/utils.ts +0 -57
- package/lib/routes/gcores/category.ts +0 -171
- package/lib/routes/gcores/collection.ts +0 -161
- package/lib/routes/gcores/tag.ts +0 -158
- package/lib/routes/papers/index.ts +0 -136
- package/lib/routes/producthunt/templates/descImg.art +0 -5
- package/lib/routes-deprecated/chuapp/index.js +0 -54
- package/lib/routes-deprecated/ltaaa/index.js +0 -69
- 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
|
@@ -51,32 +51,32 @@ export const route: Route = {
|
|
|
51
51
|
handler,
|
|
52
52
|
description: `#### \`job_types\` list
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
| Full Time | Part Time | Contractor | All |
|
|
55
|
+
| --------- | --------- | ---------- | --- |
|
|
56
|
+
| F | P | C | all |
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
#### \`exp_levels\` list
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
| Intership | Entry Level | Associate | Mid-Senior Level | Director | All |
|
|
61
|
+
| --------- | ----------- | --------- | ---------------- | -------- | --- |
|
|
62
|
+
| 1 | 2 | 3 | 4 | 5 | all |
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
#### \`routeParams\` additional query parameters
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
##### \`f_WT\` list
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
| Onsite | Remote | Hybrid |
|
|
69
|
+
| ------ | ------- | ------ |
|
|
70
|
+
| 1 | 2 | 3 |
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
##### \`geoId\`
|
|
73
73
|
|
|
74
74
|
Geographic location ID. You can find this ID in the URL of a LinkedIn job search page that is filtered by location.
|
|
75
75
|
|
|
76
76
|
For example:
|
|
77
77
|
91000012 is the ID of East Asia.
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
##### \`f_TPR\`
|
|
80
80
|
|
|
81
81
|
Time posted range. Here are some possible values:
|
|
82
82
|
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Route } from '@/types';
|
|
2
|
+
import puppeteer from '@/utils/puppeteer';
|
|
3
|
+
import { load } from 'cheerio';
|
|
4
|
+
import { parseCompanyName, parseCompanyPosts, BASE_URL } from './utils';
|
|
5
|
+
import logger from '@/utils/logger';
|
|
6
|
+
|
|
7
|
+
export const route: Route = {
|
|
8
|
+
path: '/company/:company_id/posts',
|
|
9
|
+
categories: ['social-media'],
|
|
10
|
+
example: '/linkedin/company/google/posts',
|
|
11
|
+
parameters: { company_id: "Company's LinkedIn profile ID" },
|
|
12
|
+
description: "Get company's LinkedIn posts by company ID",
|
|
13
|
+
features: {
|
|
14
|
+
requireConfig: false,
|
|
15
|
+
requirePuppeteer: false,
|
|
16
|
+
antiCrawler: false,
|
|
17
|
+
supportRadar: false,
|
|
18
|
+
supportBT: false,
|
|
19
|
+
supportPodcast: false,
|
|
20
|
+
supportScihub: false,
|
|
21
|
+
},
|
|
22
|
+
name: 'Company Posts',
|
|
23
|
+
maintainers: ['saifazmi'],
|
|
24
|
+
handler: async (ctx) => {
|
|
25
|
+
const company_id = ctx.req.param('company_id');
|
|
26
|
+
|
|
27
|
+
// Puppeteer setup
|
|
28
|
+
const browser = await puppeteer();
|
|
29
|
+
const page = await browser.newPage();
|
|
30
|
+
await page.setRequestInterception(true);
|
|
31
|
+
|
|
32
|
+
page.on('request', (request) => {
|
|
33
|
+
request.resourceType() === 'document' ? request.continue() : request.abort();
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const url = new URL(`${BASE_URL}/company/${company_id}`);
|
|
37
|
+
|
|
38
|
+
logger.http(`Requesting ${url.href}`);
|
|
39
|
+
await page.goto(url.href, {
|
|
40
|
+
waitUntil: 'domcontentloaded',
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
const response = await page.content();
|
|
44
|
+
await page.close();
|
|
45
|
+
|
|
46
|
+
const $ = load(response);
|
|
47
|
+
const companyName = parseCompanyName($);
|
|
48
|
+
const posts = parseCompanyPosts($);
|
|
49
|
+
|
|
50
|
+
await browser.close();
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
title: `LinkedIn - ${companyName}'s Posts`,
|
|
54
|
+
link: url.href,
|
|
55
|
+
description: `This feed gets ${companyName}'s posts from LinkedIn`,
|
|
56
|
+
item: posts.map((post) => ({
|
|
57
|
+
title: post.text,
|
|
58
|
+
description: post.text,
|
|
59
|
+
link: post.link,
|
|
60
|
+
pubDate: post.date,
|
|
61
|
+
})),
|
|
62
|
+
};
|
|
63
|
+
},
|
|
64
|
+
};
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { load } from 'cheerio';
|
|
2
2
|
import { Job } from './models';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Constants
|
|
6
7
|
*/
|
|
8
|
+
const BASE_URL = 'https://www.linkedin.com';
|
|
9
|
+
|
|
7
10
|
const KEYWORDS_QUERY_KEY = 'keywords';
|
|
8
11
|
|
|
9
12
|
const JOB_TYPES_QUERY_KEY = 'f_JT';
|
|
@@ -123,4 +126,75 @@ const parseRouteParam = (searchParam: string | null): string => {
|
|
|
123
126
|
return encodeURIComponent(searchParam.split(',').join('-'));
|
|
124
127
|
};
|
|
125
128
|
|
|
126
|
-
|
|
129
|
+
/**
|
|
130
|
+
* Parse company profile page for posts
|
|
131
|
+
* Example page: https://www.linkedin.com/company/google/
|
|
132
|
+
*
|
|
133
|
+
* @param {Cheerio} $ HTML string of company profile page
|
|
134
|
+
* @returns {Array<JSON>} Array of company posts
|
|
135
|
+
*/
|
|
136
|
+
function parseCompanyPosts($) {
|
|
137
|
+
const posts = $('ul.updates__list > li')
|
|
138
|
+
.toArray() // Convert the Cheerio object to a plain array
|
|
139
|
+
.map((elem) => {
|
|
140
|
+
const elemHtml = $(elem);
|
|
141
|
+
const link = elemHtml.find('a.main-feed-card__overlay-link').attr('href');
|
|
142
|
+
const text = elemHtml.find('p.attributed-text-segment-list__content').text().trim();
|
|
143
|
+
const date = parseRelativeShorthandDate(elemHtml.find('time').text().trim());
|
|
144
|
+
|
|
145
|
+
return { link, text, date };
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
return posts;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Parse company profile page for its name
|
|
153
|
+
* Example page: https://www.linkedin.com/company/google/
|
|
154
|
+
*
|
|
155
|
+
* @param {Cheerio} $ HTML string of company profile page
|
|
156
|
+
* @returns {String} Company name
|
|
157
|
+
*/
|
|
158
|
+
function parseCompanyName($) {
|
|
159
|
+
return $('h1.top-card-layout__title').text().trim();
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Parse relative date shorthand string into a Date object
|
|
164
|
+
*
|
|
165
|
+
* @param {String} shorthand The shorthand string representing the date
|
|
166
|
+
* @returns {Date|null} The parsed date or null if the format is invalid
|
|
167
|
+
*/
|
|
168
|
+
function parseRelativeShorthandDate(shorthand) {
|
|
169
|
+
const match = shorthand.match(/^(\d+)([wdmyh])$/);
|
|
170
|
+
if (!match) {
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
const [, amount, unit] = match;
|
|
175
|
+
const unitMap = {
|
|
176
|
+
w: 'week',
|
|
177
|
+
d: 'day',
|
|
178
|
+
m: 'month',
|
|
179
|
+
y: 'year',
|
|
180
|
+
h: 'hour',
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
return dayjs().subtract(Number.parseInt(amount), unitMap[unit]);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export {
|
|
187
|
+
parseCompanyPosts,
|
|
188
|
+
parseCompanyName,
|
|
189
|
+
parseParamsToSearchParams,
|
|
190
|
+
parseParamsToString,
|
|
191
|
+
parseJobDetail,
|
|
192
|
+
parseJobSearch,
|
|
193
|
+
parseRouteParam,
|
|
194
|
+
BASE_URL,
|
|
195
|
+
JOB_TYPES,
|
|
196
|
+
JOB_TYPES_QUERY_KEY,
|
|
197
|
+
EXP_LEVELS,
|
|
198
|
+
EXP_LEVELS_QUERY_KEY,
|
|
199
|
+
KEYWORDS_QUERY_KEY,
|
|
200
|
+
};
|
package/lib/routes/lofter/tag.ts
CHANGED
|
@@ -21,8 +21,8 @@ export const route: Route = {
|
|
|
21
21
|
maintainers: ['hoilc', 'nczitzk', 'LucunJi'],
|
|
22
22
|
handler,
|
|
23
23
|
description: `| new | date | week | month | total |
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
| ---- | ---- | ---- | ----- | ----- |
|
|
25
|
+
| 最新 | 日榜 | 周榜 | 月榜 | 总榜 |`,
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
async function handler(ctx) {
|
|
@@ -27,8 +27,8 @@ export const route: Route = {
|
|
|
27
27
|
maintainers: ['nczitzk'],
|
|
28
28
|
handler,
|
|
29
29
|
description: `| 罗戈研究出品 | 物流报告 | 绿色双碳报告 |
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
| ------------ | -------------- | --------------------- |
|
|
31
|
+
| Report | IndustryReport | GreenDualCarbonReport |`,
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
async function handler(ctx) {
|
package/lib/routes/loltw/news.ts
CHANGED
|
@@ -25,8 +25,8 @@ export const route: Route = {
|
|
|
25
25
|
maintainers: ['hoilc'],
|
|
26
26
|
handler,
|
|
27
27
|
description: `| 活动 | 资讯 | 系统 | 电竞 | 版本资讯 | 战棋资讯 |
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
| ----- | ---- | ------ | ------ | -------- | -------- |
|
|
29
|
+
| event | info | system | esport | patch | TFTpatch |`,
|
|
30
30
|
};
|
|
31
31
|
|
|
32
32
|
async function handler(ctx) {
|
|
@@ -40,12 +40,12 @@ export const route: Route = {
|
|
|
40
40
|
handler,
|
|
41
41
|
url: 'www.lovelive-anime.jp/',
|
|
42
42
|
description: `| Sub-project Name | All Projects | Lovelive! | Lovelive! Sunshine!! | Lovelive! Nijigasaki High School Idol Club | Lovelive! Superstar!! | 蓮ノ空女学院 | 幻日のヨハネ | ラブライブ!スクールアイドルミュージカル |
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
| -------------------------------- | -------------- | ----------- | -------------------- | ------------------------------------------ | --------------------- | ------------ | ------------ | ---------------------------------------- |
|
|
44
|
+
| \`abbr\`parameter | <u>*No parameter*</u> | lovelive | sunshine | nijigasaki | superstar | hasunosora | yohane | musical |
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
| Category Name | 全てのニュース | 音楽商品 | アニメ映像商品 | キャスト映像商品 | 劇場 | アニメ放送 / 配信 | キャスト配信 / ラジオ | ライブ / イベント | ブック | グッズ | ゲーム | メディア | ご当地情報 | キャンペーン | その他 |
|
|
47
|
+
| ------------------- | --------------------- | -------- | -------------- | ---------------- | ------- | ----------------- | --------------------- | ----------------- | ------ | ------ | ------ | -------- | ---------- | ------ | ------------ |
|
|
48
|
+
| \`category\`parameter | <u>*No parameter*</u> | music | anime_movie | cast_movie | theater | onair | radio | event | books | goods | game | media | local | campaign | other |`,
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
async function handler(ctx) {
|
|
@@ -32,12 +32,12 @@ export const route: Route = {
|
|
|
32
32
|
maintainers: ['axojhf'],
|
|
33
33
|
handler,
|
|
34
34
|
description: `| Sub-project Name (not full name) | Lovelive! | Lovelive! Sunshine!! | Lovelive! Nijigasaki High School Idol Club | Lovelive! Superstar!! | 幻日のヨハネ | ラブライブ!スクールアイドルミュージカル |
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
| -------------------------------- | ----------- | -------------------- | ------------------------------------------ | --------------------- | ------------ | ---------------------------------------- |
|
|
36
|
+
| \`abbr\`parameter | otonokizaka | uranohoshi | nijigasaki | yuigaoka | yohane | musical |
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
| Category Name | 全てのニュース | 音楽商品 | アニメ映像商品 | キャスト映像商品 | 劇場 | アニメ放送 / 配信 | キャスト配信 / ラジオ | ライブ / イベント | ブック | グッズ | ゲーム | メディア | ご当地情報 | その他 | キャンペーン |
|
|
39
|
+
| ------------------- | --------------------- | -------- | -------------- | ---------------- | ------- | ----------------- | --------------------- | ----------------- | ------ | ------ | ------ | -------- | ---------- | ------ | ------------ |
|
|
40
|
+
| \`category\`parameter | <u>*No parameter*</u> | music | anime\_movie | cast\_movie | theater | onair | radio | event | books | goods | game | media | local | other | campaign |`,
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
async function handler(ctx) {
|
|
@@ -120,17 +120,17 @@ export const route: Route = {
|
|
|
120
120
|
description: `::: tip
|
|
121
121
|
If you subscribe to [Системные программы](https://lrepacks.net/repaki-sistemnyh-programm/),where the URL is \`https://lrepacks.net/repaki-sistemnyh-programm/\`, extract the part \`https://lrepacks.net/\` to the end, which is \`repaki-sistemnyh-programm\`, and use it as the parameter to fill in. Therefore, the route will be [\`/lrepacks/repaki-sistemnyh-programm\`](https://rsshub.app/lrepacks/repaki-sistemnyh-programm).
|
|
122
122
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
123
|
+
| Category | ID |
|
|
124
|
+
| ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
125
|
+
| [Новые репаки на сегодня](https://lrepacks.net/novye-repaki-elchupacabra/) | [novye-repaki-elchupacabra](https://rsshub.app/lrepacks/novye-repaki-elchupacabra) |
|
|
126
|
+
| [Системные программы](https://lrepacks.net/repaki-sistemnyh-programm/) | [repaki-sistemnyh-programm](https://rsshub.app/lrepacks/repaki-sistemnyh-programm) |
|
|
127
|
+
| [Программы для графики](https://lrepacks.net/repaki-programm-dlya-grafiki/) | [repaki-programm-dlya-grafiki](https://rsshub.app/lrepacks/repaki-programm-dlya-grafiki) |
|
|
128
|
+
| [Программы для интернета](https://lrepacks.net/repaki-programm-dlya-interneta/) | [repaki-programm-dlya-interneta](https://rsshub.app/lrepacks/repaki-programm-dlya-interneta) |
|
|
129
|
+
| [Мультимедиа программы](https://lrepacks.net/repaki-multimedia-programm/) | [repaki-multimedia-programm](https://rsshub.app/lrepacks/repaki-multimedia-programm) |
|
|
130
|
+
| [Программы для офиса](https://lrepacks.net/repaki-programm-dlya-ofisa/) | [repaki-programm-dlya-ofisa](https://rsshub.app/lrepacks/repaki-programm-dlya-ofisa) |
|
|
131
|
+
| [Разные программы](https://lrepacks.net/repaki-raznyh-programm/) | [repaki-raznyh-programm](https://rsshub.app/lrepacks/repaki-raznyh-programm) |
|
|
132
|
+
| [Системные библиотеки](https://lrepacks.net/sistemnye-biblioteki/) | [sistemnye-biblioteki](https://rsshub.app/lrepacks/sistemnye-biblioteki) |
|
|
133
|
+
| [Важная информация](https://lrepacks.net/informaciya/) | [informaciya](https://rsshub.app/lrepacks/informaciya) |
|
|
134
134
|
:::`,
|
|
135
135
|
categories: ['program-update'],
|
|
136
136
|
|
|
@@ -27,8 +27,8 @@ export const route: Route = {
|
|
|
27
27
|
handler,
|
|
28
28
|
url: 'lsnu.edu.cn/',
|
|
29
29
|
description: `| 实践教学科 | 教育运行科 | 教研教改科 | 学籍管理科 | 考试科 | 教材建设管理科 |
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
| ---------- | ---------- | ---------- | ---------- | ------ | -------------- |
|
|
31
|
+
| sjjxk | jxyxk | jyjgk | xjglk | ksk | jcjsglk |`,
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
async function handler(ctx) {
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { type Data, type DataItem, type Route, ViewType } from '@/types';
|
|
2
|
+
|
|
3
|
+
import { art } from '@/utils/render';
|
|
4
|
+
import cache from '@/utils/cache';
|
|
5
|
+
import { getCurrentPath } from '@/utils/helpers';
|
|
6
|
+
import ofetch from '@/utils/ofetch';
|
|
7
|
+
import { parseDate } from '@/utils/parse-date';
|
|
8
|
+
|
|
9
|
+
import { type CheerioAPI, type Cheerio, type Element, load } from 'cheerio';
|
|
10
|
+
import { type Context } from 'hono';
|
|
11
|
+
import path from 'node:path';
|
|
12
|
+
|
|
13
|
+
const __dirname = getCurrentPath(import.meta.url);
|
|
14
|
+
|
|
15
|
+
export const handler = async (ctx: Context): Promise<Data> => {
|
|
16
|
+
const limit: number = Number.parseInt(ctx.req.query('limit') ?? '30', 10);
|
|
17
|
+
|
|
18
|
+
const baseUrl: string = 'https://www.ltaaa.cn';
|
|
19
|
+
const targetUrl: string = new URL('article', baseUrl).href;
|
|
20
|
+
|
|
21
|
+
const response = await ofetch(targetUrl);
|
|
22
|
+
const $: CheerioAPI = load(response);
|
|
23
|
+
const language = $('html').attr('lang') ?? 'zh-CN';
|
|
24
|
+
|
|
25
|
+
let items: DataItem[] = [];
|
|
26
|
+
|
|
27
|
+
items = $('ul.wlist li')
|
|
28
|
+
.slice(0, limit)
|
|
29
|
+
.toArray()
|
|
30
|
+
.map((el): Element => {
|
|
31
|
+
const $el: Cheerio<Element> = $(el);
|
|
32
|
+
|
|
33
|
+
const $aEl: Cheerio<Element> = $el.find('div.li-title a');
|
|
34
|
+
|
|
35
|
+
const title: string = $aEl.text();
|
|
36
|
+
const description: string = art(path.join(__dirname, 'templates/description.art'), {
|
|
37
|
+
intro: $el.find('div.dbody p').first().text(),
|
|
38
|
+
});
|
|
39
|
+
const pubDateStr: string | undefined = $el.find('i.icon-time').next().text().trim();
|
|
40
|
+
const linkUrl: string | undefined = $aEl.attr('href');
|
|
41
|
+
const authorEls: Element[] = $el.find('i.icon-user').parent().find('a').toArray();
|
|
42
|
+
const authors: DataItem['author'] = authorEls.map((authorEl) => {
|
|
43
|
+
const $authorEl: Cheerio<Element> = $(authorEl);
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
name: $authorEl.text(),
|
|
47
|
+
url: new URL($authorEl.attr('href') ?? '', baseUrl).href,
|
|
48
|
+
avatar: undefined,
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
const image: string | undefined = $el.find('div.li-thumb img').attr('src');
|
|
52
|
+
const upDatedStr: string | undefined = pubDateStr;
|
|
53
|
+
|
|
54
|
+
const processedItem: DataItem = {
|
|
55
|
+
title,
|
|
56
|
+
description,
|
|
57
|
+
pubDate: pubDateStr ? parseDate(pubDateStr) : undefined,
|
|
58
|
+
link: linkUrl ? new URL(linkUrl, baseUrl).href : undefined,
|
|
59
|
+
author: authors,
|
|
60
|
+
content: {
|
|
61
|
+
html: description,
|
|
62
|
+
text: description,
|
|
63
|
+
},
|
|
64
|
+
image,
|
|
65
|
+
banner: image,
|
|
66
|
+
updated: upDatedStr ? parseDate(upDatedStr) : undefined,
|
|
67
|
+
language,
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
return processedItem;
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
items = (
|
|
74
|
+
await Promise.all(
|
|
75
|
+
items.map((item) => {
|
|
76
|
+
if (!item.link) {
|
|
77
|
+
return item;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return cache.tryGet(item.link, async (): Promise<DataItem> => {
|
|
81
|
+
const detailResponse = await ofetch(item.link);
|
|
82
|
+
const $$: CheerioAPI = load(detailResponse);
|
|
83
|
+
|
|
84
|
+
const title: string = $$('div.post-title').text();
|
|
85
|
+
|
|
86
|
+
const pubDateStr: string | undefined = $$('i.icon-time').next().text().trim();
|
|
87
|
+
const categoryEls: Element[] = $$('span.keywords a').toArray();
|
|
88
|
+
const categories: string[] = [...new Set(categoryEls.map((el) => $$(el).text()).filter(Boolean))];
|
|
89
|
+
const authorEls: Element[] = $$('i.icon-user').first().nextAll('a').toArray();
|
|
90
|
+
const authors: DataItem['author'] = authorEls.map((authorEl) => {
|
|
91
|
+
const $$authorEl: Cheerio<Element> = $$(authorEl);
|
|
92
|
+
|
|
93
|
+
return {
|
|
94
|
+
name: $$authorEl.text(),
|
|
95
|
+
url: new URL($$authorEl.attr('href') ?? '', baseUrl).href,
|
|
96
|
+
avatar: undefined,
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
const upDatedStr: string | undefined = pubDateStr;
|
|
100
|
+
|
|
101
|
+
$$('div.post-tip').each((_, el) => {
|
|
102
|
+
const $$el: Cheerio<Element> = $$(el);
|
|
103
|
+
const content: string = $$el.html() ?? '';
|
|
104
|
+
|
|
105
|
+
if (content) {
|
|
106
|
+
$$el.replaceWith(`<h1>${content}</h1>`);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
$$('div.post-param, div.post-title, div.post-keywords').remove();
|
|
110
|
+
$$('div.attitude, div.clear').remove();
|
|
111
|
+
|
|
112
|
+
const description: string = art(path.join(__dirname, 'templates/description.art'), {
|
|
113
|
+
description: $$('div.post-body').html(),
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
const processedItem: DataItem = {
|
|
117
|
+
title,
|
|
118
|
+
description,
|
|
119
|
+
pubDate: pubDateStr ? parseDate(pubDateStr) : item.pubDate,
|
|
120
|
+
category: categories,
|
|
121
|
+
author: authors,
|
|
122
|
+
content: {
|
|
123
|
+
html: description,
|
|
124
|
+
text: description,
|
|
125
|
+
},
|
|
126
|
+
updated: upDatedStr ? parseDate(upDatedStr) : item.updated,
|
|
127
|
+
language,
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
return {
|
|
131
|
+
...item,
|
|
132
|
+
...processedItem,
|
|
133
|
+
};
|
|
134
|
+
});
|
|
135
|
+
})
|
|
136
|
+
)
|
|
137
|
+
).filter((_): _ is DataItem => true);
|
|
138
|
+
|
|
139
|
+
const title: string = $('title').text();
|
|
140
|
+
|
|
141
|
+
return {
|
|
142
|
+
title,
|
|
143
|
+
description: $('meta[name="description"]').attr('content'),
|
|
144
|
+
link: targetUrl,
|
|
145
|
+
item: items,
|
|
146
|
+
allowEmpty: true,
|
|
147
|
+
image: new URL('static/home/images/logo.png', baseUrl).href,
|
|
148
|
+
author: title.split(/-/).pop(),
|
|
149
|
+
language,
|
|
150
|
+
id: targetUrl,
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
export const route: Route = {
|
|
155
|
+
path: '/article',
|
|
156
|
+
name: '网站翻译',
|
|
157
|
+
url: 'www.ltaaa.cn',
|
|
158
|
+
maintainers: ['nczitzk'],
|
|
159
|
+
handler,
|
|
160
|
+
example: '/ltaaa/article',
|
|
161
|
+
parameters: undefined,
|
|
162
|
+
description: undefined,
|
|
163
|
+
categories: ['new-media'],
|
|
164
|
+
features: {
|
|
165
|
+
requireConfig: false,
|
|
166
|
+
requirePuppeteer: false,
|
|
167
|
+
antiCrawler: false,
|
|
168
|
+
supportRadar: true,
|
|
169
|
+
supportBT: false,
|
|
170
|
+
supportPodcast: false,
|
|
171
|
+
supportScihub: false,
|
|
172
|
+
},
|
|
173
|
+
radar: [
|
|
174
|
+
{
|
|
175
|
+
source: ['www.ltaaa.cn/article'],
|
|
176
|
+
target: '/article',
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
view: ViewType.Articles,
|
|
180
|
+
};
|
package/lib/routes/lvv2/news.ts
CHANGED
|
@@ -46,12 +46,12 @@ export const route: Route = {
|
|
|
46
46
|
maintainers: ['Fatpandac'],
|
|
47
47
|
handler,
|
|
48
48
|
description: `| 热门 | 最新 | 得分 | 24 小时榜 |
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
| :------: | :------: | :--------: | :-----------: |
|
|
50
|
+
| sort-hot | sort-new | sort-score | sort-realtime |
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
| 排序方式 | 一小时内 | 一天内 | 一个周内 | 一个月内 |
|
|
53
|
+
| :------: | :------: | :----: | :------: | :------: |
|
|
54
|
+
| | t-hour | t-day | t-week | t-month |`,
|
|
55
55
|
};
|
|
56
56
|
|
|
57
57
|
async function handler(ctx) {
|
package/lib/routes/lvv2/top.ts
CHANGED
|
@@ -46,12 +46,12 @@ export const route: Route = {
|
|
|
46
46
|
maintainers: ['Fatpandac'],
|
|
47
47
|
handler,
|
|
48
48
|
description: `| 热门 | 最新 | 得分 | 24 小时榜 |
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
| :------: | :------: | :--------: | :-----------: |
|
|
50
|
+
| sort-hot | sort-new | sort-score | sort-realtime |
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
| 排序方式 | 一小时内 | 一天内 | 一个周内 | 一个月内 |
|
|
53
|
+
| :------: | :------: | :----: | :------: | :------: |
|
|
54
|
+
| | t-hour | t-day | t-week | t-month |`,
|
|
55
55
|
};
|
|
56
56
|
|
|
57
57
|
async function handler(ctx) {
|
|
@@ -41,15 +41,15 @@ export const route: Route = {
|
|
|
41
41
|
maintainers: ['quiniapiezoelectricity'],
|
|
42
42
|
handler,
|
|
43
43
|
description: `
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
| Language | English | Bahasa Malaysia | 华文 |
|
|
45
|
+
| -------- | ------ | ------- | ------ |
|
|
46
|
+
| \`:lang\` | \`en\` | \`my\` | \`zh\` |
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
| Category | \`:category\` |
|
|
49
|
+
| ---------------------- | ------------- |
|
|
50
|
+
| News | \`news\` |
|
|
51
|
+
| Columns | \`columns\` |
|
|
52
|
+
| From Our Readers | \`letters\` |`,
|
|
53
53
|
radar: [
|
|
54
54
|
{
|
|
55
55
|
source: ['malaysiakini.com/'],
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Route } from '@/types';
|
|
2
|
+
import { namespace } from './namespace';
|
|
3
|
+
import ofetch from '@/utils/ofetch';
|
|
4
|
+
import cache from '@/utils/cache';
|
|
5
|
+
import { load } from 'cheerio';
|
|
6
|
+
import { parseDate } from '@/utils/parse-date';
|
|
7
|
+
|
|
8
|
+
const baseUrl = `https://${namespace.url}`;
|
|
9
|
+
|
|
10
|
+
export const route: Route = {
|
|
11
|
+
path: '/:lang',
|
|
12
|
+
categories: ['blog'],
|
|
13
|
+
example: '/mashiro/en',
|
|
14
|
+
parameters: { lang: 'the language of the site. Can be either `en` or `zh-cn`. Default: `en`' },
|
|
15
|
+
radar: [
|
|
16
|
+
{
|
|
17
|
+
source: ['mashiro.best/', 'mashiro.best/:lang/'],
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
name: `Blog`,
|
|
21
|
+
maintainers: ['MuenYu'],
|
|
22
|
+
handler: async (ctx) => {
|
|
23
|
+
const { lang = 'en' } = ctx.req.param();
|
|
24
|
+
const targetLink = lang === 'en' ? `${baseUrl}/archives/` : `${baseUrl}/${lang}/archives/`;
|
|
25
|
+
const response = await ofetch(targetLink);
|
|
26
|
+
const $ = load(response);
|
|
27
|
+
const links = $('.archives-group article')
|
|
28
|
+
.toArray()
|
|
29
|
+
.slice(0, 10)
|
|
30
|
+
.map((item) => {
|
|
31
|
+
item = $(item);
|
|
32
|
+
const a = item.find('a').first();
|
|
33
|
+
|
|
34
|
+
const title = a.find('.article-title').text();
|
|
35
|
+
const link = `${baseUrl}${a.attr('href')}`;
|
|
36
|
+
const pubDate = parseDate(a.find('time').attr('datetime'));
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
title,
|
|
40
|
+
link,
|
|
41
|
+
pubDate,
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const items = await Promise.all(
|
|
46
|
+
links.map((item) =>
|
|
47
|
+
cache.tryGet(item.link, async () => {
|
|
48
|
+
const response = await ofetch(item.link);
|
|
49
|
+
const $ = load(response);
|
|
50
|
+
item.description = $('.article-content').first().html();
|
|
51
|
+
return item;
|
|
52
|
+
})
|
|
53
|
+
)
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
return {
|
|
57
|
+
title: namespace.name,
|
|
58
|
+
link: targetLink,
|
|
59
|
+
item: items,
|
|
60
|
+
};
|
|
61
|
+
},
|
|
62
|
+
};
|