From 156b58d780d78b80d7744b7a068683ba210a5779 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Wed, 6 Mar 2024 23:39:15 +0800 Subject: [PATCH] feat: replace require with import 1/n --- lib/routes/163/dy.ts | 2 +- lib/routes/163/dy2.ts | 2 +- lib/routes/163/utils.ts | 4 +- lib/routes/18comic/album.ts | 2 +- lib/routes/18comic/blogs.ts | 2 +- lib/routes/18comic/index.ts | 2 +- lib/routes/18comic/search.ts | 2 +- lib/routes/18comic/utils.ts | 102 +++-- lib/routes/1point3acres/category.ts | 2 +- lib/routes/1point3acres/section.ts | 2 +- lib/routes/1point3acres/thread.ts | 2 +- lib/routes/1point3acres/utils.ts | 105 +++-- lib/routes/36kr/hot-list.ts | 2 +- lib/routes/36kr/index.ts | 2 +- lib/routes/36kr/utils.ts | 53 ++- lib/routes/3dmgame/game.ts | 2 +- lib/routes/3dmgame/news-center.ts | 2 +- lib/routes/3dmgame/utils.ts | 4 +- lib/routes/4gamers/category.ts | 2 +- lib/routes/4gamers/tag.ts | 2 +- lib/routes/4gamers/topic.ts | 2 +- lib/routes/4gamers/utils.ts | 8 +- lib/routes/500px/tribe-set.ts | 2 +- lib/routes/500px/user.ts | 2 +- lib/routes/500px/utils.ts | 9 +- lib/routes/56kog/class.ts | 2 +- lib/routes/56kog/top.ts | 2 +- lib/routes/56kog/util.ts | 5 +- lib/routes/5eplay/index.ts | 2 +- lib/routes/5eplay/utils.ts | 4 +- lib/routes/6v123/latest-movies.ts | 2 +- lib/routes/6v123/latest-tvseries.ts | 2 +- lib/routes/8kcos/cat.ts | 2 +- lib/routes/8kcos/const.ts | 8 +- lib/routes/8kcos/latest.ts | 2 +- lib/routes/8kcos/tag.ts | 2 +- lib/routes/91porn/author.ts | 2 +- lib/routes/91porn/index.ts | 2 +- lib/routes/91porn/utils.ts | 4 +- lib/routes/95mm/category.ts | 2 +- lib/routes/95mm/tab.ts | 2 +- lib/routes/95mm/tag.ts | 2 +- lib/routes/95mm/utils.ts | 91 +++-- lib/routes/9to5/utils.ts | 4 +- lib/routes/aeon/category.ts | 2 +- lib/routes/aeon/type.ts | 2 +- lib/routes/aeon/utils.ts | 4 +- lib/routes/agefans/detail.ts | 2 +- lib/routes/agefans/update.ts | 2 +- lib/routes/agefans/utils.ts | 4 +- lib/routes/agirls/index.ts | 2 +- lib/routes/agirls/topic-list.ts | 2 +- lib/routes/agirls/topic.ts | 2 +- lib/routes/agirls/utils.ts | 5 +- lib/routes/aijishu/utils.ts | 4 +- lib/routes/ainvest/article.ts | 2 +- lib/routes/ainvest/news.ts | 2 +- lib/routes/ainvest/utils.ts | 7 +- lib/routes/aip/journal-pupp.ts | 2 +- lib/routes/aip/journal.ts | 2 +- lib/routes/aip/utils.ts | 5 +- lib/routes/aisixiang/column.ts | 2 +- lib/routes/aisixiang/thinktank.ts | 2 +- lib/routes/aisixiang/toplist.ts | 2 +- lib/routes/aisixiang/utils.ts | 6 +- lib/routes/aisixiang/zhuanti.ts | 2 +- lib/routes/alistapart/index.ts | 2 +- lib/routes/alistapart/topic.ts | 2 +- lib/routes/alistapart/utils.ts | 2 +- lib/routes/alternativeto/platform.ts | 2 +- lib/routes/alternativeto/software.ts | 2 +- lib/routes/alternativeto/utils.ts | 5 +- lib/routes/arcteryx/new-arrivals.ts | 2 +- lib/routes/arcteryx/outlet.ts | 2 +- lib/routes/arcteryx/utils.ts | 4 +- lib/routes/baai/comments.ts | 2 +- lib/routes/baai/events.ts | 2 +- lib/routes/baai/hub.ts | 2 +- lib/routes/baai/utils.ts | 8 +- lib/routes/bangumi/tv/subject/ep.ts | 2 +- .../bangumi/tv/subject/offcial-subject-api.ts | 2 +- lib/routes/bangumi/tv/subject/utils.ts | 4 +- lib/routes/bbc/utils.ts | 4 +- lib/routes/bilibili/article.ts | 2 +- lib/routes/bilibili/cache.ts | 4 +- lib/routes/bilibili/coin.ts | 4 +- lib/routes/bilibili/danmaku.ts | 2 +- lib/routes/bilibili/dynamic.ts | 4 +- lib/routes/bilibili/fav.ts | 2 +- lib/routes/bilibili/followers.ts | 2 +- lib/routes/bilibili/followings-article.ts | 2 +- lib/routes/bilibili/followings-dynamic.ts | 4 +- lib/routes/bilibili/followings-video.ts | 4 +- lib/routes/bilibili/followings.ts | 2 +- lib/routes/bilibili/hot-search.ts | 4 +- lib/routes/bilibili/like.ts | 4 +- lib/routes/bilibili/live-room.ts | 2 +- lib/routes/bilibili/live-search.ts | 4 +- lib/routes/bilibili/manga-followings.ts | 2 +- lib/routes/bilibili/page.ts | 2 +- lib/routes/bilibili/partion-ranking.ts | 2 +- lib/routes/bilibili/partion.ts | 2 +- lib/routes/bilibili/popular.ts | 2 +- lib/routes/bilibili/ranking.ts | 2 +- lib/routes/bilibili/reply.ts | 2 +- lib/routes/bilibili/user-bangumi.ts | 2 +- lib/routes/bilibili/user-channel.ts | 4 +- lib/routes/bilibili/user-collection.ts | 4 +- lib/routes/bilibili/user-fav.ts | 4 +- lib/routes/bilibili/utils.ts | 6 +- lib/routes/bilibili/video-all.ts | 4 +- lib/routes/bilibili/video.ts | 4 +- lib/routes/bilibili/vsearch.ts | 2 +- lib/routes/bilibili/watchlater.ts | 4 +- lib/routes/bilibili/weekly-recommend.ts | 2 +- lib/routes/bit/cs/utils.ts | 4 +- lib/routes/bit/jwc/utils.ts | 4 +- lib/routes/bjfu/it/utils.ts | 4 +- lib/routes/bjfu/jwc/utils.ts | 4 +- lib/routes/bjfu/news/utils.ts | 4 +- lib/routes/bloomberg/authors.ts | 2 +- lib/routes/bloomberg/index.ts | 2 +- lib/routes/bloomberg/utils.ts | 7 +- lib/routes/bsky/posts.ts | 2 +- lib/routes/bsky/utils.ts | 6 +- lib/routes/byteclicks/index.ts | 2 +- lib/routes/byteclicks/tag.ts | 2 +- lib/routes/byteclicks/utils.ts | 4 +- lib/routes/caai/index.ts | 2 +- lib/routes/caai/utils.ts | 2 +- lib/routes/caareviews/book.ts | 2 +- lib/routes/caareviews/essay.ts | 2 +- lib/routes/caareviews/exhibition.ts | 2 +- lib/routes/caareviews/utils.ts | 6 +- lib/routes/caixin/article.ts | 2 +- lib/routes/caixin/blog.ts | 2 +- lib/routes/caixin/category.ts | 2 +- lib/routes/caixin/utils.ts | 5 +- lib/routes/cbaigui/index.ts | 2 +- lib/routes/cbaigui/utils.ts | 6 +- lib/routes/ccac/utils.ts | 8 +- lib/routes/ccf/tfbd/utils.ts | 2 +- lib/routes/cde/utils.ts | 6 +- lib/routes/cebbank/utils.ts | 4 +- lib/routes/chinafactcheck/utils.ts | 2 +- lib/routes/chinamoney/channels.ts | 4 +- lib/routes/chinamoney/notice.ts | 2 +- lib/routes/cls/depth.ts | 2 +- lib/routes/cls/hot.ts | 2 +- lib/routes/cls/telegraph.ts | 2 +- lib/routes/cls/utils.ts | 5 +- lib/routes/cnbeta/type.ts | 2 +- lib/routes/cnbeta/utils.ts | 33 +- lib/routes/cnki/journals.ts | 2 +- lib/routes/cnki/utils.ts | 4 +- lib/routes/coolapk/utils.ts | 8 +- lib/routes/creative-comic/book.ts | 2 +- lib/routes/creative-comic/utils.ts | 12 +- lib/routes/crossbell/notes/character.ts | 2 +- lib/routes/crossbell/notes/index.ts | 2 +- lib/routes/crossbell/notes/source.ts | 2 +- lib/routes/crossbell/notes/utils.ts | 2 +- lib/routes/csu/career.ts | 2 +- lib/routes/csu/utils.ts | 4 +- lib/routes/cw/author.ts | 2 +- lib/routes/cw/master.ts | 2 +- lib/routes/cw/sub.ts | 2 +- lib/routes/cw/today.ts | 2 +- lib/routes/cw/utils.ts | 12 +- lib/routes/cyzone/author.ts | 2 +- lib/routes/cyzone/index.ts | 2 +- lib/routes/cyzone/label.ts | 2 +- lib/routes/cyzone/util.ts | 8 +- lib/routes/dahecube/utils.ts | 5 +- lib/routes/daily/discussed.ts | 2 +- lib/routes/daily/index.ts | 2 +- lib/routes/daily/upvoted.ts | 2 +- lib/routes/daily/utils.ts | 2 +- lib/routes/dapenti/utils.ts | 2 +- lib/routes/dcard/utils.ts | 4 +- lib/routes/dcfever/news.ts | 2 +- lib/routes/dcfever/reviews.ts | 2 +- lib/routes/dcfever/trading-search.ts | 2 +- lib/routes/dcfever/trading.ts | 2 +- lib/routes/dcfever/utils.ts | 6 +- lib/routes/discord/channel.ts | 2 +- lib/routes/discord/discord-api.ts | 8 +- lib/routes/discourse/notifications.ts | 2 +- lib/routes/discourse/posts.ts | 2 +- lib/routes/discourse/utils.ts | 4 +- lib/routes/dlnews/category.ts | 2 +- lib/routes/dlnews/utils.ts | 2 +- lib/routes/dlsite/index.ts | 2 +- lib/routes/dlsite/utils.ts | 4 +- lib/routes/dockerhub/build.ts | 2 +- lib/routes/dockerhub/tag.ts | 2 +- lib/routes/dockerhub/utils.ts | 2 +- lib/routes/domp4/detail.ts | 2 +- lib/routes/domp4/latest.ts | 2 +- lib/routes/domp4/utils.ts | 9 +- lib/routes/dongqiudi/utils.ts | 9 +- lib/routes/douyin/hashtag.ts | 2 +- lib/routes/douyin/live.ts | 2 +- lib/routes/douyin/user.ts | 2 +- lib/routes/douyin/utils.ts | 8 +- lib/routes/dribbble/utils.ts | 4 +- lib/routes/dut/defaults.ts | 2 +- lib/routes/dut/shortcuts.ts | 2 +- lib/routes/dxy/special.ts | 2 +- lib/routes/dxy/utils.ts | 8 +- lib/routes/ehentai/ehapi.ts | 2 +- lib/routes/embassy/supported-list.ts | 2 +- lib/routes/fansly/post.ts | 2 +- lib/routes/fansly/tag.ts | 2 +- lib/routes/fansly/utils.ts | 16 +- lib/routes/feng/forum.ts | 2 +- lib/routes/feng/utils.ts | 7 +- lib/routes/finology/most-viewed.ts | 2 +- lib/routes/finology/tag.ts | 2 +- lib/routes/finology/utils.ts | 2 +- lib/routes/flyert/utils.ts | 4 +- lib/routes/followin/index.ts | 2 +- lib/routes/followin/kol.ts | 2 +- lib/routes/followin/news.ts | 2 +- lib/routes/followin/tag.ts | 2 +- lib/routes/followin/topic.ts | 2 +- lib/routes/followin/utils.ts | 11 +- lib/routes/foresightnews/article.ts | 2 +- lib/routes/foresightnews/column.ts | 2 +- lib/routes/foresightnews/index.ts | 2 +- lib/routes/foresightnews/news.ts | 2 +- lib/routes/foresightnews/util.ts | 10 +- lib/routes/ft/utils.ts | 4 +- lib/routes/furstar/utils.ts | 2 +- lib/routes/gelonghui/home.ts | 2 +- lib/routes/gelonghui/hot-article.ts | 2 +- lib/routes/gelonghui/keyword.ts | 2 +- lib/routes/gelonghui/subject.ts | 2 +- lib/routes/gelonghui/user.ts | 2 +- lib/routes/gelonghui/utils.ts | 4 +- lib/routes/getitfree/util.ts | 13 +- lib/routes/gitpod/blog.ts | 2 +- lib/routes/gitpod/changelog.ts | 2 +- lib/routes/gitpod/utils.ts | 6 +- lib/routes/gocn/jobs.ts | 2 +- lib/routes/gocn/news.ts | 2 +- lib/routes/gocn/topics.ts | 2 +- lib/routes/gocn/utils.ts | 4 +- lib/routes/gov/ccdi/index.ts | 2 +- lib/routes/gov/ccdi/utils.ts | 6 +- lib/routes/gov/chinamine-safety/util.ts | 7 +- lib/routes/gov/chinamine-safety/xw.ts | 2 +- lib/routes/gov/chinamine-safety/zfxxgk.ts | 2 +- lib/routes/gov/customs/list.ts | 2 +- lib/routes/gov/customs/utils.ts | 5 +- lib/routes/gov/general/general.ts | 4 +- lib/routes/gov/nsfc/shortcuts.ts | 2 +- lib/routes/gov/pbc/gzlw.ts | 2 +- lib/routes/gov/pbc/utils.ts | 4 +- lib/routes/gov/pbc/zcyj.ts | 2 +- lib/routes/gov/safe/business.ts | 2 +- lib/routes/gov/safe/complaint.ts | 2 +- lib/routes/gov/safe/util.ts | 4 +- lib/routes/grist/featured.ts | 2 +- lib/routes/grist/index.ts | 2 +- lib/routes/grist/series.ts | 2 +- lib/routes/grist/topic.ts | 2 +- lib/routes/grist/utils.ts | 2 +- lib/routes/grubstreet/utils.ts | 4 +- lib/routes/gxmzu/ai.ts | 2 +- lib/routes/gxmzu/utils/index.ts | 4 +- lib/routes/gxmzu/yjs.ts | 2 +- lib/routes/hk01/channel.ts | 2 +- lib/routes/hk01/hot.ts | 2 +- lib/routes/hk01/issue.ts | 2 +- lib/routes/hk01/latest.ts | 2 +- lib/routes/hk01/tag.ts | 2 +- lib/routes/hk01/utils.ts | 62 ++- lib/routes/hk01/zone.ts | 2 +- lib/routes/hkepc/data.ts | 116 +++--- lib/routes/hkepc/index.ts | 2 +- lib/routes/hoyolab/constant.ts | 11 +- lib/routes/hoyolab/news.ts | 4 +- lib/routes/hoyolab/utils.ts | 5 +- lib/routes/hpoi/all.ts | 2 +- lib/routes/hpoi/character.ts | 2 +- lib/routes/hpoi/utils.ts | 4 +- lib/routes/hpoi/work.ts | 2 +- lib/routes/hrbust/utils.ts | 2 +- lib/routes/huxiu/brief-column.ts | 2 +- lib/routes/huxiu/channel.ts | 2 +- lib/routes/huxiu/club.ts | 2 +- lib/routes/huxiu/collection.ts | 2 +- lib/routes/huxiu/member.ts | 2 +- lib/routes/huxiu/moment.ts | 2 +- lib/routes/huxiu/search.ts | 2 +- lib/routes/huxiu/tag.ts | 2 +- lib/routes/huxiu/util.ts | 15 +- lib/routes/icac/utils.ts | 6 +- lib/routes/ifeng/feng.ts | 2 +- lib/routes/ifeng/utils.ts | 5 +- lib/routes/ikea/cn/family-offers.ts | 2 +- lib/routes/ikea/cn/low-price.ts | 2 +- lib/routes/ikea/cn/new.ts | 2 +- lib/routes/ikea/cn/utils.ts | 5 +- lib/routes/indienova/article.ts | 2 +- lib/routes/indienova/column.ts | 2 +- lib/routes/indienova/utils.ts | 6 +- lib/routes/infoq/utils.ts | 4 +- lib/routes/instagram/common-utils.ts | 4 +- lib/routes/instagram/private-api/index.ts | 2 +- lib/routes/instagram/private-api/utils.ts | 2 +- lib/routes/instagram/web-api/index.ts | 2 +- lib/routes/instagram/web-api/utils.ts | 11 +- lib/routes/javdb/utils.ts | 122 +++--- lib/routes/javlibrary/bestrated.ts | 2 +- lib/routes/javlibrary/bestreviews.ts | 2 +- lib/routes/javlibrary/genre.ts | 2 +- lib/routes/javlibrary/maker.ts | 2 +- lib/routes/javlibrary/mostwanted.ts | 2 +- lib/routes/javlibrary/newentries.ts | 2 +- lib/routes/javlibrary/newrelease.ts | 2 +- lib/routes/javlibrary/star.ts | 2 +- lib/routes/javlibrary/update.ts | 2 +- lib/routes/javlibrary/user.ts | 2 +- lib/routes/javlibrary/utils.ts | 153 ++++---- lib/routes/jianshu/utils.ts | 4 +- lib/routes/jike/topic-text.ts | 2 +- lib/routes/jike/topic.ts | 3 +- lib/routes/jike/utils.ts | 363 +++++++++--------- lib/routes/jou/home.ts | 2 +- lib/routes/jou/utils/index.ts | 4 +- lib/routes/jou/yz.ts | 2 +- lib/routes/jsu/cxzx.ts | 2 +- lib/routes/jsu/jwc.ts | 2 +- lib/routes/jsu/math.ts | 2 +- lib/routes/jsu/rjxy.ts | 2 +- lib/routes/jsu/universityindex.ts | 2 +- lib/routes/jsu/utils/index.ts | 6 +- lib/routes/juejin/utils.ts | 4 +- lib/routes/kcna/news.ts | 2 +- lib/routes/kcna/utils.ts | 7 +- lib/routes/kuaidi100/utils.ts | 2 +- lib/routes/lanqiao/utils.ts | 4 +- lib/routes/leiphone/utils.ts | 4 +- lib/routes/lfsyd/home.ts | 2 +- lib/routes/lfsyd/old-home.ts | 2 +- lib/routes/lfsyd/tag.ts | 2 +- lib/routes/lfsyd/user.ts | 2 +- lib/routes/lfsyd/utils.ts | 5 +- lib/routes/line/publisher.ts | 2 +- lib/routes/line/utils.ts | 6 +- lib/routes/linkedin/cn/index.ts | 2 +- lib/routes/linkedin/cn/renderer.ts | 4 +- lib/routes/linkedin/cn/utils.ts | 7 +- lib/routes/linkedin/jobs.ts | 2 +- lib/routes/linkedin/models.ts | 4 +- lib/routes/linkedin/utils.ts | 14 +- lib/routes/lkong/forum.ts | 2 +- lib/routes/lkong/query.ts | 165 ++++---- lib/routes/lkong/thread.ts | 2 +- lib/routes/lxixsxa/discography.ts | 2 +- lib/routes/lxixsxa/information.ts | 2 +- lib/routes/lxixsxa/jsonp-helper.ts | 4 +- lib/routes/mastodon/utils.ts | 8 +- lib/routes/mckinsey/cn/category-map.ts | 4 +- lib/routes/mckinsey/cn/index.ts | 2 +- lib/routes/medium/following.ts | 2 +- lib/routes/medium/for-you.ts | 2 +- lib/routes/medium/graphql.ts | 7 +- lib/routes/medium/list.ts | 2 +- lib/routes/medium/tag.ts | 2 +- lib/routes/metacritic/index.ts | 2 +- lib/routes/metacritic/util.ts | 5 +- lib/routes/meteor/boards.ts | 2 +- lib/routes/meteor/index.ts | 2 +- lib/routes/meteor/utils.ts | 6 +- lib/routes/mihoyo/bbs/cache.ts | 70 ++-- lib/routes/mihoyo/bbs/img-ranking.ts | 4 +- lib/routes/mihoyo/bbs/official.ts | 2 +- lib/routes/mihoyo/bbs/static-data.ts | 5 +- lib/routes/mihoyo/bbs/timeline.ts | 2 +- lib/routes/mihoyo/bbs/user-post.ts | 2 +- lib/routes/mihoyo/bbs/utils.ts | 52 +-- lib/routes/misskey/utils.ts | 5 +- lib/routes/mixcloud/index.ts | 2 +- lib/routes/mixcloud/queries.ts | 4 +- lib/routes/mrdx/daily.ts | 2 +- lib/routes/mrdx/utils.ts | 4 +- lib/routes/mydrivers/cid.ts | 2 +- lib/routes/mydrivers/index.ts | 2 +- lib/routes/mydrivers/rank.ts | 2 +- lib/routes/mydrivers/util.ts | 11 +- lib/routes/nature/cover.ts | 2 +- lib/routes/nature/highlight.ts | 2 +- lib/routes/nature/news-and-comment.ts | 2 +- lib/routes/nature/news.ts | 2 +- lib/routes/nature/research.ts | 2 +- lib/routes/nature/siteindex.ts | 2 +- lib/routes/nature/utils.ts | 9 +- lib/routes/newrank/utils.ts | 9 +- lib/routes/newzmz/index.ts | 2 +- lib/routes/newzmz/util.ts | 7 +- lib/routes/nhentai/other.ts | 2 +- lib/routes/nhentai/search.ts | 2 +- lib/routes/nhentai/util.ts | 7 +- lib/routes/nintendo/utils.ts | 9 +- lib/routes/njglyy/utils/index.ts | 4 +- lib/routes/njglyy/ygbjypx.ts | 2 +- lib/routes/njnu/ceai/utils.ts | 4 +- lib/routes/njnu/jwc/utils.ts | 4 +- lib/routes/njucm/grabs.ts | 2 +- lib/routes/njucm/utils/index.ts | 4 +- lib/routes/njust/cwc.ts | 2 +- lib/routes/njust/dgxg.ts | 2 +- lib/routes/njust/eo.ts | 2 +- lib/routes/njust/eoe.ts | 2 +- lib/routes/njust/gs.ts | 2 +- lib/routes/njust/jwc.ts | 2 +- lib/routes/njust/utils.ts | 4 +- lib/routes/njxzc/home.ts | 2 +- lib/routes/njxzc/lib.ts | 2 +- lib/routes/njxzc/utils/index.ts | 4 +- lib/routes/nua/utils.ts | 5 +- lib/routes/nwafu/all.ts | 2 +- lib/routes/nwafu/utils.ts | 4 +- lib/routes/nytimes/utils.ts | 5 +- lib/routes/odaily/activity.ts | 2 +- lib/routes/odaily/newsflash.ts | 2 +- lib/routes/odaily/post.ts | 2 +- lib/routes/odaily/search-news.ts | 2 +- lib/routes/odaily/user.ts | 2 +- lib/routes/odaily/utils.ts | 6 +- lib/routes/oeeee/utils.ts | 4 +- lib/routes/oeeee/web.ts | 2 +- lib/routes/oilchem/routes.ts | 2 +- lib/routes/onet/news.ts | 2 +- lib/routes/onet/utils.ts | 5 +- lib/routes/openai/blog.ts | 2 +- lib/routes/openai/common.ts | 5 +- lib/routes/openai/research.ts | 2 +- lib/routes/otobanana/cast.ts | 2 +- lib/routes/otobanana/livestream.ts | 2 +- lib/routes/otobanana/timeline.ts | 2 +- lib/routes/otobanana/utils.ts | 9 +- lib/routes/penguin-random-house/utils.ts | 6 +- lib/routes/pianyuan/utils.ts | 5 +- lib/routes/picnob/user.ts | 2 +- lib/routes/picnob/utils.ts | 4 +- lib/routes/picuki/profile.ts | 2 +- lib/routes/picuki/utils.ts | 4 +- lib/routes/pikabu/community.ts | 2 +- lib/routes/pikabu/user.ts | 2 +- lib/routes/pikabu/utils.ts | 6 +- lib/routes/pincong/hot.ts | 2 +- lib/routes/pincong/index.ts | 2 +- lib/routes/pincong/topic.ts | 2 +- lib/routes/pincong/utils.ts | 5 +- lib/routes/pingwest/utils.ts | 5 +- lib/routes/pixiv/bookmarks.ts | 2 +- lib/routes/pixiv/constants.ts | 14 +- lib/routes/pixiv/illustfollow.ts | 2 +- lib/routes/pixiv/ranking.ts | 2 +- lib/routes/pixiv/search.ts | 2 +- lib/routes/pixiv/token.ts | 6 +- lib/routes/pixiv/user.ts | 2 +- lib/routes/pixiv/utils.ts | 2 +- lib/routes/pku/eecs.ts | 2 +- lib/routes/pku/ss/admission.ts | 2 +- lib/routes/pku/ss/common.ts | 6 +- lib/routes/pku/ss/notice.ts | 2 +- lib/routes/pku/ss/pg-admin.ts | 2 +- lib/routes/pku/utils.ts | 4 +- lib/routes/playno1/av.ts | 2 +- lib/routes/playno1/st.ts | 2 +- lib/routes/playno1/utils.ts | 5 +- lib/routes/plurk/anonymous.ts | 2 +- lib/routes/plurk/hotlinks.ts | 2 +- lib/routes/plurk/news.ts | 2 +- lib/routes/plurk/search.ts | 2 +- lib/routes/plurk/top.ts | 2 +- lib/routes/plurk/topic.ts | 2 +- lib/routes/plurk/user.ts | 2 +- lib/routes/plurk/utils.ts | 6 +- lib/routes/pornhub/category-url.ts | 2 +- lib/routes/pornhub/category.ts | 2 +- lib/routes/pornhub/model.ts | 2 +- lib/routes/pornhub/pornstar.ts | 2 +- lib/routes/pornhub/search.ts | 2 +- lib/routes/pornhub/users.ts | 2 +- lib/routes/pornhub/utils.ts | 7 +- lib/routes/qianp/news.ts | 2 +- lib/routes/qianp/utils.ts | 4 +- lib/routes/qoo-app/news.ts | 2 +- lib/routes/qoo-app/utils.ts | 11 +- lib/routes/qq/ac/comic.ts | 2 +- lib/routes/qq/ac/rank.ts | 2 +- lib/routes/qq/ac/utils.ts | 107 +++--- lib/routes/qq/kg/cache.ts | 2 +- lib/routes/readhub/daily.ts | 2 +- lib/routes/readhub/index.ts | 2 +- lib/routes/readhub/util.ts | 10 +- lib/routes/rsshub/referer-map.ts | 4 +- lib/routes/science/blogs.ts | 2 +- lib/routes/science/cover.ts | 2 +- lib/routes/science/current.ts | 2 +- lib/routes/science/early.ts | 2 +- lib/routes/science/utils.ts | 6 +- lib/routes/sciencedirect/cf-email.ts | 44 ++- lib/routes/sciencedirect/journal.ts | 2 +- lib/routes/scmp/index.ts | 2 +- lib/routes/scmp/topic.ts | 2 +- lib/routes/scmp/utils.ts | 5 +- lib/routes/sdu/data.ts | 2 +- lib/routes/segmentfault/blogs.ts | 2 +- lib/routes/segmentfault/channel.ts | 2 +- lib/routes/segmentfault/user.ts | 2 +- lib/routes/segmentfault/utils.ts | 7 +- lib/routes/shiep/config.ts | 4 +- lib/routes/shiep/index.ts | 2 +- lib/routes/showstart/artist.ts | 4 +- lib/routes/showstart/brand.ts | 4 +- lib/routes/showstart/const.ts | 8 +- lib/routes/showstart/event.ts | 4 +- lib/routes/showstart/search.ts | 4 +- lib/routes/showstart/service.ts | 15 +- lib/routes/showstart/utils.ts | 8 +- lib/routes/sina/chuangshiji.ts | 2 +- lib/routes/sina/discovery.ts | 2 +- lib/routes/sina/rollnews.ts | 2 +- lib/routes/sina/sports.ts | 2 +- lib/routes/sina/utils.ts | 6 +- lib/routes/southcn/nfapp/column.ts | 2 +- lib/routes/southcn/nfapp/reporter.ts | 2 +- lib/routes/southcn/nfapp/utils.ts | 4 +- lib/routes/spotify/utils.ts | 7 +- lib/routes/stockedge/daily-news.ts | 2 +- lib/routes/stockedge/utils.ts | 2 +- lib/routes/studygolang/go.ts | 2 +- lib/routes/studygolang/jobs.ts | 2 +- lib/routes/studygolang/utils.ts | 110 +++--- lib/routes/studygolang/weekly.ts | 2 +- lib/routes/swjtu/utils.ts | 6 +- lib/routes/swpu/bgw.ts | 2 +- lib/routes/swpu/dean.ts | 2 +- lib/routes/swpu/dxy.ts | 2 +- lib/routes/swpu/scs.ts | 2 +- lib/routes/swpu/utils.ts | 4 +- lib/routes/szu/yz/utils.ts | 4 +- lib/routes/taptap/changelog.ts | 2 +- lib/routes/taptap/review.ts | 2 +- lib/routes/taptap/topic.ts | 2 +- lib/routes/taptap/utils.ts | 9 +- lib/routes/techpowerup/index.ts | 2 +- lib/routes/techpowerup/review.ts | 2 +- lib/routes/techpowerup/utils.ts | 10 +- lib/routes/telegram/tglib/channel.ts | 2 +- lib/routes/telegram/tglib/client.ts | 2 +- lib/routes/tencent/news/coronavirus/data.ts | 2 +- lib/routes/tencent/news/coronavirus/total.ts | 2 +- lib/routes/tencent/news/coronavirus/utils.ts | 4 +- lib/routes/tesla/price/get-price.ts | 4 +- lib/routes/tesla/price/index.ts | 2 +- lib/routes/tfc-taiwan/index.ts | 2 +- lib/routes/tfc-taiwan/utils.ts | 6 +- lib/routes/theatlantic/news.ts | 2 +- lib/routes/theatlantic/utils.ts | 4 +- lib/routes/thecatcity/index.ts | 2 +- lib/routes/thecatcity/terms-map.ts | 4 +- lib/routes/themoviedb/collection.ts | 2 +- lib/routes/themoviedb/episodes.ts | 2 +- lib/routes/themoviedb/seasons.ts | 2 +- lib/routes/themoviedb/sheet.ts | 2 +- lib/routes/themoviedb/trending.ts | 2 +- lib/routes/themoviedb/utils.ts | 2 +- lib/routes/thepaper/utils.ts | 2 +- lib/routes/threads/index.ts | 2 +- lib/routes/threads/utils.ts | 15 +- lib/routes/tingtingfm/program.ts | 2 +- lib/routes/tingtingfm/utils.ts | 5 +- lib/routes/twitter/utils.ts | 6 +- lib/routes/twitter/web-api/constants.ts | 11 +- lib/routes/twitter/web-api/login.ts | 2 +- lib/routes/twitter/web-api/media.ts | 4 +- lib/routes/twitter/web-api/search.ts | 4 +- lib/routes/twitter/web-api/token.ts | 5 +- lib/routes/twitter/web-api/tweet.ts | 4 +- lib/routes/twitter/web-api/twitter-api.ts | 6 +- lib/routes/twitter/web-api/user.ts | 4 +- lib/routes/ucas/rader.ts | 2 +- lib/routes/vocus/publication.ts | 2 +- lib/routes/vocus/user.ts | 2 +- lib/routes/vocus/utils.ts | 7 +- lib/routes/whu/hyxt.ts | 2 +- lib/routes/whu/news.ts | 2 +- lib/routes/whu/util.ts | 7 +- lib/routes/woshipm/popular.ts | 2 +- lib/routes/woshipm/user-article.ts | 2 +- lib/routes/woshipm/utils.ts | 5 +- lib/routes/wsj/news.ts | 2 +- lib/routes/wsj/utils.ts | 5 +- lib/routes/x-mol/utils.ts | 2 +- lib/routes/xiaohongshu/board.ts | 2 +- lib/routes/xiaohongshu/notes.ts | 2 +- lib/routes/xiaohongshu/user.ts | 2 +- lib/routes/xiaohongshu/util.ts | 8 +- lib/routes/xiaomiyoupin/latest.ts | 2 +- lib/routes/xiaomiyoupin/utils.ts | 5 +- lib/routes/ximalaya/album.ts | 2 +- lib/routes/ximalaya/utils.ts | 5 +- lib/routes/xinpianchang/index.ts | 2 +- lib/routes/xinpianchang/rank.ts | 2 +- lib/routes/xinpianchang/util.ts | 7 +- lib/routes/yahoo/news/tw/index.ts | 2 +- lib/routes/yahoo/news/tw/provider-helper.ts | 2 +- lib/routes/yahoo/news/tw/provider.ts | 2 +- lib/routes/yahoo/news/tw/utils.ts | 9 +- lib/routes/yicai/author.ts | 2 +- lib/routes/yicai/brief.ts | 2 +- lib/routes/yicai/feed.ts | 2 +- lib/routes/yicai/headline.ts | 2 +- lib/routes/yicai/latest.ts | 2 +- lib/routes/yicai/news.ts | 2 +- lib/routes/yicai/utils.ts | 81 ++-- lib/routes/yicai/video.ts | 2 +- lib/routes/yicai/vip.ts | 2 +- lib/routes/yoasobi-music/info.ts | 2 +- lib/routes/yoasobi-music/jsonp-helper.ts | 4 +- lib/routes/yoasobi-music/live.ts | 2 +- lib/routes/yoasobi-music/media.ts | 2 +- lib/routes/youtube/charts.ts | 2 +- lib/routes/youtube/community.ts | 2 +- lib/routes/yuque/book.ts | 2 +- lib/routes/yuque/utils.ts | 4 +- lib/routes/yxdown/news.ts | 2 +- lib/routes/yxdown/recommend.ts | 2 +- lib/routes/yxdown/utils.ts | 5 +- lib/routes/zaobao/index.ts | 2 +- lib/routes/zaobao/interactive.ts | 2 +- lib/routes/zaobao/realtime.ts | 2 +- lib/routes/zaobao/util.ts | 5 +- lib/routes/zaobao/znews.ts | 2 +- lib/routes/zcool/locations.ts | 2 +- lib/routes/zcool/top.ts | 2 +- lib/routes/zcool/user.ts | 2 +- lib/routes/zcool/utils.ts | 5 +- lib/routes/zhihu/collection.ts | 2 +- lib/routes/zhihu/pin/daily.ts | 2 +- lib/routes/zhihu/pin/hotlist.ts | 2 +- lib/routes/zhihu/pin/people.ts | 2 +- lib/routes/zhihu/pin/utils.ts | 48 +-- lib/routes/zhihu/utils.ts | 2 +- lib/routes/zhihu/xhu/auth.ts | 2 +- lib/routes/zhiy/letter.ts | 2 +- lib/routes/zhiy/post.ts | 2 +- lib/routes/zhiy/utils.ts | 5 +- lib/routes/zuvio/boards.ts | 2 +- lib/routes/zuvio/student5.ts | 2 +- lib/routes/zuvio/utils.ts | 9 +- 659 files changed, 1627 insertions(+), 2338 deletions(-) diff --git a/lib/routes/163/dy.ts b/lib/routes/163/dy.ts index cef7251e5b..e9fd1d23b0 100644 --- a/lib/routes/163/dy.ts +++ b/lib/routes/163/dy.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { parseDyArticle } = require('./utils'); +import { parseDyArticle } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/163/dy2.ts b/lib/routes/163/dy2.ts index 213e8c70e6..f249afb5f7 100644 --- a/lib/routes/163/dy2.ts +++ b/lib/routes/163/dy2.ts @@ -4,7 +4,7 @@ import { load } from 'cheerio'; const iconv = require('iconv-lite'); import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { parseDyArticle } = require('./utils'); +import { parseDyArticle } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/163/utils.ts b/lib/routes/163/utils.ts index dc6e2b34ec..a1ab93de16 100644 --- a/lib/routes/163/utils.ts +++ b/lib/routes/163/utils.ts @@ -38,6 +38,4 @@ const parseDyArticle = (charset, item, tryGet) => return item; }); -module.exports = { - parseDyArticle, -}; +export { parseDyArticle }; diff --git a/lib/routes/18comic/album.ts b/lib/routes/18comic/album.ts index 2e092c349c..1509af63aa 100644 --- a/lib/routes/18comic/album.ts +++ b/lib/routes/18comic/album.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { defaultDomain, getRootUrl } = require('./utils'); +import { defaultDomain, getRootUrl } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/18comic/blogs.ts b/lib/routes/18comic/blogs.ts index 59b231c45f..6e703c2aef 100644 --- a/lib/routes/18comic/blogs.ts +++ b/lib/routes/18comic/blogs.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { defaultDomain, getRootUrl } = require('./utils'); +import { defaultDomain, getRootUrl } from './utils'; export default async (ctx) => { const category = ctx.req.param('category') ?? ''; diff --git a/lib/routes/18comic/index.ts b/lib/routes/18comic/index.ts index 003b55a49f..da6eaaf9bb 100644 --- a/lib/routes/18comic/index.ts +++ b/lib/routes/18comic/index.ts @@ -1,4 +1,4 @@ -const { defaultDomain, getRootUrl, ProcessItems } = require('./utils'); +import { defaultDomain, getRootUrl, ProcessItems } from './utils'; export default async (ctx) => { const category = ctx.req.param('category') ?? 'all'; diff --git a/lib/routes/18comic/search.ts b/lib/routes/18comic/search.ts index c0d2ff02ff..0ead597841 100644 --- a/lib/routes/18comic/search.ts +++ b/lib/routes/18comic/search.ts @@ -1,4 +1,4 @@ -const { defaultDomain, getRootUrl, ProcessItems } = require('./utils'); +import { defaultDomain, getRootUrl, ProcessItems } from './utils'; export default async (ctx) => { const option = ctx.req.param('option') ?? 'photos'; diff --git a/lib/routes/18comic/utils.ts b/lib/routes/18comic/utils.ts index 45ad20e6e8..5d657d86c4 100644 --- a/lib/routes/18comic/utils.ts +++ b/lib/routes/18comic/utils.ts @@ -21,66 +21,64 @@ const getRootUrl = (domain) => { return `https://${domain}`; }; -module.exports = { - defaultDomain, - getRootUrl, - ProcessItems: async (ctx, currentUrl, rootUrl) => { - currentUrl = currentUrl.replace(/\?$/, ''); +const ProcessItems = async (ctx, currentUrl, rootUrl) => { + currentUrl = currentUrl.replace(/\?$/, ''); - const response = await got(currentUrl); + const response = await got(currentUrl); - const $ = load(response.data); + const $ = load(response.data); - let items = $('.video-title') - .slice(0, ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 20) - .toArray() - .map((item) => { - item = $(item); + let items = $('.video-title') + .slice(0, ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 20) + .toArray() + .map((item) => { + item = $(item); - return { - title: item.text().trim(), - link: `${rootUrl}${item.prev().find('a').attr('href')}`, - guid: `18comic:${item.prev().find('a').attr('href')}`, - }; - }); + return { + title: item.text().trim(), + link: `${rootUrl}${item.prev().find('a').attr('href')}`, + guid: `18comic:${item.prev().find('a').attr('href')}`, + }; + }); - items = await Promise.all( - items.map((item) => - cache.tryGet(item.guid, async () => { - const detailResponse = await got(item.link); + items = await Promise.all( + items.map((item) => + cache.tryGet(item.guid, async () => { + const detailResponse = await got(item.link); - const content = load(detailResponse.data); + const content = load(detailResponse.data); - item.pubDate = parseDate(content('div[itemprop="datePublished"]').first().attr('content')); - item.category = content('span[data-type="tags"]') - .first() - .find('a') + item.pubDate = parseDate(content('div[itemprop="datePublished"]').first().attr('content')); + item.category = content('span[data-type="tags"]') + .first() + .find('a') + .toArray() + .map((c) => $(c).text()); + item.author = content('span[data-type="author"]') + .first() + .find('a') + .toArray() + .map((a) => $(a).text()) + .join(', '); + item.description = art(path.join(__dirname, 'templates/description.art'), { + introduction: content('#intro-block .p-t-5').text(), + images: content('.img_zoom_img img') .toArray() - .map((c) => $(c).text()); - item.author = content('span[data-type="author"]') - .first() - .find('a') - .toArray() - .map((a) => $(a).text()) - .join(', '); - item.description = art(path.join(__dirname, 'templates/description.art'), { - introduction: content('#intro-block .p-t-5').text(), - images: content('.img_zoom_img img') - .toArray() - .map((image) => content(image).attr('data-original')), - }); + .map((image) => content(image).attr('data-original')), + }); - return item; - }) - ) - ); + return item; + }) + ) + ); - return { - title: $('title').text(), - link: currentUrl, - item: items, - description: $('meta[property="og:description"]').attr('content'), - allowEmpty: true, - }; - }, + return { + title: $('title').text(), + link: currentUrl, + item: items, + description: $('meta[property="og:description"]').attr('content'), + allowEmpty: true, + }; }; + +export { defaultDomain, getRootUrl, ProcessItems }; diff --git a/lib/routes/1point3acres/category.ts b/lib/routes/1point3acres/category.ts index e8e581ad8a..31b6e72140 100644 --- a/lib/routes/1point3acres/category.ts +++ b/lib/routes/1point3acres/category.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, apiRootUrl, types, ProcessThreads } = require('./utils'); +import { rootUrl, apiRootUrl, types, ProcessThreads } from './utils'; export default async (ctx) => { const id = ctx.req.param('id') ?? ''; diff --git a/lib/routes/1point3acres/section.ts b/lib/routes/1point3acres/section.ts index abe7deb075..d1eddbde77 100644 --- a/lib/routes/1point3acres/section.ts +++ b/lib/routes/1point3acres/section.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, apiRootUrl, types, ProcessThreads } = require('./utils'); +import { rootUrl, apiRootUrl, types, ProcessThreads } from './utils'; const sections = { 257: '留学申请', diff --git a/lib/routes/1point3acres/thread.ts b/lib/routes/1point3acres/thread.ts index 75b01fba35..97fdb49c3f 100644 --- a/lib/routes/1point3acres/thread.ts +++ b/lib/routes/1point3acres/thread.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, apiRootUrl, types, ProcessThreads } = require('./utils'); +import { rootUrl, apiRootUrl, types, ProcessThreads } from './utils'; export default async (ctx) => { const type = ctx.req.param('type') ?? 'hot'; diff --git a/lib/routes/1point3acres/utils.ts b/lib/routes/1point3acres/utils.ts index 36b03ec431..07054a9b34 100644 --- a/lib/routes/1point3acres/utils.ts +++ b/lib/routes/1point3acres/utils.ts @@ -15,68 +15,65 @@ const types = { hot: '热门帖子', }; -module.exports = { - rootUrl, - apiRootUrl, - types, - ProcessThreads: async (tryGet, apiUrl, order) => { - const response = await got({ - method: 'get', - url: apiUrl, - headers: { - referer: rootUrl, - }, - }); +const ProcessThreads = async (tryGet, apiUrl, order) => { + const response = await got({ + method: 'get', + url: apiUrl, + headers: { + referer: rootUrl, + }, + }); - const bbcodeParser = new bbcode.Parser(); + const bbcodeParser = new bbcode.Parser(); - const items = await Promise.all( - response.data.threads.map((item) => { - const result = { - guid: item.tid, - title: item.subject, - author: item.author, - link: `${rootUrl}/thread/${item.tid}`, - description: item.summary, - pubDate: parseDate((order === '' ? item.lastpost : item.dateline) * 1000), - category: [item.forum_name, ...item.tags.map((t) => t.displayname)], - }; + const items = await Promise.all( + response.data.threads.map((item) => { + const result = { + guid: item.tid, + title: item.subject, + author: item.author, + link: `${rootUrl}/thread/${item.tid}`, + description: item.summary, + pubDate: parseDate((order === '' ? item.lastpost : item.dateline) * 1000), + category: [item.forum_name, ...item.tags.map((t) => t.displayname)], + }; - return tryGet(result.link, async () => { - try { - const detailResponse = await got({ - method: 'get', - url: `${apiRootUrl}/api/v3/threads/${result.guid}`, - headers: { - referer: rootUrl, - }, - }); + return tryGet(result.link, async () => { + try { + const detailResponse = await got({ + method: 'get', + url: `${apiRootUrl}/api/v3/threads/${result.guid}`, + headers: { + referer: rootUrl, + }, + }); - const data = detailResponse.data; + const data = detailResponse.data; - result.description = bbcodeParser.toHTML(data.thread.message_bbcode); + result.description = bbcodeParser.toHTML(data.thread.message_bbcode); - for (const a of data.thread.attachment_list) { - if (a.isimage === 1) { - result.description = result.description.replaceAll( - new RegExp(`\\[attach\\]${a.aid}\\[\\/attach\\]`, 'g'), - art(path.join(__dirname, 'templates/image.art'), { - url: a.url, - height: a.height, - width: a.width, - }) - ); - } + for (const a of data.thread.attachment_list) { + if (a.isimage === 1) { + result.description = result.description.replaceAll( + new RegExp(`\\[attach\\]${a.aid}\\[\\/attach\\]`, 'g'), + art(path.join(__dirname, 'templates/image.art'), { + url: a.url, + height: a.height, + width: a.width, + }) + ); } - } catch { - // no-empty } + } catch { + // no-empty + } - return result; - }); - }) - ); + return result; + }); + }) + ); - return items; - }, + return items; }; + +export { rootUrl, apiRootUrl, types, ProcessThreads }; diff --git a/lib/routes/36kr/hot-list.ts b/lib/routes/36kr/hot-list.ts index 393196e14a..7ee7dd2486 100644 --- a/lib/routes/36kr/hot-list.ts +++ b/lib/routes/36kr/hot-list.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl, ProcessItem } = require('./utils'); +import { rootUrl, ProcessItem } from './utils'; const categories = { 24: { diff --git a/lib/routes/36kr/index.ts b/lib/routes/36kr/index.ts index ce24090299..ccd9892ea3 100644 --- a/lib/routes/36kr/index.ts +++ b/lib/routes/36kr/index.ts @@ -4,7 +4,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl, ProcessItem } = require('./utils'); +import { rootUrl, ProcessItem } from './utils'; const shortcuts = { '/information': '/information/web_news', diff --git a/lib/routes/36kr/utils.ts b/lib/routes/36kr/utils.ts index 26ca7b9470..c17b8d6fe0 100644 --- a/lib/routes/36kr/utils.ts +++ b/lib/routes/36kr/utils.ts @@ -4,33 +4,32 @@ const CryptoJS = require('crypto-js'); const rootUrl = 'https://www.36kr.com'; -module.exports = { - rootUrl, - ProcessItem: (item, tryGet) => - tryGet(item.link, async () => { - const detailResponse = await got({ - method: 'get', - url: item.link, - }); +const ProcessItem = (item, tryGet) => + tryGet(item.link, async () => { + const detailResponse = await got({ + method: 'get', + url: item.link, + }); - const cipherTextList = detailResponse.data.match(/{"state":"(.*)","isEncrypt":true}/) ?? []; + const cipherTextList = detailResponse.data.match(/{"state":"(.*)","isEncrypt":true}/) ?? []; - if (cipherTextList.length === 0) { - const $ = load(detailResponse.body); - item.description = $('div.articleDetailContent').html(); - } else { - const key = CryptoJS.enc.Utf8.parse('efabccee-b754-4c'); - const content = JSON.parse( - CryptoJS.AES.decrypt(cipherTextList[1], key, { - mode: CryptoJS.mode.ECB, - padding: CryptoJS.pad.Pkcs7, - }) - .toString(CryptoJS.enc.Utf8) - .toString() - ).articleDetail.articleDetailData.data; - item.description = content.widgetContent; - } + if (cipherTextList.length === 0) { + const $ = load(detailResponse.body); + item.description = $('div.articleDetailContent').html(); + } else { + const key = CryptoJS.enc.Utf8.parse('efabccee-b754-4c'); + const content = JSON.parse( + CryptoJS.AES.decrypt(cipherTextList[1], key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7, + }) + .toString(CryptoJS.enc.Utf8) + .toString() + ).articleDetail.articleDetailData.data; + item.description = content.widgetContent; + } - return item; - }), -}; + return item; + }); + +export { rootUrl, ProcessItem }; diff --git a/lib/routes/3dmgame/game.ts b/lib/routes/3dmgame/game.ts index b3f4b35f8f..1ffb152658 100644 --- a/lib/routes/3dmgame/game.ts +++ b/lib/routes/3dmgame/game.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { parseArticle } = require('./utils'); +import { parseArticle } from './utils'; export default async (ctx) => { const { name, type = 'news' } = ctx.req.param(); diff --git a/lib/routes/3dmgame/news-center.ts b/lib/routes/3dmgame/news-center.ts index 44049e8e3e..21aa553275 100644 --- a/lib/routes/3dmgame/news-center.ts +++ b/lib/routes/3dmgame/news-center.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { parseArticle } = require('./utils'); +import { parseArticle } from './utils'; export default async (ctx) => { const { category = '' } = ctx.req.param(); diff --git a/lib/routes/3dmgame/utils.ts b/lib/routes/3dmgame/utils.ts index 3f236fee48..4964382f93 100644 --- a/lib/routes/3dmgame/utils.ts +++ b/lib/routes/3dmgame/utils.ts @@ -25,6 +25,4 @@ const parseArticle = (item, tryGet) => return item; }); -module.exports = { - parseArticle, -}; +export { parseArticle }; diff --git a/lib/routes/4gamers/category.ts b/lib/routes/4gamers/category.ts index b248d16bd5..dcd62cb9c6 100644 --- a/lib/routes/4gamers/category.ts +++ b/lib/routes/4gamers/category.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { parseList, parseItem, getCategories } = require('./utils'); +import { parseList, parseItem, getCategories } from './utils'; export default async (ctx) => { const category = ctx.req.param('category'); diff --git a/lib/routes/4gamers/tag.ts b/lib/routes/4gamers/tag.ts index 02eac48d3d..8ac0a9bc60 100644 --- a/lib/routes/4gamers/tag.ts +++ b/lib/routes/4gamers/tag.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { parseList, parseItem } = require('./utils'); +import { parseList, parseItem } from './utils'; export default async (ctx) => { const tag = ctx.req.param('tag'); diff --git a/lib/routes/4gamers/topic.ts b/lib/routes/4gamers/topic.ts index f70cb95490..1c5b1262af 100644 --- a/lib/routes/4gamers/topic.ts +++ b/lib/routes/4gamers/topic.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { parseList, parseItem } = require('./utils'); +import { parseList, parseItem } from './utils'; export default async (ctx) => { const topic = ctx.req.param('topic'); diff --git a/lib/routes/4gamers/utils.ts b/lib/routes/4gamers/utils.ts index b5f578ebaa..6aca523a0d 100644 --- a/lib/routes/4gamers/utils.ts +++ b/lib/routes/4gamers/utils.ts @@ -67,10 +67,4 @@ const renderImages = (images) => images, }); -module.exports = { - getCategories, - parseList, - parseItem, - renderDescription, - renderImages, -}; +export { getCategories, parseList, parseItem, renderDescription, renderImages }; diff --git a/lib/routes/500px/tribe-set.ts b/lib/routes/500px/tribe-set.ts index 714f326eb7..0dcba68af9 100644 --- a/lib/routes/500px/tribe-set.ts +++ b/lib/routes/500px/tribe-set.ts @@ -6,7 +6,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { baseUrl, getTribeDetail, getTribeSets } = require('./utils'); +import { baseUrl, getTribeDetail, getTribeSets } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/500px/user.ts b/lib/routes/500px/user.ts index 3f9928c00f..59be7c5a8d 100644 --- a/lib/routes/500px/user.ts +++ b/lib/routes/500px/user.ts @@ -5,7 +5,7 @@ import cache from '@/utils/cache'; import { art } from '@/utils/render'; import { parseDate } from '@/utils/parse-date'; import * as path from 'node:path'; -const { baseUrl, getUserInfoFromUsername, getUserInfoFromId, getUserWorks } = require('./utils'); +import { baseUrl, getUserInfoFromUsername, getUserInfoFromId, getUserWorks } from './utils'; export default async (ctx) => { let { id } = ctx.req.param(); diff --git a/lib/routes/500px/utils.ts b/lib/routes/500px/utils.ts index 7df6bfa223..a540a755d0 100644 --- a/lib/routes/500px/utils.ts +++ b/lib/routes/500px/utils.ts @@ -112,11 +112,4 @@ const getTribeSets = (id, limit, tryGet) => false ); -module.exports = { - baseUrl, - getUserInfoFromUsername, - getUserInfoFromId, - getUserWorks, - getTribeDetail, - getTribeSets, -}; +export { baseUrl, getUserInfoFromUsername, getUserInfoFromId, getUserWorks, getTribeDetail, getTribeSets }; diff --git a/lib/routes/56kog/class.ts b/lib/routes/56kog/class.ts index 8854834fab..e45055d594 100644 --- a/lib/routes/56kog/class.ts +++ b/lib/routes/56kog/class.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, fetchItems } = require('./util'); +import { rootUrl, fetchItems } from './util'; export default async (ctx) => { const { category = '1_1' } = ctx.req.param(); diff --git a/lib/routes/56kog/top.ts b/lib/routes/56kog/top.ts index a201e3b7c6..c0472c5946 100644 --- a/lib/routes/56kog/top.ts +++ b/lib/routes/56kog/top.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, fetchItems } = require('./util'); +import { rootUrl, fetchItems } from './util'; export default async (ctx) => { const { category = 'weekvisit' } = ctx.req.param(); diff --git a/lib/routes/56kog/util.ts b/lib/routes/56kog/util.ts index 0393392304..16a2244a7a 100644 --- a/lib/routes/56kog/util.ts +++ b/lib/routes/56kog/util.ts @@ -108,7 +108,4 @@ const fetchItems = async (limit, currentUrl, tryGet) => { }; }; -module.exports = { - rootUrl, - fetchItems, -}; +export { rootUrl, fetchItems }; diff --git a/lib/routes/5eplay/index.ts b/lib/routes/5eplay/index.ts index c83e9d545d..144764f7ab 100644 --- a/lib/routes/5eplay/index.ts +++ b/lib/routes/5eplay/index.ts @@ -4,7 +4,7 @@ const zlib = require('zlib'); import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; import { config } from '@/config'; -const { getAcwScV2ByArg1 } = require('./utils'); +import { getAcwScV2ByArg1 } from './utils'; export default async (ctx) => { const rootUrl = 'https://csgo.5eplay.com/'; diff --git a/lib/routes/5eplay/utils.ts b/lib/routes/5eplay/utils.ts index 964d39a7f6..d14c5b56db 100644 --- a/lib/routes/5eplay/utils.ts +++ b/lib/routes/5eplay/utils.ts @@ -29,6 +29,4 @@ const getAcwScV2ByArg1 = (arg1) => { return hexXor(box, pwd); }; -module.exports = { - getAcwScV2ByArg1, -}; +export { getAcwScV2ByArg1 }; diff --git a/lib/routes/6v123/latest-movies.ts b/lib/routes/6v123/latest-movies.ts index 2dfd9817a4..563d9dc6fa 100644 --- a/lib/routes/6v123/latest-movies.ts +++ b/lib/routes/6v123/latest-movies.ts @@ -1,4 +1,4 @@ -const { processItems } = require('./utils'); +import { processItems } from './utils'; const baseURL = 'https://www.hao6v.cc/gvod/zx.html'; diff --git a/lib/routes/6v123/latest-tvseries.ts b/lib/routes/6v123/latest-tvseries.ts index 87181718e0..4ac742dd7b 100644 --- a/lib/routes/6v123/latest-tvseries.ts +++ b/lib/routes/6v123/latest-tvseries.ts @@ -1,4 +1,4 @@ -const { processItems } = require('./utils'); +import { processItems } from './utils'; const baseURL = 'https://www.hao6v.tv/gvod/dsj.html'; diff --git a/lib/routes/8kcos/cat.ts b/lib/routes/8kcos/cat.ts index 029aef75ec..ad92c6227d 100644 --- a/lib/routes/8kcos/cat.ts +++ b/lib/routes/8kcos/cat.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { SUB_NAME_PREFIX, SUB_URL } = require('./const'); +import { SUB_NAME_PREFIX, SUB_URL } from './const'; const loadArticle = require('./article'); export default async (ctx) => { const limit = Number.parseInt(ctx.req.query('limit')); diff --git a/lib/routes/8kcos/const.ts b/lib/routes/8kcos/const.ts index 78a66d65b7..b3d5991408 100644 --- a/lib/routes/8kcos/const.ts +++ b/lib/routes/8kcos/const.ts @@ -1,4 +1,4 @@ -module.exports = { - SUB_NAME_PREFIX: '8KCosplay', - SUB_URL: 'https://www.8kcosplay.com/', -}; +const SUB_NAME_PREFIX = '8KCosplay'; +const SUB_URL = 'https://www.8kcosplay.com/'; + +export { SUB_NAME_PREFIX, SUB_URL }; diff --git a/lib/routes/8kcos/latest.ts b/lib/routes/8kcos/latest.ts index e0b1375ffe..445834737d 100644 --- a/lib/routes/8kcos/latest.ts +++ b/lib/routes/8kcos/latest.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { SUB_NAME_PREFIX, SUB_URL } = require('./const'); +import { SUB_NAME_PREFIX, SUB_URL } from './const'; const loadArticle = require('./article'); const url = SUB_URL; diff --git a/lib/routes/8kcos/tag.ts b/lib/routes/8kcos/tag.ts index 17260b3e35..fc341b754c 100644 --- a/lib/routes/8kcos/tag.ts +++ b/lib/routes/8kcos/tag.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { SUB_NAME_PREFIX, SUB_URL } = require('./const'); +import { SUB_NAME_PREFIX, SUB_URL } from './const'; const loadArticle = require('./article'); export default async (ctx) => { const limit = Number.parseInt(ctx.req.query('limit')); diff --git a/lib/routes/91porn/author.ts b/lib/routes/91porn/author.ts index 1753a100a0..bfb2ea58fd 100644 --- a/lib/routes/91porn/author.ts +++ b/lib/routes/91porn/author.ts @@ -7,7 +7,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { domainValidation } = require('./utils'); +import { domainValidation } from './utils'; export default async (ctx) => { const { domain = '91porn.com' } = ctx.req.query(); diff --git a/lib/routes/91porn/index.ts b/lib/routes/91porn/index.ts index 019a35bb46..51cd9fe9db 100644 --- a/lib/routes/91porn/index.ts +++ b/lib/routes/91porn/index.ts @@ -7,7 +7,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { domainValidation } = require('./utils'); +import { domainValidation } from './utils'; export default async (ctx) => { const { domain = '91porn.com' } = ctx.req.query(); diff --git a/lib/routes/91porn/utils.ts b/lib/routes/91porn/utils.ts index 592660886d..40ef32d86d 100644 --- a/lib/routes/91porn/utils.ts +++ b/lib/routes/91porn/utils.ts @@ -7,6 +7,4 @@ const domainValidation = (domain) => { } }; -module.exports = { - domainValidation, -}; +export { domainValidation }; diff --git a/lib/routes/95mm/category.ts b/lib/routes/95mm/category.ts index 40a9ed2454..5c8940d84f 100644 --- a/lib/routes/95mm/category.ts +++ b/lib/routes/95mm/category.ts @@ -1,4 +1,4 @@ -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const categories = { diff --git a/lib/routes/95mm/tab.ts b/lib/routes/95mm/tab.ts index 296af37dee..44fab7df10 100644 --- a/lib/routes/95mm/tab.ts +++ b/lib/routes/95mm/tab.ts @@ -1,4 +1,4 @@ -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const tab = ctx.req.param('tab') ?? '最新'; diff --git a/lib/routes/95mm/tag.ts b/lib/routes/95mm/tag.ts index a674bc3b9a..77491f35c1 100644 --- a/lib/routes/95mm/tag.ts +++ b/lib/routes/95mm/tag.ts @@ -1,4 +1,4 @@ -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const tag = ctx.req.param('tag'); diff --git a/lib/routes/95mm/utils.ts b/lib/routes/95mm/utils.ts index 01eb7dc9ea..d45944f4dd 100644 --- a/lib/routes/95mm/utils.ts +++ b/lib/routes/95mm/utils.ts @@ -9,56 +9,55 @@ import * as path from 'node:path'; const rootUrl = 'https://www.95mm.vip'; -module.exports = { - rootUrl, - ProcessItems: async (ctx, title, currentUrl) => { - const response = await got({ - method: 'get', - url: currentUrl, - headers: { - Referer: rootUrl, - }, +const ProcessItems = async (ctx, title, currentUrl) => { + const response = await got({ + method: 'get', + url: currentUrl, + headers: { + Referer: rootUrl, + }, + }); + + const $ = load(response.data); + + let items = $('div.list-body') + .toArray() + .map((item) => { + item = $(item); + + const a = item.find('a'); + + return { + title: a.text(), + link: a.attr('href'), + guid: a.attr('href').replace('95mm.vip', '95mm.org'), + }; }); - const $ = load(response.data); + items = await Promise.all( + items.map((item) => + cache.tryGet(item.link, async () => { + const detailResponse = await got({ + method: 'get', + url: item.link, + }); - let items = $('div.list-body') - .toArray() - .map((item) => { - item = $(item); + const images = detailResponse.data.match(/src": '(.*?)',"width/g); - const a = item.find('a'); + item.description = art(path.join(__dirname, 'templates/description.art'), { + images: images.map((i) => i.split("'")[1].replaceAll('\\/', '/')), + }); - return { - title: a.text(), - link: a.attr('href'), - guid: a.attr('href').replace('95mm.vip', '95mm.org'), - }; - }); + return item; + }) + ) + ); - items = await Promise.all( - items.map((item) => - cache.tryGet(item.link, async () => { - const detailResponse = await got({ - method: 'get', - url: item.link, - }); - - const images = detailResponse.data.match(/src": '(.*?)',"width/g); - - item.description = art(path.join(__dirname, 'templates/description.art'), { - images: images.map((i) => i.split("'")[1].replaceAll('\\/', '/')), - }); - - return item; - }) - ) - ); - - return { - title: `${title} - MM范`, - link: currentUrl, - item: items, - }; - }, + return { + title: `${title} - MM范`, + link: currentUrl, + item: items, + }; }; + +export { rootUrl, ProcessItems }; diff --git a/lib/routes/9to5/utils.ts b/lib/routes/9to5/utils.ts index 2aa94e01cd..defa6d5312 100644 --- a/lib/routes/9to5/utils.ts +++ b/lib/routes/9to5/utils.ts @@ -31,6 +31,4 @@ const ProcessFeed = (data) => { return content.html(); }; -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/aeon/category.ts b/lib/routes/aeon/category.ts index d262d4772e..913647ec52 100644 --- a/lib/routes/aeon/category.ts +++ b/lib/routes/aeon/category.ts @@ -1,6 +1,6 @@ import { load } from 'cheerio'; import got from '@/utils/got'; -const { getData } = require('./utils'); +import { getData } from './utils'; export default async (ctx) => { const url = `https://aeon.co/${ctx.req.param('category')}`; diff --git a/lib/routes/aeon/type.ts b/lib/routes/aeon/type.ts index 3709804fd6..b2c5759011 100644 --- a/lib/routes/aeon/type.ts +++ b/lib/routes/aeon/type.ts @@ -1,6 +1,6 @@ import { load } from 'cheerio'; import got from '@/utils/got'; -const { getData } = require('./utils'); +import { getData } from './utils'; export default async (ctx) => { const type = ctx.req.param('type'); diff --git a/lib/routes/aeon/utils.ts b/lib/routes/aeon/utils.ts index 580e3f325a..52d558503d 100644 --- a/lib/routes/aeon/utils.ts +++ b/lib/routes/aeon/utils.ts @@ -49,6 +49,4 @@ const getData = async (ctx, list) => { return items; }; -module.exports = { - getData, -}; +export { getData }; diff --git a/lib/routes/agefans/detail.ts b/lib/routes/agefans/detail.ts index 89d4938217..0fb4d508e0 100644 --- a/lib/routes/agefans/detail.ts +++ b/lib/routes/agefans/detail.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { load } from 'cheerio'; -const { rootUrl } = require('./utils'); +import { rootUrl } from './utils'; export default async (ctx) => { const response = await got(`${rootUrl}/detail/${ctx.req.param('id')}`); diff --git a/lib/routes/agefans/update.ts b/lib/routes/agefans/update.ts index 378024d7a9..2099f4e395 100644 --- a/lib/routes/agefans/update.ts +++ b/lib/routes/agefans/update.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { rootUrl } = require('./utils'); +import { rootUrl } from './utils'; export default async (ctx) => { const currentUrl = `${rootUrl}/update`; diff --git a/lib/routes/agefans/utils.ts b/lib/routes/agefans/utils.ts index e8e606efc3..c3eb91f7ff 100644 --- a/lib/routes/agefans/utils.ts +++ b/lib/routes/agefans/utils.ts @@ -1,5 +1,3 @@ const rootUrl = 'https://www.agemys.org'; -module.exports = { - rootUrl, -}; +export { rootUrl }; diff --git a/lib/routes/agirls/index.ts b/lib/routes/agirls/index.ts index cb7c17b0d8..6447ed91ef 100644 --- a/lib/routes/agirls/index.ts +++ b/lib/routes/agirls/index.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl, parseArticle } = require('./utils'); +import { baseUrl, parseArticle } from './utils'; export default async (ctx) => { const { category = '' } = ctx.req.param(); diff --git a/lib/routes/agirls/topic-list.ts b/lib/routes/agirls/topic-list.ts index 9e325d1e01..7d35b54a77 100644 --- a/lib/routes/agirls/topic-list.ts +++ b/lib/routes/agirls/topic-list.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl } = require('./utils'); +import { baseUrl } from './utils'; export default async (ctx) => { const category = 'topic'; diff --git a/lib/routes/agirls/topic.ts b/lib/routes/agirls/topic.ts index 8b2b38cd80..46d71e8ef7 100644 --- a/lib/routes/agirls/topic.ts +++ b/lib/routes/agirls/topic.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl, parseArticle } = require('./utils'); +import { baseUrl, parseArticle } from './utils'; export default async (ctx) => { const topic = ctx.req.param('topic'); diff --git a/lib/routes/agirls/utils.ts b/lib/routes/agirls/utils.ts index fe9865a6f8..916c7d1c14 100644 --- a/lib/routes/agirls/utils.ts +++ b/lib/routes/agirls/utils.ts @@ -25,7 +25,4 @@ const parseArticle = async (item) => { return item; }; -module.exports = { - baseUrl, - parseArticle, -}; +export { baseUrl, parseArticle }; diff --git a/lib/routes/aijishu/utils.ts b/lib/routes/aijishu/utils.ts index 88e9713ecf..9cfbbf9cef 100644 --- a/lib/routes/aijishu/utils.ts +++ b/lib/routes/aijishu/utils.ts @@ -32,6 +32,4 @@ const parseArticle = (item) => { }); }; -module.exports = { - parseArticle, -}; +export { parseArticle }; diff --git a/lib/routes/ainvest/article.ts b/lib/routes/ainvest/article.ts index 2d7b0079a1..9c13fc1016 100644 --- a/lib/routes/ainvest/article.ts +++ b/lib/routes/ainvest/article.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { getHeaders, randomString, encryptAES, decryptAES } = require('./utils'); +import { getHeaders, randomString, encryptAES, decryptAES } from './utils'; export default async (ctx) => { const key = randomString(16); diff --git a/lib/routes/ainvest/news.ts b/lib/routes/ainvest/news.ts index 79a14f01d5..41bbcbd448 100644 --- a/lib/routes/ainvest/news.ts +++ b/lib/routes/ainvest/news.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { getHeaders, randomString, decryptAES } = require('./utils'); +import { getHeaders, randomString, decryptAES } from './utils'; export default async (ctx) => { const key = randomString(16); diff --git a/lib/routes/ainvest/utils.ts b/lib/routes/ainvest/utils.ts index e592311bd9..cef8b61140 100644 --- a/lib/routes/ainvest/utils.ts +++ b/lib/routes/ainvest/utils.ts @@ -65,9 +65,4 @@ const getHeaders = (key) => { }; }; -module.exports = { - randomString, - encryptAES, - decryptAES, - getHeaders, -}; +export { randomString, encryptAES, decryptAES, getHeaders }; diff --git a/lib/routes/aip/journal-pupp.ts b/lib/routes/aip/journal-pupp.ts index 2c2de0abb6..b9f578d45b 100644 --- a/lib/routes/aip/journal-pupp.ts +++ b/lib/routes/aip/journal-pupp.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; -const { puppeteerGet, renderDesc } = require('./utils'); +import { puppeteerGet, renderDesc } from './utils'; import { config } from '@/config'; import { isValidHost } from '@/utils/valid-host'; import puppeteer from '@/utils/puppeteer'; diff --git a/lib/routes/aip/journal.ts b/lib/routes/aip/journal.ts index 1a04fca20b..04e1d2598d 100644 --- a/lib/routes/aip/journal.ts +++ b/lib/routes/aip/journal.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { load } from 'cheerio'; -const { renderDesc } = require('./utils'); +import { renderDesc } from './utils'; export default async (ctx) => { const pub = ctx.req.param('pub'); diff --git a/lib/routes/aip/utils.ts b/lib/routes/aip/utils.ts index 7c7d2bcac5..151425ac70 100644 --- a/lib/routes/aip/utils.ts +++ b/lib/routes/aip/utils.ts @@ -26,7 +26,4 @@ const renderDesc = (title, authors, doi, img) => img, }); -module.exports = { - puppeteerGet, - renderDesc, -}; +export { puppeteerGet, renderDesc }; diff --git a/lib/routes/aisixiang/column.ts b/lib/routes/aisixiang/column.ts index 342e134b91..4e799f7dcc 100644 --- a/lib/routes/aisixiang/column.ts +++ b/lib/routes/aisixiang/column.ts @@ -4,7 +4,7 @@ import { load } from 'cheerio'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl, ossUrl, ProcessFeed } = require('./utils'); +import { rootUrl, ossUrl, ProcessFeed } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/aisixiang/thinktank.ts b/lib/routes/aisixiang/thinktank.ts index 7f26e6419a..c9a5882c1c 100644 --- a/lib/routes/aisixiang/thinktank.ts +++ b/lib/routes/aisixiang/thinktank.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { rootUrl, ossUrl, ProcessFeed } = require('./utils'); +import { rootUrl, ossUrl, ProcessFeed } from './utils'; export default async (ctx) => { const { id, type = '' } = ctx.req.param(); diff --git a/lib/routes/aisixiang/toplist.ts b/lib/routes/aisixiang/toplist.ts index be9061249e..1232d778f4 100644 --- a/lib/routes/aisixiang/toplist.ts +++ b/lib/routes/aisixiang/toplist.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl, ossUrl, ProcessFeed } = require('./utils'); +import { rootUrl, ossUrl, ProcessFeed } from './utils'; export default async (ctx) => { const { id = '1', period = '1' } = ctx.req.param(); diff --git a/lib/routes/aisixiang/utils.ts b/lib/routes/aisixiang/utils.ts index 480d6e4c4d..5e96958ab2 100644 --- a/lib/routes/aisixiang/utils.ts +++ b/lib/routes/aisixiang/utils.ts @@ -36,8 +36,4 @@ const ProcessFeed = (limit, tryGet, items) => ) ); -module.exports = { - rootUrl, - ossUrl, - ProcessFeed, -}; +export { rootUrl, ossUrl, ProcessFeed }; diff --git a/lib/routes/aisixiang/zhuanti.ts b/lib/routes/aisixiang/zhuanti.ts index 06b2206281..bf992209ab 100644 --- a/lib/routes/aisixiang/zhuanti.ts +++ b/lib/routes/aisixiang/zhuanti.ts @@ -4,7 +4,7 @@ import { load } from 'cheerio'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl, ossUrl, ProcessFeed } = require('./utils'); +import { rootUrl, ossUrl, ProcessFeed } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/alistapart/index.ts b/lib/routes/alistapart/index.ts index 77261f4e55..d9b6a6ef34 100644 --- a/lib/routes/alistapart/index.ts +++ b/lib/routes/alistapart/index.ts @@ -1,4 +1,4 @@ -const { getData, getList } = require('./utils'); +import { getData, getList } from './utils'; export default async (ctx) => { const baseUrl = 'https://alistapart.com'; diff --git a/lib/routes/alistapart/topic.ts b/lib/routes/alistapart/topic.ts index b514310426..58fc2ccdf1 100644 --- a/lib/routes/alistapart/topic.ts +++ b/lib/routes/alistapart/topic.ts @@ -1,4 +1,4 @@ -const { getData, getList } = require('./utils'); +import { getData, getList } from './utils'; export default async (ctx) => { const baseUrl = 'https://alistapart.com'; diff --git a/lib/routes/alistapart/utils.ts b/lib/routes/alistapart/utils.ts index 4ffd897168..c4a4a29257 100644 --- a/lib/routes/alistapart/utils.ts +++ b/lib/routes/alistapart/utils.ts @@ -19,4 +19,4 @@ const getList = (data) => }; }); -module.exports = { getData, getList }; +export { getData, getList }; diff --git a/lib/routes/alternativeto/platform.ts b/lib/routes/alternativeto/platform.ts index 5e2de9230d..ee7086c60e 100644 --- a/lib/routes/alternativeto/platform.ts +++ b/lib/routes/alternativeto/platform.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { baseURL, puppeteerGet } = require('./utils'); +import { baseURL, puppeteerGet } from './utils'; import { load } from 'cheerio'; export default async (ctx) => { diff --git a/lib/routes/alternativeto/software.ts b/lib/routes/alternativeto/software.ts index 454ddb5114..f3ac2e50c6 100644 --- a/lib/routes/alternativeto/software.ts +++ b/lib/routes/alternativeto/software.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { baseURL, puppeteerGet } = require('./utils'); +import { baseURL, puppeteerGet } from './utils'; import { load } from 'cheerio'; export default async (ctx) => { diff --git a/lib/routes/alternativeto/utils.ts b/lib/routes/alternativeto/utils.ts index 88370c7155..92b1fd81f9 100644 --- a/lib/routes/alternativeto/utils.ts +++ b/lib/routes/alternativeto/utils.ts @@ -18,7 +18,4 @@ const puppeteerGet = (url, cache) => return html; }); -module.exports = { - baseURL, - puppeteerGet, -}; +export { baseURL, puppeteerGet }; diff --git a/lib/routes/arcteryx/new-arrivals.ts b/lib/routes/arcteryx/new-arrivals.ts index 16d6eface7..ab922491d2 100644 --- a/lib/routes/arcteryx/new-arrivals.ts +++ b/lib/routes/arcteryx/new-arrivals.ts @@ -4,7 +4,7 @@ const __dirname = getCurrentPath(import.meta.url); import got from '@/utils/got'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { generateRssData } = require('./utils'); +import { generateRssData } from './utils'; export default async (ctx) => { const { country, gender } = ctx.req.param(); diff --git a/lib/routes/arcteryx/outlet.ts b/lib/routes/arcteryx/outlet.ts index d3b24dd598..d7e1db5d31 100644 --- a/lib/routes/arcteryx/outlet.ts +++ b/lib/routes/arcteryx/outlet.ts @@ -4,7 +4,7 @@ const __dirname = getCurrentPath(import.meta.url); import got from '@/utils/got'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { generateRssData } = require('./utils'); +import { generateRssData } from './utils'; export default async (ctx) => { const { country, gender } = ctx.req.param(); diff --git a/lib/routes/arcteryx/utils.ts b/lib/routes/arcteryx/utils.ts index 92c44f115b..13cbda2296 100644 --- a/lib/routes/arcteryx/utils.ts +++ b/lib/routes/arcteryx/utils.ts @@ -18,6 +18,4 @@ function generateRssData(item, index, arr, country) { } return (arr[index] = data); } -module.exports = { - generateRssData, -}; +export { generateRssData }; diff --git a/lib/routes/baai/comments.ts b/lib/routes/baai/comments.ts index 2f3385d8bf..a364feb774 100644 --- a/lib/routes/baai/comments.ts +++ b/lib/routes/baai/comments.ts @@ -2,7 +2,7 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { baseUrl, apiHost } = require('./utils'); +import { baseUrl, apiHost } from './utils'; export default async (ctx) => { const responses = await got.all( diff --git a/lib/routes/baai/events.ts b/lib/routes/baai/events.ts index 46ea4ecbd0..8d09b7c993 100644 --- a/lib/routes/baai/events.ts +++ b/lib/routes/baai/events.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { baseUrl, apiHost, parseEventDetail, parseItem } = require('./utils'); +import { baseUrl, apiHost, parseEventDetail, parseItem } from './utils'; export default async (ctx) => { const responses = await got.all( diff --git a/lib/routes/baai/hub.ts b/lib/routes/baai/hub.ts index b62d2c7458..2f5789edc5 100644 --- a/lib/routes/baai/hub.ts +++ b/lib/routes/baai/hub.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl, apiHost, parseEventDetail, parseItem } = require('./utils'); +import { baseUrl, apiHost, parseEventDetail, parseItem } from './utils'; export default async (ctx) => { const { tagId, sort = 'new', range } = ctx.req.param(); diff --git a/lib/routes/baai/utils.ts b/lib/routes/baai/utils.ts index 64af92943d..c3897460b1 100644 --- a/lib/routes/baai/utils.ts +++ b/lib/routes/baai/utils.ts @@ -24,10 +24,4 @@ const parseEventDetail = async (item) => { return data.data.ac_desc + data.data.ac_desc_two; }; -module.exports = { - baseUrl, - eventUrl, - apiHost, - parseItem, - parseEventDetail, -}; +export { baseUrl, eventUrl, apiHost, parseItem, parseEventDetail }; diff --git a/lib/routes/bangumi/tv/subject/ep.ts b/lib/routes/bangumi/tv/subject/ep.ts index de53d36aaa..d1de133800 100644 --- a/lib/routes/bangumi/tv/subject/ep.ts +++ b/lib/routes/bangumi/tv/subject/ep.ts @@ -5,7 +5,7 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { getLocalName } = require('./utils'); +import { getLocalName } from './utils'; module.exports = async (subjectID, showOriginalName) => { const url = `https://api.bgm.tv/subject/${subjectID}?responseGroup=large`; diff --git a/lib/routes/bangumi/tv/subject/offcial-subject-api.ts b/lib/routes/bangumi/tv/subject/offcial-subject-api.ts index 883eddd32b..4850fd9460 100644 --- a/lib/routes/bangumi/tv/subject/offcial-subject-api.ts +++ b/lib/routes/bangumi/tv/subject/offcial-subject-api.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { getLocalName } = require('./utils'); +import { getLocalName } from './utils'; module.exports = (type) => { const mapping = { diff --git a/lib/routes/bangumi/tv/subject/utils.ts b/lib/routes/bangumi/tv/subject/utils.ts index 31a3a25268..f9d5b06cb8 100644 --- a/lib/routes/bangumi/tv/subject/utils.ts +++ b/lib/routes/bangumi/tv/subject/utils.ts @@ -1,5 +1,3 @@ const getLocalName = (obj, showOriginalName) => (showOriginalName ? obj.name || obj.name_cn : obj.name_cn || obj.name); -module.exports = { - getLocalName, -}; +export { getLocalName }; diff --git a/lib/routes/bbc/utils.ts b/lib/routes/bbc/utils.ts index 7ec6fe8b22..4afa584e95 100644 --- a/lib/routes/bbc/utils.ts +++ b/lib/routes/bbc/utils.ts @@ -32,6 +32,4 @@ const ProcessFeed = ($) => { return content.html(); }; -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/bilibili/article.ts b/lib/routes/bilibili/article.ts index 4725be4648..26dcb3d567 100644 --- a/lib/routes/bilibili/article.ts +++ b/lib/routes/bilibili/article.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; import { parseDate } from '@/utils/parse-date'; export default async (ctx) => { diff --git a/lib/routes/bilibili/cache.ts b/lib/routes/bilibili/cache.ts index 2d59bff023..65a3357319 100644 --- a/lib/routes/bilibili/cache.ts +++ b/lib/routes/bilibili/cache.ts @@ -1,11 +1,11 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const utils = require('./utils'); +import utils from './utils'; import { load } from 'cheerio'; import { config } from '@/config'; import logger from '@/utils/logger'; -module.exports = { +export default { getCookie: () => { if (Object.keys(config.bilibili.cookies).length > 0) { return config.bilibili.cookies[Object.keys(config.bilibili.cookies)[Math.floor(Math.random() * Object.keys(config.bilibili.cookies).length)]]; diff --git a/lib/routes/bilibili/coin.ts b/lib/routes/bilibili/coin.ts index 9656326023..200f0d64f0 100644 --- a/lib/routes/bilibili/coin.ts +++ b/lib/routes/bilibili/coin.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; -const cache = require('./cache'); -const utils = require('./utils'); +import cache from './cache'; +import utils from './utils'; import { parseDate } from '@/utils/parse-date'; export default async (ctx) => { diff --git a/lib/routes/bilibili/danmaku.ts b/lib/routes/bilibili/danmaku.ts index b782b028cc..bb4cab8c53 100644 --- a/lib/routes/bilibili/danmaku.ts +++ b/lib/routes/bilibili/danmaku.ts @@ -1,5 +1,5 @@ import { load } from 'cheerio'; -const cache = require('./cache'); +import cache from './cache'; import got from '@/utils/got'; const zlib = require('zlib'); diff --git a/lib/routes/bilibili/dynamic.ts b/lib/routes/bilibili/dynamic.ts index 6802f15ac8..e7b06e95a7 100644 --- a/lib/routes/bilibili/dynamic.ts +++ b/lib/routes/bilibili/dynamic.ts @@ -1,10 +1,10 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; const JSONbig = require('json-bigint'); -const utils = require('./utils'); +import utils from './utils'; import { parseDate } from '@/utils/parse-date'; import { fallback, queryToBoolean } from '@/utils/readable-social'; -const cacheIn = require('./cache'); +import cacheIn from './cache'; /** @by CaoMeiYouRen 2020-05-05 添加注释 diff --git a/lib/routes/bilibili/fav.ts b/lib/routes/bilibili/fav.ts index 32b6f523be..849b191c0e 100644 --- a/lib/routes/bilibili/fav.ts +++ b/lib/routes/bilibili/fav.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const utils = require('./utils'); +import utils from './utils'; import { parseDate } from '@/utils/parse-date'; import { config } from '@/config'; diff --git a/lib/routes/bilibili/followers.ts b/lib/routes/bilibili/followers.ts index 698c8e8597..7e33354b64 100644 --- a/lib/routes/bilibili/followers.ts +++ b/lib/routes/bilibili/followers.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; import { config } from '@/config'; export default async (ctx) => { diff --git a/lib/routes/bilibili/followings-article.ts b/lib/routes/bilibili/followings-article.ts index b34b59cf96..d7039d2639 100644 --- a/lib/routes/bilibili/followings-article.ts +++ b/lib/routes/bilibili/followings-article.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; import { config } from '@/config'; export default async (ctx) => { diff --git a/lib/routes/bilibili/followings-dynamic.ts b/lib/routes/bilibili/followings-dynamic.ts index cc115c3dbc..86b8a8868d 100644 --- a/lib/routes/bilibili/followings-dynamic.ts +++ b/lib/routes/bilibili/followings-dynamic.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; import { config } from '@/config'; -const utils = require('./utils'); +import utils from './utils'; const JSONbig = require('json-bigint'); import { fallback, queryToBoolean } from '@/utils/readable-social'; const querystring = require('querystring'); diff --git a/lib/routes/bilibili/followings-video.ts b/lib/routes/bilibili/followings-video.ts index 99051037c2..5ea401fb70 100644 --- a/lib/routes/bilibili/followings-video.ts +++ b/lib/routes/bilibili/followings-video.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; import { config } from '@/config'; -const utils = require('./utils'); +import utils from './utils'; export default async (ctx) => { const uid = String(ctx.req.param('uid')); diff --git a/lib/routes/bilibili/followings.ts b/lib/routes/bilibili/followings.ts index 89bd6c4d11..2041d06f2a 100644 --- a/lib/routes/bilibili/followings.ts +++ b/lib/routes/bilibili/followings.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; import { config } from '@/config'; export default async (ctx) => { diff --git a/lib/routes/bilibili/hot-search.ts b/lib/routes/bilibili/hot-search.ts index 5818f4028b..f54d36ea7d 100644 --- a/lib/routes/bilibili/hot-search.ts +++ b/lib/routes/bilibili/hot-search.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; -const cache = require('./cache'); -const utils = require('./utils'); +import cache from './cache'; +import utils from './utils'; export default async (ctx) => { const wbiVerifyString = await cache.getWbiVerifyString(ctx); diff --git a/lib/routes/bilibili/like.ts b/lib/routes/bilibili/like.ts index ae4030e26d..0655ecdd2b 100644 --- a/lib/routes/bilibili/like.ts +++ b/lib/routes/bilibili/like.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; -const cache = require('./cache'); -const utils = require('./utils'); +import cache from './cache'; +import utils from './utils'; import { parseDate } from '@/utils/parse-date'; export default async (ctx) => { diff --git a/lib/routes/bilibili/live-room.ts b/lib/routes/bilibili/live-room.ts index 40337aacde..a6eccd58b1 100644 --- a/lib/routes/bilibili/live-room.ts +++ b/lib/routes/bilibili/live-room.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; export default async (ctx) => { let roomID = ctx.req.param('roomID'); diff --git a/lib/routes/bilibili/live-search.ts b/lib/routes/bilibili/live-search.ts index cd9b223b20..0f70a65e52 100644 --- a/lib/routes/bilibili/live-search.ts +++ b/lib/routes/bilibili/live-search.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; -const utils = require('./utils'); -const cache = require('./cache'); +import utils from './utils'; +import cache from './cache'; export default async (ctx) => { const key = ctx.req.param('key'); diff --git a/lib/routes/bilibili/manga-followings.ts b/lib/routes/bilibili/manga-followings.ts index 06c415d001..f182586558 100644 --- a/lib/routes/bilibili/manga-followings.ts +++ b/lib/routes/bilibili/manga-followings.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; import { config } from '@/config'; export default async (ctx) => { diff --git a/lib/routes/bilibili/page.ts b/lib/routes/bilibili/page.ts index 125a73556f..1977d35a5a 100644 --- a/lib/routes/bilibili/page.ts +++ b/lib/routes/bilibili/page.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const utils = require('./utils'); +import utils from './utils'; export default async (ctx) => { let bvid = ctx.req.param('bvid'); diff --git a/lib/routes/bilibili/partion-ranking.ts b/lib/routes/bilibili/partion-ranking.ts index 0b3aaac351..262636d583 100644 --- a/lib/routes/bilibili/partion-ranking.ts +++ b/lib/routes/bilibili/partion-ranking.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const utils = require('./utils'); +import utils from './utils'; const got_ins = got.extend({ headers: { Referer: 'https://www.bilibili.com/', diff --git a/lib/routes/bilibili/partion.ts b/lib/routes/bilibili/partion.ts index 29fccf3149..9968e4d484 100644 --- a/lib/routes/bilibili/partion.ts +++ b/lib/routes/bilibili/partion.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const utils = require('./utils'); +import utils from './utils'; export default async (ctx) => { const tid = ctx.req.param('tid'); diff --git a/lib/routes/bilibili/popular.ts b/lib/routes/bilibili/popular.ts index 726c31b6ff..147f93473c 100644 --- a/lib/routes/bilibili/popular.ts +++ b/lib/routes/bilibili/popular.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const utils = require('./utils'); +import utils from './utils'; export default async (ctx) => { const disableEmbed = ctx.req.param('disableEmbed'); diff --git a/lib/routes/bilibili/ranking.ts b/lib/routes/bilibili/ranking.ts index e5c23e7980..0ee1db976c 100644 --- a/lib/routes/bilibili/ranking.ts +++ b/lib/routes/bilibili/ranking.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const utils = require('./utils'); +import utils from './utils'; export default async (ctx) => { const rid = ctx.req.param('rid') || '0'; diff --git a/lib/routes/bilibili/reply.ts b/lib/routes/bilibili/reply.ts index 5574d0da6f..3d356ce932 100644 --- a/lib/routes/bilibili/reply.ts +++ b/lib/routes/bilibili/reply.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; export default async (ctx) => { let bvid = ctx.req.param('bvid'); diff --git a/lib/routes/bilibili/user-bangumi.ts b/lib/routes/bilibili/user-bangumi.ts index 168e4ab5d5..335b0c63c9 100644 --- a/lib/routes/bilibili/user-bangumi.ts +++ b/lib/routes/bilibili/user-bangumi.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; export default async (ctx) => { const uid = ctx.req.param('uid'); diff --git a/lib/routes/bilibili/user-channel.ts b/lib/routes/bilibili/user-channel.ts index eb240417ce..ba31876af1 100644 --- a/lib/routes/bilibili/user-channel.ts +++ b/lib/routes/bilibili/user-channel.ts @@ -1,8 +1,8 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const cacheIn = require('./cache'); -const utils = require('./utils'); +import cacheIn from './cache'; +import utils from './utils'; const notFoundData = { title: '此 bilibili 频道不存在', diff --git a/lib/routes/bilibili/user-collection.ts b/lib/routes/bilibili/user-collection.ts index 3c307bcf81..affac3406f 100644 --- a/lib/routes/bilibili/user-collection.ts +++ b/lib/routes/bilibili/user-collection.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; -const cache = require('./cache'); -const utils = require('./utils'); +import cache from './cache'; +import utils from './utils'; import { parseDate } from '@/utils/parse-date'; const notFoundData = { diff --git a/lib/routes/bilibili/user-fav.ts b/lib/routes/bilibili/user-fav.ts index 4a03702173..bc6bffbfa5 100644 --- a/lib/routes/bilibili/user-fav.ts +++ b/lib/routes/bilibili/user-fav.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; -const cache = require('./cache'); -const utils = require('./utils'); +import cache from './cache'; +import utils from './utils'; import { config } from '@/config'; export default async (ctx) => { diff --git a/lib/routes/bilibili/utils.ts b/lib/routes/bilibili/utils.ts index a84b88a41d..8b9fc5c762 100644 --- a/lib/routes/bilibili/utils.ts +++ b/lib/routes/bilibili/utils.ts @@ -111,7 +111,9 @@ function addDmVerifyInfo(params, dmImgList) { return `${params}&dm_img_list=${dmImgList}&dm_img_str=${dmImgStr}&dm_cover_img_str=${dmCoverImgStr}`; } -module.exports = { +const bvidTime = 1_589_990_400; + +export default { iframe, lsid, _uuid, @@ -119,5 +121,5 @@ module.exports = { addWbiVerifyInfo, getDmImgList, addDmVerifyInfo, - bvidTime: 1_589_990_400, + bvidTime, }; diff --git a/lib/routes/bilibili/video-all.ts b/lib/routes/bilibili/video-all.ts index cd4e028f57..ca78a3c175 100644 --- a/lib/routes/bilibili/video-all.ts +++ b/lib/routes/bilibili/video-all.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; -const cache = require('./cache'); -const utils = require('./utils'); +import cache from './cache'; +import utils from './utils'; import { parseDate } from '@/utils/parse-date'; export default async (ctx) => { diff --git a/lib/routes/bilibili/video.ts b/lib/routes/bilibili/video.ts index 0d93f9d7be..82397c98ad 100644 --- a/lib/routes/bilibili/video.ts +++ b/lib/routes/bilibili/video.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; -const cache = require('./cache'); -const utils = require('./utils'); +import cache from './cache'; +import utils from './utils'; import logger from '@/utils/logger'; export default async (ctx) => { diff --git a/lib/routes/bilibili/vsearch.ts b/lib/routes/bilibili/vsearch.ts index 673f8e4cb9..49d7ad3508 100644 --- a/lib/routes/bilibili/vsearch.ts +++ b/lib/routes/bilibili/vsearch.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import { config } from '@/config'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const utils = require('./utils'); +import utils from './utils'; const { CookieJar } = require('tough-cookie'); const cookieJar = new CookieJar(); import { queryToBoolean } from '@/utils/readable-social'; diff --git a/lib/routes/bilibili/watchlater.ts b/lib/routes/bilibili/watchlater.ts index d0ec308558..1dece7a0c0 100644 --- a/lib/routes/bilibili/watchlater.ts +++ b/lib/routes/bilibili/watchlater.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; -const cache = require('./cache'); +import cache from './cache'; import { config } from '@/config'; -const utils = require('./utils'); +import utils from './utils'; import { parseDate } from '@/utils/parse-date'; export default async (ctx) => { diff --git a/lib/routes/bilibili/weekly-recommend.ts b/lib/routes/bilibili/weekly-recommend.ts index 09957ba2c4..6ec1ee17f4 100644 --- a/lib/routes/bilibili/weekly-recommend.ts +++ b/lib/routes/bilibili/weekly-recommend.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const utils = require('./utils'); +import utils from './utils'; export default async (ctx) => { const disableEmbed = ctx.req.param('disableEmbed'); diff --git a/lib/routes/bit/cs/utils.ts b/lib/routes/bit/cs/utils.ts index 5d981db7e8..1fc64fa692 100644 --- a/lib/routes/bit/cs/utils.ts +++ b/lib/routes/bit/cs/utils.ts @@ -48,6 +48,4 @@ const ProcessFeed = (list, caches) => { ); }; -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/bit/jwc/utils.ts b/lib/routes/bit/jwc/utils.ts index 4a2555506c..66eb7442a3 100644 --- a/lib/routes/bit/jwc/utils.ts +++ b/lib/routes/bit/jwc/utils.ts @@ -44,6 +44,4 @@ const ProcessFeed = (list, caches) => { ); }; -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/bjfu/it/utils.ts b/lib/routes/bjfu/it/utils.ts index dec126b668..5f8bfb14e9 100644 --- a/lib/routes/bjfu/it/utils.ts +++ b/lib/routes/bjfu/it/utils.ts @@ -68,6 +68,4 @@ const ProcessFeed = (base, list, caches) => }); }) ); -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/bjfu/jwc/utils.ts b/lib/routes/bjfu/jwc/utils.ts index 107b54a6c5..ffbd0af473 100644 --- a/lib/routes/bjfu/jwc/utils.ts +++ b/lib/routes/bjfu/jwc/utils.ts @@ -55,6 +55,4 @@ const ProcessFeed = (base, list, caches) => }); }) ); -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/bjfu/news/utils.ts b/lib/routes/bjfu/news/utils.ts index 7c402246d5..37c80a929f 100644 --- a/lib/routes/bjfu/news/utils.ts +++ b/lib/routes/bjfu/news/utils.ts @@ -56,6 +56,4 @@ const ProcessFeed = (base, list, caches) => }); }) ); -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/bloomberg/authors.ts b/lib/routes/bloomberg/authors.ts index 8e69a74d28..a7ec8bdd6b 100644 --- a/lib/routes/bloomberg/authors.ts +++ b/lib/routes/bloomberg/authors.ts @@ -1,7 +1,7 @@ import { load } from 'cheerio'; import got from '@/utils/got'; import rssParser from '@/utils/rss-parser'; -const { asyncPoolAll, parseArticle } = require('./utils'); +import { asyncPoolAll, parseArticle } from './utils'; const parseAuthorNewsList = async (slug) => { const baseURL = `https://www.bloomberg.com/authors/${slug}`; diff --git a/lib/routes/bloomberg/index.ts b/lib/routes/bloomberg/index.ts index 8653013060..c629080824 100644 --- a/lib/routes/bloomberg/index.ts +++ b/lib/routes/bloomberg/index.ts @@ -1,4 +1,4 @@ -const { rootUrl, asyncPoolAll, parseNewsList, parseArticle } = require('./utils'); +import { rootUrl, asyncPoolAll, parseNewsList, parseArticle } from './utils'; const site_title_mapping = { '/': 'News', bpol: 'Politics', diff --git a/lib/routes/bloomberg/utils.ts b/lib/routes/bloomberg/utils.ts index 2c4c231e5e..22576efb67 100644 --- a/lib/routes/bloomberg/utils.ts +++ b/lib/routes/bloomberg/utils.ts @@ -598,9 +598,4 @@ const asyncPoolAll = async (...args) => { return results; }; -module.exports = { - rootUrl, - asyncPoolAll, - parseNewsList, - parseArticle, -}; +export { rootUrl, asyncPoolAll, parseNewsList, parseArticle }; diff --git a/lib/routes/bsky/posts.ts b/lib/routes/bsky/posts.ts index d18b5cb53b..40d5111f8d 100644 --- a/lib/routes/bsky/posts.ts +++ b/lib/routes/bsky/posts.ts @@ -3,7 +3,7 @@ const __dirname = getCurrentPath(import.meta.url); import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; -const { resolveHandle, getProfile, getAuthorFeed } = require('./utils'); +import { resolveHandle, getProfile, getAuthorFeed } from './utils'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/bsky/utils.ts b/lib/routes/bsky/utils.ts index d2222f40c1..3ffe67f638 100644 --- a/lib/routes/bsky/utils.ts +++ b/lib/routes/bsky/utils.ts @@ -45,8 +45,4 @@ const getAuthorFeed = (did, tryGet) => false ); -module.exports = { - resolveHandle, - getProfile, - getAuthorFeed, -}; +export { resolveHandle, getProfile, getAuthorFeed }; diff --git a/lib/routes/byteclicks/index.ts b/lib/routes/byteclicks/index.ts index 7ff565c6b1..f8d94c6076 100644 --- a/lib/routes/byteclicks/index.ts +++ b/lib/routes/byteclicks/index.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { parseItem } = require('./utils'); +import { parseItem } from './utils'; const baseUrl = 'https://byteclicks.com'; export default async (ctx) => { diff --git a/lib/routes/byteclicks/tag.ts b/lib/routes/byteclicks/tag.ts index 5edb67a2c6..51bf3d4b6c 100644 --- a/lib/routes/byteclicks/tag.ts +++ b/lib/routes/byteclicks/tag.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { parseItem } = require('./utils'); +import { parseItem } from './utils'; const baseUrl = 'https://byteclicks.com'; export default async (ctx) => { diff --git a/lib/routes/byteclicks/utils.ts b/lib/routes/byteclicks/utils.ts index 3cc92d954b..d8073f39eb 100644 --- a/lib/routes/byteclicks/utils.ts +++ b/lib/routes/byteclicks/utils.ts @@ -8,6 +8,4 @@ const parseItem = (data) => link: item.link, })); -module.exports = { - parseItem, -}; +export { parseItem }; diff --git a/lib/routes/caai/index.ts b/lib/routes/caai/index.ts index 95d32c1519..dbc6867783 100644 --- a/lib/routes/caai/index.ts +++ b/lib/routes/caai/index.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const utils = require('./utils'); +import utils from './utils'; import got from '@/utils/got'; import { load } from 'cheerio'; diff --git a/lib/routes/caai/utils.ts b/lib/routes/caai/utils.ts index ef4eeb8916..f5ebe650f3 100644 --- a/lib/routes/caai/utils.ts +++ b/lib/routes/caai/utils.ts @@ -40,7 +40,7 @@ const fetchAllArticles = (data) => { return info; }; -module.exports = { +export default { BASE: base, urlBase, fetchAllArticles, diff --git a/lib/routes/caareviews/book.ts b/lib/routes/caareviews/book.ts index a6c3c5064e..55cc0599d9 100644 --- a/lib/routes/caareviews/book.ts +++ b/lib/routes/caareviews/book.ts @@ -1,4 +1,4 @@ -const { rootUrl, getList, getItems } = require('./utils'); +import { rootUrl, getList, getItems } from './utils'; export default async (ctx) => { const url = `${rootUrl}/reviews/book`; diff --git a/lib/routes/caareviews/essay.ts b/lib/routes/caareviews/essay.ts index e7f4e94e0a..e914323004 100644 --- a/lib/routes/caareviews/essay.ts +++ b/lib/routes/caareviews/essay.ts @@ -1,4 +1,4 @@ -const { rootUrl, getList, getItems } = require('./utils'); +import { rootUrl, getList, getItems } from './utils'; export default async (ctx) => { const url = `${rootUrl}/reviews/essay`; diff --git a/lib/routes/caareviews/exhibition.ts b/lib/routes/caareviews/exhibition.ts index 4509721016..dabc7b05f4 100644 --- a/lib/routes/caareviews/exhibition.ts +++ b/lib/routes/caareviews/exhibition.ts @@ -1,4 +1,4 @@ -const { rootUrl, getList, getItems } = require('./utils'); +import { rootUrl, getList, getItems } from './utils'; export default async (ctx) => { const url = `${rootUrl}/reviews/exhibition`; diff --git a/lib/routes/caareviews/utils.ts b/lib/routes/caareviews/utils.ts index ac2dfab49b..0f1d938a09 100644 --- a/lib/routes/caareviews/utils.ts +++ b/lib/routes/caareviews/utils.ts @@ -46,8 +46,4 @@ const getItems = (ctx, list) => ) ); -module.exports = { - rootUrl, - getList, - getItems, -}; +export { rootUrl, getList, getItems }; diff --git a/lib/routes/caixin/article.ts b/lib/routes/caixin/article.ts index 3963632c13..6afba4c008 100644 --- a/lib/routes/caixin/article.ts +++ b/lib/routes/caixin/article.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { parseArticle } = require('./utils'); +import { parseArticle } from './utils'; export default async (ctx) => { const { data: response } = await got('https://mapiv5.caixin.com/m/api/getWapIndexListByPage'); diff --git a/lib/routes/caixin/blog.ts b/lib/routes/caixin/blog.ts index a748cfb4be..a91a4d4955 100644 --- a/lib/routes/caixin/blog.ts +++ b/lib/routes/caixin/blog.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { isValidHost } from '@/utils/valid-host'; import { parseDate } from '@/utils/parse-date'; -const { parseBlogArticle } = require('./utils'); +import { parseBlogArticle } from './utils'; export default async (ctx) => { const column = ctx.req.param('column'); diff --git a/lib/routes/caixin/category.ts b/lib/routes/caixin/category.ts index c4923bcc7c..6c4cdd4612 100644 --- a/lib/routes/caixin/category.ts +++ b/lib/routes/caixin/category.ts @@ -4,7 +4,7 @@ import { load } from 'cheerio'; import { isValidHost } from '@/utils/valid-host'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { parseArticle } = require('./utils'); +import { parseArticle } from './utils'; export default async (ctx) => { const category = ctx.req.param('category'); diff --git a/lib/routes/caixin/utils.ts b/lib/routes/caixin/utils.ts index cc553d006c..0b09d101a6 100644 --- a/lib/routes/caixin/utils.ts +++ b/lib/routes/caixin/utils.ts @@ -46,7 +46,4 @@ const parseBlogArticle = (item, tryGet) => return item; }); -module.exports = { - parseArticle, - parseBlogArticle, -}; +export { parseArticle, parseBlogArticle }; diff --git a/lib/routes/cbaigui/index.ts b/lib/routes/cbaigui/index.ts index 32e0ef4cf9..11ab731a97 100644 --- a/lib/routes/cbaigui/index.ts +++ b/lib/routes/cbaigui/index.ts @@ -8,7 +8,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { rootUrl, apiSlug, GetFilterId } = require('./utils'); +import { rootUrl, apiSlug, GetFilterId } from './utils'; export default async (ctx) => { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 50; diff --git a/lib/routes/cbaigui/utils.ts b/lib/routes/cbaigui/utils.ts index a0b2fedc6c..713d0d6762 100644 --- a/lib/routes/cbaigui/utils.ts +++ b/lib/routes/cbaigui/utils.ts @@ -11,8 +11,4 @@ const GetFilterId = async (type, name) => { return filterResponse.filter((f) => f.name === name).pop()?.id ?? undefined; }; -module.exports = { - rootUrl, - apiSlug, - GetFilterId, -}; +export { rootUrl, apiSlug, GetFilterId }; diff --git a/lib/routes/ccac/utils.ts b/lib/routes/ccac/utils.ts index fe061025a0..88050e1d02 100644 --- a/lib/routes/ccac/utils.ts +++ b/lib/routes/ccac/utils.ts @@ -23,10 +23,4 @@ function typeFilter(list, type) { return type === '全部' ? list : list.filter((item) => item.tags.some((tag) => tag.name === type)); } -module.exports = { - TYPE, - BASE_URL, - LANG_TYPE, - langBase, - typeFilter, -}; +export { TYPE, BASE_URL, LANG_TYPE, langBase, typeFilter }; diff --git a/lib/routes/ccf/tfbd/utils.ts b/lib/routes/ccf/tfbd/utils.ts index 24776f9cc4..25b13c0a79 100644 --- a/lib/routes/ccf/tfbd/utils.ts +++ b/lib/routes/ccf/tfbd/utils.ts @@ -41,7 +41,7 @@ const fetchAllArticles = (data) => { return info; }; -module.exports = { +export default { BASE: base, urlBase, fetchAllArticles, diff --git a/lib/routes/cde/utils.ts b/lib/routes/cde/utils.ts index 92bc92a065..74d6fc03ec 100644 --- a/lib/routes/cde/utils.ts +++ b/lib/routes/cde/utils.ts @@ -14,8 +14,4 @@ const getCookie = () => .join(''); }); -module.exports = { - title, - rootUrl, - getCookie, -}; +export { title, rootUrl, getCookie }; diff --git a/lib/routes/cebbank/utils.ts b/lib/routes/cebbank/utils.ts index 0d2b8a13f3..b8a8adf4a6 100644 --- a/lib/routes/cebbank/utils.ts +++ b/lib/routes/cebbank/utils.ts @@ -65,6 +65,4 @@ const TYPE = { }, }; -module.exports = { - TYPE, -}; +export { TYPE }; diff --git a/lib/routes/chinafactcheck/utils.ts b/lib/routes/chinafactcheck/utils.ts index 2a6cf6f303..96e71d4c98 100644 --- a/lib/routes/chinafactcheck/utils.ts +++ b/lib/routes/chinafactcheck/utils.ts @@ -51,7 +51,7 @@ class ArticleDetail { } } -module.exports = { +export default { siteLink, cleanDom, getArticleDetail, diff --git a/lib/routes/chinamoney/channels.ts b/lib/routes/chinamoney/channels.ts index 77d2b9a18e..9928a046fb 100644 --- a/lib/routes/chinamoney/channels.ts +++ b/lib/routes/chinamoney/channels.ts @@ -52,6 +52,4 @@ const channels = { }, }; -module.exports = { - channels, -}; +export { channels }; diff --git a/lib/routes/chinamoney/notice.ts b/lib/routes/chinamoney/notice.ts index 181ed65b14..78bde4ba14 100644 --- a/lib/routes/chinamoney/notice.ts +++ b/lib/routes/chinamoney/notice.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { channels } = require('./channels'); +import { channels } from './channels'; export default async (ctx) => { const { channelId = 2834 } = ctx.req.param(); diff --git a/lib/routes/cls/depth.ts b/lib/routes/cls/depth.ts index 4a6a3d7cbd..e7c075f7de 100644 --- a/lib/routes/cls/depth.ts +++ b/lib/routes/cls/depth.ts @@ -8,7 +8,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { rootUrl, getSearchParams } = require('./utils'); +import { rootUrl, getSearchParams } from './utils'; const categories = { 1000: '头条', diff --git a/lib/routes/cls/hot.ts b/lib/routes/cls/hot.ts index 2fbd4f4613..0f637d78fa 100644 --- a/lib/routes/cls/hot.ts +++ b/lib/routes/cls/hot.ts @@ -8,7 +8,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { rootUrl, getSearchParams } = require('./utils'); +import { rootUrl, getSearchParams } from './utils'; export default async (ctx) => { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 50; diff --git a/lib/routes/cls/telegraph.ts b/lib/routes/cls/telegraph.ts index a000e23460..9893655b88 100644 --- a/lib/routes/cls/telegraph.ts +++ b/lib/routes/cls/telegraph.ts @@ -6,7 +6,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { rootUrl, getSearchParams } = require('./utils'); +import { rootUrl, getSearchParams } from './utils'; const categories = { watch: '看盘', diff --git a/lib/routes/cls/utils.ts b/lib/routes/cls/utils.ts index 7c6a1c8e97..ae87fcab94 100644 --- a/lib/routes/cls/utils.ts +++ b/lib/routes/cls/utils.ts @@ -15,7 +15,4 @@ const getSearchParams = (moreParams) => { return searchParams; }; -module.exports = { - rootUrl, - getSearchParams, -}; +export { rootUrl, getSearchParams }; diff --git a/lib/routes/cnbeta/type.ts b/lib/routes/cnbeta/type.ts index d1122ad859..fa1f5e711b 100644 --- a/lib/routes/cnbeta/type.ts +++ b/lib/routes/cnbeta/type.ts @@ -4,7 +4,7 @@ import { load } from 'cheerio'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const { type, id } = ctx.req.param(); diff --git a/lib/routes/cnbeta/utils.ts b/lib/routes/cnbeta/utils.ts index 24da7ab714..bdeea03583 100644 --- a/lib/routes/cnbeta/utils.ts +++ b/lib/routes/cnbeta/utils.ts @@ -5,24 +5,23 @@ import { parseDate } from '@/utils/parse-date'; const rootUrl = 'https://www.cnbeta.com.tw'; -module.exports = { - rootUrl, - ProcessItems: (items, limit, tryGet) => - Promise.all( - items.slice(0, limit ? Number.parseInt(limit) : 60).map((item) => - tryGet(item.link, async () => { - const detailResponse = await got(item.link); +const ProcessItems = (items, limit, tryGet) => + Promise.all( + items.slice(0, limit ? Number.parseInt(limit) : 60).map((item) => + tryGet(item.link, async () => { + const detailResponse = await got(item.link); - const content = load(detailResponse.data); + const content = load(detailResponse.data); - content('.topic, .article-topic, .article-global').remove(); + content('.topic, .article-topic, .article-global').remove(); - item.description = content('.article-summary').html() + content('.article-content').html(); - item.author = content('header.title div.meta span.source').text(); - item.pubDate ??= timezone(parseDate(content('.meta span').first().text(), 'YYYY年MM月DD日 HH:mm'), +8); + item.description = content('.article-summary').html() + content('.article-content').html(); + item.author = content('header.title div.meta span.source').text(); + item.pubDate ??= timezone(parseDate(content('.meta span').first().text(), 'YYYY年MM月DD日 HH:mm'), +8); - return item; - }) - ) - ), -}; + return item; + }) + ) + ); + +export { rootUrl, ProcessItems }; diff --git a/lib/routes/cnki/journals.ts b/lib/routes/cnki/journals.ts index aacd29ec9b..afda5fdfb8 100644 --- a/lib/routes/cnki/journals.ts +++ b/lib/routes/cnki/journals.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { ProcessItem } = require('./utils'); +import { ProcessItem } from './utils'; const rootUrl = 'https://navi.cnki.net'; diff --git a/lib/routes/cnki/utils.ts b/lib/routes/cnki/utils.ts index cd86ae6a70..ed3403b79d 100644 --- a/lib/routes/cnki/utils.ts +++ b/lib/routes/cnki/utils.ts @@ -24,6 +24,4 @@ const ProcessItem = async (item) => { return item; }; -module.exports = { - ProcessItem, -}; +export { ProcessItem }; diff --git a/lib/routes/coolapk/utils.ts b/lib/routes/coolapk/utils.ts index 4e968d1b24..dd2612dd72 100644 --- a/lib/routes/coolapk/utils.ts +++ b/lib/routes/coolapk/utils.ts @@ -141,10 +141,4 @@ const parseDynamic = async (item) => { }; }; -module.exports = { - get_app_token, - base_url, - getHeaders, - parseDynamic, - dynamicTpye, -}; +export { get_app_token, base_url, getHeaders, parseDynamic, dynamicTpye }; diff --git a/lib/routes/creative-comic/book.ts b/lib/routes/creative-comic/book.ts index 9ab52a9b7a..2d3350ccae 100644 --- a/lib/routes/creative-comic/book.ts +++ b/lib/routes/creative-comic/book.ts @@ -5,7 +5,7 @@ import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { getUuid, getBook, getChapter, getChapters, getImgEncrypted, getImgKey, decrypt, getRealKey, siteHost } = require('./utils'); +import { getUuid, getBook, getChapter, getChapters, getImgEncrypted, getImgKey, decrypt, getRealKey, siteHost } from './utils'; export default async (ctx) => { const { id, coverOnly = 'true', quality = '1' } = ctx.req.param(); diff --git a/lib/routes/creative-comic/utils.ts b/lib/routes/creative-comic/utils.ts index 0b1adc088c..458942f9b9 100644 --- a/lib/routes/creative-comic/utils.ts +++ b/lib/routes/creative-comic/utils.ts @@ -82,14 +82,4 @@ const getRealKey = (imgKey, token = DEFAULT_TOKEN) => { }; }; -module.exports = { - getBook, - getChapter, - getChapters, - getImgEncrypted, - getImgKey, - getUuid, - decrypt, - token2Key, - getRealKey, -}; +export { getBook, getChapter, getChapters, getImgEncrypted, getImgKey, getUuid, decrypt, token2Key, getRealKey }; diff --git a/lib/routes/crossbell/notes/character.ts b/lib/routes/crossbell/notes/character.ts index 8555983556..7958b07099 100644 --- a/lib/routes/crossbell/notes/character.ts +++ b/lib/routes/crossbell/notes/character.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { getItem } = require('./utils'); +import { getItem } from './utils'; export default async (ctx) => { const characterId = ctx.req.param('characterId'); diff --git a/lib/routes/crossbell/notes/index.ts b/lib/routes/crossbell/notes/index.ts index b5fdd0b02d..ac2c681da5 100644 --- a/lib/routes/crossbell/notes/index.ts +++ b/lib/routes/crossbell/notes/index.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { getItem } = require('./utils'); +import { getItem } from './utils'; export default async (ctx) => { const response = await got('https://indexer.crossbell.io/v1/notes', { diff --git a/lib/routes/crossbell/notes/source.ts b/lib/routes/crossbell/notes/source.ts index 5be0ed8cc7..7c8563ce07 100644 --- a/lib/routes/crossbell/notes/source.ts +++ b/lib/routes/crossbell/notes/source.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { getItem } = require('./utils'); +import { getItem } from './utils'; export default async (ctx) => { const source = ctx.req.param('source'); diff --git a/lib/routes/crossbell/notes/utils.ts b/lib/routes/crossbell/notes/utils.ts index f6f79899e6..4d5295d19e 100644 --- a/lib/routes/crossbell/notes/utils.ts +++ b/lib/routes/crossbell/notes/utils.ts @@ -1,4 +1,4 @@ -module.exports = { +export default { getItem: (note) => { let link = note.metadata?.content?.external_urls?.[0] ?? `https://crossbell.io/notes/${note.characterId}-${note.noteId}`; if (link.startsWith('https://xn--')) { diff --git a/lib/routes/csu/career.ts b/lib/routes/csu/career.ts index a125dfc524..b9e91ec986 100644 --- a/lib/routes/csu/career.ts +++ b/lib/routes/csu/career.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { unzip } = require('./utils'); +import { unzip } from './utils'; export default async (ctx) => { const baseUrl = 'https://career.csu.edu.cn'; diff --git a/lib/routes/csu/utils.ts b/lib/routes/csu/utils.ts index 9fcb1a6045..5f5cc6df3d 100644 --- a/lib/routes/csu/utils.ts +++ b/lib/routes/csu/utils.ts @@ -12,6 +12,4 @@ const unzip = (b64Data) => { return ret; }; -module.exports = { - unzip, -}; +export { unzip }; diff --git a/lib/routes/cw/author.ts b/lib/routes/cw/author.ts index 991f3912b1..0a560401ac 100644 --- a/lib/routes/cw/author.ts +++ b/lib/routes/cw/author.ts @@ -1,4 +1,4 @@ -const { baseUrl, parsePage } = require('./utils'); +import { baseUrl, parsePage } from './utils'; import puppeteer from '@/utils/puppeteer'; export default async (ctx) => { diff --git a/lib/routes/cw/master.ts b/lib/routes/cw/master.ts index 86665fb6e0..a11397b60a 100644 --- a/lib/routes/cw/master.ts +++ b/lib/routes/cw/master.ts @@ -1,4 +1,4 @@ -const { baseUrl, parsePage } = require('./utils'); +import { baseUrl, parsePage } from './utils'; import puppeteer from '@/utils/puppeteer'; export default async (ctx) => { diff --git a/lib/routes/cw/sub.ts b/lib/routes/cw/sub.ts index ddd9308f0f..12b214fe19 100644 --- a/lib/routes/cw/sub.ts +++ b/lib/routes/cw/sub.ts @@ -1,4 +1,4 @@ -const { baseUrl, parsePage } = require('./utils'); +import { baseUrl, parsePage } from './utils'; import puppeteer from '@/utils/puppeteer'; export default async (ctx) => { diff --git a/lib/routes/cw/today.ts b/lib/routes/cw/today.ts index d78893fc0a..d19f7ba9e8 100644 --- a/lib/routes/cw/today.ts +++ b/lib/routes/cw/today.ts @@ -1,4 +1,4 @@ -const { baseUrl, parsePage } = require('./utils'); +import { baseUrl, parsePage } from './utils'; import puppeteer from '@/utils/puppeteer'; export default async (ctx) => { diff --git a/lib/routes/cw/utils.ts b/lib/routes/cw/utils.ts index b036c98d1e..687ac4bbb9 100644 --- a/lib/routes/cw/utils.ts +++ b/lib/routes/cw/utils.ts @@ -123,12 +123,6 @@ const parseItems = (list, browser, tryGet) => ) ); -module.exports = { - baseUrl, - pathMap, - getCookie, - setCookies, - parsePage, - parseList, - parseItems, -}; +export { baseUrl, pathMap, getCookie, parsePage, parseList, parseItems }; + +export { setCookies } from '@/utils/puppeteer-utils'; diff --git a/lib/routes/cyzone/author.ts b/lib/routes/cyzone/author.ts index 2f9b2e0d9e..872b903b96 100644 --- a/lib/routes/cyzone/author.ts +++ b/lib/routes/cyzone/author.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, apiRootUrl, processItems, getInfo } = require('./util'); +import { rootUrl, apiRootUrl, processItems, getInfo } from './util'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/cyzone/index.ts b/lib/routes/cyzone/index.ts index c3f8923162..72d2fdad44 100644 --- a/lib/routes/cyzone/index.ts +++ b/lib/routes/cyzone/index.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, apiRootUrl, processItems, getInfo } = require('./util'); +import { rootUrl, apiRootUrl, processItems, getInfo } from './util'; export default async (ctx) => { const { id = 'news' } = ctx.req.param(); diff --git a/lib/routes/cyzone/label.ts b/lib/routes/cyzone/label.ts index 5ba631b1ed..63991e6ef4 100644 --- a/lib/routes/cyzone/label.ts +++ b/lib/routes/cyzone/label.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, apiRootUrl, processItems, getInfo } = require('./util'); +import { rootUrl, apiRootUrl, processItems, getInfo } from './util'; export default async (ctx) => { const name = ctx.req.param('name'); diff --git a/lib/routes/cyzone/util.ts b/lib/routes/cyzone/util.ts index 290695b3d9..dd2d45797a 100644 --- a/lib/routes/cyzone/util.ts +++ b/lib/routes/cyzone/util.ts @@ -116,10 +116,4 @@ const processItems = async (apiUrl, limit, tryGet, ...searchParams) => { return items; }; -module.exports = { - rootUrl, - apiRootUrl, - - getInfo, - processItems, -}; +export { rootUrl, apiRootUrl, getInfo, processItems }; diff --git a/lib/routes/dahecube/utils.ts b/lib/routes/dahecube/utils.ts index da186a5eb5..5a6be33542 100644 --- a/lib/routes/dahecube/utils.ts +++ b/lib/routes/dahecube/utils.ts @@ -41,7 +41,4 @@ function parseUrl(type) { return type === 'recommend' ? 'https://www.dahecube.com/index.html?recid=1' : `https://www.dahecube.com/channel.html?recid=${TYPE[type].id}`; } -module.exports = { - TYPE, - parseUrl, -}; +export { TYPE, parseUrl }; diff --git a/lib/routes/daily/discussed.ts b/lib/routes/daily/discussed.ts index 02d30d4474..97c9f361e8 100644 --- a/lib/routes/daily/discussed.ts +++ b/lib/routes/daily/discussed.ts @@ -1,4 +1,4 @@ -const { getData, getList, getRedirectedLink } = require('./utils.js'); +import { getData, getList, getRedirectedLink } from './utils.js'; const variables = { first: 15, diff --git a/lib/routes/daily/index.ts b/lib/routes/daily/index.ts index 95e4ed8391..ed7f851ba0 100644 --- a/lib/routes/daily/index.ts +++ b/lib/routes/daily/index.ts @@ -1,4 +1,4 @@ -const { getData, getList, getRedirectedLink } = require('./utils.js'); +import { getData, getList, getRedirectedLink } from './utils.js'; const variables = { version: 11, diff --git a/lib/routes/daily/upvoted.ts b/lib/routes/daily/upvoted.ts index ba08a20704..9d605df3b0 100644 --- a/lib/routes/daily/upvoted.ts +++ b/lib/routes/daily/upvoted.ts @@ -1,4 +1,4 @@ -const { getData, getList, getRedirectedLink } = require('./utils.js'); +import { getData, getList, getRedirectedLink } from './utils.js'; const variables = { period: 7, diff --git a/lib/routes/daily/utils.ts b/lib/routes/daily/utils.ts index 15a2ebcf37..60097da50e 100644 --- a/lib/routes/daily/utils.ts +++ b/lib/routes/daily/utils.ts @@ -36,4 +36,4 @@ const getRedirectedLink = (data) => }) ); -module.exports = { getData, getList, getRedirectedLink }; +export { getData, getList, getRedirectedLink }; diff --git a/lib/routes/dapenti/utils.ts b/lib/routes/dapenti/utils.ts index 1c68f018a2..d82347f926 100644 --- a/lib/routes/dapenti/utils.ts +++ b/lib/routes/dapenti/utils.ts @@ -5,7 +5,7 @@ const iconv = require('iconv-lite'); import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -module.exports = { +export default { parseFeed: async ({ subjectid }) => { const url = `https://www.dapenti.com/blog/blog.asp?name=xilei&subjectid=${subjectid}`; const listRes = await got({ diff --git a/lib/routes/dcard/utils.ts b/lib/routes/dcard/utils.ts index 71ed8aed27..29a64fa15f 100644 --- a/lib/routes/dcard/utils.ts +++ b/lib/routes/dcard/utils.ts @@ -45,6 +45,4 @@ const ProcessFeed = async (items, cookies, browser, limit, cache) => { return [...result, ...items.slice(limit)]; }; -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/dcfever/news.ts b/lib/routes/dcfever/news.ts index acaa3393bb..cc6ce39d5a 100644 --- a/lib/routes/dcfever/news.ts +++ b/lib/routes/dcfever/news.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl, parseItem } = require('./utils'); +import { baseUrl, parseItem } from './utils'; export default async (ctx) => { const type = ctx.req.param('type'); diff --git a/lib/routes/dcfever/reviews.ts b/lib/routes/dcfever/reviews.ts index 8ec4386b64..afd6f8cd3a 100644 --- a/lib/routes/dcfever/reviews.ts +++ b/lib/routes/dcfever/reviews.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl, parseItem } = require('./utils'); +import { baseUrl, parseItem } from './utils'; export default async (ctx) => { const { type = 'cameras' } = ctx.req.param(); diff --git a/lib/routes/dcfever/trading-search.ts b/lib/routes/dcfever/trading-search.ts index a2fa170674..131dfb5005 100644 --- a/lib/routes/dcfever/trading-search.ts +++ b/lib/routes/dcfever/trading-search.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; // import { parseRelativeDate } from '@/utils/parse-date'; -const { baseUrl, parseTradeItem } = require('./utils'); +import { baseUrl, parseTradeItem } from './utils'; export default async (ctx) => { const { keyword, mainCat } = ctx.req.param(); diff --git a/lib/routes/dcfever/trading.ts b/lib/routes/dcfever/trading.ts index 7c74477e1a..5babbea3bd 100644 --- a/lib/routes/dcfever/trading.ts +++ b/lib/routes/dcfever/trading.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; // import { parseRelativeDate } from '@/utils/parse-date'; -const { baseUrl, parseTradeItem } = require('./utils'); +import { baseUrl, parseTradeItem } from './utils'; export default async (ctx) => { const { id, order = 'new' } = ctx.req.param(); diff --git a/lib/routes/dcfever/utils.ts b/lib/routes/dcfever/utils.ts index bfe4ea3c22..076ec28f6d 100644 --- a/lib/routes/dcfever/utils.ts +++ b/lib/routes/dcfever/utils.ts @@ -81,8 +81,4 @@ const parseTradeItem = (item, tryGet) => return item; }); -module.exports = { - baseUrl, - parseItem, - parseTradeItem, -}; +export { baseUrl, parseItem, parseTradeItem }; diff --git a/lib/routes/discord/channel.ts b/lib/routes/discord/channel.ts index 309ba947bb..5a0720f513 100644 --- a/lib/routes/discord/channel.ts +++ b/lib/routes/discord/channel.ts @@ -6,7 +6,7 @@ import { config } from '@/config'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { baseUrl, getChannel, getChannelMessages, getGuild } = require('./discord-api'); +import { baseUrl, getChannel, getChannelMessages, getGuild } from './discord-api'; export default async (ctx) => { if (!config.discord || !config.discord.authorization) { diff --git a/lib/routes/discord/discord-api.ts b/lib/routes/discord/discord-api.ts index 398e0e3174..8ff08eb6e6 100644 --- a/lib/routes/discord/discord-api.ts +++ b/lib/routes/discord/discord-api.ts @@ -52,10 +52,4 @@ const getChannelMessages = (channelId, authorization, tryGet, limit = 100) => false ); -module.exports = { - baseUrl, - getGuild, - getGuildChannels, - getChannel, - getChannelMessages, -}; +export { baseUrl, getGuild, getGuildChannels, getChannel, getChannelMessages }; diff --git a/lib/routes/discourse/notifications.ts b/lib/routes/discourse/notifications.ts index 81f8278d5e..bcd9854237 100644 --- a/lib/routes/discourse/notifications.ts +++ b/lib/routes/discourse/notifications.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getConfig } = require('./utils'); +import { getConfig } from './utils'; import got from '@/utils/got'; export default async (ctx) => { diff --git a/lib/routes/discourse/posts.ts b/lib/routes/discourse/posts.ts index daf05c89b2..652c673279 100644 --- a/lib/routes/discourse/posts.ts +++ b/lib/routes/discourse/posts.ts @@ -1,4 +1,4 @@ -const { getConfig } = require('./utils'); +import { getConfig } from './utils'; import got from '@/utils/got'; import RSSParser from '@/utils/rss-parser'; diff --git a/lib/routes/discourse/utils.ts b/lib/routes/discourse/utils.ts index 0130aacaec..1927fd11a3 100644 --- a/lib/routes/discourse/utils.ts +++ b/lib/routes/discourse/utils.ts @@ -7,6 +7,4 @@ function getConfig(ctx) { return config.discourse.config[ctx.req.param('configId')]; } -module.exports = { - getConfig, -}; +export { getConfig }; diff --git a/lib/routes/dlnews/category.ts b/lib/routes/dlnews/category.ts index 01fdada028..49919d947a 100644 --- a/lib/routes/dlnews/category.ts +++ b/lib/routes/dlnews/category.ts @@ -4,7 +4,7 @@ const __dirname = getCurrentPath(import.meta.url); import cache from '@/utils/cache'; import { load } from 'cheerio'; import got from '@/utils/got'; -const { getData, getList } = require('./utils'); +import { getData, getList } from './utils'; import { art } from '@/utils/render'; import * as path from 'node:path'; const asyncPool = require('tiny-async-pool'); diff --git a/lib/routes/dlnews/utils.ts b/lib/routes/dlnews/utils.ts index 1a327be15d..2e9519b892 100644 --- a/lib/routes/dlnews/utils.ts +++ b/lib/routes/dlnews/utils.ts @@ -19,4 +19,4 @@ const getList = (data) => }; }); -module.exports = { getData, getList }; +export { getData, getList }; diff --git a/lib/routes/dlsite/index.ts b/lib/routes/dlsite/index.ts index 151d49e094..74921189cc 100644 --- a/lib/routes/dlsite/index.ts +++ b/lib/routes/dlsite/index.ts @@ -1,4 +1,4 @@ -const { ProcessItems } = require('./utils'); +import { ProcessItems } from './utils'; export default async (ctx) => { ctx.set('data', await ProcessItems(ctx)); diff --git a/lib/routes/dlsite/utils.ts b/lib/routes/dlsite/utils.ts index 68b0fd407e..7ee354a554 100644 --- a/lib/routes/dlsite/utils.ts +++ b/lib/routes/dlsite/utils.ts @@ -175,6 +175,4 @@ const ProcessItems = async (ctx) => { }; }; -module.exports = { - ProcessItems, -}; +export { ProcessItems }; diff --git a/lib/routes/dockerhub/build.ts b/lib/routes/dockerhub/build.ts index 9f595fb55f..2a9c6f8f0e 100644 --- a/lib/routes/dockerhub/build.ts +++ b/lib/routes/dockerhub/build.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { hash } = require('./utils'); +import { hash } from './utils'; export default async (ctx) => { const { owner, image, tag = 'latest' } = ctx.req.param(); diff --git a/lib/routes/dockerhub/tag.ts b/lib/routes/dockerhub/tag.ts index 264c5d00c0..2aaf1d2369 100644 --- a/lib/routes/dockerhub/tag.ts +++ b/lib/routes/dockerhub/tag.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { hash } = require('./utils'); +import { hash } from './utils'; export default async (ctx) => { const { owner, image, limits } = ctx.req.param(); diff --git a/lib/routes/dockerhub/utils.ts b/lib/routes/dockerhub/utils.ts index 1783bc4747..7e0accfe1c 100644 --- a/lib/routes/dockerhub/utils.ts +++ b/lib/routes/dockerhub/utils.ts @@ -7,4 +7,4 @@ function hash(images) { return md5(entries.map((x) => x.join(',')).join('|')); } -module.exports = { hash }; +export { hash }; diff --git a/lib/routes/domp4/detail.ts b/lib/routes/domp4/detail.ts index 7e2f4af5fa..76d596e776 100644 --- a/lib/routes/domp4/detail.ts +++ b/lib/routes/domp4/detail.ts @@ -1,7 +1,7 @@ import { load } from 'cheerio'; import got from '@/utils/got'; -const { decodeCipherText, composeMagnetUrl, getUrlType, ensureDomain } = require('./utils'); +import { decodeCipherText, composeMagnetUrl, getUrlType, ensureDomain } from './utils'; // 兼容没有 script 标签的情况,直接解析 dom function getDomList($, detailUrl) { diff --git a/lib/routes/domp4/latest.ts b/lib/routes/domp4/latest.ts index e1b4e216e5..ecb04181bd 100644 --- a/lib/routes/domp4/latest.ts +++ b/lib/routes/domp4/latest.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; -const { defaultDomain, ensureDomain } = require('./utils'); +import { defaultDomain, ensureDomain } from './utils'; function getItemList($, type) { const list = $(`#${type} .list-group-item`) diff --git a/lib/routes/domp4/utils.ts b/lib/routes/domp4/utils.ts index fd777ab4f2..d6e0f6bf10 100644 --- a/lib/routes/domp4/utils.ts +++ b/lib/routes/domp4/utils.ts @@ -92,11 +92,4 @@ function ensureDomain(ctx, domain = defaultDomain) { return origin; } -module.exports = { - defaultDomain, - magnetTrackers, - getUrlType, - composeMagnetUrl, - decodeCipherText, - ensureDomain, -}; +export { defaultDomain, magnetTrackers, getUrlType, composeMagnetUrl, decodeCipherText, ensureDomain }; diff --git a/lib/routes/dongqiudi/utils.ts b/lib/routes/dongqiudi/utils.ts index d242d60737..a0367f8186 100644 --- a/lib/routes/dongqiudi/utils.ts +++ b/lib/routes/dongqiudi/utils.ts @@ -162,11 +162,4 @@ const ProcessFeedType3 = (item, response) => { } }; -module.exports = { - ProcessVideo, - ProcessFeed, - ProcessFeedType2, - ProcessFeedType3, - ProcessHref, - ProcessImg, -}; +export { ProcessVideo, ProcessFeed, ProcessFeedType2, ProcessFeedType3, ProcessHref, ProcessImg }; diff --git a/lib/routes/douyin/hashtag.ts b/lib/routes/douyin/hashtag.ts index 2ae067d550..83d88f6495 100644 --- a/lib/routes/douyin/hashtag.ts +++ b/lib/routes/douyin/hashtag.ts @@ -3,7 +3,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import { config } from '@/config'; import { fallback, queryToBoolean } from '@/utils/readable-social'; -const { templates, resolveUrl, proxyVideo, getOriginAvatar } = require('./utils'); +import { templates, resolveUrl, proxyVideo, getOriginAvatar } from './utils'; import puppeteer from '@/utils/puppeteer'; export default async (ctx) => { diff --git a/lib/routes/douyin/live.ts b/lib/routes/douyin/live.ts index ed1a3a18f8..a805a20a96 100644 --- a/lib/routes/douyin/live.ts +++ b/lib/routes/douyin/live.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import { config } from '@/config'; -const { getOriginAvatar } = require('./utils'); +import { getOriginAvatar } from './utils'; import logger from '@/utils/logger'; import puppeteer from '@/utils/puppeteer'; diff --git a/lib/routes/douyin/user.ts b/lib/routes/douyin/user.ts index 237ec69da0..8ac60f9cd4 100644 --- a/lib/routes/douyin/user.ts +++ b/lib/routes/douyin/user.ts @@ -3,7 +3,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import { config } from '@/config'; import { fallback, queryToBoolean } from '@/utils/readable-social'; -const { templates, resolveUrl, proxyVideo, getOriginAvatar, universalGet } = require('./utils'); +import { templates, resolveUrl, proxyVideo, getOriginAvatar, universalGet } from './utils'; export default async (ctx) => { const uid = ctx.req.param('uid'); diff --git a/lib/routes/douyin/utils.ts b/lib/routes/douyin/utils.ts index 94e58080ff..91e8d3dd33 100644 --- a/lib/routes/douyin/utils.ts +++ b/lib/routes/douyin/utils.ts @@ -131,10 +131,4 @@ const universalGet = async (url, route) => { return data; }; -module.exports = { - templates, - resolveUrl, - proxyVideo, - getOriginAvatar, - universalGet, -}; +export { templates, resolveUrl, proxyVideo, getOriginAvatar, universalGet }; diff --git a/lib/routes/dribbble/utils.ts b/lib/routes/dribbble/utils.ts index 8ad8ad2dfb..dee1f437dc 100644 --- a/lib/routes/dribbble/utils.ts +++ b/lib/routes/dribbble/utils.ts @@ -155,6 +155,4 @@ const getData = async (ctx, url, title) => { }; }; -module.exports = { - getData, -}; +export { getData }; diff --git a/lib/routes/dut/defaults.ts b/lib/routes/dut/defaults.ts index 30c00a3143..a2955666e5 100644 --- a/lib/routes/dut/defaults.ts +++ b/lib/routes/dut/defaults.ts @@ -1,4 +1,4 @@ -module.exports = { +export default { // 新闻网:https://news.dlut.edu.cn // 默认 -> 头条关注 https://news.dlut.edu.cn/ttgz.htm news: 'ttgz', diff --git a/lib/routes/dut/shortcuts.ts b/lib/routes/dut/shortcuts.ts index 70e6ab507c..c6e3990328 100644 --- a/lib/routes/dut/shortcuts.ts +++ b/lib/routes/dut/shortcuts.ts @@ -1,4 +1,4 @@ -module.exports = { +export default { news: { xwjj: 'xwjj01', rcpy: 'xwjj01/rcpy', diff --git a/lib/routes/dxy/special.ts b/lib/routes/dxy/special.ts index b4bb14b94b..6dba35ac0f 100644 --- a/lib/routes/dxy/special.ts +++ b/lib/routes/dxy/special.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { phoneBaseUrl, webBaseUrl, generateNonce, sign, getPost } = require('./utils'); +import { phoneBaseUrl, webBaseUrl, generateNonce, sign, getPost } from './utils'; import { config } from '@/config'; export default async (ctx) => { diff --git a/lib/routes/dxy/utils.ts b/lib/routes/dxy/utils.ts index 43e58e2735..2cdde2e4dd 100644 --- a/lib/routes/dxy/utils.ts +++ b/lib/routes/dxy/utils.ts @@ -63,10 +63,4 @@ const getPost = (item, tryGet) => return item; }); -module.exports = { - phoneBaseUrl, - webBaseUrl, - generateNonce, - sign, - getPost, -}; +export { phoneBaseUrl, webBaseUrl, generateNonce, sign, getPost }; diff --git a/lib/routes/ehentai/ehapi.ts b/lib/routes/ehentai/ehapi.ts index 78c55cd348..105d791b95 100644 --- a/lib/routes/ehentai/ehapi.ts +++ b/lib/routes/ehentai/ehapi.ts @@ -208,4 +208,4 @@ function getTagItems(cache, tag, page, get_bittorrent = false, embed_thumb = fal return page ? gatherItemsByPage(cache, `tag/${tag}?next=${page}`, get_bittorrent, embed_thumb) : gatherItemsByPage(cache, `tag/${tag}`, get_bittorrent, embed_thumb); } -module.exports = { getFavoritesItems, getSearchItems, getTagItems, has_cookie, from_ex }; +export { getFavoritesItems, getSearchItems, getTagItems, has_cookie, from_ex }; diff --git a/lib/routes/embassy/supported-list.ts b/lib/routes/embassy/supported-list.ts index 6f1325b4ce..dbb402bc42 100644 --- a/lib/routes/embassy/supported-list.ts +++ b/lib/routes/embassy/supported-list.ts @@ -1,4 +1,4 @@ -module.exports = { +export default { ca: { country: 'ca', countryCN: '加拿大', diff --git a/lib/routes/fansly/post.ts b/lib/routes/fansly/post.ts index 9d7eafaaf2..f5013ed060 100644 --- a/lib/routes/fansly/post.ts +++ b/lib/routes/fansly/post.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; -const { getAccountByUsername, getTimelineByAccountId, parseDescription, baseUrl } = require('./utils'); +import { getAccountByUsername, getTimelineByAccountId, parseDescription, baseUrl } from './utils'; export default async (ctx) => { const username = ctx.req.param('username'); diff --git a/lib/routes/fansly/tag.ts b/lib/routes/fansly/tag.ts index bcf0891faa..01ebe481e9 100644 --- a/lib/routes/fansly/tag.ts +++ b/lib/routes/fansly/tag.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; -const { getTagId, getTagSuggestion, findAccountById, parseDescription, baseUrl, icon } = require('./utils'); +import { getTagId, getTagSuggestion, findAccountById, parseDescription, baseUrl, icon } from './utils'; export default async (ctx) => { const tag = ctx.req.param('tag'); diff --git a/lib/routes/fansly/utils.ts b/lib/routes/fansly/utils.ts index f1955fc8c4..58c908aa7e 100644 --- a/lib/routes/fansly/utils.ts +++ b/lib/routes/fansly/utils.ts @@ -162,18 +162,4 @@ const renderTipGoal = (tipGoalId, tipGoals) => { }); }; -module.exports = { - findAccountById, - baseUrl, - icon, - getAccountByUsername, - getTimelineByAccountId, - getTagId, - getTagSuggestion, - parseAttachments, - parseDescription, - parseMedia, - renderMedia, - renderPoll, - renderTipGoal, -}; +export { findAccountById, baseUrl, icon, getAccountByUsername, getTimelineByAccountId, getTagId, getTagSuggestion, parseAttachments, parseDescription, parseMedia, renderMedia, renderPoll, renderTipGoal }; diff --git a/lib/routes/feng/forum.ts b/lib/routes/feng/forum.ts index 014a2e0cd4..68945509e8 100644 --- a/lib/routes/feng/forum.ts +++ b/lib/routes/feng/forum.ts @@ -2,7 +2,7 @@ import { getCurrentPath } from '@/utils/helpers'; const __dirname = getCurrentPath(import.meta.url); import { parseDate } from '@/utils/parse-date'; -const { baseUrl, getForumMeta, getThreads, getThread } = require('./utils'); +import { baseUrl, getForumMeta, getThreads, getThread } from './utils'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/feng/utils.ts b/lib/routes/feng/utils.ts index a10334e2dc..a87fc428d2 100644 --- a/lib/routes/feng/utils.ts +++ b/lib/routes/feng/utils.ts @@ -73,9 +73,4 @@ const getThread = (tid, topicId) => { }); }; -module.exports = { - baseUrl, - getForumMeta, - getThreads, - getThread, -}; +export { baseUrl, getForumMeta, getThreads, getThread }; diff --git a/lib/routes/finology/most-viewed.ts b/lib/routes/finology/most-viewed.ts index 5efe5bd6af..caf5aa85b1 100644 --- a/lib/routes/finology/most-viewed.ts +++ b/lib/routes/finology/most-viewed.ts @@ -1,5 +1,5 @@ import logger from '@/utils/logger'; -const { getItems } = require('./utils'); +import { getItems } from './utils'; export default async (ctx) => { const baseUrl = 'https://insider.finology.in/most-viewed'; diff --git a/lib/routes/finology/tag.ts b/lib/routes/finology/tag.ts index 972238c2f6..7bc2c72efb 100644 --- a/lib/routes/finology/tag.ts +++ b/lib/routes/finology/tag.ts @@ -1,5 +1,5 @@ import logger from '@/utils/logger'; -const { getItems } = require('./utils'); +import { getItems } from './utils'; export default async (ctx) => { const { topic, category } = ctx.req.param(); diff --git a/lib/routes/finology/utils.ts b/lib/routes/finology/utils.ts index 606b91a065..28e3b563f6 100644 --- a/lib/routes/finology/utils.ts +++ b/lib/routes/finology/utils.ts @@ -56,4 +56,4 @@ const getItems = async (ctx, url, extra) => { return items; }; -module.exports = { getItems }; +export { getItems }; diff --git a/lib/routes/flyert/utils.ts b/lib/routes/flyert/utils.ts index 2b41c09c9c..fa4326aef6 100644 --- a/lib/routes/flyert/utils.ts +++ b/lib/routes/flyert/utils.ts @@ -69,6 +69,4 @@ const ProcessFeed = (list, caches) => { ); }; -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/followin/index.ts b/lib/routes/followin/index.ts index 2ce97cd083..ab7f607354 100644 --- a/lib/routes/followin/index.ts +++ b/lib/routes/followin/index.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { apiUrl, favicon, getBParam, getBuildId, getGToken, parseList, parseItem } = require('./utils'); +import { apiUrl, favicon, getBParam, getBuildId, getGToken, parseList, parseItem } from './utils'; export default async (ctx) => { const { categoryId = '1', lang = 'en' } = ctx.req.param(); diff --git a/lib/routes/followin/kol.ts b/lib/routes/followin/kol.ts index 0634798a2b..16b4903765 100644 --- a/lib/routes/followin/kol.ts +++ b/lib/routes/followin/kol.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { baseUrl, getBuildId, parseList, parseItem } = require('./utils'); +import { baseUrl, getBuildId, parseList, parseItem } from './utils'; export default async (ctx) => { const { kolId, lang = 'en' } = ctx.req.param(); diff --git a/lib/routes/followin/news.ts b/lib/routes/followin/news.ts index 886acf47b6..a4130a6e2b 100644 --- a/lib/routes/followin/news.ts +++ b/lib/routes/followin/news.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { baseUrl, favicon, getBuildId, parseList, parseItem } = require('./utils'); +import { baseUrl, favicon, getBuildId, parseList, parseItem } from './utils'; export default async (ctx) => { const { lang = 'en' } = ctx.req.param(); diff --git a/lib/routes/followin/tag.ts b/lib/routes/followin/tag.ts index e50a512813..0d9f33f1ce 100644 --- a/lib/routes/followin/tag.ts +++ b/lib/routes/followin/tag.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { apiUrl, baseUrl, getBParam, getBuildId, getGToken, parseList, parseItem } = require('./utils'); +import { apiUrl, baseUrl, getBParam, getBuildId, getGToken, parseList, parseItem } from './utils'; export default async (ctx) => { const { tagId, lang = 'en' } = ctx.req.param(); diff --git a/lib/routes/followin/topic.ts b/lib/routes/followin/topic.ts index 9da2ed9de2..34e1444d17 100644 --- a/lib/routes/followin/topic.ts +++ b/lib/routes/followin/topic.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { baseUrl, getBuildId, parseList, parseItem } = require('./utils'); +import { baseUrl, getBuildId, parseList, parseItem } from './utils'; export default async (ctx) => { const { topicId, lang = 'en' } = ctx.req.param(); diff --git a/lib/routes/followin/utils.ts b/lib/routes/followin/utils.ts index 985566c592..5d0b0ffd7b 100644 --- a/lib/routes/followin/utils.ts +++ b/lib/routes/followin/utils.ts @@ -73,13 +73,4 @@ const parseItem = (item, tryGet) => return item; }); -module.exports = { - apiUrl, - baseUrl, - favicon, - getBParam, - getBuildId, - getGToken, - parseList, - parseItem, -}; +export { apiUrl, baseUrl, favicon, getBParam, getBuildId, getGToken, parseList, parseItem }; diff --git a/lib/routes/foresightnews/article.ts b/lib/routes/foresightnews/article.ts index ffaad0befa..4f166d3da6 100644 --- a/lib/routes/foresightnews/article.ts +++ b/lib/routes/foresightnews/article.ts @@ -1,4 +1,4 @@ -const { rootUrl, apiRootUrl, processItems, icon, image } = require('./util'); +import { rootUrl, apiRootUrl, processItems, icon, image } from './util'; export default async (ctx) => { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 50; diff --git a/lib/routes/foresightnews/column.ts b/lib/routes/foresightnews/column.ts index d5afafba4f..b68d37a76c 100644 --- a/lib/routes/foresightnews/column.ts +++ b/lib/routes/foresightnews/column.ts @@ -1,4 +1,4 @@ -const { rootUrl, apiRootUrl, processItems, icon, image } = require('./util'); +import { rootUrl, apiRootUrl, processItems, icon, image } from './util'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/foresightnews/index.ts b/lib/routes/foresightnews/index.ts index e7eb8b6a66..32e1b12aca 100644 --- a/lib/routes/foresightnews/index.ts +++ b/lib/routes/foresightnews/index.ts @@ -1,4 +1,4 @@ -const { rootUrl, apiRootUrl, processItems, icon, image } = require('./util'); +import { rootUrl, apiRootUrl, processItems, icon, image } from './util'; export default async (ctx) => { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 50; diff --git a/lib/routes/foresightnews/news.ts b/lib/routes/foresightnews/news.ts index 59086cafef..8883dff376 100644 --- a/lib/routes/foresightnews/news.ts +++ b/lib/routes/foresightnews/news.ts @@ -1,4 +1,4 @@ -const { rootUrl, apiRootUrl, processItems, icon, image } = require('./util'); +import { rootUrl, apiRootUrl, processItems, icon, image } from './util'; export default async (ctx) => { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 50; diff --git a/lib/routes/foresightnews/util.ts b/lib/routes/foresightnews/util.ts index 4189a86842..56ff928195 100644 --- a/lib/routes/foresightnews/util.ts +++ b/lib/routes/foresightnews/util.ts @@ -87,12 +87,4 @@ const processItems = async (apiUrl, limit, ...searchParams) => { return { items, info }; }; -module.exports = { - icon, - image, - rootUrl, - apiRootUrl, - imgRootUrl, - - processItems, -}; +export { icon, image, rootUrl, apiRootUrl, imgRootUrl, processItems }; diff --git a/lib/routes/ft/utils.ts b/lib/routes/ft/utils.ts index 06393c38c8..0002484c32 100644 --- a/lib/routes/ft/utils.ts +++ b/lib/routes/ft/utils.ts @@ -87,6 +87,4 @@ const getData = async ({ site = 'www', channel }) => { }; }; -module.exports = { - getData, -}; +export { getData }; diff --git a/lib/routes/furstar/utils.ts b/lib/routes/furstar/utils.ts index 612c4ecb12..87663fd2ce 100644 --- a/lib/routes/furstar/utils.ts +++ b/lib/routes/furstar/utils.ts @@ -88,7 +88,7 @@ const fetchAllCharacters = (data, base) => { return info; }; -module.exports = { +export default { BASE: base, langBase, fetchAllCharacters, diff --git a/lib/routes/gelonghui/home.ts b/lib/routes/gelonghui/home.ts index 7f5d25daba..199b139237 100644 --- a/lib/routes/gelonghui/home.ts +++ b/lib/routes/gelonghui/home.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { parseItem } = require('./utils'); +import { parseItem } from './utils'; export default async (ctx) => { const { tag = 'web_home_page' } = ctx.req.param(); diff --git a/lib/routes/gelonghui/hot-article.ts b/lib/routes/gelonghui/hot-article.ts index 48636bac69..e8e822d7b6 100644 --- a/lib/routes/gelonghui/hot-article.ts +++ b/lib/routes/gelonghui/hot-article.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { parseItem } = require('./utils'); +import { parseItem } from './utils'; export default async (ctx) => { const type = ctx.req.param('type') === 'week' ? 1 : 0; diff --git a/lib/routes/gelonghui/keyword.ts b/lib/routes/gelonghui/keyword.ts index e970012325..5d034f83c3 100644 --- a/lib/routes/gelonghui/keyword.ts +++ b/lib/routes/gelonghui/keyword.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { parseItem } = require('./utils'); +import { parseItem } from './utils'; export default async (ctx) => { const keyword = ctx.req.param('keyword'); diff --git a/lib/routes/gelonghui/subject.ts b/lib/routes/gelonghui/subject.ts index 30b0e35e8a..094181ce83 100644 --- a/lib/routes/gelonghui/subject.ts +++ b/lib/routes/gelonghui/subject.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { parseItem } = require('./utils'); +import { parseItem } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/gelonghui/user.ts b/lib/routes/gelonghui/user.ts index 299cf64c99..116263d205 100644 --- a/lib/routes/gelonghui/user.ts +++ b/lib/routes/gelonghui/user.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { parseItem } = require('./utils'); +import { parseItem } from './utils'; export default async (ctx) => { const { id: userId } = ctx.req.param(); diff --git a/lib/routes/gelonghui/utils.ts b/lib/routes/gelonghui/utils.ts index 7d1ea3a84d..9a2259fac5 100644 --- a/lib/routes/gelonghui/utils.ts +++ b/lib/routes/gelonghui/utils.ts @@ -22,6 +22,4 @@ const parseItem = (item, tryGet) => return item; }); -module.exports = { - parseItem, -}; +export { parseItem }; diff --git a/lib/routes/getitfree/util.ts b/lib/routes/getitfree/util.ts index 9d60dd0adb..a15ec88e32 100644 --- a/lib/routes/getitfree/util.ts +++ b/lib/routes/getitfree/util.ts @@ -312,15 +312,4 @@ const parseFilterStr = (filterStr) => { return parseStr(filterStr, {}); }; -module.exports = { - apiSlug, - rootUrl, - - bakeFilterSearchParams, - bakeFiltersWithPair, - bakeUrl, - fetchData, - getFilterNameForTitle, - getFilterParamsForUrl, - parseFilterStr, -}; +export { apiSlug, rootUrl, bakeFilterSearchParams, bakeFiltersWithPair, bakeUrl, fetchData, getFilterNameForTitle, getFilterParamsForUrl, parseFilterStr }; diff --git a/lib/routes/gitpod/blog.ts b/lib/routes/gitpod/blog.ts index 36fc572b26..f7afe3ed9b 100644 --- a/lib/routes/gitpod/blog.ts +++ b/lib/routes/gitpod/blog.ts @@ -5,7 +5,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl } = require('./utils'); +import { rootUrl } from './utils'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/gitpod/changelog.ts b/lib/routes/gitpod/changelog.ts index 3122959d30..f2a64ffa08 100644 --- a/lib/routes/gitpod/changelog.ts +++ b/lib/routes/gitpod/changelog.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl } = require('./utils'); +import { rootUrl } from './utils'; export default async (ctx) => { const response = await got(rootUrl + '/changelog'); diff --git a/lib/routes/gitpod/utils.ts b/lib/routes/gitpod/utils.ts index 05d3dc35f1..927cc3ce79 100644 --- a/lib/routes/gitpod/utils.ts +++ b/lib/routes/gitpod/utils.ts @@ -1,3 +1,3 @@ -module.exports = { - rootUrl: 'https://www.gitpod.io', -}; +const rootUrl = 'https://www.gitpod.io'; + +export { rootUrl }; diff --git a/lib/routes/gocn/jobs.ts b/lib/routes/gocn/jobs.ts index de7a5e2de3..659cf158c8 100644 --- a/lib/routes/gocn/jobs.ts +++ b/lib/routes/gocn/jobs.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { renderHTML } = require('./utils'); +import { renderHTML } from './utils'; export default async (ctx) => { const api_url = 'https://gocn.vip/api/files?spaceGuid=Gd7OHl¤tPage=1&sort=1'; diff --git a/lib/routes/gocn/news.ts b/lib/routes/gocn/news.ts index 91b515a820..ab958efdf7 100644 --- a/lib/routes/gocn/news.ts +++ b/lib/routes/gocn/news.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { renderHTML } = require('./utils'); +import { renderHTML } from './utils'; export default async (ctx) => { const base_url = 'https://gocn.vip/c/3lQ6GbD5ny/home'; diff --git a/lib/routes/gocn/topics.ts b/lib/routes/gocn/topics.ts index 7f5485088b..4ba8c36ff2 100644 --- a/lib/routes/gocn/topics.ts +++ b/lib/routes/gocn/topics.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { renderHTML } = require('./utils'); +import { renderHTML } from './utils'; export default async (ctx) => { const base_url = 'https://gocn.vip/c/3lQ6GbD5ny/home'; diff --git a/lib/routes/gocn/utils.ts b/lib/routes/gocn/utils.ts index f2e865cfbf..8df50f6e24 100644 --- a/lib/routes/gocn/utils.ts +++ b/lib/routes/gocn/utils.ts @@ -33,6 +33,4 @@ function renderHTML(json) { .join(''); } -module.exports = { - renderHTML, -}; +export { renderHTML }; diff --git a/lib/routes/gov/ccdi/index.ts b/lib/routes/gov/ccdi/index.ts index f7fc8fa78d..7ab6271a06 100644 --- a/lib/routes/gov/ccdi/index.ts +++ b/lib/routes/gov/ccdi/index.ts @@ -1,5 +1,5 @@ import { getSubPath } from '@/utils/common-utils'; -const { rootUrl, parseNewsList, parseArticle } = require('./utils'); +import { rootUrl, parseNewsList, parseArticle } from './utils'; export default async (ctx) => { const defaultPath = '/yaowenn/'; diff --git a/lib/routes/gov/ccdi/utils.ts b/lib/routes/gov/ccdi/utils.ts index 5f8be7bc65..90507f6b74 100644 --- a/lib/routes/gov/ccdi/utils.ts +++ b/lib/routes/gov/ccdi/utils.ts @@ -88,8 +88,4 @@ const parseArticle = async (item) => { }); }; -module.exports = { - rootUrl, - parseNewsList, - parseArticle, -}; +export { rootUrl, parseNewsList, parseArticle }; diff --git a/lib/routes/gov/chinamine-safety/util.ts b/lib/routes/gov/chinamine-safety/util.ts index 7a67521cdb..1e92aaee24 100644 --- a/lib/routes/gov/chinamine-safety/util.ts +++ b/lib/routes/gov/chinamine-safety/util.ts @@ -69,9 +69,4 @@ const fetchData = ($, currentUrl) => { }; }; -module.exports = { - rootUrl, - - processItems, - fetchData, -}; +export { rootUrl, processItems, fetchData }; diff --git a/lib/routes/gov/chinamine-safety/xw.ts b/lib/routes/gov/chinamine-safety/xw.ts index fd50957c51..a997f69b78 100644 --- a/lib/routes/gov/chinamine-safety/xw.ts +++ b/lib/routes/gov/chinamine-safety/xw.ts @@ -4,7 +4,7 @@ import { load } from 'cheerio'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl, processItems, fetchData } = require('./util'); +import { rootUrl, processItems, fetchData } from './util'; export default async (ctx) => { const { category = 'yjglbyw' } = ctx.req.param(); diff --git a/lib/routes/gov/chinamine-safety/zfxxgk.ts b/lib/routes/gov/chinamine-safety/zfxxgk.ts index 1e19bff26d..3c32b9271e 100644 --- a/lib/routes/gov/chinamine-safety/zfxxgk.ts +++ b/lib/routes/gov/chinamine-safety/zfxxgk.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl, processItems, fetchData } = require('./util'); +import { rootUrl, processItems, fetchData } from './util'; export default async (ctx) => { const { category = 'fdzdgknr/tzgg' } = ctx.req.param(); diff --git a/lib/routes/gov/customs/list.ts b/lib/routes/gov/customs/list.ts index 5eddb57787..50e4fefe42 100644 --- a/lib/routes/gov/customs/list.ts +++ b/lib/routes/gov/customs/list.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; -const { host, puppeteerGet } = require('./utils'); +import { host, puppeteerGet } from './utils'; import { config } from '@/config'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; diff --git a/lib/routes/gov/customs/utils.ts b/lib/routes/gov/customs/utils.ts index 37ebc98605..c8a1470743 100644 --- a/lib/routes/gov/customs/utils.ts +++ b/lib/routes/gov/customs/utils.ts @@ -15,7 +15,4 @@ const puppeteerGet = async (url, browser) => { return html; }; -module.exports = { - host, - puppeteerGet, -}; +export { host, puppeteerGet }; diff --git a/lib/routes/gov/general/general.ts b/lib/routes/gov/general/general.ts index 1d0802cdfa..d134d378a2 100644 --- a/lib/routes/gov/general/general.ts +++ b/lib/routes/gov/general/general.ts @@ -237,6 +237,4 @@ const gdgov = async (info, ctx) => { }); }; -module.exports = { - gdgov, -}; +export { gdgov }; diff --git a/lib/routes/gov/nsfc/shortcuts.ts b/lib/routes/gov/nsfc/shortcuts.ts index 3870f47eb1..c0c10e6cd7 100644 --- a/lib/routes/gov/nsfc/shortcuts.ts +++ b/lib/routes/gov/nsfc/shortcuts.ts @@ -1,4 +1,4 @@ -module.exports = { +export default { // 基金要闻 - 基金要闻 https://www.nsfc.gov.cn/publish/portal0/tab440/ jjyw: '/publish/portal0/tab440/', diff --git a/lib/routes/gov/pbc/gzlw.ts b/lib/routes/gov/pbc/gzlw.ts index a0ca5bca63..8c4b823e08 100644 --- a/lib/routes/gov/pbc/gzlw.ts +++ b/lib/routes/gov/pbc/gzlw.ts @@ -1,4 +1,4 @@ -const { processItems } = require('./utils'); +import { processItems } from './utils'; import got from '@/utils/got'; import { load } from 'cheerio'; diff --git a/lib/routes/gov/pbc/utils.ts b/lib/routes/gov/pbc/utils.ts index 02af3422c9..2e7ed00b62 100644 --- a/lib/routes/gov/pbc/utils.ts +++ b/lib/routes/gov/pbc/utils.ts @@ -16,6 +16,4 @@ const processItems = (list) => ) ); -module.exports = { - processItems, -}; +export { processItems }; diff --git a/lib/routes/gov/pbc/zcyj.ts b/lib/routes/gov/pbc/zcyj.ts index 7aaaf931cd..11b00aa59f 100644 --- a/lib/routes/gov/pbc/zcyj.ts +++ b/lib/routes/gov/pbc/zcyj.ts @@ -1,4 +1,4 @@ -const { processItems } = require('./utils'); +import { processItems } from './utils'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; diff --git a/lib/routes/gov/safe/business.ts b/lib/routes/gov/safe/business.ts index 9ebce9673b..032300e2f3 100644 --- a/lib/routes/gov/safe/business.ts +++ b/lib/routes/gov/safe/business.ts @@ -1,4 +1,4 @@ -const { processZxfkItems } = require('./util'); +import { processZxfkItems } from './util'; export default async (ctx) => { const { site = 'beijing' } = ctx.req.param(); diff --git a/lib/routes/gov/safe/complaint.ts b/lib/routes/gov/safe/complaint.ts index 091ebded82..fcd8ad6228 100644 --- a/lib/routes/gov/safe/complaint.ts +++ b/lib/routes/gov/safe/complaint.ts @@ -1,4 +1,4 @@ -const { processZxfkItems } = require('./util'); +import { processZxfkItems } from './util'; export default async (ctx) => { const { site = 'beijing' } = ctx.req.param(); diff --git a/lib/routes/gov/safe/util.ts b/lib/routes/gov/safe/util.ts index 4d812d555c..48b4534799 100644 --- a/lib/routes/gov/safe/util.ts +++ b/lib/routes/gov/safe/util.ts @@ -85,6 +85,4 @@ const processZxfkItems = async (site = 'beijing', category = 'ywzx', limit = '3' }; }; -module.exports = { - processZxfkItems, -}; +export { processZxfkItems }; diff --git a/lib/routes/grist/featured.ts b/lib/routes/grist/featured.ts index 6ad5de05aa..5352e8eb00 100644 --- a/lib/routes/grist/featured.ts +++ b/lib/routes/grist/featured.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getData, getList } = require('./utils'); +import { getData, getList } from './utils'; import got from '@/utils/got'; import { load } from 'cheerio'; diff --git a/lib/routes/grist/index.ts b/lib/routes/grist/index.ts index 89c6baa3e4..a48cdb7422 100644 --- a/lib/routes/grist/index.ts +++ b/lib/routes/grist/index.ts @@ -1,4 +1,4 @@ -const { getData, getList } = require('./utils'); +import { getData, getList } from './utils'; export default async (ctx) => { const baseUrl = 'https://grist.org'; diff --git a/lib/routes/grist/series.ts b/lib/routes/grist/series.ts index c3d7ab3053..4f0450b9b4 100644 --- a/lib/routes/grist/series.ts +++ b/lib/routes/grist/series.ts @@ -1,4 +1,4 @@ -const { getData, getList } = require('./utils'); +import { getData, getList } from './utils'; export default async (ctx) => { const baseUrl = 'https://grist.org'; diff --git a/lib/routes/grist/topic.ts b/lib/routes/grist/topic.ts index 63af86b904..177d576629 100644 --- a/lib/routes/grist/topic.ts +++ b/lib/routes/grist/topic.ts @@ -1,4 +1,4 @@ -const { getData, getList } = require('./utils'); +import { getData, getList } from './utils'; export default async (ctx) => { const baseUrl = 'https://grist.org'; diff --git a/lib/routes/grist/utils.ts b/lib/routes/grist/utils.ts index da52e48cf7..4b4a5f59ce 100644 --- a/lib/routes/grist/utils.ts +++ b/lib/routes/grist/utils.ts @@ -21,4 +21,4 @@ const getList = (data) => }; }); -module.exports = { getData, getList }; +export { getData, getList }; diff --git a/lib/routes/grubstreet/utils.ts b/lib/routes/grubstreet/utils.ts index 7c63b1ad14..31e2313874 100644 --- a/lib/routes/grubstreet/utils.ts +++ b/lib/routes/grubstreet/utils.ts @@ -80,6 +80,4 @@ const getData = async (ctx, url, title, description) => { }; }; -module.exports = { - getData, -}; +export { getData }; diff --git a/lib/routes/gxmzu/ai.ts b/lib/routes/gxmzu/ai.ts index 8f9885e9ff..246f3ba88c 100644 --- a/lib/routes/gxmzu/ai.ts +++ b/lib/routes/gxmzu/ai.ts @@ -1,4 +1,4 @@ -const { getNoticeList } = require('./utils'); +import { getNoticeList } from './utils'; const url = 'https://ai.gxmzu.edu.cn/index/tzgg.htm'; const host = 'https://ai.gxmzu.edu.cn'; diff --git a/lib/routes/gxmzu/utils/index.ts b/lib/routes/gxmzu/utils/index.ts index 5755e0081c..ecb4a55349 100644 --- a/lib/routes/gxmzu/utils/index.ts +++ b/lib/routes/gxmzu/utils/index.ts @@ -47,6 +47,4 @@ async function getNoticeList(ctx, url, host, titleSelector, dateSelector, conten return out; } -module.exports = { - getNoticeList, -}; +export { getNoticeList }; diff --git a/lib/routes/gxmzu/yjs.ts b/lib/routes/gxmzu/yjs.ts index 467893c573..c42a91e921 100644 --- a/lib/routes/gxmzu/yjs.ts +++ b/lib/routes/gxmzu/yjs.ts @@ -1,4 +1,4 @@ -const { getNoticeList } = require('./utils'); +import { getNoticeList } from './utils'; const url = 'https://yjs.gxmzu.edu.cn/tzgg/zsgg.htm'; const host = 'https://yjs.gxmzu.edu.cn'; diff --git a/lib/routes/hk01/channel.ts b/lib/routes/hk01/channel.ts index e999ead023..0deb0f2da3 100644 --- a/lib/routes/hk01/channel.ts +++ b/lib/routes/hk01/channel.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiRootUrl, ProcessItems } = require('./utils'); +import { rootUrl, apiRootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id') ?? '1'; diff --git a/lib/routes/hk01/hot.ts b/lib/routes/hk01/hot.ts index 526ddaab80..ee2b5d227b 100644 --- a/lib/routes/hk01/hot.ts +++ b/lib/routes/hk01/hot.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiRootUrl, ProcessItems } = require('./utils'); +import { rootUrl, apiRootUrl, ProcessItems } from './utils'; export default async (ctx) => { const currentUrl = `${rootUrl}/hot`; diff --git a/lib/routes/hk01/issue.ts b/lib/routes/hk01/issue.ts index e4fde5765b..568cf8fd0b 100644 --- a/lib/routes/hk01/issue.ts +++ b/lib/routes/hk01/issue.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiRootUrl, ProcessItems } = require('./utils'); +import { rootUrl, apiRootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id') ?? '649'; diff --git a/lib/routes/hk01/latest.ts b/lib/routes/hk01/latest.ts index 65c4240308..7ab2ae0607 100644 --- a/lib/routes/hk01/latest.ts +++ b/lib/routes/hk01/latest.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiRootUrl, ProcessItems } = require('./utils'); +import { rootUrl, apiRootUrl, ProcessItems } from './utils'; export default async (ctx) => { const currentUrl = `${rootUrl}/latest`; diff --git a/lib/routes/hk01/tag.ts b/lib/routes/hk01/tag.ts index a5668853c5..844d6a287e 100644 --- a/lib/routes/hk01/tag.ts +++ b/lib/routes/hk01/tag.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiRootUrl, ProcessItems } = require('./utils'); +import { rootUrl, apiRootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id') ?? '1'; diff --git a/lib/routes/hk01/utils.ts b/lib/routes/hk01/utils.ts index 84ad27092d..ab73b1680a 100644 --- a/lib/routes/hk01/utils.ts +++ b/lib/routes/hk01/utils.ts @@ -9,38 +9,36 @@ import * as path from 'node:path'; const rootUrl = 'https://hk01.com'; const apiRootUrl = 'https://web-data.api.hk01.com'; -module.exports = { - rootUrl, - apiRootUrl, - ProcessItems: (items, limit, tryGet) => - Promise.all( - items - .filter((item) => item.type !== 2) - .slice(0, limit ? Number.parseInt(limit) : 50) - .map((item) => ({ - title: item.data.title, - link: `${rootUrl}/sns/article/${item.data.articleId}`, - pubDate: parseDate(item.data.publishTime * 1000), - category: item.data.tags.map((t) => t.tagName), - author: item.data.authors.map((a) => a.publishName).join(', '), - })) - .map((item) => - tryGet(item.link, async () => { - const detailResponse = await got({ - method: 'get', - url: item.link, - }); +const ProcessItems = (items, limit, tryGet) => + Promise.all( + items + .filter((item) => item.type !== 2) + .slice(0, limit ? Number.parseInt(limit) : 50) + .map((item) => ({ + title: item.data.title, + link: `${rootUrl}/sns/article/${item.data.articleId}`, + pubDate: parseDate(item.data.publishTime * 1000), + category: item.data.tags.map((t) => t.tagName), + author: item.data.authors.map((a) => a.publishName).join(', '), + })) + .map((item) => + tryGet(item.link, async () => { + const detailResponse = await got({ + method: 'get', + url: item.link, + }); - const content = JSON.parse(detailResponse.data.match(/"__NEXT_DATA__" type="application\/json">({"props":.*})<\/script>/)[1]); + const content = JSON.parse(detailResponse.data.match(/"__NEXT_DATA__" type="application\/json">({"props":.*})<\/script>/)[1]); - item.description = art(path.join(__dirname, 'templates/description.art'), { - image: content.props.initialProps.pageProps.article.originalImage.cdnUrl, - teasers: content.props.initialProps.pageProps.article.teaser, - blocks: content.props.initialProps.pageProps.article.blocks, - }); + item.description = art(path.join(__dirname, 'templates/description.art'), { + image: content.props.initialProps.pageProps.article.originalImage.cdnUrl, + teasers: content.props.initialProps.pageProps.article.teaser, + blocks: content.props.initialProps.pageProps.article.blocks, + }); - return item; - }) - ) - ), -}; + return item; + }) + ) + ); + +export { rootUrl, apiRootUrl, ProcessItems }; diff --git a/lib/routes/hk01/zone.ts b/lib/routes/hk01/zone.ts index 60cb9043e4..49f267f9ff 100644 --- a/lib/routes/hk01/zone.ts +++ b/lib/routes/hk01/zone.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiRootUrl, ProcessItems } = require('./utils'); +import { rootUrl, apiRootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id') ?? '1'; diff --git a/lib/routes/hkepc/data.ts b/lib/routes/hkepc/data.ts index d63dd43426..0c750593b4 100644 --- a/lib/routes/hkepc/data.ts +++ b/lib/routes/hkepc/data.ts @@ -1,62 +1,60 @@ const baseUrl = 'https://www.hkepc.com'; - -module.exports = { - baseUrl, - categoryMap: { - price: { - url: `${baseUrl}/news`, - feedSuffix: ' - 腦場新聞', - selector: '#sidebar > div:nth-child(1) > div.content > ul > li', - }, - review: { - url: `${baseUrl}/news`, - feedSuffix: ' - 新品快遞', - selector: '#sidebar > div:nth-child(2) > div.content > ul > li', - }, - coverStory: { - url: `${baseUrl}/news`, - feedSuffix: ' - 專題報導', - selector: '#sidebar > div:nth-child(3) > div.content > ul > li', - }, - news: { - url: `${baseUrl}/news`, - feedSuffix: ' - 新聞中心', - selector: '#sidebar > div:nth-child(4) > div.content > ul > li', - }, - press: { - url: `${baseUrl}/news`, - feedSuffix: ' - 業界資訊', - selector: '#sidebar > div:nth-child(5) > div.content > ul > li', - }, - member: { - url: `${baseUrl}/news`, - feedSuffix: ' - 會員消息', - selector: '#sidebar > div:nth-child(6) > div.content > ul > li', - }, - digital: { - url: baseUrl, - feedSuffix: ' - 流動數碼', - selector: '#contentR5 > div.left > div.article > div.heading', - }, - entertainment: { - url: baseUrl, - feedSuffix: ' - 生活娛樂', - selector: '#contentR5 > div.right > div.article > div.heading', - }, - latest: { - url: baseUrl, - feedSuffix: ' - 最新消息', - selector: 'div .item', - }, - '': { - url: baseUrl, - feedSuffix: ' - 最新消息', - selector: 'div .item', - }, - ocLab: { - url: `${baseUrl}/ocLab`, - feedSuffix: ' - 超頻領域', - selector: '.heading', - }, +const categoryMap = { + price: { + url: `${baseUrl}/news`, + feedSuffix: ' - 腦場新聞', + selector: '#sidebar > div:nth-child(1) > div.content > ul > li', + }, + review: { + url: `${baseUrl}/news`, + feedSuffix: ' - 新品快遞', + selector: '#sidebar > div:nth-child(2) > div.content > ul > li', + }, + coverStory: { + url: `${baseUrl}/news`, + feedSuffix: ' - 專題報導', + selector: '#sidebar > div:nth-child(3) > div.content > ul > li', + }, + news: { + url: `${baseUrl}/news`, + feedSuffix: ' - 新聞中心', + selector: '#sidebar > div:nth-child(4) > div.content > ul > li', + }, + press: { + url: `${baseUrl}/news`, + feedSuffix: ' - 業界資訊', + selector: '#sidebar > div:nth-child(5) > div.content > ul > li', + }, + member: { + url: `${baseUrl}/news`, + feedSuffix: ' - 會員消息', + selector: '#sidebar > div:nth-child(6) > div.content > ul > li', + }, + digital: { + url: baseUrl, + feedSuffix: ' - 流動數碼', + selector: '#contentR5 > div.left > div.article > div.heading', + }, + entertainment: { + url: baseUrl, + feedSuffix: ' - 生活娛樂', + selector: '#contentR5 > div.right > div.article > div.heading', + }, + latest: { + url: baseUrl, + feedSuffix: ' - 最新消息', + selector: 'div .item', + }, + '': { + url: baseUrl, + feedSuffix: ' - 最新消息', + selector: 'div .item', + }, + ocLab: { + url: `${baseUrl}/ocLab`, + feedSuffix: ' - 超頻領域', + selector: '.heading', }, }; + +export { baseUrl, categoryMap }; diff --git a/lib/routes/hkepc/index.ts b/lib/routes/hkepc/index.ts index 66d77548bb..2408219f44 100644 --- a/lib/routes/hkepc/index.ts +++ b/lib/routes/hkepc/index.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { baseUrl, categoryMap } = require('./data'); +import { baseUrl, categoryMap } from './data'; export default async (ctx) => { const category = ctx.req.param('category') ?? ''; diff --git a/lib/routes/hoyolab/constant.ts b/lib/routes/hoyolab/constant.ts index fd3dcabe64..e1e7f4cee1 100644 --- a/lib/routes/hoyolab/constant.ts +++ b/lib/routes/hoyolab/constant.ts @@ -25,13 +25,4 @@ const OFFICIAL_PAGE_TYPE = { 5: 43, }; -module.exports = { - PRIVATE_IMG, - PUBLIC_IMG, - LINK, - POST_FULL, - HOST, - EVENT_LIST, - NEW_LIST, - OFFICIAL_PAGE_TYPE, -}; +export { PRIVATE_IMG, PUBLIC_IMG, LINK, POST_FULL, HOST, EVENT_LIST, NEW_LIST, OFFICIAL_PAGE_TYPE }; diff --git a/lib/routes/hoyolab/news.ts b/lib/routes/hoyolab/news.ts index 38a744c074..419c107103 100644 --- a/lib/routes/hoyolab/news.ts +++ b/lib/routes/hoyolab/news.ts @@ -7,8 +7,8 @@ import logger from '@/utils/logger'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { HOST, NEW_LIST, OFFICIAL_PAGE_TYPE, POST_FULL, LINK, PUBLIC_IMG, PRIVATE_IMG } = require('./constant'); -const { getI18nGameInfo, getI18nType } = require('./utils'); +import { HOST, NEW_LIST, OFFICIAL_PAGE_TYPE, POST_FULL, LINK, PUBLIC_IMG, PRIVATE_IMG } from './constant'; +import { getI18nGameInfo, getI18nType } from './utils'; const getEventList = async ({ type, gids, size, language }) => { const query = new URLSearchParams({ diff --git a/lib/routes/hoyolab/utils.ts b/lib/routes/hoyolab/utils.ts index 64feb1be01..907fc1e461 100644 --- a/lib/routes/hoyolab/utils.ts +++ b/lib/routes/hoyolab/utils.ts @@ -26,7 +26,4 @@ const getI18nType = (language, tryGet) => }; }); -module.exports = { - getI18nGameInfo, - getI18nType, -}; +export { getI18nGameInfo, getI18nType }; diff --git a/lib/routes/hpoi/all.ts b/lib/routes/hpoi/all.ts index 1c9d1ba07a..514a2b6cd4 100644 --- a/lib/routes/hpoi/all.ts +++ b/lib/routes/hpoi/all.ts @@ -1,3 +1,3 @@ -const { ProcessFeed } = require('./utils'); +import { ProcessFeed } from './utils'; export default async (ctx) => ctx.set('data', await ProcessFeed('all', 0, ctx.req.param('order'))); diff --git a/lib/routes/hpoi/character.ts b/lib/routes/hpoi/character.ts index 3bdb8cfc92..750af0c2bd 100644 --- a/lib/routes/hpoi/character.ts +++ b/lib/routes/hpoi/character.ts @@ -1,3 +1,3 @@ -const { ProcessFeed } = require('./utils'); +import { ProcessFeed } from './utils'; export default async (ctx) => ctx.set('data', await ProcessFeed('character', ctx.req.param('id'), ctx.req.param('order'))); diff --git a/lib/routes/hpoi/utils.ts b/lib/routes/hpoi/utils.ts index b5d4d4c562..100d9c4081 100644 --- a/lib/routes/hpoi/utils.ts +++ b/lib/routes/hpoi/utils.ts @@ -44,6 +44,4 @@ const ProcessFeed = async (type, id, order) => { }; }; -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/hpoi/work.ts b/lib/routes/hpoi/work.ts index 852e17a2df..8a57246ca1 100644 --- a/lib/routes/hpoi/work.ts +++ b/lib/routes/hpoi/work.ts @@ -1,3 +1,3 @@ -const { ProcessFeed } = require('./utils'); +import { ProcessFeed } from './utils'; export default async (ctx) => ctx.set('data', await ProcessFeed('work', ctx.req.param('id'), ctx.req.param('order'))); diff --git a/lib/routes/hrbust/utils.ts b/lib/routes/hrbust/utils.ts index aadef4a2a9..814b0a552b 100644 --- a/lib/routes/hrbust/utils.ts +++ b/lib/routes/hrbust/utils.ts @@ -55,7 +55,7 @@ const fetchAllArticle = (data, base) => { return info; }; -module.exports = { +export default { // BASE: base, JWZXBASE: jwzxBase, columnIdBase, diff --git a/lib/routes/huxiu/brief-column.ts b/lib/routes/huxiu/brief-column.ts index f8e28ea921..05e0ba346c 100644 --- a/lib/routes/huxiu/brief-column.ts +++ b/lib/routes/huxiu/brief-column.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { apiBriefRootUrl, processItems, fetchBriefColumnData } = require('./util'); +import { apiBriefRootUrl, processItems, fetchBriefColumnData } from './util'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/huxiu/channel.ts b/lib/routes/huxiu/channel.ts index 9148786980..14c33d6f90 100644 --- a/lib/routes/huxiu/channel.ts +++ b/lib/routes/huxiu/channel.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiArticleRootUrl, processItems, fetchData } = require('./util'); +import { rootUrl, apiArticleRootUrl, processItems, fetchData } from './util'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/huxiu/club.ts b/lib/routes/huxiu/club.ts index dd0ae4889c..97f39667ba 100644 --- a/lib/routes/huxiu/club.ts +++ b/lib/routes/huxiu/club.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { apiBriefRootUrl, processItems, fetchClubData } = require('./util'); +import { apiBriefRootUrl, processItems, fetchClubData } from './util'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/huxiu/collection.ts b/lib/routes/huxiu/collection.ts index 3d1b539821..440a76fcf3 100644 --- a/lib/routes/huxiu/collection.ts +++ b/lib/routes/huxiu/collection.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiArticleRootUrl, processItems, fetchData } = require('./util'); +import { rootUrl, apiArticleRootUrl, processItems, fetchData } from './util'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/huxiu/member.ts b/lib/routes/huxiu/member.ts index b433771d17..dc08e1cd3d 100644 --- a/lib/routes/huxiu/member.ts +++ b/lib/routes/huxiu/member.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiMemberRootUrl, processItems, fetchData } = require('./util'); +import { rootUrl, apiMemberRootUrl, processItems, fetchData } from './util'; export default async (ctx) => { const { id, type = 'article' } = ctx.req.param(); diff --git a/lib/routes/huxiu/moment.ts b/lib/routes/huxiu/moment.ts index 6326877ff9..dfc48076e6 100644 --- a/lib/routes/huxiu/moment.ts +++ b/lib/routes/huxiu/moment.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiMomentRootUrl, processItems, fetchData } = require('./util'); +import { rootUrl, apiMomentRootUrl, processItems, fetchData } from './util'; export default async (ctx) => { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 20; diff --git a/lib/routes/huxiu/search.ts b/lib/routes/huxiu/search.ts index 280e384424..ecc20edfed 100644 --- a/lib/routes/huxiu/search.ts +++ b/lib/routes/huxiu/search.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, apiSearchRootUrl, generateSignature, processItems, fetchData } = require('./util'); +import { rootUrl, apiSearchRootUrl, generateSignature, processItems, fetchData } from './util'; export default async (ctx) => { const keyword = ctx.req.param('keyword'); diff --git a/lib/routes/huxiu/tag.ts b/lib/routes/huxiu/tag.ts index a8e1c3f61f..1e7a9f2330 100644 --- a/lib/routes/huxiu/tag.ts +++ b/lib/routes/huxiu/tag.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, processItems, fetchData } = require('./util'); +import { rootUrl, processItems, fetchData } from './util'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/huxiu/util.ts b/lib/routes/huxiu/util.ts index 99cd90f4c6..bfd7c5a3b3 100644 --- a/lib/routes/huxiu/util.ts +++ b/lib/routes/huxiu/util.ts @@ -443,17 +443,4 @@ const processVideoInfo = (info) => { }; }; -module.exports = { - rootUrl, - apiArticleRootUrl, - apiBriefRootUrl, - apiMemberRootUrl, - apiMomentRootUrl, - apiSearchRootUrl, - - fetchBriefColumnData, - fetchClubData, - fetchData, - generateSignature, - processItems, -}; +export { rootUrl, apiArticleRootUrl, apiBriefRootUrl, apiMemberRootUrl, apiMomentRootUrl, apiSearchRootUrl, fetchBriefColumnData, fetchClubData, fetchData, generateSignature, processItems }; diff --git a/lib/routes/icac/utils.ts b/lib/routes/icac/utils.ts index 1168d21725..27c3818ceb 100644 --- a/lib/routes/icac/utils.ts +++ b/lib/routes/icac/utils.ts @@ -10,8 +10,4 @@ function langBase(lang) { return lang ? `${BASE_URL}/${lang}` : `https://www.icac.org.hk/sc`; } -module.exports = { - LANG_TYPE, - BASE_URL, - langBase, -}; +export { LANG_TYPE, BASE_URL, langBase }; diff --git a/lib/routes/ifeng/feng.ts b/lib/routes/ifeng/feng.ts index 3b711e32ae..4f3ca676c8 100644 --- a/lib/routes/ifeng/feng.ts +++ b/lib/routes/ifeng/feng.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { extractDoc, renderVideo } = require('./utils'); +import { extractDoc, renderVideo } from './utils'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; diff --git a/lib/routes/ifeng/utils.ts b/lib/routes/ifeng/utils.ts index 248ee23d2b..e9668fb4ea 100644 --- a/lib/routes/ifeng/utils.ts +++ b/lib/routes/ifeng/utils.ts @@ -23,7 +23,4 @@ const renderVideo = (videoInfo) => videoInfo, }); -module.exports = { - extractDoc, - renderVideo, -}; +export { extractDoc, renderVideo }; diff --git a/lib/routes/ikea/cn/family-offers.ts b/lib/routes/ikea/cn/family-offers.ts index b9634b1a96..fa77af05d7 100644 --- a/lib/routes/ikea/cn/family-offers.ts +++ b/lib/routes/ikea/cn/family-offers.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { generateProductItem } = require('./utils'); +import { generateProductItem } from './utils'; const familyPriceProductsRequest = ({ pageIndex = 1 }) => got({ diff --git a/lib/routes/ikea/cn/low-price.ts b/lib/routes/ikea/cn/low-price.ts index 890c7d05d8..aa89b2b434 100644 --- a/lib/routes/ikea/cn/low-price.ts +++ b/lib/routes/ikea/cn/low-price.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { generateRequestHeaders, generateProductItem } = require('./utils'); +import { generateRequestHeaders, generateProductItem } from './utils'; export default async (ctx) => { const response = await got({ diff --git a/lib/routes/ikea/cn/new.ts b/lib/routes/ikea/cn/new.ts index 9b74856290..ffaf7d1433 100644 --- a/lib/routes/ikea/cn/new.ts +++ b/lib/routes/ikea/cn/new.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { generateRequestHeaders, generateProductItem } = require('./utils'); +import { generateRequestHeaders, generateProductItem } from './utils'; const request = ({ moreToken = '' }) => got({ diff --git a/lib/routes/ikea/cn/utils.ts b/lib/routes/ikea/cn/utils.ts index bc7bbba767..28fa4993ae 100644 --- a/lib/routes/ikea/cn/utils.ts +++ b/lib/routes/ikea/cn/utils.ts @@ -39,7 +39,4 @@ const generateProductItem = (product) => { }; }; -module.exports = { - generateRequestHeaders, - generateProductItem, -}; +export { generateRequestHeaders, generateProductItem }; diff --git a/lib/routes/indienova/article.ts b/lib/routes/indienova/article.ts index 1d64bf79bf..cbc113812c 100644 --- a/lib/routes/indienova/article.ts +++ b/lib/routes/indienova/article.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { parseList, parseItem } = require('./utils'); +import { parseList, parseItem } from './utils'; export default async (ctx) => { const type = ctx.req.param('type'); diff --git a/lib/routes/indienova/column.ts b/lib/routes/indienova/column.ts index 09d72d4e63..a6fc7de380 100644 --- a/lib/routes/indienova/column.ts +++ b/lib/routes/indienova/column.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl, parseList, parseItem } = require('./utils'); +import { baseUrl, parseList, parseItem } from './utils'; export default async (ctx) => { const columnId = ctx.req.param('columnId'); diff --git a/lib/routes/indienova/utils.ts b/lib/routes/indienova/utils.ts index 96b4198770..51c8ad6a4b 100644 --- a/lib/routes/indienova/utils.ts +++ b/lib/routes/indienova/utils.ts @@ -36,8 +36,4 @@ const parseItem = async (item) => { return item; }; -module.exports = { - baseUrl, - parseList, - parseItem, -}; +export { baseUrl, parseList, parseItem }; diff --git a/lib/routes/infoq/utils.ts b/lib/routes/infoq/utils.ts index 192e48c751..9283db89b7 100644 --- a/lib/routes/infoq/utils.ts +++ b/lib/routes/infoq/utils.ts @@ -106,6 +106,4 @@ function parseContent(content) { return parseToSimpleText([JSON.parse(content)]); } -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/instagram/common-utils.ts b/lib/routes/instagram/common-utils.ts index c7610f32c0..ec7caa325c 100644 --- a/lib/routes/instagram/common-utils.ts +++ b/lib/routes/instagram/common-utils.ts @@ -60,6 +60,4 @@ const renderItems = (items) => }; }); -module.exports = { - renderItems, -}; +export { renderItems }; diff --git a/lib/routes/instagram/private-api/index.ts b/lib/routes/instagram/private-api/index.ts index a43bc2f551..6a1bbf8c4e 100644 --- a/lib/routes/instagram/private-api/index.ts +++ b/lib/routes/instagram/private-api/index.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { ig, login } = require('./utils'); +import { ig, login } from './utils'; import logger from '@/utils/logger'; import { config } from '@/config'; const { renderItems } = require('../common-utils'); diff --git a/lib/routes/instagram/private-api/utils.ts b/lib/routes/instagram/private-api/utils.ts index e75fa17c89..7fc76823ea 100644 --- a/lib/routes/instagram/private-api/utils.ts +++ b/lib/routes/instagram/private-api/utils.ts @@ -34,4 +34,4 @@ async function login(ig, cache) { }); } -module.exports = { ig, login }; +export { ig, login }; diff --git a/lib/routes/instagram/web-api/index.ts b/lib/routes/instagram/web-api/index.ts index ca3f669d7d..df77513f88 100644 --- a/lib/routes/instagram/web-api/index.ts +++ b/lib/routes/instagram/web-api/index.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; const { CookieJar } = require('tough-cookie'); import { config } from '@/config'; const { renderItems } = require('../common-utils'); -const { baseUrl, COOKIE_URL, checkLogin, getUserInfo, getUserFeedItems, getTagsFeedItems, getLoggedOutTagsFeedItems, renderGuestItems } = require('./utils'); +import { baseUrl, COOKIE_URL, checkLogin, getUserInfo, getUserFeedItems, getTagsFeedItems, getLoggedOutTagsFeedItems, renderGuestItems } from './utils'; export default async (ctx) => { // if (!config.instagram || !config.instagram.cookie) { diff --git a/lib/routes/instagram/web-api/utils.ts b/lib/routes/instagram/web-api/utils.ts index a9593aaac9..f08820dcb2 100644 --- a/lib/routes/instagram/web-api/utils.ts +++ b/lib/routes/instagram/web-api/utils.ts @@ -214,13 +214,4 @@ const renderGuestItems = (items) => { }); }; -module.exports = { - baseUrl, - COOKIE_URL, - checkLogin, - getUserInfo, - getUserFeedItems, - getTagsFeedItems, - getLoggedOutTagsFeedItems, - renderGuestItems, -}; +export { baseUrl, COOKIE_URL, checkLogin, getUserInfo, getUserFeedItems, getTagsFeedItems, getLoggedOutTagsFeedItems, renderGuestItems }; diff --git a/lib/routes/javdb/utils.ts b/lib/routes/javdb/utils.ts index 14ad296936..ec55b0e0e0 100644 --- a/lib/routes/javdb/utils.ts +++ b/lib/routes/javdb/utils.ts @@ -5,77 +5,77 @@ import { parseDate } from '@/utils/parse-date'; import { config } from '@/config'; const allowDomain = new Set(['javdb.com', 'javdb36.com', 'javdb007.com', 'javdb521.com']); -module.exports = { - ProcessItems: async (ctx, currentUrl, title) => { - const domain = ctx.req.query('domain') ?? 'javdb.com'; - const url = new URL(currentUrl, `https://${domain}`); - if (!config.feature.allow_user_supply_unsafe_domain && !allowDomain.has(url.hostname)) { - throw new Error(`This RSS is disabled unless 'ALLOW_USER_SUPPLY_UNSAFE_DOMAIN' is set to 'true'.`); - } +const ProcessItems = async (ctx, currentUrl, title) => { + const domain = ctx.req.query('domain') ?? 'javdb.com'; + const url = new URL(currentUrl, `https://${domain}`); + if (!config.feature.allow_user_supply_unsafe_domain && !allowDomain.has(url.hostname)) { + throw new Error(`This RSS is disabled unless 'ALLOW_USER_SUPPLY_UNSAFE_DOMAIN' is set to 'true'.`); + } - const rootUrl = `https://${domain}`; + const rootUrl = `https://${domain}`; - const response = await got({ - method: 'get', - url: url.href, + const response = await got({ + method: 'get', + url: url.href, + }); + + const $ = load(response.data); + + $('.tags, .tag-can-play, .over18-modal').remove(); + + let items = $('div.item') + .slice(0, ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 20) + .toArray() + .map((item) => { + item = $(item); + return { + title: item.find('.video-title').text(), + link: `${rootUrl}${item.find('.box').attr('href')}`, + pubDate: parseDate(item.find('.meta').text()), + }; }); - const $ = load(response.data); + items = await Promise.all( + items.map((item) => + cache.tryGet(item.link, async () => { + const detailResponse = await got({ + method: 'get', + url: item.link, + }); - $('.tags, .tag-can-play, .over18-modal').remove(); + const content = load(detailResponse.data); - let items = $('div.item') - .slice(0, ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 20) - .toArray() - .map((item) => { - item = $(item); - return { - title: item.find('.video-title').text(), - link: `${rootUrl}${item.find('.box').attr('href')}`, - pubDate: parseDate(item.find('.meta').text()), - }; - }); + item.enclosure_type = 'application/x-bittorrent'; + item.enclosure_url = content('#magnets-content button[data-clipboard-text]').first().attr('data-clipboard-text'); - items = await Promise.all( - items.map((item) => - cache.tryGet(item.link, async () => { - const detailResponse = await got({ - method: 'get', - url: item.link, - }); + content('icon').remove(); + content('#modal-review-watched, #modal-comment-warning, #modal-save-list').remove(); + content('.review-buttons, .copy-to-clipboard, .preview-video-container, .play-button').remove(); - const content = load(detailResponse.data); + content('.preview-images img').each(function () { + content(this).removeAttr('data-src'); + content(this).attr('src', content(this).parent().attr('href')); + }); - item.enclosure_type = 'application/x-bittorrent'; - item.enclosure_url = content('#magnets-content button[data-clipboard-text]').first().attr('data-clipboard-text'); + item.category = content('.panel-block .value a') + .toArray() + .map((v) => content(v).text()); + item.author = content('.panel-block .value').last().parent().find('.value a').first().text(); + item.description = content('.cover-container, .column-video-cover').html() + content('.movie-panel-info').html() + content('#magnets-content').html() + content('.preview-images').html(); - content('icon').remove(); - content('#modal-review-watched, #modal-comment-warning, #modal-save-list').remove(); - content('.review-buttons, .copy-to-clipboard, .preview-video-container, .play-button').remove(); + return item; + }) + ) + ); - content('.preview-images img').each(function () { - content(this).removeAttr('data-src'); - content(this).attr('src', content(this).parent().attr('href')); - }); + const htmlTitle = $('title').text(); + const subject = htmlTitle.includes('|') ? htmlTitle.split('|')[0] : ''; - item.category = content('.panel-block .value a') - .toArray() - .map((v) => content(v).text()); - item.author = content('.panel-block .value').last().parent().find('.value a').first().text(); - item.description = content('.cover-container, .column-video-cover').html() + content('.movie-panel-info').html() + content('#magnets-content').html() + content('.preview-images').html(); - - return item; - }) - ) - ); - - const htmlTitle = $('title').text(); - const subject = htmlTitle.includes('|') ? htmlTitle.split('|')[0] : ''; - - return { - title: subject === '' ? title : `${subject} - ${title}`, - link: url.href, - item: items, - }; - }, + return { + title: subject === '' ? title : `${subject} - ${title}`, + link: url.href, + item: items, + }; }; + +export { ProcessItems }; diff --git a/lib/routes/javlibrary/bestrated.ts b/lib/routes/javlibrary/bestrated.ts index 8c38568262..aa044cb0eb 100644 --- a/lib/routes/javlibrary/bestrated.ts +++ b/lib/routes/javlibrary/bestrated.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { defaultMode, defaultLanguage, rootUrl, ProcessItems } = require('./utils'); +import { defaultMode, defaultLanguage, rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const mode = ctx.req.param('mode') ?? defaultMode; diff --git a/lib/routes/javlibrary/bestreviews.ts b/lib/routes/javlibrary/bestreviews.ts index 12883c4721..e5997460e0 100644 --- a/lib/routes/javlibrary/bestreviews.ts +++ b/lib/routes/javlibrary/bestreviews.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { defaultMode, defaultLanguage, rootUrl, ProcessItems } = require('./utils'); +import { defaultMode, defaultLanguage, rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const mode = ctx.req.param('mode') ?? defaultMode; diff --git a/lib/routes/javlibrary/genre.ts b/lib/routes/javlibrary/genre.ts index d1c6844dfe..35b0891cc2 100644 --- a/lib/routes/javlibrary/genre.ts +++ b/lib/routes/javlibrary/genre.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { defaultMode, defaultGenre, defaultLanguage, rootUrl, ProcessItems } = require('./utils'); +import { defaultMode, defaultGenre, defaultLanguage, rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const mode = ctx.req.param('mode') ?? defaultMode; diff --git a/lib/routes/javlibrary/maker.ts b/lib/routes/javlibrary/maker.ts index 371949514d..999eb05d84 100644 --- a/lib/routes/javlibrary/maker.ts +++ b/lib/routes/javlibrary/maker.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { defaultMode, defaultLanguage, defaultMaker, rootUrl, ProcessItems } = require('./utils'); +import { defaultMode, defaultLanguage, defaultMaker, rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const mode = ctx.req.param('mode') ?? defaultMode; diff --git a/lib/routes/javlibrary/mostwanted.ts b/lib/routes/javlibrary/mostwanted.ts index 999fb13dd1..4060361ab0 100644 --- a/lib/routes/javlibrary/mostwanted.ts +++ b/lib/routes/javlibrary/mostwanted.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { defaultMode, defaultLanguage, rootUrl, ProcessItems } = require('./utils'); +import { defaultMode, defaultLanguage, rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const mode = ctx.req.param('mode') ?? defaultMode; diff --git a/lib/routes/javlibrary/newentries.ts b/lib/routes/javlibrary/newentries.ts index bf91ba9d7a..38f570d8e6 100644 --- a/lib/routes/javlibrary/newentries.ts +++ b/lib/routes/javlibrary/newentries.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { defaultLanguage, rootUrl, ProcessItems } = require('./utils'); +import { defaultLanguage, rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const language = ctx.req.param('language') ?? defaultLanguage; diff --git a/lib/routes/javlibrary/newrelease.ts b/lib/routes/javlibrary/newrelease.ts index d968098c3c..573825fc0e 100644 --- a/lib/routes/javlibrary/newrelease.ts +++ b/lib/routes/javlibrary/newrelease.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { defaultMode, defaultLanguage, rootUrl, ProcessItems } = require('./utils'); +import { defaultMode, defaultLanguage, rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const mode = ctx.req.param('mode') ?? defaultMode; diff --git a/lib/routes/javlibrary/star.ts b/lib/routes/javlibrary/star.ts index da57053991..009185f6ae 100644 --- a/lib/routes/javlibrary/star.ts +++ b/lib/routes/javlibrary/star.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { defaultMode, defaultLanguage, rootUrl, ProcessItems } = require('./utils'); +import { defaultMode, defaultLanguage, rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/javlibrary/update.ts b/lib/routes/javlibrary/update.ts index 296e1908df..cd48770522 100644 --- a/lib/routes/javlibrary/update.ts +++ b/lib/routes/javlibrary/update.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { defaultLanguage, rootUrl, ProcessItems } = require('./utils'); +import { defaultLanguage, rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const language = ctx.req.param('language') ?? defaultLanguage; diff --git a/lib/routes/javlibrary/user.ts b/lib/routes/javlibrary/user.ts index 85514cc7ca..3d1890889a 100644 --- a/lib/routes/javlibrary/user.ts +++ b/lib/routes/javlibrary/user.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { defaultLanguage, rootUrl, ProcessItems } = require('./utils'); +import { defaultLanguage, rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/javlibrary/utils.ts b/lib/routes/javlibrary/utils.ts index 5f5758f9a6..79a8971323 100644 --- a/lib/routes/javlibrary/utils.ts +++ b/lib/routes/javlibrary/utils.ts @@ -8,93 +8,90 @@ import { art } from '@/utils/render'; import * as path from 'node:path'; const rootUrl = 'https://www.javlibrary.com'; +const defaultMode = '1'; +const defaultGenre = 'amjq'; +const defaultMaker = 'arlq'; +const defaultLanguage = 'ja'; +const ProcessItems = async (language, currentUrl, tryGet) => { + const response = await got({ + method: 'get', + url: currentUrl, + }); -module.exports = { - rootUrl, - defaultMode: '1', - defaultGenre: 'amjq', - defaultMaker: 'arlq', - defaultLanguage: 'ja', + const $ = load(response.data); - ProcessItems: async (language, currentUrl, tryGet) => { - const response = await got({ - method: 'get', - url: currentUrl, + $('.toolbar, .info, .videoinfo').remove(); + + let items = $('.videotextlist, #video_comments') + .find('a') + .toArray() + .filter((i) => $(i).parent().hasClass('video') || $(i).parent().get(0).tagName === 'strong') + .map((item) => { + item = $(item); + + const table = item.parentsUntil('table'); + const link = `${rootUrl}/${language}/${item.attr('href').replace(/^\.\//, '')}`; + + return { + link, // url to target content. + url: link.replace(/video.*\.php/, ''), // url to the video page. + + title: item.text(), + description: table.find('textarea').text(), + pubDate: parseDate(table.find('.date').text()), + }; }); - const $ = load(response.data); + items = await Promise.all( + items.map((item) => + tryGet(item.url, async () => { + const detailResponse = await got({ + method: 'get', + url: item.url, + }); - $('.toolbar, .info, .videoinfo').remove(); + const content = load(detailResponse.data); - let items = $('.videotextlist, #video_comments') - .find('a') - .toArray() - .filter((i) => $(i).parent().hasClass('video') || $(i).parent().get(0).tagName === 'strong') - .map((item) => { - item = $(item); + content('.icn_edit, .btn_videoplayer, a[rel="bookmark"]').remove(); + content('span').each(function () { + if (content(this).attr('class')?.startsWith('icn_')) { + content(this).remove(); + } + }); - const table = item.parentsUntil('table'); - const link = `${rootUrl}/${language}/${item.attr('href').replace(/^\.\//, '')}`; - - return { - link, // url to target content. - url: link.replace(/video.*\.php/, ''), // url to the video page. - - title: item.text(), - description: table.find('textarea').text(), - pubDate: parseDate(table.find('.date').text()), - }; - }); - - items = await Promise.all( - items.map((item) => - tryGet(item.url, async () => { - const detailResponse = await got({ - method: 'get', - url: item.url, - }); - - const content = load(detailResponse.data); - - content('.icn_edit, .btn_videoplayer, a[rel="bookmark"]').remove(); - content('span').each(function () { - if (content(this).attr('class')?.startsWith('icn_')) { - content(this).remove(); - } - }); - - item.author = content('.star') + item.author = content('.star') + .toArray() + .map((star) => content(star).text()) + .filter((star) => star !== '') + .join(','); + item.category = content('a[rel]') + .toArray() + .map((tag) => content(tag).text()) + .filter((tag) => tag !== ''); + item.description = art(path.join(__dirname, 'templates/description.art'), { + cover: content('#video_jacket_img').attr('src'), + info: content('#video_info').html().replaceAll('span>'), + thumbs: content('.previewthumbs img') .toArray() - .map((star) => content(star).text()) - .filter((star) => star !== '') - .join(','); - item.category = content('a[rel]') - .toArray() - .map((tag) => content(tag).text()) - .filter((tag) => tag !== ''); - item.description = art(path.join(__dirname, 'templates/description.art'), { - cover: content('#video_jacket_img').attr('src'), - info: content('#video_info').html().replaceAll('span>'), - thumbs: content('.previewthumbs img') - .toArray() - .map((img) => content(img).attr('src').replaceAll('-', 'jp-')), - videos: [...new Set(detailResponse.data.match(/(http[^"[\]]+\.mp4)/g))], - }); - item.pubDate = item.pubDate.toString() === 'Invalid Date' ? parseDate(content('#video_date').find('.text').text()) : item.pubDate; + .map((img) => content(img).attr('src').replaceAll('-', 'jp-')), + videos: [...new Set(detailResponse.data.match(/(http[^"[\]]+\.mp4)/g))], + }); + item.pubDate = item.pubDate.toString() === 'Invalid Date' ? parseDate(content('#video_date').find('.text').text()) : item.pubDate; - delete item.url; + delete item.url; - return item; - }) - ) - ); + return item; + }) + ) + ); - return { - title: $('title').text(), - link: currentUrl, - item: items, - allowEmpty: true, - }; - }, + return { + title: $('title').text(), + link: currentUrl, + item: items, + allowEmpty: true, + }; }; + +export { rootUrl, defaultMode, defaultGenre, defaultMaker, defaultLanguage, ProcessItems }; diff --git a/lib/routes/jianshu/utils.ts b/lib/routes/jianshu/utils.ts index c213f29f52..6c585c0b14 100644 --- a/lib/routes/jianshu/utils.ts +++ b/lib/routes/jianshu/utils.ts @@ -53,6 +53,4 @@ const ProcessFeed = (list, caches) => { ); }; -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/jike/topic-text.ts b/lib/routes/jike/topic-text.ts index f04cac51a1..db1c280b03 100644 --- a/lib/routes/jike/topic-text.ts +++ b/lib/routes/jike/topic-text.ts @@ -1,5 +1,5 @@ const dayjs = require('dayjs'); -const { constructTopicEntry } = require('./utils'); +import { constructTopicEntry } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/jike/topic.ts b/lib/routes/jike/topic.ts index 4c56d1f11f..667afd273b 100644 --- a/lib/routes/jike/topic.ts +++ b/lib/routes/jike/topic.ts @@ -1,9 +1,8 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { topicDataHanding } = require('./utils'); +import { topicDataHanding, constructTopicEntry } from './utils'; import { load } from 'cheerio'; const dayjs = require('dayjs'); -const { constructTopicEntry } = require('./utils'); const urlRegex = /(https?:\/\/[^\s"'<>]+)/g; diff --git a/lib/routes/jike/utils.ts b/lib/routes/jike/utils.ts index 9d1367fe42..756e1ba5d4 100644 --- a/lib/routes/jike/utils.ts +++ b/lib/routes/jike/utils.ts @@ -5,194 +5,193 @@ import { load } from 'cheerio'; import { config } from '@/config'; const videoAPI = 'https://api.ruguoapp.com/1.0/mediaMeta/play?type=ORIGINAL_POST'; +const topicDataHanding = (data, ctx) => + data.posts.map((item) => { + let audioName, videoName, linkName; -module.exports = { - topicDataHanding: (data, ctx) => - data.posts.map((item) => { - let audioName, videoName, linkName; + // 获取纯文字内容 和 即刻原文链接 + let content, link; + switch (item.type) { + case 'ORIGINAL_POST': + content = item.content; + link = `https://m.okjike.com/originalPosts/${item.id}`; + break; - // 获取纯文字内容 和 即刻原文链接 - let content, link; - switch (item.type) { - case 'ORIGINAL_POST': - content = item.content; - link = `https://m.okjike.com/originalPosts/${item.id}`; - break; - - /* case 'QUESTION': - content = item.title; - link = `https://m.okjike.com/questions/${item.id}`; - break; - case 'OFFICIAL_MESSAGE': - content = item.content; - link = `https://web.okjike.com/message-detail/${item.id}/officialMessage`; - break;*/ - default: - content = '未知类型,请前往GitHub提交issue'; - link = 'https://github.com/DIYgod/RSSHub/issues'; - } - - // rss内容 - let description = ''; - // 作者昵称 - let author = ''; - - // 添加内容作者信息 - if (item.user) { - author = item.user.screenName; - if (ctx.req.param('showUid')) { - description += `用户昵称:${author}
Username:${item.user.username}

`; - } - } - - if (item.linkInfo) { - const linkUrl = item.linkInfo.originalLinkUrl || item.linkInfo.linkUrl; - - // 对于即刻抓取的微信公众号文章 特殊处理 - // 此时 Rss原文链接 变为 微信公众号链接 - if (new URL(linkUrl).host === 'mp.weixin.qq.com') { - link = linkUrl; - } - - // 1. 音频 - const audioObject = item.linkInfo.audio || item.audio; - if (audioObject) { - const audioImage = audioObject.image.picUrl || audioObject.image.thumbnailUrl; - const audioLink = linkUrl; - const audioTitle = audioObject.title; - const audioAuthor = audioObject.author; - audioName = `${audioTitle} - ${audioAuthor}`; - description += ` - - ${audioName} - `; - } - - // 2. 视频 - const videoObject = item.linkInfo.video || item.video; - if (videoObject) { - const videoImage = videoObject.image.picUrl || videoObject.image.thumbnailUrl; - const videoLink = linkUrl; - const videoDuration = Math.floor(videoObject.duration / 60000); - videoName = item.linkInfo.title; - description += ` - - ${videoName || '观看视频'} - 约${videoDuration}分钟 - `; - } - - // 3. 链接 - if (!audioObject && !videoObject && linkUrl) { - // 部分链接有标题 - linkName = item.linkInfo.title; - const linkTitle = linkName || '访问原文'; - // 部分链接有缩略图 - const linkImage = item.linkInfo.pictureUrl; - const imageTag = ``; - description += ` - ${linkImage ? imageTag : ''} - ${linkTitle} - `; - } - } - - // 4. 文字内容 - description += description ? `
${content}` : content; - - // 5. 图片 - if (item.pictures) { - for (const pic of item.pictures) { - if (pic.format === 'gif') { - description += ``; - } else { - // jpeg, bmp, png, gif, webp - // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types - // let type = 'jpeg'; - // switch (pic.format) { - // case 'bmp': - // type = 'bmp'; - // break; - // case 'png': - // type = 'png'; - // break; - // default: - // break; - // } - const imgUrl = /\.[\da-z]+?\?imageMogr2/.test(pic.picUrl) ? pic.picUrl.split('?imageMogr2/')[0] : pic.picUrl.replace(/thumbnail\/.+/, ''); - description += `
`; - // description += `
`; - } - } - } - - // 6. 视频 - if (item.video) { - description += `
`; - } - - // rss标题 - // 优先将音频和视频名作为标题 - // 其次将正文内容作为标题 - // 若都没有 则是推送型消息,将连接标题作为主题 - // “无题” fallback - const title = audioName || videoName || content || linkName || '无题'; - - return { - title, - description: description.trim().replaceAll('\n', '
'), - pubDate: parseDate(item.createdAt), - author, - link, - }; - }), - constructTopicEntry: async (ctx, url) => { - const data = await cache.tryGet( - url, - async () => { - const resp = await got(url); - const html = resp.data; - const $ = load(html); - const raw = $('[type = "application/json"]').html(); - const data = JSON.parse(raw).props.pageProps; - data.posts = await Promise.all( - data.posts.map(async (item) => { - if (!item.video) { - return item; - } - - const videoUrl = `${videoAPI}&id=${item.id}`; - const videoRes = await got(videoUrl); - item.video = videoRes.data; - - return item; - }) - ); - - return data; - }, - false, - config.cache.routeExpire - ); - - if (data.length === 0) { - ctx.set('data', { - title: '主题 ID 不存在,或该主题暂无内容', - }); - return null; + /* case 'QUESTION': + content = item.title; + link = `https://m.okjike.com/questions/${item.id}`; + break; + case 'OFFICIAL_MESSAGE': + content = item.content; + link = `https://web.okjike.com/message-detail/${item.id}/officialMessage`; + break;*/ + default: + content = '未知类型,请前往GitHub提交issue'; + link = 'https://github.com/DIYgod/RSSHub/issues'; } - const topic = data.topic; + // rss内容 + let description = ''; + // 作者昵称 + let author = ''; + // 添加内容作者信息 + if (item.user) { + author = item.user.screenName; + if (ctx.req.param('showUid')) { + description += `用户昵称:${author}
Username:${item.user.username}

`; + } + } + + if (item.linkInfo) { + const linkUrl = item.linkInfo.originalLinkUrl || item.linkInfo.linkUrl; + + // 对于即刻抓取的微信公众号文章 特殊处理 + // 此时 Rss原文链接 变为 微信公众号链接 + if (new URL(linkUrl).host === 'mp.weixin.qq.com') { + link = linkUrl; + } + + // 1. 音频 + const audioObject = item.linkInfo.audio || item.audio; + if (audioObject) { + const audioImage = audioObject.image.picUrl || audioObject.image.thumbnailUrl; + const audioLink = linkUrl; + const audioTitle = audioObject.title; + const audioAuthor = audioObject.author; + audioName = `${audioTitle} - ${audioAuthor}`; + description += ` + + ${audioName} + `; + } + + // 2. 视频 + const videoObject = item.linkInfo.video || item.video; + if (videoObject) { + const videoImage = videoObject.image.picUrl || videoObject.image.thumbnailUrl; + const videoLink = linkUrl; + const videoDuration = Math.floor(videoObject.duration / 60000); + videoName = item.linkInfo.title; + description += ` + + ${videoName || '观看视频'} - 约${videoDuration}分钟 + `; + } + + // 3. 链接 + if (!audioObject && !videoObject && linkUrl) { + // 部分链接有标题 + linkName = item.linkInfo.title; + const linkTitle = linkName || '访问原文'; + // 部分链接有缩略图 + const linkImage = item.linkInfo.pictureUrl; + const imageTag = ``; + description += ` + ${linkImage ? imageTag : ''} + ${linkTitle} + `; + } + } + + // 4. 文字内容 + description += description ? `
${content}` : content; + + // 5. 图片 + if (item.pictures) { + for (const pic of item.pictures) { + if (pic.format === 'gif') { + description += ``; + } else { + // jpeg, bmp, png, gif, webp + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types + // let type = 'jpeg'; + // switch (pic.format) { + // case 'bmp': + // type = 'bmp'; + // break; + // case 'png': + // type = 'png'; + // break; + // default: + // break; + // } + const imgUrl = /\.[\da-z]+?\?imageMogr2/.test(pic.picUrl) ? pic.picUrl.split('?imageMogr2/')[0] : pic.picUrl.replace(/thumbnail\/.+/, ''); + description += `
`; + // description += `
`; + } + } + } + + // 6. 视频 + if (item.video) { + description += `
`; + } + + // rss标题 + // 优先将音频和视频名作为标题 + // 其次将正文内容作为标题 + // 若都没有 则是推送型消息,将连接标题作为主题 + // “无题” fallback + const title = audioName || videoName || content || linkName || '无题'; + + return { + title, + description: description.trim().replaceAll('\n', '
'), + pubDate: parseDate(item.createdAt), + author, + link, + }; + }); +const constructTopicEntry = async (ctx, url) => { + const data = await cache.tryGet( + url, + async () => { + const resp = await got(url); + const html = resp.data; + const $ = load(html); + const raw = $('[type = "application/json"]').html(); + const data = JSON.parse(raw).props.pageProps; + data.posts = await Promise.all( + data.posts.map(async (item) => { + if (!item.video) { + return item; + } + + const videoUrl = `${videoAPI}&id=${item.id}`; + const videoRes = await got(videoUrl); + item.video = videoRes.data; + + return item; + }) + ); + + return data; + }, + false, + config.cache.routeExpire + ); + + if (data.length === 0) { ctx.set('data', { - title: `${topic.content} - 即刻圈子`, - link: url, - description: topic.briefIntro, - image: topic.squarePicture.picUrl || topic.squarePicture.middlePicUrl || topic.squarePicture.thumbnailUrl, - // item: topicDataHanding(data), + title: '主题 ID 不存在,或该主题暂无内容', }); + return null; + } - return data; - }, + const topic = data.topic; + + ctx.set('data', { + title: `${topic.content} - 即刻圈子`, + link: url, + description: topic.briefIntro, + image: topic.squarePicture.picUrl || topic.squarePicture.middlePicUrl || topic.squarePicture.thumbnailUrl, + // item: topicDataHanding(data), + }); + + return data; }; + +export { topicDataHanding, constructTopicEntry }; diff --git a/lib/routes/jou/home.ts b/lib/routes/jou/home.ts index 7c3f12b7d4..9cfadf8e3f 100644 --- a/lib/routes/jou/home.ts +++ b/lib/routes/jou/home.ts @@ -1,4 +1,4 @@ -const { getItems } = require('./utils'); +import { getItems } from './utils'; const url = 'https://www.jou.edu.cn/index/tzgg.htm'; const host = 'https://www.jou.edu.cn'; diff --git a/lib/routes/jou/utils/index.ts b/lib/routes/jou/utils/index.ts index 3ea7ad127c..2ba6610f88 100644 --- a/lib/routes/jou/utils/index.ts +++ b/lib/routes/jou/utils/index.ts @@ -56,6 +56,4 @@ async function getItems(ctx, url, host, tableClass, timeStyleClass1, titleStyleC return out; } -module.exports = { - getItems, -}; +export { getItems }; diff --git a/lib/routes/jou/yz.ts b/lib/routes/jou/yz.ts index 20adad212e..e8812b29f0 100644 --- a/lib/routes/jou/yz.ts +++ b/lib/routes/jou/yz.ts @@ -1,4 +1,4 @@ -const { getItems } = require('./utils'); +import { getItems } from './utils'; const url = 'https://yz.jou.edu.cn/index/zxgg.htm'; const host = 'https://yz.jou.edu.cn'; diff --git a/lib/routes/jsu/cxzx.ts b/lib/routes/jsu/cxzx.ts index 73b49a7915..69b5590220 100644 --- a/lib/routes/jsu/cxzx.ts +++ b/lib/routes/jsu/cxzx.ts @@ -3,7 +3,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; // 自订的 got import { load } from 'cheerio'; // 可以使用类似 jQuery 的 API HTML 解析器 import { parseDate } from '@/utils/parse-date'; -const { getPageItemAndDate } = require('./utils/index'); +import { getPageItemAndDate } from './utils/index'; export default async (ctx) => { // 在此处编写您的逻辑 diff --git a/lib/routes/jsu/jwc.ts b/lib/routes/jsu/jwc.ts index 111e0a14eb..740be9b3e2 100644 --- a/lib/routes/jsu/jwc.ts +++ b/lib/routes/jsu/jwc.ts @@ -3,7 +3,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; // 自订的 got import { load } from 'cheerio'; // 可以使用类似 jQuery 的 API HTML 解析器 import { parseDate } from '@/utils/parse-date'; -const { getPageItemAndDate } = require('./utils'); +import { getPageItemAndDate } from './utils'; export default async (ctx) => { const baseUrl = 'https://jwc.jsu.edu.cn/'; diff --git a/lib/routes/jsu/math.ts b/lib/routes/jsu/math.ts index 3cff70d5d6..d55f87d621 100644 --- a/lib/routes/jsu/math.ts +++ b/lib/routes/jsu/math.ts @@ -3,7 +3,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; // 自订的 got import { load } from 'cheerio'; // 可以使用类似 jQuery 的 API HTML 解析器 import { parseDate } from '@/utils/parse-date'; -const { getPageItemAndDate } = require('./utils'); +import { getPageItemAndDate } from './utils'; export default async (ctx) => { const baseUrl = 'https://stxy.jsu.edu.cn/'; diff --git a/lib/routes/jsu/rjxy.ts b/lib/routes/jsu/rjxy.ts index 29f50165e5..836222601f 100644 --- a/lib/routes/jsu/rjxy.ts +++ b/lib/routes/jsu/rjxy.ts @@ -3,7 +3,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; // 自订的 got import { load } from 'cheerio'; // 可以使用类似 jQuery 的 API HTML 解析器 import { parseDate } from '@/utils/parse-date'; -const { getPageItemAndDate } = require('./utils'); +import { getPageItemAndDate } from './utils'; export default async (ctx) => { const baseUrl = 'https://rjxy.jsu.edu.cn/'; diff --git a/lib/routes/jsu/universityindex.ts b/lib/routes/jsu/universityindex.ts index 1aeaf0ba3f..168fe18416 100644 --- a/lib/routes/jsu/universityindex.ts +++ b/lib/routes/jsu/universityindex.ts @@ -3,7 +3,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; // 自订的 got import { load } from 'cheerio'; // 可以使用类似 jQuery 的 API HTML 解析器 import { parseDate } from '@/utils/parse-date'; -const { getPageItemAndDate } = require('./utils'); +import { getPageItemAndDate } from './utils'; export default async (ctx) => { const baseUrl = 'https://www.jsu.edu.cn/'; diff --git a/lib/routes/jsu/utils/index.ts b/lib/routes/jsu/utils/index.ts index 9ec764788b..82594e747d 100644 --- a/lib/routes/jsu/utils/index.ts +++ b/lib/routes/jsu/utils/index.ts @@ -45,8 +45,6 @@ async function getPageDetails(selector, pageUrl, titleSelector, dateSelector, da title: '无法获取标题', }; } +const getPageItemAndDate = getPageDetails; -module.exports = { - getPageItem, - getPageItemAndDate: getPageDetails, -}; +export { getPageItem, getPageItemAndDate }; diff --git a/lib/routes/juejin/utils.ts b/lib/routes/juejin/utils.ts index ad5e9ee69e..140deae686 100644 --- a/lib/routes/juejin/utils.ts +++ b/lib/routes/juejin/utils.ts @@ -51,6 +51,4 @@ const ProcessFeed = (list, caches) => }) ); -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/kcna/news.ts b/lib/routes/kcna/news.ts index 2dc793e979..4368081f45 100644 --- a/lib/routes/kcna/news.ts +++ b/lib/routes/kcna/news.ts @@ -6,7 +6,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; const asyncPool = require('tiny-async-pool'); import { art } from '@/utils/render'; -const { parseJucheDate, fixDesc, fetchPhoto, fetchVideo } = require('./utils'); +import { parseJucheDate, fixDesc, fetchPhoto, fetchVideo } from './utils'; import * as path from 'node:path'; const sanitizeHtml = require('sanitize-html'); diff --git a/lib/routes/kcna/utils.ts b/lib/routes/kcna/utils.ts index ce4dae3667..d88cc88c81 100644 --- a/lib/routes/kcna/utils.ts +++ b/lib/routes/kcna/utils.ts @@ -57,9 +57,4 @@ const fetchVideo = (ctx, url) => return ``; }); -module.exports = { - parseJucheDate, - fixDesc, - fetchPhoto, - fetchVideo, -}; +export { parseJucheDate, fixDesc, fetchPhoto, fetchVideo }; diff --git a/lib/routes/kuaidi100/utils.ts b/lib/routes/kuaidi100/utils.ts index 71ec748f9c..58ca7cc1e3 100644 --- a/lib/routes/kuaidi100/utils.ts +++ b/lib/routes/kuaidi100/utils.ts @@ -139,7 +139,7 @@ function clearCookie() { cache.set(csrf_key, null); } -module.exports = { +export default { company: () => getCompanyList(), checkCode: async (number, id, phone) => { const list = await getCompanyList(); diff --git a/lib/routes/lanqiao/utils.ts b/lib/routes/lanqiao/utils.ts index 120877c0d1..52846ece11 100644 --- a/lib/routes/lanqiao/utils.ts +++ b/lib/routes/lanqiao/utils.ts @@ -10,6 +10,4 @@ const courseDesc = (picurl, desc) => desc, }); -module.exports = { - courseDesc, -}; +export { courseDesc }; diff --git a/lib/routes/leiphone/utils.ts b/lib/routes/leiphone/utils.ts index a75389ac73..18e5854c1e 100644 --- a/lib/routes/leiphone/utils.ts +++ b/lib/routes/leiphone/utils.ts @@ -36,6 +36,4 @@ const ProcessFeed = async (list, cache) => { return items; }; -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/lfsyd/home.ts b/lib/routes/lfsyd/home.ts index b6b96e5269..473cb5c4a8 100644 --- a/lib/routes/lfsyd/home.ts +++ b/lib/routes/lfsyd/home.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { ProcessForm, ProcessFeed } = require('./utils'); +import { ProcessForm, ProcessFeed } from './utils'; export default async (ctx) => { const rootUrl = 'https://www.iyingdi.com'; diff --git a/lib/routes/lfsyd/old-home.ts b/lib/routes/lfsyd/old-home.ts index 8ae7869b6d..d36ede7814 100644 --- a/lib/routes/lfsyd/old-home.ts +++ b/lib/routes/lfsyd/old-home.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { ProcessFeed } = require('./utils'); +import { ProcessFeed } from './utils'; export default async (ctx) => { const limit = ctx.req.query('limit') ?? 10; diff --git a/lib/routes/lfsyd/tag.ts b/lib/routes/lfsyd/tag.ts index 76041c6f4f..bbb69cea92 100644 --- a/lib/routes/lfsyd/tag.ts +++ b/lib/routes/lfsyd/tag.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { ProcessForm, ProcessFeed } = require('./utils'); +import { ProcessForm, ProcessFeed } from './utils'; export default async (ctx) => { const tagId = ctx.req.param('tagId'); diff --git a/lib/routes/lfsyd/user.ts b/lib/routes/lfsyd/user.ts index 29b3561417..ab809ddfc1 100644 --- a/lib/routes/lfsyd/user.ts +++ b/lib/routes/lfsyd/user.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { ProcessForm, ProcessFeed } = require('./utils'); +import { ProcessForm, ProcessFeed } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/lfsyd/utils.ts b/lib/routes/lfsyd/utils.ts index c46f9f5d8b..75dd8a12ae 100644 --- a/lib/routes/lfsyd/utils.ts +++ b/lib/routes/lfsyd/utils.ts @@ -100,7 +100,4 @@ const cleanHtml = (htmlString) => { return $.html(); }; -module.exports = { - ProcessForm, - ProcessFeed, -}; +export { ProcessForm, ProcessFeed }; diff --git a/lib/routes/line/publisher.ts b/lib/routes/line/publisher.ts index 2eb1dc9d4c..41c02ad408 100644 --- a/lib/routes/line/publisher.ts +++ b/lib/routes/line/publisher.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { baseUrl, parseList, parseItems } = require('./utils'); +import { baseUrl, parseList, parseItems } from './utils'; export default async (ctx) => { const { edition, id } = ctx.req.param(); diff --git a/lib/routes/line/utils.ts b/lib/routes/line/utils.ts index d91a1b1bc2..e55c00d46b 100644 --- a/lib/routes/line/utils.ts +++ b/lib/routes/line/utils.ts @@ -52,8 +52,4 @@ const parseItems = (list, tryGet) => ) ); -module.exports = { - baseUrl, - parseList, - parseItems, -}; +export { baseUrl, parseList, parseItems }; diff --git a/lib/routes/linkedin/cn/index.ts b/lib/routes/linkedin/cn/index.ts index c48620bee4..26ce2e389f 100644 --- a/lib/routes/linkedin/cn/index.ts +++ b/lib/routes/linkedin/cn/index.ts @@ -1,4 +1,4 @@ -const { parseSearchHit, parseJobPosting } = require('./utils'); +import { parseSearchHit, parseJobPosting } from './utils'; const siteUrl = 'https://www.linkedin.cn/incareer/jobs/search'; diff --git a/lib/routes/linkedin/cn/renderer.ts b/lib/routes/linkedin/cn/renderer.ts index fdb437e319..da73c4fec1 100644 --- a/lib/routes/linkedin/cn/renderer.ts +++ b/lib/routes/linkedin/cn/renderer.ts @@ -174,6 +174,4 @@ const parseAttr = (description) => { return q.join(''); }; -module.exports = { - parseAttr, -}; +export { parseAttr }; diff --git a/lib/routes/linkedin/cn/utils.ts b/lib/routes/linkedin/cn/utils.ts index 7856244051..03e0bfa497 100644 --- a/lib/routes/linkedin/cn/utils.ts +++ b/lib/routes/linkedin/cn/utils.ts @@ -6,7 +6,7 @@ const crypto = require('crypto'); import * as path from 'node:path'; import { art } from '@/utils/render'; import got from '@/utils/got'; -const { parseAttr } = require('./renderer'); +import { parseAttr } from './renderer'; const apiUrl = 'https://www.linkedin.cn/karpos/api/graphql'; const searchHitQueryId = 'searchSearchHitsByJob.be362cd720abd0ebf89b4bbc3253047f'; @@ -120,7 +120,4 @@ const parseJobPosting = (ctx, jobPosting) => { }); }; -module.exports = { - parseSearchHit, - parseJobPosting, -}; +export { parseSearchHit, parseJobPosting }; diff --git a/lib/routes/linkedin/jobs.ts b/lib/routes/linkedin/jobs.ts index ff5b32ca61..8f1cdb41a7 100644 --- a/lib/routes/linkedin/jobs.ts +++ b/lib/routes/linkedin/jobs.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { parseJobSearch, KEYWORDS_QUERY_KEY, JOB_TYPES, JOB_TYPES_QUERY_KEY, EXP_LEVELS_QUERY_KEY, parseParamsToSearchParams, EXP_LEVELS, parseParamsToString } = require('./utils'); +import { parseJobSearch, KEYWORDS_QUERY_KEY, JOB_TYPES, JOB_TYPES_QUERY_KEY, EXP_LEVELS_QUERY_KEY, parseParamsToSearchParams, EXP_LEVELS, parseParamsToString } from './utils'; const BASE_URL = 'https://www.linkedin.com/'; const JOB_SEARCH_PATH = '/jobs-guest/jobs/api/seeMoreJobPostings/search'; diff --git a/lib/routes/linkedin/models.ts b/lib/routes/linkedin/models.ts index b9e40d2183..5e3dcc4fe2 100644 --- a/lib/routes/linkedin/models.ts +++ b/lib/routes/linkedin/models.ts @@ -10,6 +10,4 @@ class Job { } } -module.exports = { - Job, -}; +export { Job }; diff --git a/lib/routes/linkedin/utils.ts b/lib/routes/linkedin/utils.ts index 6e11a64d63..a4a67e449e 100644 --- a/lib/routes/linkedin/utils.ts +++ b/lib/routes/linkedin/utils.ts @@ -1,5 +1,5 @@ import { load } from 'cheerio'; -const { Job } = require('./models'); +import { Job } from './models'; /** * Constants @@ -108,14 +108,4 @@ function parseJobDetail(data) { return job; } -module.exports = { - parseParamsToSearchParams, - parseParamsToString, - parseJobDetail, - parseJobSearch, - JOB_TYPES, - JOB_TYPES_QUERY_KEY, - EXP_LEVELS, - EXP_LEVELS_QUERY_KEY, - KEYWORDS_QUERY_KEY, -}; +export { parseParamsToSearchParams, parseParamsToString, parseJobDetail, parseJobSearch, JOB_TYPES, JOB_TYPES_QUERY_KEY, EXP_LEVELS, EXP_LEVELS_QUERY_KEY, KEYWORDS_QUERY_KEY }; diff --git a/lib/routes/lkong/forum.ts b/lib/routes/lkong/forum.ts index b802595d47..af95863483 100644 --- a/lib/routes/lkong/forum.ts +++ b/lib/routes/lkong/forum.ts @@ -7,7 +7,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { viewForum, viewThread } = require('./query'); +import { viewForum, viewThread } from './query'; export default async (ctx) => { const id = ctx.req.param('id') ?? '8'; diff --git a/lib/routes/lkong/query.ts b/lib/routes/lkong/query.ts index 5e6e5c72bd..6435583ac8 100644 --- a/lib/routes/lkong/query.ts +++ b/lib/routes/lkong/query.ts @@ -1,82 +1,83 @@ -module.exports = { - viewForum: (id) => ({ - operationName: 'ViewForum', - query: - 'query ViewForum($fid: Int!, $page: Int, $action: String) {' + - ' forum(fid: $fid) {' + - ' name' + - ' }' + - ' forumCount(fid: $fid) {' + - ' info' + - ' }' + - ' hots: threadsFragment(fid: $fid, type: "hot") {' + - ' tid' + - ' title' + - ' }' + - ' threads(fid: $fid, action: $action, page: $page) {' + - ' ...threadComponent' + - ' }' + - '}' + - '' + - 'fragment threadComponent on Thread {' + - ' tid' + - ' title' + - '}', - variables: { - fid: Number.parseInt(id), - }, - }), - viewThread: (id, page) => ({ - operationName: 'ViewThread', - query: - 'query ViewThread($tid: Int!, $page: Int, $pid: String, $authorid: Int) {' + - ' thread(tid: $tid, authorid: $authorid, pid: $pid) {' + - ' ...threadComponent' + - ' }' + - ' ...repliesComponent' + - '}' + - '' + - 'fragment threadComponent on Thread {' + - ' tid' + - ' title' + - ' dateline' + - ' author {' + - ' name' + - ' }' + - ' replies' + - ' tags {' + - ' name' + - ' }' + - '}' + - '' + - 'fragment repliesComponent on Query {' + - ' posts(tid: $tid, page: $page, pid: $pid, authorid: $authorid) {' + - ' lou' + - ' pid' + - ' content' + - ' quote {' + - ' author {' + - ' name' + - ' }' + - ' pid' + - ' content' + - ' }' + - ' dateline' + - ' user {' + - ' name' + - ' }' + - ' }' + - '}', - variables: { - tid: Number.parseInt(id), - page, - }, - }), - countReplies: (id) => ({ - operationName: 'ViewThread', - query: 'query ViewThread($tid: Int!){thread(tid: $tid){...threadComponent}}fragment threadComponent on Thread{replies}', - variables: { - tid: Number.parseInt(id), - }, - }), -}; +const viewForum = (id) => ({ + operationName: 'ViewForum', + query: + 'query ViewForum($fid: Int!, $page: Int, $action: String) {' + + ' forum(fid: $fid) {' + + ' name' + + ' }' + + ' forumCount(fid: $fid) {' + + ' info' + + ' }' + + ' hots: threadsFragment(fid: $fid, type: "hot") {' + + ' tid' + + ' title' + + ' }' + + ' threads(fid: $fid, action: $action, page: $page) {' + + ' ...threadComponent' + + ' }' + + '}' + + '' + + 'fragment threadComponent on Thread {' + + ' tid' + + ' title' + + '}', + variables: { + fid: Number.parseInt(id), + }, +}); + +const viewThread = (id, page) => ({ + operationName: 'ViewThread', + query: + 'query ViewThread($tid: Int!, $page: Int, $pid: String, $authorid: Int) {' + + ' thread(tid: $tid, authorid: $authorid, pid: $pid) {' + + ' ...threadComponent' + + ' }' + + ' ...repliesComponent' + + '}' + + '' + + 'fragment threadComponent on Thread {' + + ' tid' + + ' title' + + ' dateline' + + ' author {' + + ' name' + + ' }' + + ' replies' + + ' tags {' + + ' name' + + ' }' + + '}' + + '' + + 'fragment repliesComponent on Query {' + + ' posts(tid: $tid, page: $page, pid: $pid, authorid: $authorid) {' + + ' lou' + + ' pid' + + ' content' + + ' quote {' + + ' author {' + + ' name' + + ' }' + + ' pid' + + ' content' + + ' }' + + ' dateline' + + ' user {' + + ' name' + + ' }' + + ' }' + + '}', + variables: { + tid: Number.parseInt(id), + page, + }, +}); +const countReplies = (id) => ({ + operationName: 'ViewThread', + query: 'query ViewThread($tid: Int!){thread(tid: $tid){...threadComponent}}fragment threadComponent on Thread{replies}', + variables: { + tid: Number.parseInt(id), + }, +}); + +export { viewForum, viewThread, countReplies }; diff --git a/lib/routes/lkong/thread.ts b/lib/routes/lkong/thread.ts index 65502848ec..9bae138c78 100644 --- a/lib/routes/lkong/thread.ts +++ b/lib/routes/lkong/thread.ts @@ -6,7 +6,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { viewThread, countReplies } = require('./query'); +import { viewThread, countReplies } from './query'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/lxixsxa/discography.ts b/lib/routes/lxixsxa/discography.ts index cee10562a4..e6cbf10d32 100644 --- a/lib/routes/lxixsxa/discography.ts +++ b/lib/routes/lxixsxa/discography.ts @@ -3,7 +3,7 @@ const __dirname = getCurrentPath(import.meta.url); import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { parseJSONP } = require('./jsonp-helper'); +import { parseJSONP } from './jsonp-helper'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/lxixsxa/information.ts b/lib/routes/lxixsxa/information.ts index 37f9af1dfa..d9cb931a53 100644 --- a/lib/routes/lxixsxa/information.ts +++ b/lib/routes/lxixsxa/information.ts @@ -3,7 +3,7 @@ const __dirname = getCurrentPath(import.meta.url); import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { parseJSONP } = require('./jsonp-helper'); +import { parseJSONP } from './jsonp-helper'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/lxixsxa/jsonp-helper.ts b/lib/routes/lxixsxa/jsonp-helper.ts index 6358a509e5..d2e8ddfa55 100644 --- a/lib/routes/lxixsxa/jsonp-helper.ts +++ b/lib/routes/lxixsxa/jsonp-helper.ts @@ -14,6 +14,4 @@ function parseJSONP(jsonpData) { } } -module.exports = { - parseJSONP, -}; +export { parseJSONP }; diff --git a/lib/routes/mastodon/utils.ts b/lib/routes/mastodon/utils.ts index 12206e64e8..c07d9c7d39 100644 --- a/lib/routes/mastodon/utils.ts +++ b/lib/routes/mastodon/utils.ts @@ -131,10 +131,4 @@ async function getAccountIdByAcct(acct) { return { site, account_id }; } -module.exports = { - apiHeaders, - parseStatuses, - getAccountStatuses, - getAccountIdByAcct, - allowSiteList, -}; +export { apiHeaders, parseStatuses, getAccountStatuses, getAccountIdByAcct, allowSiteList }; diff --git a/lib/routes/mckinsey/cn/category-map.ts b/lib/routes/mckinsey/cn/category-map.ts index bb4271fa41..06c67d77a9 100644 --- a/lib/routes/mckinsey/cn/category-map.ts +++ b/lib/routes/mckinsey/cn/category-map.ts @@ -74,6 +74,4 @@ const categories = { }, }; -module.exports = { - categories, -}; +export { categories }; diff --git a/lib/routes/mckinsey/cn/index.ts b/lib/routes/mckinsey/cn/index.ts index 79a0dfccd8..2308abf139 100644 --- a/lib/routes/mckinsey/cn/index.ts +++ b/lib/routes/mckinsey/cn/index.ts @@ -3,7 +3,7 @@ // https://github.com/DIYgod/RSSHub/pull/8288 import got from 'got'; import { parseDate } from '@/utils/parse-date'; -const { categories } = require('./category-map'); +import { categories } from './category-map'; const baseUrl = 'https://www.mckinsey.com.cn'; const endpoint = `${baseUrl}/wp-json`; diff --git a/lib/routes/medium/following.ts b/lib/routes/medium/following.ts index 29ecd76ca1..7ead127a06 100644 --- a/lib/routes/medium/following.ts +++ b/lib/routes/medium/following.ts @@ -1,7 +1,7 @@ import { config } from '@/config'; const parseArticle = require('./parse-article.js'); -const { getFollowingFeedQuery } = require('./graphql.js'); +import { getFollowingFeedQuery } from './graphql.js'; export default async (ctx) => { const user = ctx.req.param('user'); diff --git a/lib/routes/medium/for-you.ts b/lib/routes/medium/for-you.ts index 2256d71d40..e8e07f58ec 100644 --- a/lib/routes/medium/for-you.ts +++ b/lib/routes/medium/for-you.ts @@ -1,7 +1,7 @@ import { config } from '@/config'; const parseArticle = require('./parse-article.js'); -const { getWebInlineRecommendedFeedQuery } = require('./graphql.js'); +import { getWebInlineRecommendedFeedQuery } from './graphql.js'; export default async (ctx) => { const user = ctx.req.param('user'); diff --git a/lib/routes/medium/graphql.ts b/lib/routes/medium/graphql.ts index 4f5d2e791c..776d20941f 100644 --- a/lib/routes/medium/graphql.ts +++ b/lib/routes/medium/graphql.ts @@ -47,12 +47,7 @@ async function getUserCatalogMainContentQuery(user, catalogId, cookie, pagingLim return (await graphqlRequest(newUserCatalogMainContentQuery(catalogId, pagingLimit), cookie))?.catalogById; } -module.exports = { - getWebInlineRecommendedFeedQuery, - getFollowingFeedQuery, - getWebInlineTopicFeedQuery, - getUserCatalogMainContentQuery, -}; +export { getWebInlineRecommendedFeedQuery, getFollowingFeedQuery, getWebInlineTopicFeedQuery, getUserCatalogMainContentQuery }; function newFollowingFeedQuery(pagingLimit = 5) { return { diff --git a/lib/routes/medium/list.ts b/lib/routes/medium/list.ts index ab020ddeb3..9780499bb6 100644 --- a/lib/routes/medium/list.ts +++ b/lib/routes/medium/list.ts @@ -1,7 +1,7 @@ import { config } from '@/config'; const parseArticle = require('./parse-article.js'); -const { getUserCatalogMainContentQuery } = require('./graphql.js'); +import { getUserCatalogMainContentQuery } from './graphql.js'; export default async (ctx) => { const user = ctx.req.param('user'); diff --git a/lib/routes/medium/tag.ts b/lib/routes/medium/tag.ts index 4ce3c55231..31878a5908 100644 --- a/lib/routes/medium/tag.ts +++ b/lib/routes/medium/tag.ts @@ -1,7 +1,7 @@ import { config } from '@/config'; const parseArticle = require('./parse-article.js'); -const { getWebInlineTopicFeedQuery } = require('./graphql.js'); +import { getWebInlineTopicFeedQuery } from './graphql.js'; export default async (ctx) => { const user = ctx.req.param('user'); diff --git a/lib/routes/metacritic/index.ts b/lib/routes/metacritic/index.ts index de84dc08bf..636598ff9a 100644 --- a/lib/routes/metacritic/index.ts +++ b/lib/routes/metacritic/index.ts @@ -7,7 +7,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { sorts, types } = require('./util'); +import { sorts, types } from './util'; export default async (ctx) => { const { type = 'game', sort = 'new', filter } = ctx.req.param(); diff --git a/lib/routes/metacritic/util.ts b/lib/routes/metacritic/util.ts index 4ed8130a1d..d9d57f0a62 100644 --- a/lib/routes/metacritic/util.ts +++ b/lib/routes/metacritic/util.ts @@ -36,7 +36,4 @@ const types = { }, }; -module.exports = { - sorts, - types, -}; +export { sorts, types }; diff --git a/lib/routes/meteor/boards.ts b/lib/routes/meteor/boards.ts index c63105b224..7811517085 100644 --- a/lib/routes/meteor/boards.ts +++ b/lib/routes/meteor/boards.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { baseUrl, getBoards } = require('./utils'); +import { baseUrl, getBoards } from './utils'; export default async (ctx) => { const items = await getBoards(cache.tryGet); diff --git a/lib/routes/meteor/index.ts b/lib/routes/meteor/index.ts index 7dc05b2073..b09b2c63ed 100644 --- a/lib/routes/meteor/index.ts +++ b/lib/routes/meteor/index.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, getBoards, renderDesc } = require('./utils'); +import { baseUrl, getBoards, renderDesc } from './utils'; export default async (ctx) => { let { board = 'all' } = ctx.req.param(); diff --git a/lib/routes/meteor/utils.ts b/lib/routes/meteor/utils.ts index 9e0b8eaf44..b8a5fdf64e 100644 --- a/lib/routes/meteor/utils.ts +++ b/lib/routes/meteor/utils.ts @@ -86,8 +86,4 @@ const renderDesc = (desc) => { return desc.replaceAll('\n', '
'); }; -module.exports = { - baseUrl, - getBoards, - renderDesc, -}; +export { baseUrl, getBoards, renderDesc }; diff --git a/lib/routes/mihoyo/bbs/cache.ts b/lib/routes/mihoyo/bbs/cache.ts index 2cd911d80e..56f971679d 100644 --- a/lib/routes/mihoyo/bbs/cache.ts +++ b/lib/routes/mihoyo/bbs/cache.ts @@ -2,40 +2,40 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { config } from '@/config'; -module.exports = { - getUserFullInfo: (ctx, uid) => { - if (!uid && !config.mihoyo.cookie) { - throw new Error('GetUserFullInfo is not available due to the absense of [Miyoushe Cookie]. Check relevant config tutorial'); - } - uid ||= ''; - const key = 'mihoyo:user-full-info-uid-' + uid; - return cache.tryGet(key, async () => { - const query = new URLSearchParams({ - uid, - gids: 2, - }).toString(); - const url = `https://bbs-api.miyoushe.com/user/wapi/getUserFullInfo?${query}`; - const response = await got({ - method: 'get', - url, - headers: { - Referer: `https://www.miyoushe.com/ys/accountCenter/postList?id=${uid}`, - Cookie: config.mihoyo.cookie, - }, - }); - const userInfo = response?.data?.data?.user_info; - if (!userInfo) { - throw new Error('未获取到数据!'); - } - const { nickname, introduce, gender, certification, avatar_url, uid: userId } = userInfo; - return { - nickname, - introduce, - gender, - certification, - avatar_url, - uid: userId, - }; +const getUserFullInfo = (ctx, uid) => { + if (!uid && !config.mihoyo.cookie) { + throw new Error('GetUserFullInfo is not available due to the absense of [Miyoushe Cookie]. Check relevant config tutorial'); + } + uid ||= ''; + const key = 'mihoyo:user-full-info-uid-' + uid; + return cache.tryGet(key, async () => { + const query = new URLSearchParams({ + uid, + gids: 2, + }).toString(); + const url = `https://bbs-api.miyoushe.com/user/wapi/getUserFullInfo?${query}`; + const response = await got({ + method: 'get', + url, + headers: { + Referer: `https://www.miyoushe.com/ys/accountCenter/postList?id=${uid}`, + Cookie: config.mihoyo.cookie, + }, }); - }, + const userInfo = response?.data?.data?.user_info; + if (!userInfo) { + throw new Error('未获取到数据!'); + } + const { nickname, introduce, gender, certification, avatar_url, uid: userId } = userInfo; + return { + nickname, + introduce, + gender, + certification, + avatar_url, + uid: userId, + }; + }); }; + +export { getUserFullInfo }; diff --git a/lib/routes/mihoyo/bbs/img-ranking.ts b/lib/routes/mihoyo/bbs/img-ranking.ts index 925a7f6711..5e19ece2bc 100644 --- a/lib/routes/mihoyo/bbs/img-ranking.ts +++ b/lib/routes/mihoyo/bbs/img-ranking.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; -const { DATA_MAP, RANKING_TYPE_MAP } = require('./static-data'); -const { post2item } = require('./utils'); +import { DATA_MAP, RANKING_TYPE_MAP } from './static-data'; +import { post2item } from './utils'; const getGameInfo = (game) => ({ gids: DATA_MAP[game]?.gids, diff --git a/lib/routes/mihoyo/bbs/official.ts b/lib/routes/mihoyo/bbs/official.ts index 13a84ed643..f4c62408ec 100644 --- a/lib/routes/mihoyo/bbs/official.ts +++ b/lib/routes/mihoyo/bbs/official.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { post2item } = require('./utils'); +import { post2item } from './utils'; // 游戏id const GITS_MAP = { 1: '崩坏三', diff --git a/lib/routes/mihoyo/bbs/static-data.ts b/lib/routes/mihoyo/bbs/static-data.ts index 2f33f98f07..1d3c48cc9b 100644 --- a/lib/routes/mihoyo/bbs/static-data.ts +++ b/lib/routes/mihoyo/bbs/static-data.ts @@ -131,7 +131,4 @@ const RANKING_TYPE_MAP = { }, }; -module.exports = { - DATA_MAP, - RANKING_TYPE_MAP, -}; +export { DATA_MAP, RANKING_TYPE_MAP }; diff --git a/lib/routes/mihoyo/bbs/timeline.ts b/lib/routes/mihoyo/bbs/timeline.ts index fc96d8fe0b..73690a65de 100644 --- a/lib/routes/mihoyo/bbs/timeline.ts +++ b/lib/routes/mihoyo/bbs/timeline.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; const cache = require('./cache'); import { config } from '@/config'; -const { post2item } = require('./utils'); +import { post2item } from './utils'; export default async (ctx) => { if (!config.mihoyo.cookie) { diff --git a/lib/routes/mihoyo/bbs/user-post.ts b/lib/routes/mihoyo/bbs/user-post.ts index a5c0cd0ef0..7e394bb6e4 100644 --- a/lib/routes/mihoyo/bbs/user-post.ts +++ b/lib/routes/mihoyo/bbs/user-post.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { post2item } = require('./utils'); +import { post2item } from './utils'; export default async (ctx) => { const uid = ctx.req.param('uid'); diff --git a/lib/routes/mihoyo/bbs/utils.ts b/lib/routes/mihoyo/bbs/utils.ts index 189fe6ee37..e6cad4ab25 100644 --- a/lib/routes/mihoyo/bbs/utils.ts +++ b/lib/routes/mihoyo/bbs/utils.ts @@ -7,31 +7,31 @@ import { parseDate } from '@/utils/parse-date'; const renderDescription = (description, images) => art(path.join(__dirname, '../templates/description.art'), { description, images }); -module.exports = { - post2item(e) { - const author = e.user.nickname; - const title = e.post.subject; - const link = `https://www.miyoushe.com/ys/article/${e.post.post_id}`; - let describe = e.post.content || ''; - try { - describe = JSON.parse(e.post.content).describe; - } catch (error) { - if (!(error instanceof SyntaxError)) { - throw error; - } +const post2item = (e) => { + const author = e.user.nickname; + const title = e.post.subject; + const link = `https://www.miyoushe.com/ys/article/${e.post.post_id}`; + let describe = e.post.content || ''; + try { + describe = JSON.parse(e.post.content).describe; + } catch (error) { + if (!(error instanceof SyntaxError)) { + throw error; } - const description = renderDescription(describe || '', [...new Set([e.post.cover, ...e.post.images])].filter(Boolean)); - const pubDate = parseDate(e.post.created_at * 1000); - const upvotes = e.stat.like_num; - const comments = e.stat.reply_num; - return { - author, - title, - link, - description, - pubDate, - upvotes, - comments, - }; - }, + } + const description = renderDescription(describe || '', [...new Set([e.post.cover, ...e.post.images])].filter(Boolean)); + const pubDate = parseDate(e.post.created_at * 1000); + const upvotes = e.stat.like_num; + const comments = e.stat.reply_num; + return { + author, + title, + link, + description, + pubDate, + upvotes, + comments, + }; }; + +export { post2item }; diff --git a/lib/routes/misskey/utils.ts b/lib/routes/misskey/utils.ts index cbb7d555ff..c922f31e9d 100644 --- a/lib/routes/misskey/utils.ts +++ b/lib/routes/misskey/utils.ts @@ -28,7 +28,4 @@ const parseNotes = (data, site) => }; }); -module.exports = { - parseNotes, - allowSiteList, -}; +export { parseNotes, allowSiteList }; diff --git a/lib/routes/mixcloud/index.ts b/lib/routes/mixcloud/index.ts index 4271527cc4..c22405f180 100644 --- a/lib/routes/mixcloud/index.ts +++ b/lib/routes/mixcloud/index.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; const CryptoJS = require('crypto-js'); import { parseDate } from '@/utils/parse-date'; -const { queries } = require('./queries'); +import { queries } from './queries'; export default async (ctx) => { const host = 'https://www.mixcloud.com'; diff --git a/lib/routes/mixcloud/queries.ts b/lib/routes/mixcloud/queries.ts index 2102891a88..766af1405d 100644 --- a/lib/routes/mixcloud/queries.ts +++ b/lib/routes/mixcloud/queries.ts @@ -1523,6 +1523,4 @@ const queries = { }, }; -module.exports = { - queries, -}; +export { queries }; diff --git a/lib/routes/mrdx/daily.ts b/lib/routes/mrdx/daily.ts index 80088f700d..17804f5431 100644 --- a/lib/routes/mrdx/daily.ts +++ b/lib/routes/mrdx/daily.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { getElementChildrenInnerText } = require('./utils'); +import { getElementChildrenInnerText } from './utils'; const dayjs = require('dayjs'); const utc = require('dayjs/plugin/utc'); dayjs.extend(utc); diff --git a/lib/routes/mrdx/utils.ts b/lib/routes/mrdx/utils.ts index 40a9fecf91..a86934bff5 100644 --- a/lib/routes/mrdx/utils.ts +++ b/lib/routes/mrdx/utils.ts @@ -12,6 +12,4 @@ function getElementChildrenInnerText(element) { return text; } -module.exports = { - getElementChildrenInnerText, -}; +export { getElementChildrenInnerText }; diff --git a/lib/routes/mydrivers/cid.ts b/lib/routes/mydrivers/cid.ts index 808c6e7b34..d3c0d30130 100644 --- a/lib/routes/mydrivers/cid.ts +++ b/lib/routes/mydrivers/cid.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; import parser from '@/utils/rss-parser'; -const { rootUrl, rootRSSUrl, title, categories, getInfo, processItems } = require('./util'); +import { rootUrl, rootRSSUrl, title, categories, getInfo, processItems } from './util'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/mydrivers/index.ts b/lib/routes/mydrivers/index.ts index c5118d5712..eef2c90219 100644 --- a/lib/routes/mydrivers/index.ts +++ b/lib/routes/mydrivers/index.ts @@ -9,7 +9,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { rootUrl, title, categories, convertToQueryString, getInfo, processItems } = require('./util'); +import { rootUrl, title, categories, convertToQueryString, getInfo, processItems } from './util'; export default async (ctx) => { let { category = 'new' } = ctx.req.param(); diff --git a/lib/routes/mydrivers/rank.ts b/lib/routes/mydrivers/rank.ts index 409c00c5b6..a15e646a84 100644 --- a/lib/routes/mydrivers/rank.ts +++ b/lib/routes/mydrivers/rank.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { rootUrl, getInfo, processItems } = require('./util'); +import { rootUrl, getInfo, processItems } from './util'; export default async (ctx) => { const { range = '0' } = ctx.req.param(); diff --git a/lib/routes/mydrivers/util.ts b/lib/routes/mydrivers/util.ts index f2bebbe2f8..48a119063f 100644 --- a/lib/routes/mydrivers/util.ts +++ b/lib/routes/mydrivers/util.ts @@ -113,13 +113,4 @@ const processItems = async (items, tryGet) => ) ); -module.exports = { - rootUrl, - rootRSSUrl, - title, - categories, - - convertToQueryString, - getInfo, - processItems, -}; +export { rootUrl, rootRSSUrl, title, categories, convertToQueryString, getInfo, processItems }; diff --git a/lib/routes/nature/cover.ts b/lib/routes/nature/cover.ts index 1cc71ddb08..bab83f1d55 100644 --- a/lib/routes/nature/cover.ts +++ b/lib/routes/nature/cover.ts @@ -18,7 +18,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, journalMap } = require('./utils'); +import { baseUrl, journalMap } from './utils'; const { CookieJar } = require('tough-cookie'); export default async (ctx) => { diff --git a/lib/routes/nature/highlight.ts b/lib/routes/nature/highlight.ts index f31e23b84d..66b8f51eb7 100644 --- a/lib/routes/nature/highlight.ts +++ b/lib/routes/nature/highlight.ts @@ -1,6 +1,6 @@ import { load } from 'cheerio'; import got from '@/utils/got'; -const { baseUrl, cookieJar, getArticleList, getArticle } = require('./utils'); +import { baseUrl, cookieJar, getArticleList, getArticle } from './utils'; export default async (ctx) => { const { journal = 'nature' } = ctx.req.param(); diff --git a/lib/routes/nature/news-and-comment.ts b/lib/routes/nature/news-and-comment.ts index d92e4cf40c..33e7833708 100644 --- a/lib/routes/nature/news-and-comment.ts +++ b/lib/routes/nature/news-and-comment.ts @@ -14,7 +14,7 @@ import { load } from 'cheerio'; import got from '@/utils/got'; -const { baseUrl, cookieJar, getArticleList, getArticle } = require('./utils'); +import { baseUrl, cookieJar, getArticleList, getArticle } from './utils'; export default async (ctx) => { const journal = ctx.req.param('journal'); diff --git a/lib/routes/nature/news.ts b/lib/routes/nature/news.ts index b624ebaf41..1599d31341 100644 --- a/lib/routes/nature/news.ts +++ b/lib/routes/nature/news.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, cookieJar, getArticle } = require('./utils'); +import { baseUrl, cookieJar, getArticle } from './utils'; export default async (ctx) => { const url = `${baseUrl}/latest-news`; diff --git a/lib/routes/nature/research.ts b/lib/routes/nature/research.ts index 077f060aec..70fb0b1e88 100644 --- a/lib/routes/nature/research.ts +++ b/lib/routes/nature/research.ts @@ -15,7 +15,7 @@ import { load } from 'cheerio'; import got from '@/utils/got'; -const { baseUrl, cookieJar, getArticleList, getDataLayer, getArticle } = require('./utils'); +import { baseUrl, cookieJar, getArticleList, getDataLayer, getArticle } from './utils'; export default async (ctx) => { const journal = ctx.req.param('journal') ?? 'nature'; diff --git a/lib/routes/nature/siteindex.ts b/lib/routes/nature/siteindex.ts index 289e80afef..93be70df8b 100644 --- a/lib/routes/nature/siteindex.ts +++ b/lib/routes/nature/siteindex.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl, cookieJar } = require('./utils'); +import { baseUrl, cookieJar } from './utils'; export default async (ctx) => { const response = await got(`${baseUrl}/siteindex`, { cookieJar }); diff --git a/lib/routes/nature/utils.ts b/lib/routes/nature/utils.ts index b777005188..751a2c10cb 100644 --- a/lib/routes/nature/utils.ts +++ b/lib/routes/nature/utils.ts @@ -1090,11 +1090,4 @@ const journalMap = { ], }; -module.exports = { - baseUrl, - cookieJar, - getArticle, - getArticleList, - getDataLayer, - journalMap, -}; +export { baseUrl, cookieJar, getArticle, getArticleList, getDataLayer, journalMap }; diff --git a/lib/routes/newrank/utils.ts b/lib/routes/newrank/utils.ts index 0e947772e9..cd390793aa 100644 --- a/lib/routes/newrank/utils.ts +++ b/lib/routes/newrank/utils.ts @@ -103,11 +103,4 @@ async function getCookie() { return token; } -module.exports = { - getCookie, - random_nonce, - decrypt_wechat_detail_xyz, - decrypt_douyin_account_xyz, - decrypt_douyin_detail_xyz, - flatten, -}; +export { getCookie, random_nonce, decrypt_wechat_detail_xyz, decrypt_douyin_account_xyz, decrypt_douyin_detail_xyz, flatten }; diff --git a/lib/routes/newzmz/index.ts b/lib/routes/newzmz/index.ts index 66dd17fe25..1ffdb34d4d 100644 --- a/lib/routes/newzmz/index.ts +++ b/lib/routes/newzmz/index.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { rootUrl, getItems, getItemInfo, processItems } = require('./util'); +import { rootUrl, getItems, getItemInfo, processItems } from './util'; export default async (ctx) => { const { id = '1', downLinkType = '磁力链' } = ctx.req.param(); diff --git a/lib/routes/newzmz/util.ts b/lib/routes/newzmz/util.ts index d53afb2907..d3e95ebcbd 100644 --- a/lib/routes/newzmz/util.ts +++ b/lib/routes/newzmz/util.ts @@ -160,9 +160,4 @@ const processItems = async (i, downLinkType, itemSelector, categorySelector, dow }); }; -module.exports = { - rootUrl, - getItems, - getItemInfo, - processItems, -}; +export { rootUrl, getItems, getItemInfo, processItems }; diff --git a/lib/routes/nhentai/other.ts b/lib/routes/nhentai/other.ts index df61739a61..cd70a1d32b 100644 --- a/lib/routes/nhentai/other.ts +++ b/lib/routes/nhentai/other.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getSimple, getDetails, getTorrents } = require('./util'); +import { getSimple, getDetails, getTorrents } from './util'; const supportedKeys = new Set(['parody', 'character', 'tag', 'artist', 'group', 'language', 'category']); diff --git a/lib/routes/nhentai/search.ts b/lib/routes/nhentai/search.ts index c510b54c71..55bdbe2b26 100644 --- a/lib/routes/nhentai/search.ts +++ b/lib/routes/nhentai/search.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getSimple, getDetails, getTorrents } = require('./util'); +import { getSimple, getDetails, getTorrents } from './util'; export default async (ctx) => { const { keyword, mode } = ctx.req.param(); diff --git a/lib/routes/nhentai/util.ts b/lib/routes/nhentai/util.ts index f5d9b656c8..9874a684c2 100644 --- a/lib/routes/nhentai/util.ts +++ b/lib/routes/nhentai/util.ts @@ -142,9 +142,4 @@ const getDetail = async (simple) => { }; }; -module.exports = { - baseUrl, - getSimple, - getDetails, - getTorrents, -}; +export { baseUrl, getSimple, getDetails, getTorrents }; diff --git a/lib/routes/nintendo/utils.ts b/lib/routes/nintendo/utils.ts index 587a6896d1..5aaf7b83eb 100644 --- a/lib/routes/nintendo/utils.ts +++ b/lib/routes/nintendo/utils.ts @@ -163,11 +163,4 @@ const ProcessNewsChina = (list, cache) => }) ); -module.exports = { - ProcessItem, - ProcessNews, - ProcessNewsChina, - ProcessItemChina, - nuxtReader, - generateImageLink, -}; +export { ProcessItem, ProcessNews, ProcessNewsChina, ProcessItemChina, nuxtReader, generateImageLink }; diff --git a/lib/routes/njglyy/utils/index.ts b/lib/routes/njglyy/utils/index.ts index 7552ccbaf0..0aef709feb 100644 --- a/lib/routes/njglyy/utils/index.ts +++ b/lib/routes/njglyy/utils/index.ts @@ -46,6 +46,4 @@ async function getNoticeList(ctx, url, host, listSelector, itemSelector, titleSe return out; } -module.exports = { - getNoticeList, -}; +export { getNoticeList }; diff --git a/lib/routes/njglyy/ygbjypx.ts b/lib/routes/njglyy/ygbjypx.ts index 2adfd5a2f2..087ed34f40 100644 --- a/lib/routes/njglyy/ygbjypx.ts +++ b/lib/routes/njglyy/ygbjypx.ts @@ -1,4 +1,4 @@ -const { getNoticeList } = require('./utils'); +import { getNoticeList } from './utils'; const url = 'https://njglyy.com/ygb/jypx/jypx.aspx'; const host = 'https://njglyy.com/ygb/jypx/'; diff --git a/lib/routes/njnu/ceai/utils.ts b/lib/routes/njnu/ceai/utils.ts index 756543f7bd..52a426cafe 100644 --- a/lib/routes/njnu/ceai/utils.ts +++ b/lib/routes/njnu/ceai/utils.ts @@ -50,6 +50,4 @@ const ProcessFeed = (list, caches) => }) ); -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/njnu/jwc/utils.ts b/lib/routes/njnu/jwc/utils.ts index 579c7d0369..86eba25e3a 100644 --- a/lib/routes/njnu/jwc/utils.ts +++ b/lib/routes/njnu/jwc/utils.ts @@ -54,6 +54,4 @@ const ProcessFeed = (list, caches) => { ); }; -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/njucm/grabs.ts b/lib/routes/njucm/grabs.ts index 113f51ecf3..f265a71eb6 100644 --- a/lib/routes/njucm/grabs.ts +++ b/lib/routes/njucm/grabs.ts @@ -1,4 +1,4 @@ -const { getNoticeList } = require('./utils'); +import { getNoticeList } from './utils'; const url = 'https://gra.njucm.edu.cn/2899/list.htm'; const host = 'https://gra.njucm.edu.cn'; diff --git a/lib/routes/njucm/utils/index.ts b/lib/routes/njucm/utils/index.ts index b02cf5b16c..80ab76af49 100644 --- a/lib/routes/njucm/utils/index.ts +++ b/lib/routes/njucm/utils/index.ts @@ -43,6 +43,4 @@ async function getNoticeList(ctx, url, host, listSelector, titleSelector, conten return out; } -module.exports = { - getNoticeList, -}; +export { getNoticeList }; diff --git a/lib/routes/njust/cwc.ts b/lib/routes/njust/cwc.ts index c8574de0d0..13f5a61bf2 100644 --- a/lib/routes/njust/cwc.ts +++ b/lib/routes/njust/cwc.ts @@ -1,7 +1,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { getContent } = require('./utils'); +import { getContent } from './utils'; const map = new Map([ ['tzgg', { title: '南京理工大学财务处 -- 通知公告', id: '/12432' }], diff --git a/lib/routes/njust/dgxg.ts b/lib/routes/njust/dgxg.ts index c741c5f28c..e4bb32aa21 100644 --- a/lib/routes/njust/dgxg.ts +++ b/lib/routes/njust/dgxg.ts @@ -1,7 +1,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { getContent } = require('./utils'); +import { getContent } from './utils'; const map = new Map([ ['gstz', { title: '南京理工大学电光学院研学网 -- 公示通知', id: '/6509' }], diff --git a/lib/routes/njust/eo.ts b/lib/routes/njust/eo.ts index e52fca04ed..2fe977734e 100644 --- a/lib/routes/njust/eo.ts +++ b/lib/routes/njust/eo.ts @@ -1,7 +1,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { getContent } = require('./utils'); +import { getContent } from './utils'; const map = new Map([ ['16tz', { title: '南京理工大学电光16 -- 通知公告', id: '/_t217/tzgg' }], diff --git a/lib/routes/njust/eoe.ts b/lib/routes/njust/eoe.ts index c94e3d90ca..976f5ce43b 100644 --- a/lib/routes/njust/eoe.ts +++ b/lib/routes/njust/eoe.ts @@ -1,7 +1,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { getContent } = require('./utils'); +import { getContent } from './utils'; const map = new Map([ ['tzgg', { title: '南京理工大学电子工程与光电技术学院 -- 通知公告', id: '/1920' }], diff --git a/lib/routes/njust/gs.ts b/lib/routes/njust/gs.ts index 82c04add2d..a01bd76d47 100644 --- a/lib/routes/njust/gs.ts +++ b/lib/routes/njust/gs.ts @@ -1,7 +1,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { getContent } = require('./utils'); +import { getContent } from './utils'; const host = 'https://gs.njust.edu.cn'; diff --git a/lib/routes/njust/jwc.ts b/lib/routes/njust/jwc.ts index e172d9ba29..e60bc95a94 100644 --- a/lib/routes/njust/jwc.ts +++ b/lib/routes/njust/jwc.ts @@ -1,7 +1,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { getContent } = require('./utils'); +import { getContent } from './utils'; const map = new Map([ ['jstz', { title: '南京理工大学教务处 -- 教师通知', id: '/1216' }], diff --git a/lib/routes/njust/utils.ts b/lib/routes/njust/utils.ts index 3c096ecd49..29371a7d62 100644 --- a/lib/routes/njust/utils.ts +++ b/lib/routes/njust/utils.ts @@ -32,6 +32,4 @@ async function getContent(url, pptr = false) { } } -module.exports = { - getContent, -}; +export { getContent }; diff --git a/lib/routes/njxzc/home.ts b/lib/routes/njxzc/home.ts index 5dfdf8ee33..94de93fc01 100644 --- a/lib/routes/njxzc/home.ts +++ b/lib/routes/njxzc/home.ts @@ -1,4 +1,4 @@ -const { getNoticeList } = require('./utils'); +import { getNoticeList } from './utils'; const url = 'https://www.njxzc.edu.cn/89/list.htm'; const host = 'https://www.njxzc.edu.cn'; diff --git a/lib/routes/njxzc/lib.ts b/lib/routes/njxzc/lib.ts index ff85d1abdb..b18c2a5f73 100644 --- a/lib/routes/njxzc/lib.ts +++ b/lib/routes/njxzc/lib.ts @@ -1,4 +1,4 @@ -const { getNoticeList } = require('./utils'); +import { getNoticeList } from './utils'; const url = 'https://lib.njxzc.edu.cn/pxyhd/list.htm'; const host = 'https://lib.njxzc.edu.cn'; diff --git a/lib/routes/njxzc/utils/index.ts b/lib/routes/njxzc/utils/index.ts index 27775e6009..672f950766 100644 --- a/lib/routes/njxzc/utils/index.ts +++ b/lib/routes/njxzc/utils/index.ts @@ -44,6 +44,4 @@ async function getNoticeList(ctx, url, host, titleSelector, dateSelector, conten return out; } -module.exports = { - getNoticeList, -}; +export { getNoticeList }; diff --git a/lib/routes/nua/utils.ts b/lib/routes/nua/utils.ts index 4eb81fb268..b007b58d7d 100644 --- a/lib/routes/nua/utils.ts +++ b/lib/routes/nua/utils.ts @@ -70,7 +70,4 @@ const ProcessFeed = (items, artiContent) => ) ); -module.exports = { - ProcessList, - ProcessFeed, -}; +export { ProcessList, ProcessFeed }; diff --git a/lib/routes/nwafu/all.ts b/lib/routes/nwafu/all.ts index b2a995f068..d996e6b9f0 100644 --- a/lib/routes/nwafu/all.ts +++ b/lib/routes/nwafu/all.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { nwafuMap } = require('./utils'); +import { nwafuMap } from './utils'; export default async (ctx) => { const { type = 'jiaowu' } = ctx.req.param(); diff --git a/lib/routes/nwafu/utils.ts b/lib/routes/nwafu/utils.ts index b22f6a0f19..eae6d5987f 100644 --- a/lib/routes/nwafu/utils.ts +++ b/lib/routes/nwafu/utils.ts @@ -30,6 +30,4 @@ const nwafuMap = new Map([ ['forbiddenList', forbiddenList], ]); -module.exports = { - nwafuMap, -}; +export { nwafuMap }; diff --git a/lib/routes/nytimes/utils.ts b/lib/routes/nytimes/utils.ts index 06ebc2ba97..ce38fd6b6a 100644 --- a/lib/routes/nytimes/utils.ts +++ b/lib/routes/nytimes/utils.ts @@ -108,7 +108,4 @@ const ProcessFeed = (data, hasEnVersion = false) => { return result; }; -module.exports = { - ProcessFeed, - PuppeterGetter, -}; +export { ProcessFeed, PuppeterGetter }; diff --git a/lib/routes/odaily/activity.ts b/lib/routes/odaily/activity.ts index e250f049ad..629c82e4d5 100644 --- a/lib/routes/odaily/activity.ts +++ b/lib/routes/odaily/activity.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl } = require('./utils'); +import { rootUrl } from './utils'; export default async (ctx) => { const currentUrl = `${rootUrl}/service/scheme/group/8?page=1&per_page=${ctx.req.query('limit') ?? 25}`; diff --git a/lib/routes/odaily/newsflash.ts b/lib/routes/odaily/newsflash.ts index ebf7fe86d3..8ead5db580 100644 --- a/lib/routes/odaily/newsflash.ts +++ b/lib/routes/odaily/newsflash.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl } = require('./utils'); +import { rootUrl } from './utils'; export default async (ctx) => { const currentUrl = `${rootUrl}/api/pp/api/info-flow/newsflash_columns/newsflashes?b_id=&per_page=${ctx.req.query('limit') ?? 100}`; diff --git a/lib/routes/odaily/post.ts b/lib/routes/odaily/post.ts index 13eb91b1ee..b42858e288 100644 --- a/lib/routes/odaily/post.ts +++ b/lib/routes/odaily/post.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl } = require('./utils'); +import { rootUrl } from './utils'; const titles = { 280: '最新', diff --git a/lib/routes/odaily/search-news.ts b/lib/routes/odaily/search-news.ts index f2c54c29d0..0c083d6dc3 100644 --- a/lib/routes/odaily/search-news.ts +++ b/lib/routes/odaily/search-news.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl } = require('./utils'); +import { rootUrl } from './utils'; export default async (ctx) => { const currentUrl = `${rootUrl}/api/pp/api/search/entity-search?per_page=${ctx.req.query('limit') ?? 25}&keyword=${ctx.req.param('keyword')}&entity_type=newsflash`; diff --git a/lib/routes/odaily/user.ts b/lib/routes/odaily/user.ts index 0866a9d13e..ddd46b318d 100644 --- a/lib/routes/odaily/user.ts +++ b/lib/routes/odaily/user.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl } = require('./utils'); +import { rootUrl } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/odaily/utils.ts b/lib/routes/odaily/utils.ts index 3ff06174a0..d55029db96 100644 --- a/lib/routes/odaily/utils.ts +++ b/lib/routes/odaily/utils.ts @@ -1,3 +1,3 @@ -module.exports = { - rootUrl: 'https://www.odaily.news', -}; +const rootUrl = 'https://www.odaily.news'; + +export { rootUrl }; diff --git a/lib/routes/oeeee/utils.ts b/lib/routes/oeeee/utils.ts index 3e4c9fc215..2200bc0088 100644 --- a/lib/routes/oeeee/utils.ts +++ b/lib/routes/oeeee/utils.ts @@ -36,6 +36,4 @@ const parseArticle = (item, tryGet) => return item; }); -module.exports = { - parseArticle, -}; +export { parseArticle }; diff --git a/lib/routes/oeeee/web.ts b/lib/routes/oeeee/web.ts index d2c3af6159..87c6ae1e2b 100644 --- a/lib/routes/oeeee/web.ts +++ b/lib/routes/oeeee/web.ts @@ -5,7 +5,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { parseArticle } = require('./utils'); +import { parseArticle } from './utils'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/oilchem/routes.ts b/lib/routes/oilchem/routes.ts index 13fe7e4935..1be1e03884 100644 --- a/lib/routes/oilchem/routes.ts +++ b/lib/routes/oilchem/routes.ts @@ -1,4 +1,4 @@ -module.exports = { +export default { '/www': 1, '/oil': 101, '/oil/oil/crudeoil': 111, diff --git a/lib/routes/onet/news.ts b/lib/routes/onet/news.ts index c1d7a4ca2e..d522a93689 100644 --- a/lib/routes/onet/news.ts +++ b/lib/routes/onet/news.ts @@ -8,7 +8,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { parseArticleContent, parseMainImage } = require('./utils'); +import { parseArticleContent, parseMainImage } from './utils'; export default async (ctx) => { const rssUrl = 'https://wiadomosci.onet.pl/.feed'; diff --git a/lib/routes/onet/utils.ts b/lib/routes/onet/utils.ts index cab33b630f..b6f0b91b06 100644 --- a/lib/routes/onet/utils.ts +++ b/lib/routes/onet/utils.ts @@ -48,7 +48,4 @@ const parseArticleContent = ($) => { return content; }; -module.exports = { - parseArticleContent, - parseMainImage, -}; +export { parseArticleContent, parseMainImage }; diff --git a/lib/routes/openai/blog.ts b/lib/routes/openai/blog.ts index 391b9314b4..39cbc16010 100644 --- a/lib/routes/openai/blog.ts +++ b/lib/routes/openai/blog.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { toTitleCase } from '@/utils/common-utils'; -const { getApiUrl, parseArticle } = require('./common'); +import { getApiUrl, parseArticle } from './common'; export default async (ctx) => { const tag = ctx.req.param('tag') || ''; diff --git a/lib/routes/openai/common.ts b/lib/routes/openai/common.ts index 0d947ce8de..c4d99929c0 100644 --- a/lib/routes/openai/common.ts +++ b/lib/routes/openai/common.ts @@ -70,7 +70,4 @@ const parseArticle = (ctx, rootUrl, attributes) => }; }); -module.exports = { - getApiUrl, - parseArticle, -}; +export { getApiUrl, parseArticle }; diff --git a/lib/routes/openai/research.ts b/lib/routes/openai/research.ts index fcac0aef31..08433fbb8c 100644 --- a/lib/routes/openai/research.ts +++ b/lib/routes/openai/research.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { getApiUrl, parseArticle } = require('./common'); +import { getApiUrl, parseArticle } from './common'; export default async (ctx) => { const apiUrl = new URL('/api/v1/research-publications', await getApiUrl()); diff --git a/lib/routes/otobanana/cast.ts b/lib/routes/otobanana/cast.ts index 12824e0874..ca0f2ea5c9 100644 --- a/lib/routes/otobanana/cast.ts +++ b/lib/routes/otobanana/cast.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { apiBase, baseUrl, getUserInfo, renderCast } = require('./utils'); +import { apiBase, baseUrl, getUserInfo, renderCast } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/otobanana/livestream.ts b/lib/routes/otobanana/livestream.ts index c2062f29fe..2fe9d9ba9d 100644 --- a/lib/routes/otobanana/livestream.ts +++ b/lib/routes/otobanana/livestream.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { apiBase, baseUrl, getUserInfo, renderLive } = require('./utils'); +import { apiBase, baseUrl, getUserInfo, renderLive } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/otobanana/timeline.ts b/lib/routes/otobanana/timeline.ts index 949c8fcff5..946d3e89b9 100644 --- a/lib/routes/otobanana/timeline.ts +++ b/lib/routes/otobanana/timeline.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { apiBase, baseUrl, getUserInfo, renderPost } = require('./utils'); +import { apiBase, baseUrl, getUserInfo, renderPost } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/otobanana/utils.ts b/lib/routes/otobanana/utils.ts index 05cd266b8c..fcbc04bf77 100644 --- a/lib/routes/otobanana/utils.ts +++ b/lib/routes/otobanana/utils.ts @@ -60,11 +60,4 @@ const renderPost = ({ id, type_label: type, cast, /** livestream */ message /** } }; -module.exports = { - apiBase, - baseUrl, - getUserInfo, - renderCast, - renderLive, - renderPost, -}; +export { apiBase, baseUrl, getUserInfo, renderCast, renderLive, renderPost }; diff --git a/lib/routes/penguin-random-house/utils.ts b/lib/routes/penguin-random-house/utils.ts index 60c0056d46..bd0e690ede 100644 --- a/lib/routes/penguin-random-house/utils.ts +++ b/lib/routes/penguin-random-house/utils.ts @@ -116,8 +116,4 @@ const parseList = (items, ctx, contentParser) => ) ); -module.exports = { - parseList, - parseBooks, - parseArticle, -}; +export { parseList, parseBooks, parseArticle }; diff --git a/lib/routes/pianyuan/utils.ts b/lib/routes/pianyuan/utils.ts index 5aff5b27e3..e0048a6b1b 100644 --- a/lib/routes/pianyuan/utils.ts +++ b/lib/routes/pianyuan/utils.ts @@ -82,7 +82,4 @@ async function request(link, cache) { return response; } -module.exports = { - ProcessFeed, - request, -}; +export { ProcessFeed, request }; diff --git a/lib/routes/picnob/user.ts b/lib/routes/picnob/user.ts index 82bec804a0..4e1b4c5fd6 100644 --- a/lib/routes/picnob/user.ts +++ b/lib/routes/picnob/user.ts @@ -7,7 +7,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { puppeteerGet } = require('./utils'); +import { puppeteerGet } from './utils'; import puppeteer from '@/utils/puppeteer'; export default async (ctx) => { diff --git a/lib/routes/picnob/utils.ts b/lib/routes/picnob/utils.ts index aea8fa7bf6..e9a6e56f00 100644 --- a/lib/routes/picnob/utils.ts +++ b/lib/routes/picnob/utils.ts @@ -15,6 +15,4 @@ const puppeteerGet = async (url, browser) => { return data; }; -module.exports = { - puppeteerGet, -}; +export { puppeteerGet }; diff --git a/lib/routes/picuki/profile.ts b/lib/routes/picuki/profile.ts index b0216e4a03..a4ec17a360 100644 --- a/lib/routes/picuki/profile.ts +++ b/lib/routes/picuki/profile.ts @@ -7,7 +7,7 @@ const chrono = require('chrono-node'); import { art } from '@/utils/render'; import * as path from 'node:path'; import { config } from '@/config'; -const { puppeteerGet } = require('./utils'); +import { puppeteerGet } from './utils'; import puppeteer from '@/utils/puppeteer'; function deVideo(media) { diff --git a/lib/routes/picuki/utils.ts b/lib/routes/picuki/utils.ts index d6d66fd231..4004d0b45a 100644 --- a/lib/routes/picuki/utils.ts +++ b/lib/routes/picuki/utils.ts @@ -21,6 +21,4 @@ const puppeteerGet = async (url, browser, includeStories = false) => { return html; }; -module.exports = { - puppeteerGet, -}; +export { puppeteerGet }; diff --git a/lib/routes/pikabu/community.ts b/lib/routes/pikabu/community.ts index 0f90eadef8..62810917a7 100644 --- a/lib/routes/pikabu/community.ts +++ b/lib/routes/pikabu/community.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, fixImage, fixVideo } = require('./utils'); +import { baseUrl, fixImage, fixVideo } from './utils'; export default async (ctx) => { const { type, name, sort = 'new' } = ctx.req.param(); diff --git a/lib/routes/pikabu/user.ts b/lib/routes/pikabu/user.ts index 84b464161c..be0249cf13 100644 --- a/lib/routes/pikabu/user.ts +++ b/lib/routes/pikabu/user.ts @@ -2,7 +2,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; const iconv = require('iconv-lite'); import { parseDate } from '@/utils/parse-date'; -const { baseUrl, fixImage, fixVideo } = require('./utils'); +import { baseUrl, fixImage, fixVideo } from './utils'; export default async (ctx) => { const name = ctx.req.param('name'); diff --git a/lib/routes/pikabu/utils.ts b/lib/routes/pikabu/utils.ts index f57a3980ac..0ab26058ea 100644 --- a/lib/routes/pikabu/utils.ts +++ b/lib/routes/pikabu/utils.ts @@ -39,8 +39,4 @@ const fixVideo = (element) => { element.replaceWith(videoHtml); }; -module.exports = { - baseUrl, - fixImage, - fixVideo, -}; +export { baseUrl, fixImage, fixVideo }; diff --git a/lib/routes/pincong/hot.ts b/lib/routes/pincong/hot.ts index 43b7092e0d..cb6e978f41 100644 --- a/lib/routes/pincong/hot.ts +++ b/lib/routes/pincong/hot.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, puppeteerGet } = require('./utils'); +import { baseUrl, puppeteerGet } from './utils'; export default async (ctx) => { const { category = '0' } = ctx.req.param(); diff --git a/lib/routes/pincong/index.ts b/lib/routes/pincong/index.ts index 5837f6cb57..957f50c719 100644 --- a/lib/routes/pincong/index.ts +++ b/lib/routes/pincong/index.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, puppeteerGet } = require('./utils'); +import { baseUrl, puppeteerGet } from './utils'; export default async (ctx) => { let url = `${baseUrl}/`; diff --git a/lib/routes/pincong/topic.ts b/lib/routes/pincong/topic.ts index 3a75a2ed24..ab367dcd76 100644 --- a/lib/routes/pincong/topic.ts +++ b/lib/routes/pincong/topic.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, puppeteerGet } = require('./utils'); +import { baseUrl, puppeteerGet } from './utils'; export default async (ctx) => { const url = `${baseUrl}/topic/${ctx.req.param('topic')}`; diff --git a/lib/routes/pincong/utils.ts b/lib/routes/pincong/utils.ts index 7af5785adb..b5d901d73b 100644 --- a/lib/routes/pincong/utils.ts +++ b/lib/routes/pincong/utils.ts @@ -18,7 +18,4 @@ const puppeteerGet = (url, cache) => return html; }); -module.exports = { - baseUrl, - puppeteerGet, -}; +export { baseUrl, puppeteerGet }; diff --git a/lib/routes/pingwest/utils.ts b/lib/routes/pingwest/utils.ts index 1c188b3464..54e30d0d71 100644 --- a/lib/routes/pingwest/utils.ts +++ b/lib/routes/pingwest/utils.ts @@ -86,7 +86,4 @@ const getFullArticle = (link, cache) => return description; }); -module.exports = { - articleListParser, - statusListParser, -}; +export { articleListParser, statusListParser }; diff --git a/lib/routes/pixiv/bookmarks.ts b/lib/routes/pixiv/bookmarks.ts index 67d5c14aa7..11eff618d6 100644 --- a/lib/routes/pixiv/bookmarks.ts +++ b/lib/routes/pixiv/bookmarks.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getToken } = require('./token'); +import { getToken } from './token'; const getBookmarks = require('./api/get-bookmarks'); const getUserDetail = require('./api/get-user-detail'); import { config } from '@/config'; diff --git a/lib/routes/pixiv/constants.ts b/lib/routes/pixiv/constants.ts index d889b33cff..d8c4d18295 100644 --- a/lib/routes/pixiv/constants.ts +++ b/lib/routes/pixiv/constants.ts @@ -1,8 +1,8 @@ -module.exports = { - maskHeader: { - 'App-OS': 'ios', - 'App-OS-Version': '10.3.1', - 'App-Version': '6.7.1', - 'User-Agent': 'PixivIOSApp/6.7.1 (iOS 10.3.1; iPhone8,1)', - }, +const maskHeader = { + 'App-OS': 'ios', + 'App-OS-Version': '10.3.1', + 'App-Version': '6.7.1', + 'User-Agent': 'PixivIOSApp/6.7.1 (iOS 10.3.1; iPhone8,1)', }; + +export { maskHeader }; diff --git a/lib/routes/pixiv/illustfollow.ts b/lib/routes/pixiv/illustfollow.ts index 1bb0df5813..67913add20 100644 --- a/lib/routes/pixiv/illustfollow.ts +++ b/lib/routes/pixiv/illustfollow.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getToken } = require('./token'); +import { getToken } from './token'; const getIllustFollows = require('./api/get-illust-follows'); import { config } from '@/config'; const pixivUtils = require('./utils'); diff --git a/lib/routes/pixiv/ranking.ts b/lib/routes/pixiv/ranking.ts index e5c12571a7..cec5fdd465 100644 --- a/lib/routes/pixiv/ranking.ts +++ b/lib/routes/pixiv/ranking.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getToken } = require('./token'); +import { getToken } from './token'; const getRanking = require('./api/get-ranking'); import { config } from '@/config'; const pixivUtils = require('./utils'); diff --git a/lib/routes/pixiv/search.ts b/lib/routes/pixiv/search.ts index ffe010782e..e1f11f8cee 100644 --- a/lib/routes/pixiv/search.ts +++ b/lib/routes/pixiv/search.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getToken } = require('./token'); +import { getToken } from './token'; const searchPopularIllust = require('./api/search-popular-illust'); const searchIllust = require('./api/search-illust'); import { config } from '@/config'; diff --git a/lib/routes/pixiv/token.ts b/lib/routes/pixiv/token.ts index 180a8327b4..a1d83e6c43 100644 --- a/lib/routes/pixiv/token.ts +++ b/lib/routes/pixiv/token.ts @@ -1,7 +1,7 @@ import { config } from '@/config'; import logger from '@/utils/logger'; const got = require('./pixiv-got'); -const { maskHeader } = require('./constants'); +import { maskHeader } from './constants'; let token = null; @@ -56,9 +56,7 @@ async function getToken(tryGet) { return token; } -module.exports = { - getToken, -}; +export { getToken }; // let tickTokenStarted = false; diff --git a/lib/routes/pixiv/user.ts b/lib/routes/pixiv/user.ts index 1ab8ed2a52..01688087b1 100644 --- a/lib/routes/pixiv/user.ts +++ b/lib/routes/pixiv/user.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getToken } = require('./token'); +import { getToken } from './token'; const getIllusts = require('./api/get-illusts'); import { config } from '@/config'; const pixivUtils = require('./utils'); diff --git a/lib/routes/pixiv/utils.ts b/lib/routes/pixiv/utils.ts index 44fc349f1a..64b0ba0c5c 100644 --- a/lib/routes/pixiv/utils.ts +++ b/lib/routes/pixiv/utils.ts @@ -1,6 +1,6 @@ import { config } from '@/config'; -module.exports = { +export default { getImgs(illust) { const images = []; if (illust.meta_pages?.length) { diff --git a/lib/routes/pku/eecs.ts b/lib/routes/pku/eecs.ts index d425d48721..d74abbf6a8 100644 --- a/lib/routes/pku/eecs.ts +++ b/lib/routes/pku/eecs.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { eecsMap } = require('./utils'); +import { eecsMap } from './utils'; export default async (ctx) => { const host = 'https://eecs.pku.edu.cn'; diff --git a/lib/routes/pku/ss/admission.ts b/lib/routes/pku/ss/admission.ts index 5175c29940..7738cd5cf5 100644 --- a/lib/routes/pku/ss/admission.ts +++ b/lib/routes/pku/ss/admission.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { baseUrl, getSingleRecord, getArticle } = require('./common'); +import { baseUrl, getSingleRecord, getArticle } from './common'; const host = `${baseUrl}/admission/admnotice/`; diff --git a/lib/routes/pku/ss/common.ts b/lib/routes/pku/ss/common.ts index a9354eb4d1..21ec500e88 100644 --- a/lib/routes/pku/ss/common.ts +++ b/lib/routes/pku/ss/common.ts @@ -30,8 +30,4 @@ const getArticle = (item, tryGet) => return item; }); -module.exports = { - baseUrl, - getSingleRecord, - getArticle, -}; +export { baseUrl, getSingleRecord, getArticle }; diff --git a/lib/routes/pku/ss/notice.ts b/lib/routes/pku/ss/notice.ts index 083b6fa0c6..a37b0d6873 100644 --- a/lib/routes/pku/ss/notice.ts +++ b/lib/routes/pku/ss/notice.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { baseUrl, getSingleRecord, getArticle } = require('./common'); +import { baseUrl, getSingleRecord, getArticle } from './common'; const host = `${baseUrl}/newscenter/notice/`; diff --git a/lib/routes/pku/ss/pg-admin.ts b/lib/routes/pku/ss/pg-admin.ts index d0e6970f82..197ef857f1 100644 --- a/lib/routes/pku/ss/pg-admin.ts +++ b/lib/routes/pku/ss/pg-admin.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { baseUrl, getSingleRecord, getArticle } = require('./common'); +import { baseUrl, getSingleRecord, getArticle } from './common'; const host = `${baseUrl}/admission/admbrochure/`; diff --git a/lib/routes/pku/utils.ts b/lib/routes/pku/utils.ts index fb3b89527d..351692a8f4 100644 --- a/lib/routes/pku/utils.ts +++ b/lib/routes/pku/utils.ts @@ -10,6 +10,4 @@ const eecsMap = new Map([ [4, 'yytz.htm'], ]); -module.exports = { - eecsMap, -}; +export { eecsMap }; diff --git a/lib/routes/playno1/av.ts b/lib/routes/playno1/av.ts index ecb251ac4c..35b87fdf3d 100644 --- a/lib/routes/playno1/av.ts +++ b/lib/routes/playno1/av.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { cookieJar, processArticle } = require('./utils'); +import { cookieJar, processArticle } from './utils'; const baseUrl = 'http://www.playno1.com'; export default async (ctx) => { diff --git a/lib/routes/playno1/st.ts b/lib/routes/playno1/st.ts index 08b64c5ceb..73625fdf95 100644 --- a/lib/routes/playno1/st.ts +++ b/lib/routes/playno1/st.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { cookieJar, processArticle } = require('./utils'); +import { cookieJar, processArticle } from './utils'; const baseUrl = 'http://stno1.playno1.com'; export default async (ctx) => { diff --git a/lib/routes/playno1/utils.ts b/lib/routes/playno1/utils.ts index 5839d80f7e..976ad0a9b1 100644 --- a/lib/routes/playno1/utils.ts +++ b/lib/routes/playno1/utils.ts @@ -26,7 +26,4 @@ const processArticle = (items, cache) => ) ); -module.exports = { - cookieJar, - processArticle, -}; +export { cookieJar, processArticle }; diff --git a/lib/routes/plurk/anonymous.ts b/lib/routes/plurk/anonymous.ts index 33499e8cec..cc8e438aa4 100644 --- a/lib/routes/plurk/anonymous.ts +++ b/lib/routes/plurk/anonymous.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { baseUrl, getPlurk } = require('./utils'); +import { baseUrl, getPlurk } from './utils'; export default async (ctx) => { const { data: apiResponse } = await got(`${baseUrl}/Stats/getAnonymousPlurks`, { diff --git a/lib/routes/plurk/hotlinks.ts b/lib/routes/plurk/hotlinks.ts index cc256338b2..4b32f25577 100644 --- a/lib/routes/plurk/hotlinks.ts +++ b/lib/routes/plurk/hotlinks.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { baseUrl, getPlurk } = require('./utils'); +import { baseUrl, getPlurk } from './utils'; export default async (ctx) => { const { data: apiResponse } = await got(`${baseUrl}/hotlinks/getLinks`, { diff --git a/lib/routes/plurk/news.ts b/lib/routes/plurk/news.ts index 06471a6083..68957fbdc7 100644 --- a/lib/routes/plurk/news.ts +++ b/lib/routes/plurk/news.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { baseUrl, fetchFriends, getPlurk } = require('./utils'); +import { baseUrl, fetchFriends, getPlurk } from './utils'; export default async (ctx) => { const { lang = 'en' } = ctx.req.param(); diff --git a/lib/routes/plurk/search.ts b/lib/routes/plurk/search.ts index 29e7d026b3..19d10066c8 100644 --- a/lib/routes/plurk/search.ts +++ b/lib/routes/plurk/search.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; const dayjs = require('dayjs'); -const { baseUrl, getPlurk } = require('./utils'); +import { baseUrl, getPlurk } from './utils'; export default async (ctx) => { const keyword = ctx.req.param('keyword'); diff --git a/lib/routes/plurk/top.ts b/lib/routes/plurk/top.ts index 586013ed0d..075ed82865 100644 --- a/lib/routes/plurk/top.ts +++ b/lib/routes/plurk/top.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { baseUrl, getPlurk } = require('./utils'); +import { baseUrl, getPlurk } from './utils'; const categoryList = new Set(['topReplurks', 'topFavorites', 'topResponded']); diff --git a/lib/routes/plurk/topic.ts b/lib/routes/plurk/topic.ts index 6cd0a5a6a3..87e3ada629 100644 --- a/lib/routes/plurk/topic.ts +++ b/lib/routes/plurk/topic.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl, fetchFriends, getPlurk } = require('./utils'); +import { baseUrl, fetchFriends, getPlurk } from './utils'; export default async (ctx) => { const topic = ctx.req.param('topic'); diff --git a/lib/routes/plurk/user.ts b/lib/routes/plurk/user.ts index 84e35c94b7..380b2faae1 100644 --- a/lib/routes/plurk/user.ts +++ b/lib/routes/plurk/user.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl, fetchFriends, getPlurk } = require('./utils'); +import { baseUrl, fetchFriends, getPlurk } from './utils'; export default async (ctx) => { const user = ctx.req.param('user'); diff --git a/lib/routes/plurk/utils.ts b/lib/routes/plurk/utils.ts index 3fb2ef39f1..730354fa15 100644 --- a/lib/routes/plurk/utils.ts +++ b/lib/routes/plurk/utils.ts @@ -49,8 +49,4 @@ const getPlurk = (plurkGuid, item, author, tryGet) => }; }); -module.exports = { - baseUrl, - fetchFriends, - getPlurk, -}; +export { baseUrl, fetchFriends, getPlurk }; diff --git a/lib/routes/pornhub/category-url.ts b/lib/routes/pornhub/category-url.ts index d91730e8b7..e6afedc8c4 100644 --- a/lib/routes/pornhub/category-url.ts +++ b/lib/routes/pornhub/category-url.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { isValidHost } from '@/utils/valid-host'; -const { headers, parseItems } = require('./utils'); +import { headers, parseItems } from './utils'; export default async (ctx) => { const { language = 'www', url = 'video' } = ctx.req.param(); diff --git a/lib/routes/pornhub/category.ts b/lib/routes/pornhub/category.ts index 1635d1d4fd..0c9ed72695 100644 --- a/lib/routes/pornhub/category.ts +++ b/lib/routes/pornhub/category.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { defaultDomain, renderDescription } = require('./utils'); +import { defaultDomain, renderDescription } from './utils'; import { config } from '@/config'; export default async (ctx) => { diff --git a/lib/routes/pornhub/model.ts b/lib/routes/pornhub/model.ts index 7a0a5d655c..d43620ca3d 100644 --- a/lib/routes/pornhub/model.ts +++ b/lib/routes/pornhub/model.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { isValidHost } from '@/utils/valid-host'; -const { headers, parseItems } = require('./utils'); +import { headers, parseItems } from './utils'; export default async (ctx) => { const { language = 'www', username, sort = '' } = ctx.req.param(); diff --git a/lib/routes/pornhub/pornstar.ts b/lib/routes/pornhub/pornstar.ts index 5cadad72bf..57a6fd3690 100644 --- a/lib/routes/pornhub/pornstar.ts +++ b/lib/routes/pornhub/pornstar.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { isValidHost } from '@/utils/valid-host'; -const { headers, parseItems } = require('./utils'); +import { headers, parseItems } from './utils'; export default async (ctx) => { const { language = 'www', username, sort = 'mr' } = ctx.req.param(); diff --git a/lib/routes/pornhub/search.ts b/lib/routes/pornhub/search.ts index b421d6a666..626b5b50e4 100644 --- a/lib/routes/pornhub/search.ts +++ b/lib/routes/pornhub/search.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { defaultDomain, renderDescription } = require('./utils'); +import { defaultDomain, renderDescription } from './utils'; export default async (ctx) => { const keyword = ctx.req.param('keyword'); diff --git a/lib/routes/pornhub/users.ts b/lib/routes/pornhub/users.ts index 44e01072e6..a3284b7fee 100644 --- a/lib/routes/pornhub/users.ts +++ b/lib/routes/pornhub/users.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { isValidHost } from '@/utils/valid-host'; -const { headers, parseItems } = require('./utils'); +import { headers, parseItems } from './utils'; export default async (ctx) => { const { language = 'www', username } = ctx.req.param(); diff --git a/lib/routes/pornhub/utils.ts b/lib/routes/pornhub/utils.ts index 70e6c47b31..e3489611e4 100644 --- a/lib/routes/pornhub/utils.ts +++ b/lib/routes/pornhub/utils.ts @@ -30,9 +30,4 @@ const parseItems = (e) => ({ pubDate: dayjs(extractDateFromImageUrl(e.find('img').data('mediumthumb'))) || parseRelativeDate(e.find('.added').text()), }); -module.exports = { - defaultDomain, - headers, - renderDescription, - parseItems, -}; +export { defaultDomain, headers, renderDescription, parseItems }; diff --git a/lib/routes/qianp/news.ts b/lib/routes/qianp/news.ts index 1a49816ea4..e0c47ba387 100644 --- a/lib/routes/qianp/news.ts +++ b/lib/routes/qianp/news.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { getTokenAndSecret } = require('./utils'); +import { getTokenAndSecret } from './utils'; export default async (ctx) => { const baseUrl = 'https://qianp.com'; diff --git a/lib/routes/qianp/utils.ts b/lib/routes/qianp/utils.ts index 0101fd22c0..32a03daa8e 100644 --- a/lib/routes/qianp/utils.ts +++ b/lib/routes/qianp/utils.ts @@ -14,6 +14,4 @@ const getTokenAndSecret = (tryGet) => return { token, secret }; }); -module.exports = { - getTokenAndSecret, -}; +export { getTokenAndSecret }; diff --git a/lib/routes/qoo-app/news.ts b/lib/routes/qoo-app/news.ts index 3d5265dde3..73b72c164f 100644 --- a/lib/routes/qoo-app/news.ts +++ b/lib/routes/qoo-app/news.ts @@ -2,7 +2,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { newsUrl, siteIcon, fixImg } = require('./utils'); +import { newsUrl, siteIcon, fixImg } from './utils'; export default async (ctx) => { const { lang = '' } = ctx.req.param(); diff --git a/lib/routes/qoo-app/utils.ts b/lib/routes/qoo-app/utils.ts index 2451a1fcdd..6746ad3481 100644 --- a/lib/routes/qoo-app/utils.ts +++ b/lib/routes/qoo-app/utils.ts @@ -45,13 +45,4 @@ const extractNotes = ($) => { }); }; -module.exports = { - appsUrl, - newsUrl, - notesUrl, - ssoUrl, - userUrl, - siteIcon, - fixImg, - extractNotes, -}; +export { appsUrl, newsUrl, notesUrl, ssoUrl, userUrl, siteIcon, fixImg, extractNotes }; diff --git a/lib/routes/qq/ac/comic.ts b/lib/routes/qq/ac/comic.ts index 313cae3db0..8e1e586016 100644 --- a/lib/routes/qq/ac/comic.ts +++ b/lib/routes/qq/ac/comic.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; -const { rootUrl, mobileRootUrl } = require('./utils'); +import { rootUrl, mobileRootUrl } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/qq/ac/rank.ts b/lib/routes/qq/ac/rank.ts index 473d1e1694..59c2126bae 100644 --- a/lib/routes/qq/ac/rank.ts +++ b/lib/routes/qq/ac/rank.ts @@ -1,4 +1,4 @@ -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const titles = { diff --git a/lib/routes/qq/ac/utils.ts b/lib/routes/qq/ac/utils.ts index 4ef68713cd..1db52c7b91 100644 --- a/lib/routes/qq/ac/utils.ts +++ b/lib/routes/qq/ac/utils.ts @@ -9,67 +9,64 @@ import * as path from 'node:path'; const rootUrl = 'https://ac.qq.com'; const mobileRootUrl = 'https://m.ac.qq.com'; +const ProcessItems = async (ctx, currentUrl, time, title) => { + const response = await got({ + method: 'get', + url: currentUrl, + }); -module.exports = { - rootUrl, - mobileRootUrl, - ProcessItems: async (ctx, currentUrl, time, title) => { - const response = await got({ - method: 'get', - url: currentUrl, + const $ = load(response.data); + + let items = $(`${time ? `.${time}-month-data ` : ''}.text-overflow`) + .slice(0, ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 30) + .toArray() + .map((item) => { + item = $(item); + + return { + title: item.text(), + guid: `${rootUrl}${item.attr('href')}`, + link: `${mobileRootUrl}${item.attr('href').replace(/Comic\/ComicInfo/, 'comic/index')}`, + }; }); - const $ = load(response.data); + items = await Promise.all( + items.map((item) => + cache.tryGet(item.guid, async () => { + const detailResponse = await got({ + method: 'get', + url: item.link, + }); - let items = $(`${time ? `.${time}-month-data ` : ''}.text-overflow`) - .slice(0, ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 30) - .toArray() - .map((item) => { - item = $(item); + const content = load(detailResponse.data); - return { - title: item.text(), - guid: `${rootUrl}${item.attr('href')}`, - link: `${mobileRootUrl}${item.attr('href').replace(/Comic\/ComicInfo/, 'comic/index')}`, - }; - }); - - items = await Promise.all( - items.map((item) => - cache.tryGet(item.guid, async () => { - const detailResponse = await got({ - method: 'get', - url: item.link, - }); - - const content = load(detailResponse.data); - - item.link = item.guid; - item.author = content('.author-wr') + item.link = item.guid; + item.author = content('.author-wr') + .toArray() + .map((a) => $(a).text().trim()) + .join(', '); + item.description = art(path.join(__dirname, 'templates/description.art'), { + image: content('.head-cover')?.attr('src') ?? '', + description: content('.head-info-desc')?.text() ?? '', + chapters: content('.reverse .bottom-chapter-item .chapter-link') .toArray() - .map((a) => $(a).text().trim()) - .join(', '); - item.description = art(path.join(__dirname, 'templates/description.art'), { - image: content('.head-cover')?.attr('src') ?? '', - description: content('.head-info-desc')?.text() ?? '', - chapters: content('.reverse .bottom-chapter-item .chapter-link') - .toArray() - .map((chapter) => ({ - link: content(chapter).attr('href'), - title: content(chapter).find('.comic-title')?.text() ?? '', - image: content(chapter).find('.cover-image')?.attr('src') ?? '', - })), - }); + .map((chapter) => ({ + link: content(chapter).attr('href'), + title: content(chapter).find('.comic-title')?.text() ?? '', + image: content(chapter).find('.cover-image')?.attr('src') ?? '', + })), + }); - return item; - }) - ) - ); + return item; + }) + ) + ); - return { - title: `${title} - 腾讯动漫`, - link: currentUrl, - item: items, - }; - }, + return { + title: `${title} - 腾讯动漫`, + link: currentUrl, + item: items, + }; }; + +export { rootUrl, mobileRootUrl, ProcessItems }; diff --git a/lib/routes/qq/kg/cache.ts b/lib/routes/qq/kg/cache.ts index 8b0ec9798b..a26c88f098 100644 --- a/lib/routes/qq/kg/cache.ts +++ b/lib/routes/qq/kg/cache.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; const { JSDOM } = require('jsdom'); -module.exports = { +export default { getPlayInfo: async (ctx, shareId, ksong_mid = '') => { const link = `https://node.kg.qq.com/play?s=${shareId}`; const cache_key = ksong_mid ? `ksong:${ksong_mid}` : link; diff --git a/lib/routes/readhub/daily.ts b/lib/routes/readhub/daily.ts index 2213dac1e0..9a0ac794a3 100644 --- a/lib/routes/readhub/daily.ts +++ b/lib/routes/readhub/daily.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { rootUrl, processItems } = require('./util'); +import { rootUrl, processItems } from './util'; export default async (ctx) => { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 11; diff --git a/lib/routes/readhub/index.ts b/lib/routes/readhub/index.ts index 0f231c05bd..51e9114d4f 100644 --- a/lib/routes/readhub/index.ts +++ b/lib/routes/readhub/index.ts @@ -7,7 +7,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import * as path from 'node:path'; -const { rootUrl, apiTopicUrl, art, processItems } = require('./util'); +import { rootUrl, apiTopicUrl, art, processItems } from './util'; export default async (ctx) => { const { category = '' } = ctx.req.param(); diff --git a/lib/routes/readhub/util.ts b/lib/routes/readhub/util.ts index d27963bff6..a8c01d14ad 100644 --- a/lib/routes/readhub/util.ts +++ b/lib/routes/readhub/util.ts @@ -62,10 +62,6 @@ const processItems = async (items, tryGet) => ) ); -module.exports = { - rootUrl, - apiRootUrl, - apiTopicUrl, - art, - processItems, -}; +export { rootUrl, apiRootUrl, apiTopicUrl, processItems }; + +export { art } from '@/utils/render'; diff --git a/lib/routes/rsshub/referer-map.ts b/lib/routes/rsshub/referer-map.ts index b3406068d6..000342a2c8 100644 --- a/lib/routes/rsshub/referer-map.ts +++ b/lib/routes/rsshub/referer-map.ts @@ -11,6 +11,4 @@ const refererMap = new Map([ ['sinaimg.cn', 'https://weibo.com/'], ]); -module.exports = { - refererMap, -}; +export { refererMap }; diff --git a/lib/routes/science/blogs.ts b/lib/routes/science/blogs.ts index a105b9f541..285af0714d 100644 --- a/lib/routes/science/blogs.ts +++ b/lib/routes/science/blogs.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl } = require('./utils'); +import { baseUrl } from './utils'; import { config } from '@/config'; import puppeteer from '@/utils/puppeteer'; diff --git a/lib/routes/science/cover.ts b/lib/routes/science/cover.ts index 205d1c5ee2..3dc7cc2504 100644 --- a/lib/routes/science/cover.ts +++ b/lib/routes/science/cover.ts @@ -15,7 +15,7 @@ import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { baseUrl } = require('./utils'); +import { baseUrl } from './utils'; export default async (ctx) => { const pageURL = `${baseUrl}/journals`; diff --git a/lib/routes/science/current.ts b/lib/routes/science/current.ts index 4cef4c2e8c..403bf50f3d 100644 --- a/lib/routes/science/current.ts +++ b/lib/routes/science/current.ts @@ -10,7 +10,7 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; import got from '@/utils/got'; -const { baseUrl, fetchDesc, getItem } = require('./utils'); +import { baseUrl, fetchDesc, getItem } from './utils'; import puppeteer from '@/utils/puppeteer'; export default async (ctx) => { diff --git a/lib/routes/science/early.ts b/lib/routes/science/early.ts index 92e478c84b..64c8cdb80f 100644 --- a/lib/routes/science/early.ts +++ b/lib/routes/science/early.ts @@ -3,7 +3,7 @@ import { load } from 'cheerio'; import got from '@/utils/got'; import puppeteer from '@/utils/puppeteer'; -const { baseUrl, fetchDesc, getItem } = require('./utils'); +import { baseUrl, fetchDesc, getItem } from './utils'; export default async (ctx) => { const { journal = 'science' } = ctx.req.param(); diff --git a/lib/routes/science/utils.ts b/lib/routes/science/utils.ts index fd0c3829de..811cb9c9db 100644 --- a/lib/routes/science/utils.ts +++ b/lib/routes/science/utils.ts @@ -60,8 +60,4 @@ const getItem = (item, $) => { }; }; -module.exports = { - baseUrl, - fetchDesc, - getItem, -}; +export { baseUrl, fetchDesc, getItem }; diff --git a/lib/routes/sciencedirect/cf-email.ts b/lib/routes/sciencedirect/cf-email.ts index 16799ecef3..50205dadb3 100644 --- a/lib/routes/sciencedirect/cf-email.ts +++ b/lib/routes/sciencedirect/cf-email.ts @@ -1,36 +1,40 @@ +const decodeCFEmail = (encoded) => { + const parseHex = (string, position) => Number.parseInt(string.slice(position, position + 2), 16); + let decoded = ''; + const key = parseHex(encoded, 0); + for (let position = 2; position < encoded.length; position += 2) { + const byte = parseHex(encoded, position) ^ key; + decoded += String.fromCharCode(byte); + } + return decoded; +}; + +const encodeCFEmail = (email) => { + const key = Math.floor(Math.random() * 256); + let encoded = ('0' + key.toString(16)).slice(-2); + for (let position = 0; position < email.length; position++) { + const byte = email.charCodeAt(position) ^ key; + encoded += ('0' + byte.toString(16)).slice(-2); + } + return encoded; +}; + /** * The alogrithm is well-explained in https://andrewlock.net/simple-obfuscation-of-email-addresses-using-javascript/ */ -module.exports = { +export { // eslint-disable-next-line lines-around-comment /** * Returns decoded email address using CloudFlare's email address obfuscation. * @param {String} encoded - encoded email, (`cfemail` attribute in `__cf_email__` tag) * @returns decoded email address */ - decodeCFEmail: (encoded) => { - const parseHex = (string, position) => Number.parseInt(string.slice(position, position + 2), 16); - let decoded = ''; - const key = parseHex(encoded, 0); - for (let position = 2; position < encoded.length; position += 2) { - const byte = parseHex(encoded, position) ^ key; - decoded += String.fromCharCode(byte); - } - return decoded; - }, + decodeCFEmail, /** * Returns CloudFlare protected email address. * @param {String} email - email in plaintext * @returns obfuscated email */ - encodeCFEmail: (email) => { - const key = Math.floor(Math.random() * 256); - let encoded = ('0' + key.toString(16)).slice(-2); - for (let position = 0; position < email.length; position++) { - const byte = email.charCodeAt(position) ^ key; - encoded += ('0' + byte.toString(16)).slice(-2); - } - return encoded; - }, + encodeCFEmail, }; diff --git a/lib/routes/sciencedirect/journal.ts b/lib/routes/sciencedirect/journal.ts index 5b9440440b..069de83162 100644 --- a/lib/routes/sciencedirect/journal.ts +++ b/lib/routes/sciencedirect/journal.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { decodeCFEmail } = require('./cf-email'); +import { decodeCFEmail } from './cf-email'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/scmp/index.ts b/lib/routes/scmp/index.ts index 4d029b2573..312daa20ae 100644 --- a/lib/routes/scmp/index.ts +++ b/lib/routes/scmp/index.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { parseItem } = require('./utils'); +import { parseItem } from './utils'; export default async (ctx) => { const categoryId = ctx.req.param('category_id'); diff --git a/lib/routes/scmp/topic.ts b/lib/routes/scmp/topic.ts index f4df43ec43..4b42079244 100644 --- a/lib/routes/scmp/topic.ts +++ b/lib/routes/scmp/topic.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import { load } from 'cheerio'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { parseItem } = require('./utils'); +import { parseItem } from './utils'; export default async (ctx) => { const topic = ctx.req.param('topic'); diff --git a/lib/routes/scmp/utils.ts b/lib/routes/scmp/utils.ts index 540bd09414..2e75037d56 100644 --- a/lib/routes/scmp/utils.ts +++ b/lib/routes/scmp/utils.ts @@ -86,7 +86,4 @@ const parseItem = async (item) => { return item; }; -module.exports = { - renderHTML, - parseItem, -}; +export { renderHTML, parseItem }; diff --git a/lib/routes/sdu/data.ts b/lib/routes/sdu/data.ts index 35ef0309a3..079cd009c6 100644 --- a/lib/routes/sdu/data.ts +++ b/lib/routes/sdu/data.ts @@ -1,4 +1,4 @@ -module.exports = { +export default { wh: { news: { name: '山东大学(威海)新闻网', diff --git a/lib/routes/segmentfault/blogs.ts b/lib/routes/segmentfault/blogs.ts index 0fd30cf9df..df4002a948 100644 --- a/lib/routes/segmentfault/blogs.ts +++ b/lib/routes/segmentfault/blogs.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { host, acw_sc__v2, parseList, parseItems } = require('./utils'); +import { host, acw_sc__v2, parseList, parseItems } from './utils'; export default async (ctx) => { const tag = ctx.req.param('tag'); diff --git a/lib/routes/segmentfault/channel.ts b/lib/routes/segmentfault/channel.ts index 9fcd76423b..d5a2ca0e90 100644 --- a/lib/routes/segmentfault/channel.ts +++ b/lib/routes/segmentfault/channel.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { host, acw_sc__v2, parseList, parseItems } = require('./utils'); +import { host, acw_sc__v2, parseList, parseItems } from './utils'; export default async (ctx) => { const name = ctx.req.param('name'); diff --git a/lib/routes/segmentfault/user.ts b/lib/routes/segmentfault/user.ts index a56359d665..114d03aa43 100644 --- a/lib/routes/segmentfault/user.ts +++ b/lib/routes/segmentfault/user.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { host, acw_sc__v2, parseList, parseItems } = require('./utils'); +import { host, acw_sc__v2, parseList, parseItems } from './utils'; export default async (ctx) => { const name = ctx.req.param('name'); diff --git a/lib/routes/segmentfault/utils.ts b/lib/routes/segmentfault/utils.ts index a0c00ad7ae..63d3b1d14b 100644 --- a/lib/routes/segmentfault/utils.ts +++ b/lib/routes/segmentfault/utils.ts @@ -58,9 +58,4 @@ const parseItems = (cookie, item, tryGet) => return item; }); -module.exports = { - host, - acw_sc__v2, - parseList, - parseItems, -}; +export { host, acw_sc__v2, parseList, parseItems }; diff --git a/lib/routes/shiep/config.ts b/lib/routes/shiep/config.ts index 7051f3bd12..eddcf6d65c 100644 --- a/lib/routes/shiep/config.ts +++ b/lib/routes/shiep/config.ts @@ -64,6 +64,4 @@ const config = { zzb: { title: '组织部(老干部处、党校)', id: '1534' }, }; -module.exports = { - config, -}; +export { config }; diff --git a/lib/routes/shiep/index.ts b/lib/routes/shiep/index.ts index 14847ba985..9417b4122a 100644 --- a/lib/routes/shiep/index.ts +++ b/lib/routes/shiep/index.ts @@ -8,7 +8,7 @@ const dayjs = require('dayjs'); import * as path from 'node:path'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; -const { config } = require('./config'); +import { config } from './config'; export default async (ctx) => { const type = ctx.req.param('type'); diff --git a/lib/routes/showstart/artist.ts b/lib/routes/showstart/artist.ts index 6eb0545d93..b8a4446144 100644 --- a/lib/routes/showstart/artist.ts +++ b/lib/routes/showstart/artist.ts @@ -1,5 +1,5 @@ -const { TITLE, HOST } = require('./const'); -const { fetchPerformerInfo } = require('./service'); +import { TITLE, HOST } from './const'; +import { fetchPerformerInfo } from './service'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/showstart/brand.ts b/lib/routes/showstart/brand.ts index acf01c343d..f15ab750c1 100644 --- a/lib/routes/showstart/brand.ts +++ b/lib/routes/showstart/brand.ts @@ -1,5 +1,5 @@ -const { TITLE, HOST } = require('./const'); -const { fetchBrandInfo } = require('./service'); +import { TITLE, HOST } from './const'; +import { fetchBrandInfo } from './service'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/showstart/const.ts b/lib/routes/showstart/const.ts index f7880faed0..8817b55835 100644 --- a/lib/routes/showstart/const.ts +++ b/lib/routes/showstart/const.ts @@ -1,4 +1,4 @@ -module.exports = { - HOST: 'https://www.showstart.com', - TITLE: '秀动网', -}; +const HOST = 'https://www.showstart.com'; +const TITLE = '秀动网'; + +export { HOST, TITLE }; diff --git a/lib/routes/showstart/event.ts b/lib/routes/showstart/event.ts index 15a5a2c8b6..31b067e291 100644 --- a/lib/routes/showstart/event.ts +++ b/lib/routes/showstart/event.ts @@ -1,5 +1,5 @@ -const { TITLE, HOST } = require('./const'); -const { fetchActivityList, fetchDictionary } = require('./service'); +import { TITLE, HOST } from './const'; +import { fetchActivityList, fetchDictionary } from './service'; export default async (ctx) => { const cityCode = Number.parseInt(ctx.req.param('cityCode')); diff --git a/lib/routes/showstart/search.ts b/lib/routes/showstart/search.ts index f529537651..8276762ec8 100644 --- a/lib/routes/showstart/search.ts +++ b/lib/routes/showstart/search.ts @@ -1,5 +1,5 @@ -const { TITLE, HOST } = require('./const'); -const { fetchActivityList, fetchPerformerList, fetchBrandList, fetchCityList, fetchStyleList } = require('./service'); +import { TITLE, HOST } from './const'; +import { fetchActivityList, fetchPerformerList, fetchBrandList, fetchCityList, fetchStyleList } from './service'; export default async (ctx) => { const type = ctx.req.param('type') || ''; diff --git a/lib/routes/showstart/service.ts b/lib/routes/showstart/service.ts index ac2bde1cc5..a7f6ba71de 100644 --- a/lib/routes/showstart/service.ts +++ b/lib/routes/showstart/service.ts @@ -1,5 +1,5 @@ -const { HOST } = require('./const'); -const { getAccessToken, post, sortBy, uniqBy } = require('./utils'); +import { HOST } from './const'; +import { getAccessToken, post, sortBy, uniqBy } from './utils'; async function fetchActivityList( params = { @@ -155,13 +155,4 @@ async function fetchDictionary(cityCode, showStyle) { }; } -module.exports = { - fetchActivityList, - fetchCityList, - fetchStyleList, - fetchPerformerList, - fetchPerformerInfo, - fetchBrandList, - fetchBrandInfo, - fetchDictionary, -}; +export { fetchActivityList, fetchCityList, fetchStyleList, fetchPerformerList, fetchPerformerInfo, fetchBrandList, fetchBrandInfo, fetchDictionary }; diff --git a/lib/routes/showstart/utils.ts b/lib/routes/showstart/utils.ts index a9634a23be..996d146881 100644 --- a/lib/routes/showstart/utils.ts +++ b/lib/routes/showstart/utils.ts @@ -83,10 +83,4 @@ function uniqBy(items, key) { }); } -module.exports = { - post, - getAccessToken, - uuid, - sortBy, - uniqBy, -}; +export { post, getAccessToken, uuid, sortBy, uniqBy }; diff --git a/lib/routes/sina/chuangshiji.ts b/lib/routes/sina/chuangshiji.ts index 3ac7d537d8..330b47c9c3 100644 --- a/lib/routes/sina/chuangshiji.ts +++ b/lib/routes/sina/chuangshiji.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getRollNewsList, parseRollNewsList, parseArticle } = require('./utils'); +import { getRollNewsList, parseRollNewsList, parseArticle } from './utils'; export default async (ctx) => { const pageid = '402'; diff --git a/lib/routes/sina/discovery.ts b/lib/routes/sina/discovery.ts index 990585835e..0414749cdd 100644 --- a/lib/routes/sina/discovery.ts +++ b/lib/routes/sina/discovery.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getRollNewsList, parseRollNewsList, parseArticle } = require('./utils'); +import { getRollNewsList, parseRollNewsList, parseArticle } from './utils'; const link = 'https://tech.sina.com.cn/discovery/'; const map = new Map([ diff --git a/lib/routes/sina/rollnews.ts b/lib/routes/sina/rollnews.ts index 164ae44ec0..07d5cf1e04 100644 --- a/lib/routes/sina/rollnews.ts +++ b/lib/routes/sina/rollnews.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getRollNewsList, parseRollNewsList, parseArticle } = require('./utils'); +import { getRollNewsList, parseRollNewsList, parseArticle } from './utils'; export default async (ctx) => { const map = { diff --git a/lib/routes/sina/sports.ts b/lib/routes/sina/sports.ts index 9dfe5beaa2..6a518bb2e5 100644 --- a/lib/routes/sina/sports.ts +++ b/lib/routes/sina/sports.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { parseArticle } = require('./utils'); +import { parseArticle } from './utils'; export default async (ctx) => { const type = ctx.req.param('type'); diff --git a/lib/routes/sina/utils.ts b/lib/routes/sina/utils.ts index 6677de2830..ee7c19cc5b 100644 --- a/lib/routes/sina/utils.ts +++ b/lib/routes/sina/utils.ts @@ -100,8 +100,4 @@ const parseArticle = (item, tryGet) => return item; }); -module.exports = { - getRollNewsList, - parseRollNewsList, - parseArticle, -}; +export { getRollNewsList, parseRollNewsList, parseArticle }; diff --git a/lib/routes/southcn/nfapp/column.ts b/lib/routes/southcn/nfapp/column.ts index 51b8f952fa..d46229abe6 100644 --- a/lib/routes/southcn/nfapp/column.ts +++ b/lib/routes/southcn/nfapp/column.ts @@ -7,7 +7,7 @@ import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { parseArticle } = require('./utils'); +import { parseArticle } from './utils'; export default async (ctx) => { const columnId = ctx.req.param('column') ?? 38; diff --git a/lib/routes/southcn/nfapp/reporter.ts b/lib/routes/southcn/nfapp/reporter.ts index 5e9b2901a9..e3bdf039d7 100644 --- a/lib/routes/southcn/nfapp/reporter.ts +++ b/lib/routes/southcn/nfapp/reporter.ts @@ -6,7 +6,7 @@ import got from '@/utils/got'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; -const { parseArticle } = require('./utils'); +import { parseArticle } from './utils'; import * as path from 'node:path'; export default async (ctx) => { diff --git a/lib/routes/southcn/nfapp/utils.ts b/lib/routes/southcn/nfapp/utils.ts index bdc1dd98ce..9a3d28d3ef 100644 --- a/lib/routes/southcn/nfapp/utils.ts +++ b/lib/routes/southcn/nfapp/utils.ts @@ -18,6 +18,4 @@ const parseArticle = (item, tryGet) => return item; }); -module.exports = { - parseArticle, -}; +export { parseArticle }; diff --git a/lib/routes/spotify/utils.ts b/lib/routes/spotify/utils.ts index 622ac55e0e..bed3d4625c 100644 --- a/lib/routes/spotify/utils.ts +++ b/lib/routes/spotify/utils.ts @@ -54,9 +54,4 @@ const parseTrack = (x) => ({ const parseArtist = (x) => ({ title: x.name, description: `${x.name}, with ${x.followers.total} followers`, link: x.external_urls.spotify }); -module.exports = { - getPublicToken, - getPrivateToken, - parseTrack, - parseArtist, -}; +export { getPublicToken, getPrivateToken, parseTrack, parseArtist }; diff --git a/lib/routes/stockedge/daily-news.ts b/lib/routes/stockedge/daily-news.ts index 89a43bcc28..650560b0c6 100644 --- a/lib/routes/stockedge/daily-news.ts +++ b/lib/routes/stockedge/daily-news.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getData, getList } = require('./utils'); +import { getData, getList } from './utils'; export default async (ctx) => { const baseUrl = 'https://web.stockedge.com/daily-updates?section=news'; diff --git a/lib/routes/stockedge/utils.ts b/lib/routes/stockedge/utils.ts index c615cbe83a..56ccbe49c3 100644 --- a/lib/routes/stockedge/utils.ts +++ b/lib/routes/stockedge/utils.ts @@ -29,4 +29,4 @@ const getList = (data) => }; }); -module.exports = { getData, getList }; +export { getData, getList }; diff --git a/lib/routes/studygolang/go.ts b/lib/routes/studygolang/go.ts index 5fa17cdbb5..8ab2780b5b 100644 --- a/lib/routes/studygolang/go.ts +++ b/lib/routes/studygolang/go.ts @@ -1,4 +1,4 @@ -const { FetchGoItems } = require('./utils'); +import { FetchGoItems } from './utils'; export default async (ctx) => { ctx.set('data', await FetchGoItems(ctx)); diff --git a/lib/routes/studygolang/jobs.ts b/lib/routes/studygolang/jobs.ts index 8fb2f89954..c3cd7a5e9a 100644 --- a/lib/routes/studygolang/jobs.ts +++ b/lib/routes/studygolang/jobs.ts @@ -1,4 +1,4 @@ -const { FetchGoItems } = require('./utils'); +import { FetchGoItems } from './utils'; export default async (ctx) => { ctx.set('data', await FetchGoItems(ctx, 'jobs')); diff --git a/lib/routes/studygolang/utils.ts b/lib/routes/studygolang/utils.ts index 4c21e75cc1..76bca4d266 100644 --- a/lib/routes/studygolang/utils.ts +++ b/lib/routes/studygolang/utils.ts @@ -8,68 +8,68 @@ const md = require('markdown-it')({ linkify: true, }); -module.exports = { - FetchGoItems: async (ctx, rewriteId) => { - const id = rewriteId || (ctx.req.param('id') ?? 'weekly'); - const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 50; +const FetchGoItems = async (ctx, rewriteId) => { + const id = rewriteId || (ctx.req.param('id') ?? 'weekly'); + const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit')) : 50; - const rootUrl = 'https://studygolang.com'; - const currentUrl = `${rootUrl}/go/${id}`; + const rootUrl = 'https://studygolang.com'; + const currentUrl = `${rootUrl}/go/${id}`; - const response = await got({ - method: 'get', - url: currentUrl, + const response = await got({ + method: 'get', + url: currentUrl, + }); + + const $ = load(response.data); + + let items = $('.right-info .title') + .slice(0, limit) + .toArray() + .map((item) => { + item = $(item); + + const a = item.find('a'); + + return { + title: a.text(), + link: `${rootUrl}${a.attr('href')}`, + author: item.next().find('.author').text(), + category: item + .next() + .find('.node') + .toArray() + .map((n) => $(n).text()), + }; }); - const $ = load(response.data); + items = await Promise.all( + items.map((item) => + cache.tryGet(item.link, async () => { + const detailResponse = await got({ + method: 'get', + url: item.link, + }); - let items = $('.right-info .title') - .slice(0, limit) - .toArray() - .map((item) => { - item = $(item); + const content = load(detailResponse.data); - const a = item.find('a'); + item.pubDate = timezone(parseDate(content('.timeago').first().attr('title')), +8); - return { - title: a.text(), - link: `${rootUrl}${a.attr('href')}`, - author: item.next().find('.author').text(), - category: item - .next() - .find('.node') - .toArray() - .map((n) => $(n).text()), - }; - }); + try { + item.description = md.render(content('.content').html()); + } catch { + // no-empty + } - items = await Promise.all( - items.map((item) => - cache.tryGet(item.link, async () => { - const detailResponse = await got({ - method: 'get', - url: item.link, - }); + return item; + }) + ) + ); - const content = load(detailResponse.data); - - item.pubDate = timezone(parseDate(content('.timeago').first().attr('title')), +8); - - try { - item.description = md.render(content('.content').html()); - } catch { - // no-empty - } - - return item; - }) - ) - ); - - return { - title: `Go语言中文网 - ${$('.title h2').text()}`, - link: currentUrl, - item: items, - }; - }, + return { + title: `Go语言中文网 - ${$('.title h2').text()}`, + link: currentUrl, + item: items, + }; }; + +export { FetchGoItems }; diff --git a/lib/routes/studygolang/weekly.ts b/lib/routes/studygolang/weekly.ts index a2760af03a..1e557343cd 100644 --- a/lib/routes/studygolang/weekly.ts +++ b/lib/routes/studygolang/weekly.ts @@ -1,4 +1,4 @@ -const { FetchGoItems } = require('./utils'); +import { FetchGoItems } from './utils'; export default async (ctx) => { ctx.set('data', await FetchGoItems(ctx, 'weekly')); diff --git a/lib/routes/swjtu/utils.ts b/lib/routes/swjtu/utils.ts index 12cad3a63c..fe5efa9665 100644 --- a/lib/routes/swjtu/utils.ts +++ b/lib/routes/swjtu/utils.ts @@ -29,8 +29,4 @@ const descpPage = (link, cache) => }; }); -module.exports = { - descpPage, - renderDetail, - renderDesc, -}; +export { descpPage, renderDetail, renderDesc }; diff --git a/lib/routes/swpu/bgw.ts b/lib/routes/swpu/bgw.ts index cb4ad56aba..5a9b629f6b 100644 --- a/lib/routes/swpu/bgw.ts +++ b/lib/routes/swpu/bgw.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { joinUrl } = require('./utils'); +import { joinUrl } from './utils'; import { parseDate } from '@/utils/parse-date'; import { load } from 'cheerio'; import got from '@/utils/got'; diff --git a/lib/routes/swpu/dean.ts b/lib/routes/swpu/dean.ts index 201bbb39cd..9cd74cbbfc 100644 --- a/lib/routes/swpu/dean.ts +++ b/lib/routes/swpu/dean.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { joinUrl } = require('./utils'); +import { joinUrl } from './utils'; import { parseDate } from '@/utils/parse-date'; import { load } from 'cheerio'; import got from '@/utils/got'; diff --git a/lib/routes/swpu/dxy.ts b/lib/routes/swpu/dxy.ts index 92df9d0631..210a7a0d9b 100644 --- a/lib/routes/swpu/dxy.ts +++ b/lib/routes/swpu/dxy.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { joinUrl } = require('./utils'); +import { joinUrl } from './utils'; import { parseDate } from '@/utils/parse-date'; import { load } from 'cheerio'; import got from '@/utils/got'; diff --git a/lib/routes/swpu/scs.ts b/lib/routes/swpu/scs.ts index 4f054a6049..a83553edde 100644 --- a/lib/routes/swpu/scs.ts +++ b/lib/routes/swpu/scs.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { joinUrl } = require('./utils'); +import { joinUrl } from './utils'; import { parseDate } from '@/utils/parse-date'; import { load } from 'cheerio'; import got from '@/utils/got'; diff --git a/lib/routes/swpu/utils.ts b/lib/routes/swpu/utils.ts index d5d1ec5ff8..11cb952274 100644 --- a/lib/routes/swpu/utils.ts +++ b/lib/routes/swpu/utils.ts @@ -17,6 +17,4 @@ function joinUrl(url1, url2) { return url1 + url2; } -module.exports = { - joinUrl, -}; +export { joinUrl }; diff --git a/lib/routes/szu/yz/utils.ts b/lib/routes/szu/yz/utils.ts index 3f9bee96fd..fa53749aec 100644 --- a/lib/routes/szu/yz/utils.ts +++ b/lib/routes/szu/yz/utils.ts @@ -69,6 +69,4 @@ const ProcessFeed = (list, cache, current) => }) ); -module.exports = { - ProcessFeed, -}; +export { ProcessFeed }; diff --git a/lib/routes/taptap/changelog.ts b/lib/routes/taptap/changelog.ts index f3167485fd..9795645058 100644 --- a/lib/routes/taptap/changelog.ts +++ b/lib/routes/taptap/changelog.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { getRootUrl, appDetail, X_UA } = require('./utils'); +import { getRootUrl, appDetail, X_UA } from './utils'; export default async (ctx) => { const is_intl = ctx.req.url.indexOf('/intl/') === 0; diff --git a/lib/routes/taptap/review.ts b/lib/routes/taptap/review.ts index 6f174da1bb..4e4a068dbe 100644 --- a/lib/routes/taptap/review.ts +++ b/lib/routes/taptap/review.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { getRootUrl, appDetail, X_UA } = require('./utils'); +import { getRootUrl, appDetail, X_UA } from './utils'; const sortMap = { default: { diff --git a/lib/routes/taptap/topic.ts b/lib/routes/taptap/topic.ts index 743a474e90..1fb97879b7 100644 --- a/lib/routes/taptap/topic.ts +++ b/lib/routes/taptap/topic.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { getRootUrl, X_UA, appDetail, imagePost, topicPost, videoPost } = require('./utils'); +import { getRootUrl, X_UA, appDetail, imagePost, topicPost, videoPost } from './utils'; const typeMap = { feed: { diff --git a/lib/routes/taptap/utils.ts b/lib/routes/taptap/utils.ts index 6dbbd5ee61..6f10b14d61 100644 --- a/lib/routes/taptap/utils.ts +++ b/lib/routes/taptap/utils.ts @@ -47,11 +47,4 @@ const videoPost = (video) => previewUrl: video?.video_resource.preview_animation.original_url, }); -module.exports = { - getRootUrl, - X_UA, - appDetail, - imagePost, - topicPost, - videoPost, -}; +export { getRootUrl, X_UA, appDetail, imagePost, topicPost, videoPost }; diff --git a/lib/routes/techpowerup/index.ts b/lib/routes/techpowerup/index.ts index f95fe5bf9f..be235b4cde 100644 --- a/lib/routes/techpowerup/index.ts +++ b/lib/routes/techpowerup/index.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, headers, fixImages, parseReviews } = require('./utils'); +import { baseUrl, headers, fixImages, parseReviews } from './utils'; export default async (ctx) => { const { data: response } = await got(baseUrl, { diff --git a/lib/routes/techpowerup/review.ts b/lib/routes/techpowerup/review.ts index f85661a3a3..27250e63ca 100644 --- a/lib/routes/techpowerup/review.ts +++ b/lib/routes/techpowerup/review.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, headers, fixImages, parseReviews } = require('./utils'); +import { baseUrl, headers, fixImages, parseReviews } from './utils'; export default async (ctx) => { const keyword = ctx.req.param('keyword'); diff --git a/lib/routes/techpowerup/utils.ts b/lib/routes/techpowerup/utils.ts index 6a40d018a5..529f8f7b7d 100644 --- a/lib/routes/techpowerup/utils.ts +++ b/lib/routes/techpowerup/utils.ts @@ -73,12 +73,4 @@ const parseReviews = async ($, item) => { item.description = content.html(); }; -module.exports = { - baseUrl, - headers, - fixImages, - hdImage, - parseReviews, - removeFigureStyle, - removeResponsiveStyle, -}; +export { baseUrl, headers, fixImages, hdImage, parseReviews, removeFigureStyle, removeResponsiveStyle }; diff --git a/lib/routes/telegram/tglib/channel.ts b/lib/routes/telegram/tglib/channel.ts index 99a5b81d3f..2911c2b05d 100644 --- a/lib/routes/telegram/tglib/channel.ts +++ b/lib/routes/telegram/tglib/channel.ts @@ -1,6 +1,6 @@ import wait from '@/utils/wait'; import { config } from '@/config'; -const { client, decodeMedia, getFilename, getMediaLink, streamDocument, streamThumbnail } = require('./client'); +import { client, decodeMedia, getFilename, getMediaLink, streamDocument, streamThumbnail } from './client'; const bigInt = require('telegram/Helpers').returnBigInt; const HTMLParser = require('telegram/extensions/html').HTMLParser; diff --git a/lib/routes/telegram/tglib/client.ts b/lib/routes/telegram/tglib/client.ts index f0f730eaa2..bd25b079c3 100644 --- a/lib/routes/telegram/tglib/client.ts +++ b/lib/routes/telegram/tglib/client.ts @@ -176,7 +176,7 @@ function streamDocument(obj, thumbSize = '', offset, limit) { return client.iterDownload(iterFileParams); } -module.exports = { client, getMediaLink, decodeMedia, getFilename, streamDocument, streamThumbnail }; +export { client, getMediaLink, decodeMedia, getFilename, streamDocument, streamThumbnail }; if (require.main === module) { Promise.resolve().then(async () => { diff --git a/lib/routes/tencent/news/coronavirus/data.ts b/lib/routes/tencent/news/coronavirus/data.ts index 5fc006a18a..9a009f61d8 100644 --- a/lib/routes/tencent/news/coronavirus/data.ts +++ b/lib/routes/tencent/news/coronavirus/data.ts @@ -1,7 +1,7 @@ import { getCurrentPath } from '@/utils/helpers'; const __dirname = getCurrentPath(import.meta.url); -const { getData } = require('./utils'); +import { getData } from './utils'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/tencent/news/coronavirus/total.ts b/lib/routes/tencent/news/coronavirus/total.ts index fac3d7d569..6c56690e87 100644 --- a/lib/routes/tencent/news/coronavirus/total.ts +++ b/lib/routes/tencent/news/coronavirus/total.ts @@ -1,7 +1,7 @@ import { getCurrentPath } from '@/utils/helpers'; const __dirname = getCurrentPath(import.meta.url); -const { getData } = require('./utils'); +import { getData } from './utils'; import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/tencent/news/coronavirus/utils.ts b/lib/routes/tencent/news/coronavirus/utils.ts index dcb0837eeb..a3b7e9b3d1 100644 --- a/lib/routes/tencent/news/coronavirus/utils.ts +++ b/lib/routes/tencent/news/coronavirus/utils.ts @@ -12,6 +12,4 @@ const getData = async (modules = []) => { return response.data; }; -module.exports = { - getData, -}; +export { getData }; diff --git a/lib/routes/tesla/price/get-price.ts b/lib/routes/tesla/price/get-price.ts index 2ad1c2ab1e..1b5ab8b58f 100644 --- a/lib/routes/tesla/price/get-price.ts +++ b/lib/routes/tesla/price/get-price.ts @@ -20,6 +20,4 @@ async function getTeslaPrice(link) { return price; } -module.exports = { - getTeslaPrice, -}; +export { getTeslaPrice }; diff --git a/lib/routes/tesla/price/index.ts b/lib/routes/tesla/price/index.ts index 0770b34a0a..8631a2f402 100644 --- a/lib/routes/tesla/price/index.ts +++ b/lib/routes/tesla/price/index.ts @@ -1,4 +1,4 @@ -const { getTeslaPrice } = require('./get-price'); +import { getTeslaPrice } from './get-price'; export default async (ctx) => { const cars = [ diff --git a/lib/routes/tfc-taiwan/index.ts b/lib/routes/tfc-taiwan/index.ts index 87aec2d2e6..87becb498c 100644 --- a/lib/routes/tfc-taiwan/index.ts +++ b/lib/routes/tfc-taiwan/index.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { baseUrl, parseList, parseItems } = require('./utils'); +import { baseUrl, parseList, parseItems } from './utils'; export default async (ctx) => { const requestPath = ctx.req.path; diff --git a/lib/routes/tfc-taiwan/utils.ts b/lib/routes/tfc-taiwan/utils.ts index 2e08e9d8eb..64e1d18de4 100644 --- a/lib/routes/tfc-taiwan/utils.ts +++ b/lib/routes/tfc-taiwan/utils.ts @@ -52,8 +52,4 @@ const parseItems = (list, tryGet) => }) ); -module.exports = { - baseUrl, - parseList, - parseItems, -}; +export { baseUrl, parseList, parseItems }; diff --git a/lib/routes/theatlantic/news.ts b/lib/routes/theatlantic/news.ts index bac5ce1607..135d111ae0 100644 --- a/lib/routes/theatlantic/news.ts +++ b/lib/routes/theatlantic/news.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { load } from 'cheerio'; -const { getArticleDetails } = require('./utils'); +import { getArticleDetails } from './utils'; export default async (ctx) => { const host = 'https://www.theatlantic.com'; const category = ctx.req.param('category'); diff --git a/lib/routes/theatlantic/utils.ts b/lib/routes/theatlantic/utils.ts index c757e38d13..1b58534bb4 100644 --- a/lib/routes/theatlantic/utils.ts +++ b/lib/routes/theatlantic/utils.ts @@ -55,6 +55,4 @@ const getArticleDetails = async (items) => { return list; }; -module.exports = { - getArticleDetails, -}; +export { getArticleDetails }; diff --git a/lib/routes/thecatcity/index.ts b/lib/routes/thecatcity/index.ts index ef0582f1ee..cd4b12a804 100644 --- a/lib/routes/thecatcity/index.ts +++ b/lib/routes/thecatcity/index.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { termsMap } = require('./terms-map'); +import { termsMap } from './terms-map'; const baseUrl = 'https://thecatcity.com'; diff --git a/lib/routes/thecatcity/terms-map.ts b/lib/routes/thecatcity/terms-map.ts index 850f4800d5..016cdc597f 100644 --- a/lib/routes/thecatcity/terms-map.ts +++ b/lib/routes/thecatcity/terms-map.ts @@ -25,6 +25,4 @@ const termsMap = { }, }; -module.exports = { - termsMap, -}; +export { termsMap }; diff --git a/lib/routes/themoviedb/collection.ts b/lib/routes/themoviedb/collection.ts index cdbab79279..f8c8994157 100644 --- a/lib/routes/themoviedb/collection.ts +++ b/lib/routes/themoviedb/collection.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; const apiKey = require('./api-key'); -const { handleMovieItem } = require('./utils'); +import { handleMovieItem } from './utils'; export default async (ctx) => { const { id, lang } = ctx.req.param(); diff --git a/lib/routes/themoviedb/episodes.ts b/lib/routes/themoviedb/episodes.ts index 6123076e52..71e30549aa 100644 --- a/lib/routes/themoviedb/episodes.ts +++ b/lib/routes/themoviedb/episodes.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; const apiKey = require('./api-key'); -const { handleDescription } = require('./utils'); +import { handleDescription } from './utils'; export default async (ctx) => { const { id, seasonNumber, lang } = ctx.req.param(); diff --git a/lib/routes/themoviedb/seasons.ts b/lib/routes/themoviedb/seasons.ts index 360a9eebdb..84efa4e5c9 100644 --- a/lib/routes/themoviedb/seasons.ts +++ b/lib/routes/themoviedb/seasons.ts @@ -1,7 +1,7 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; const apiKey = require('./api-key'); -const { handleDescription } = require('./utils'); +import { handleDescription } from './utils'; export default async (ctx) => { const { id, lang } = ctx.req.param(); diff --git a/lib/routes/themoviedb/sheet.ts b/lib/routes/themoviedb/sheet.ts index 7df46f7356..8fc0dea0bc 100644 --- a/lib/routes/themoviedb/sheet.ts +++ b/lib/routes/themoviedb/sheet.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; const apiKey = require('./api-key'); -const { MEDIA_TYPE_TO_ITEM_HANDLE } = require('./utils'); +import { MEDIA_TYPE_TO_ITEM_HANDLE } from './utils'; const API_PATH = { movie: { diff --git a/lib/routes/themoviedb/trending.ts b/lib/routes/themoviedb/trending.ts index fca2a690b5..4879e1b346 100644 --- a/lib/routes/themoviedb/trending.ts +++ b/lib/routes/themoviedb/trending.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; const apiKey = require('./api-key'); -const { MEDIA_TYPE_TO_ITEM_HANDLE } = require('./utils'); +import { MEDIA_TYPE_TO_ITEM_HANDLE } from './utils'; const MEDIA_TYPE_TO_TITLE = { tv: 'TV Shows', diff --git a/lib/routes/themoviedb/utils.ts b/lib/routes/themoviedb/utils.ts index 05af36c6a1..d9740a39cd 100644 --- a/lib/routes/themoviedb/utils.ts +++ b/lib/routes/themoviedb/utils.ts @@ -34,4 +34,4 @@ const MEDIA_TYPE_TO_ITEM_HANDLE = { movie: handleMovieItem, }; -module.exports = { handleDescription, handleMovieItem, handleTVShowItem, MEDIA_TYPE_TO_ITEM_HANDLE }; +export { handleDescription, handleMovieItem, handleTVShowItem, MEDIA_TYPE_TO_ITEM_HANDLE }; diff --git a/lib/routes/thepaper/utils.ts b/lib/routes/thepaper/utils.ts index 19f4944f52..ae28586a90 100644 --- a/lib/routes/thepaper/utils.ts +++ b/lib/routes/thepaper/utils.ts @@ -20,7 +20,7 @@ const defaultRssItem = (item) => ({ }, }); -module.exports = { +export default { ProcessItem: (item, ctx) => { const useOldMode = ctx.req.query('old') === 'yes'; if (item.link) { diff --git a/lib/routes/threads/index.ts b/lib/routes/threads/index.ts index 1367ab1b4f..876ebeb32b 100644 --- a/lib/routes/threads/index.ts +++ b/lib/routes/threads/index.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { PROFILE_QUERY, REPLIES_QUERY, THREADS_QUERY, apiUrl, threadUrl, profileUrl, extractTokens, makeHeader, buildContent } = require('./utils'); +import { PROFILE_QUERY, REPLIES_QUERY, THREADS_QUERY, apiUrl, threadUrl, profileUrl, extractTokens, makeHeader, buildContent } from './utils'; export default async (ctx) => { const { user, routeParams } = ctx.req.param(); diff --git a/lib/routes/threads/utils.ts b/lib/routes/threads/utils.ts index b1ae7e11b8..08a5eccbea 100644 --- a/lib/routes/threads/utils.ts +++ b/lib/routes/threads/utils.ts @@ -131,17 +131,4 @@ const buildContent = (item, options) => { return { title, description }; }; -module.exports = { - apiUrl, - profileUrl, - threadUrl, - PROFILE_QUERY, - THREADS_QUERY, - REPLIES_QUERY, - USER_AGENT, - extractTokens, - makeHeader, - hasMedia, - buildMedia, - buildContent, -}; +export { apiUrl, profileUrl, threadUrl, PROFILE_QUERY, THREADS_QUERY, REPLIES_QUERY, USER_AGENT, extractTokens, makeHeader, hasMedia, buildMedia, buildContent }; diff --git a/lib/routes/tingtingfm/program.ts b/lib/routes/tingtingfm/program.ts index 511fb145a6..cfc635459e 100644 --- a/lib/routes/tingtingfm/program.ts +++ b/lib/routes/tingtingfm/program.ts @@ -7,7 +7,7 @@ import { config } from '@/config'; import { art } from '@/utils/render'; import * as path from 'node:path'; import { parseDate } from '@/utils/parse-date'; -const { getClientVal, sign } = require('./utils'); +import { getClientVal, sign } from './utils'; export default async (ctx) => { const programId = ctx.req.param('programId'); diff --git a/lib/routes/tingtingfm/utils.ts b/lib/routes/tingtingfm/utils.ts index 0ee38d8dd7..7c5a99792b 100644 --- a/lib/routes/tingtingfm/utils.ts +++ b/lib/routes/tingtingfm/utils.ts @@ -26,7 +26,4 @@ const sign = (params) => { return md5(`${searchParams.toString()}_${SALT}`); }; -module.exports = { - getClientVal, - sign, -}; +export { getClientVal, sign }; diff --git a/lib/routes/twitter/utils.ts b/lib/routes/twitter/utils.ts index 3ab15451d7..d4260aa27d 100644 --- a/lib/routes/twitter/utils.ts +++ b/lib/routes/twitter/utils.ts @@ -474,8 +474,4 @@ const parseRouteParams = (routeParams) => { return { count, exclude_replies, include_rts, force_web_api }; }; -module.exports = { - ProcessFeed, - getAppClient, - parseRouteParams, -}; +export { ProcessFeed, getAppClient, parseRouteParams }; diff --git a/lib/routes/twitter/web-api/constants.ts b/lib/routes/twitter/web-api/constants.ts index 287093e4c4..c4bedb05fb 100644 --- a/lib/routes/twitter/web-api/constants.ts +++ b/lib/routes/twitter/web-api/constants.ts @@ -83,13 +83,4 @@ const bearerToken = 'Bearer AAAAAAAAAAAAAAAAAAAAAFXzAwAAAAAAMHCxpeSDG1gLNLghVe8d const guestActivateUrl = baseUrl + '/1.1/guest/activate.json'; -module.exports = { - baseUrl, - consumerKey, - consumerSecret, - gqlMap, - gqlFeatures, - timelineParams, - bearerToken, - guestActivateUrl, -}; +export { baseUrl, consumerKey, consumerSecret, gqlMap, gqlFeatures, timelineParams, bearerToken, guestActivateUrl }; diff --git a/lib/routes/twitter/web-api/login.ts b/lib/routes/twitter/web-api/login.ts index 9a2858847b..665a9909cb 100644 --- a/lib/routes/twitter/web-api/login.ts +++ b/lib/routes/twitter/web-api/login.ts @@ -1,6 +1,6 @@ // https://github.com/BANKA2017/twitter-monitor/blob/node/apps/open_account/scripts/login.mjs -const { bearerToken, guestActivateUrl } = require('./constants'); +import { bearerToken, guestActivateUrl } from './constants'; import got from '@/utils/got'; const crypto = require('crypto'); import { config } from '@/config'; diff --git a/lib/routes/twitter/web-api/media.ts b/lib/routes/twitter/web-api/media.ts index a6a8d0f6a9..4a7118f400 100644 --- a/lib/routes/twitter/web-api/media.ts +++ b/lib/routes/twitter/web-api/media.ts @@ -1,7 +1,7 @@ const utils = require('../utils'); // import { config } from '@/config'; -const { getUser, getUserMedia } = require('./twitter-api'); -const { initToken } = require('./token'); +import { getUser, getUserMedia } from './twitter-api'; +import { initToken } from './token'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/twitter/web-api/search.ts b/lib/routes/twitter/web-api/search.ts index e6861df7d3..3c98a4010d 100644 --- a/lib/routes/twitter/web-api/search.ts +++ b/lib/routes/twitter/web-api/search.ts @@ -1,6 +1,6 @@ const utils = require('../utils'); -const { getSearch } = require('./twitter-api'); -const { initToken } = require('./token'); +import { getSearch } from './twitter-api'; +import { initToken } from './token'; export default async (ctx) => { const keyword = ctx.req.param('keyword'); diff --git a/lib/routes/twitter/web-api/token.ts b/lib/routes/twitter/web-api/token.ts index 76d40d3790..b6423d76f4 100644 --- a/lib/routes/twitter/web-api/token.ts +++ b/lib/routes/twitter/web-api/token.ts @@ -38,7 +38,4 @@ function getToken() { return token; } -module.exports = { - initToken, - getToken, -}; +export { initToken, getToken }; diff --git a/lib/routes/twitter/web-api/tweet.ts b/lib/routes/twitter/web-api/tweet.ts index 2740d2e79f..211f38cd15 100644 --- a/lib/routes/twitter/web-api/tweet.ts +++ b/lib/routes/twitter/web-api/tweet.ts @@ -1,9 +1,9 @@ // import { config } from '@/config'; -const { getUser, getUserTweet } = require('./twitter-api'); +import { getUser, getUserTweet } from './twitter-api'; const utils = require('../utils'); import { fallback, queryToBoolean } from '@/utils/readable-social'; import { config } from '@/config'; -const { initToken } = require('./token'); +import { initToken } from './token'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/twitter/web-api/twitter-api.ts b/lib/routes/twitter/web-api/twitter-api.ts index d1675d233a..16f3adf048 100644 --- a/lib/routes/twitter/web-api/twitter-api.ts +++ b/lib/routes/twitter/web-api/twitter-api.ts @@ -1,11 +1,11 @@ -const { baseUrl, gqlMap, gqlFeatures, consumerKey, consumerSecret } = require('./constants'); +import { baseUrl, gqlMap, gqlFeatures, consumerKey, consumerSecret } from './constants'; import { config } from '@/config'; import logger from '@/utils/logger'; import got from '@/utils/got'; const OAuth = require('oauth-1.0a'); const CryptoJS = require('crypto-js'); import queryString from 'query-string'; -const { getToken } = require('./token'); +import { getToken } from './token'; import cache from '@/utils/cache'; const twitterGot = async (url, params) => { @@ -269,7 +269,7 @@ const getUserTweet = (id, params) => cacheTryGet(id, params, getUserTweetByStatu const getSearch = async (keywords, params = {}) => gatherLegacyFromData(await timelineKeywords(keywords, params)); -module.exports = { +export { getUser, getUserTweets, getUserTweetsAndReplies, diff --git a/lib/routes/twitter/web-api/user.ts b/lib/routes/twitter/web-api/user.ts index 420f296775..b38d734ff5 100644 --- a/lib/routes/twitter/web-api/user.ts +++ b/lib/routes/twitter/web-api/user.ts @@ -1,6 +1,6 @@ const utils = require('../utils'); -const { getUser, getUserTweets, getUserTweetsAndReplies, excludeRetweet } = require('./twitter-api'); -const { initToken } = require('./token'); +import { getUser, getUserTweets, getUserTweetsAndReplies, excludeRetweet } from './twitter-api'; +import { initToken } from './token'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/ucas/rader.ts b/lib/routes/ucas/rader.ts index 06bbf39ee1..77a59e427b 100644 --- a/lib/routes/ucas/rader.ts +++ b/lib/routes/ucas/rader.ts @@ -1,4 +1,4 @@ -module.exports = { +export default { 'ucas.ac.cn': { _name: '中国科学院大学招聘', zhaopin: [ diff --git a/lib/routes/vocus/publication.ts b/lib/routes/vocus/publication.ts index b14686fb05..a3fb892213 100644 --- a/lib/routes/vocus/publication.ts +++ b/lib/routes/vocus/publication.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { processList, ProcessFeed, baseUrl, apiUrl } = require('./utils'); +import { processList, ProcessFeed, baseUrl, apiUrl } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/vocus/user.ts b/lib/routes/vocus/user.ts index 6183d08929..0647e53dbe 100644 --- a/lib/routes/vocus/user.ts +++ b/lib/routes/vocus/user.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { processList, ProcessFeed, baseUrl, apiUrl } = require('./utils'); +import { processList, ProcessFeed, baseUrl, apiUrl } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/vocus/utils.ts b/lib/routes/vocus/utils.ts index 688b6e3ebf..85060d8348 100644 --- a/lib/routes/vocus/utils.ts +++ b/lib/routes/vocus/utils.ts @@ -43,9 +43,4 @@ const ProcessFeed = (list, tryGet) => ) ); -module.exports = { - processList, - ProcessFeed, - baseUrl, - apiUrl, -}; +export { processList, ProcessFeed, baseUrl, apiUrl }; diff --git a/lib/routes/whu/hyxt.ts b/lib/routes/whu/hyxt.ts index b36bc59031..9949aeb153 100644 --- a/lib/routes/whu/hyxt.ts +++ b/lib/routes/whu/hyxt.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { domain, processMeta, getMeta, processItems } = require('./util'); +import { domain, processMeta, getMeta, processItems } from './util'; export default async (ctx) => { const { category = 'tzgg' } = ctx.req.param(); diff --git a/lib/routes/whu/news.ts b/lib/routes/whu/news.ts index 5d0d2fd7bf..3830248c0f 100644 --- a/lib/routes/whu/news.ts +++ b/lib/routes/whu/news.ts @@ -8,7 +8,7 @@ import { parseDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { domain, processMeta, getMeta, processItems } = require('./util'); +import { domain, processMeta, getMeta, processItems } from './util'; export default async (ctx) => { const { category = 'wdzx/wdyw' } = ctx.req.param(); diff --git a/lib/routes/whu/util.ts b/lib/routes/whu/util.ts index f424a1ae31..993ff09ae3 100644 --- a/lib/routes/whu/util.ts +++ b/lib/routes/whu/util.ts @@ -140,9 +140,4 @@ const processItems = async (items, tryGet, rootUrl) => }) ); -module.exports = { - domain, - processMeta, - getMeta, - processItems, -}; +export { domain, processMeta, getMeta, processItems }; diff --git a/lib/routes/woshipm/popular.ts b/lib/routes/woshipm/popular.ts index 17bbbd45c8..0f53248eba 100644 --- a/lib/routes/woshipm/popular.ts +++ b/lib/routes/woshipm/popular.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, parseArticle } = require('./utils'); +import { baseUrl, parseArticle } from './utils'; const rangeMap = { daily: '日榜', diff --git a/lib/routes/woshipm/user-article.ts b/lib/routes/woshipm/user-article.ts index ae615c8af3..9e3ef2f50b 100644 --- a/lib/routes/woshipm/user-article.ts +++ b/lib/routes/woshipm/user-article.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, parseArticle } = require('./utils'); +import { baseUrl, parseArticle } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/woshipm/utils.ts b/lib/routes/woshipm/utils.ts index b0234fb291..c1f1a16b34 100644 --- a/lib/routes/woshipm/utils.ts +++ b/lib/routes/woshipm/utils.ts @@ -15,7 +15,4 @@ const parseArticle = (item, tryGet) => return item; }); -module.exports = { - baseUrl, - parseArticle, -}; +export { baseUrl, parseArticle }; diff --git a/lib/routes/wsj/news.ts b/lib/routes/wsj/news.ts index cc9d3eda15..65abc47a74 100644 --- a/lib/routes/wsj/news.ts +++ b/lib/routes/wsj/news.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { load } from 'cheerio'; -const { asyncPoolAll, parseArticle } = require('./utils'); +import { asyncPoolAll, parseArticle } from './utils'; const hostMap = { 'en-us': 'https://www.wsj.com', 'zh-cn': 'https://cn.wsj.com/zh-hans', diff --git a/lib/routes/wsj/utils.ts b/lib/routes/wsj/utils.ts index ad10facabd..36344b0ce5 100644 --- a/lib/routes/wsj/utils.ts +++ b/lib/routes/wsj/utils.ts @@ -121,7 +121,4 @@ const asyncPoolAll = async (...args) => { } return results; }; -module.exports = { - asyncPoolAll, - parseArticle, -}; +export { asyncPoolAll, parseArticle }; diff --git a/lib/routes/x-mol/utils.ts b/lib/routes/x-mol/utils.ts index 4455bd56cf..b67ae305cb 100644 --- a/lib/routes/x-mol/utils.ts +++ b/lib/routes/x-mol/utils.ts @@ -1,3 +1,3 @@ -module.exports = { +export default { host: 'https://www.x-mol.com', }; diff --git a/lib/routes/xiaohongshu/board.ts b/lib/routes/xiaohongshu/board.ts index 113053c906..ef4c85a183 100644 --- a/lib/routes/xiaohongshu/board.ts +++ b/lib/routes/xiaohongshu/board.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { getBoard } = require('./util'); +import { getBoard } from './util'; export default async (ctx) => { const url = `https://www.xiaohongshu.com/board/${ctx.req.param('board_id')}`; diff --git a/lib/routes/xiaohongshu/notes.ts b/lib/routes/xiaohongshu/notes.ts index cb9bd0d2ac..1d9e2093e9 100644 --- a/lib/routes/xiaohongshu/notes.ts +++ b/lib/routes/xiaohongshu/notes.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getNotes, formatText, formatNote } = require('./util'); +import { getNotes, formatText, formatNote } from './util'; export default async (ctx) => { const userId = ctx.req.param('user_id'); diff --git a/lib/routes/xiaohongshu/user.ts b/lib/routes/xiaohongshu/user.ts index fd1678fd9c..e67ea2ddad 100644 --- a/lib/routes/xiaohongshu/user.ts +++ b/lib/routes/xiaohongshu/user.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getUser } = require('./util'); +import { getUser } from './util'; export default async (ctx) => { const userId = ctx.req.param('user_id'); diff --git a/lib/routes/xiaohongshu/util.ts b/lib/routes/xiaohongshu/util.ts index e16ec5526b..7e3cbd87f0 100644 --- a/lib/routes/xiaohongshu/util.ts +++ b/lib/routes/xiaohongshu/util.ts @@ -194,10 +194,4 @@ const formatNote = (url, note) => ({ updated: parseDate(note.lastUpdateTime, 'x'), }); -module.exports = { - getUser, - getBoard, - getNotes, - formatText, - formatNote, -}; +export { getUser, getBoard, getNotes, formatText, formatNote }; diff --git a/lib/routes/xiaomiyoupin/latest.ts b/lib/routes/xiaomiyoupin/latest.ts index dbfebf5dce..6e63e1025f 100644 --- a/lib/routes/xiaomiyoupin/latest.ts +++ b/lib/routes/xiaomiyoupin/latest.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { parseModule, parseFloorItem } = require('./utils'); +import { parseModule, parseFloorItem } from './utils'; export default async (ctx) => { const response = await got('https://m.xiaomiyoupin.com/homepage/main/v1005'); diff --git a/lib/routes/xiaomiyoupin/utils.ts b/lib/routes/xiaomiyoupin/utils.ts index 1241323147..149df26e3f 100644 --- a/lib/routes/xiaomiyoupin/utils.ts +++ b/lib/routes/xiaomiyoupin/utils.ts @@ -18,7 +18,4 @@ const parseFloorItem = (floor) => }; }); -module.exports = { - parseModule, - parseFloorItem, -}; +export { parseModule, parseFloorItem }; diff --git a/lib/routes/ximalaya/album.ts b/lib/routes/ximalaya/album.ts index 27d51d5e02..23106e055d 100644 --- a/lib/routes/ximalaya/album.ts +++ b/lib/routes/ximalaya/album.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { getUrl, getRandom16 } = require('./utils'); +import { getUrl, getRandom16 } from './utils'; const baseUrl = 'https://www.ximalaya.com'; import { config } from '@/config'; import { parseDate } from '@/utils/parse-date'; diff --git a/lib/routes/ximalaya/utils.ts b/lib/routes/ximalaya/utils.ts index 7e3212e937..7a6428836c 100644 --- a/lib/routes/ximalaya/utils.ts +++ b/lib/routes/ximalaya/utils.ts @@ -126,7 +126,4 @@ const getRandom16 = (len) => .toString('hex') .slice(0, len); -module.exports = { - getUrl, - getRandom16, -}; +export { getUrl, getRandom16 }; diff --git a/lib/routes/xinpianchang/index.ts b/lib/routes/xinpianchang/index.ts index 040da489dd..b6e73fd449 100644 --- a/lib/routes/xinpianchang/index.ts +++ b/lib/routes/xinpianchang/index.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, getData, processItems } = require('./util'); +import { rootUrl, getData, processItems } from './util'; export default async (ctx) => { const { params = 'article-0-0-all-all-0-0-score' } = ctx.req.param(); diff --git a/lib/routes/xinpianchang/rank.ts b/lib/routes/xinpianchang/rank.ts index a81fc1e14d..ba4575c6e4 100644 --- a/lib/routes/xinpianchang/rank.ts +++ b/lib/routes/xinpianchang/rank.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, getData, processItems } = require('./util'); +import { rootUrl, getData, processItems } from './util'; export default async (ctx) => { const { category = 'all' } = ctx.req.param(); diff --git a/lib/routes/xinpianchang/util.ts b/lib/routes/xinpianchang/util.ts index 93a533836a..de2dba0e16 100644 --- a/lib/routes/xinpianchang/util.ts +++ b/lib/routes/xinpianchang/util.ts @@ -105,9 +105,4 @@ const processItems = async (items, tryGet) => { ); }; -module.exports = { - rootUrl, - - getData, - processItems, -}; +export { rootUrl, getData, processItems }; diff --git a/lib/routes/yahoo/news/tw/index.ts b/lib/routes/yahoo/news/tw/index.ts index 4ce62fff55..8f9bf4539e 100644 --- a/lib/routes/yahoo/news/tw/index.ts +++ b/lib/routes/yahoo/news/tw/index.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getArchive, getCategories, parseList, parseItem } = require('./utils'); +import { getArchive, getCategories, parseList, parseItem } from './utils'; export default async (ctx) => { const { region, category } = ctx.req.param(); diff --git a/lib/routes/yahoo/news/tw/provider-helper.ts b/lib/routes/yahoo/news/tw/provider-helper.ts index 0a0cf9edf0..ad6df37f9e 100644 --- a/lib/routes/yahoo/news/tw/provider-helper.ts +++ b/lib/routes/yahoo/news/tw/provider-helper.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getProviderList } = require('./utils'); +import { getProviderList } from './utils'; export default async (ctx) => { const region = ctx.req.param('region'); diff --git a/lib/routes/yahoo/news/tw/provider.ts b/lib/routes/yahoo/news/tw/provider.ts index 0ae5869f3d..a01c52bf5b 100644 --- a/lib/routes/yahoo/news/tw/provider.ts +++ b/lib/routes/yahoo/news/tw/provider.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getArchive, getProviderList, parseList, parseItem } = require('./utils'); +import { getArchive, getProviderList, parseList, parseItem } from './utils'; export default async (ctx) => { const { region, providerId } = ctx.req.param(); diff --git a/lib/routes/yahoo/news/tw/utils.ts b/lib/routes/yahoo/news/tw/utils.ts index 88dc001275..1f519e775e 100644 --- a/lib/routes/yahoo/news/tw/utils.ts +++ b/lib/routes/yahoo/news/tw/utils.ts @@ -122,11 +122,4 @@ const parseItem = (item, tryGet) => return item; }); -module.exports = { - getArchive, - getCategories, - getProviderList, - getStores, - parseList, - parseItem, -}; +export { getArchive, getCategories, getProviderList, getStores, parseList, parseItem }; diff --git a/lib/routes/yicai/author.ts b/lib/routes/yicai/author.ts index 703144e111..3d6c970a76 100644 --- a/lib/routes/yicai/author.ts +++ b/lib/routes/yicai/author.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id') ?? '100005663'; diff --git a/lib/routes/yicai/brief.ts b/lib/routes/yicai/brief.ts index 200e221ca0..c5d9adda44 100644 --- a/lib/routes/yicai/brief.ts +++ b/lib/routes/yicai/brief.ts @@ -2,7 +2,7 @@ import got from '@/utils/got'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl } = require('./utils'); +import { rootUrl } from './utils'; export default async (ctx) => { const currentUrl = `${rootUrl}/brief`; diff --git a/lib/routes/yicai/feed.ts b/lib/routes/yicai/feed.ts index 1b330bbf1f..44fc27c36c 100644 --- a/lib/routes/yicai/feed.ts +++ b/lib/routes/yicai/feed.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id') ?? '669'; diff --git a/lib/routes/yicai/headline.ts b/lib/routes/yicai/headline.ts index 93bd48bdd7..06da83410f 100644 --- a/lib/routes/yicai/headline.ts +++ b/lib/routes/yicai/headline.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const apiUrl = `${rootUrl}/api/ajax/getlistbycid?cid=48&type=1&page=1&pagesize=${ctx.req.query('limit') ?? 30}`; diff --git a/lib/routes/yicai/latest.ts b/lib/routes/yicai/latest.ts index d94e78b987..9ccbc96947 100644 --- a/lib/routes/yicai/latest.ts +++ b/lib/routes/yicai/latest.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const apiUrl = `${rootUrl}/api/ajax/getlatest?page=1&pagesize=${ctx.req.query('limit') ?? 30}`; diff --git a/lib/routes/yicai/news.ts b/lib/routes/yicai/news.ts index 4cdd59806a..327ce34875 100644 --- a/lib/routes/yicai/news.ts +++ b/lib/routes/yicai/news.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id') ?? ''; diff --git a/lib/routes/yicai/utils.ts b/lib/routes/yicai/utils.ts index a9198ef5ed..02b9f9be31 100644 --- a/lib/routes/yicai/utils.ts +++ b/lib/routes/yicai/utils.ts @@ -10,51 +10,50 @@ import * as path from 'node:path'; const rootUrl = 'https://www.yicai.com'; -module.exports = { - rootUrl, - ProcessItems: async (apiUrl, tryGet) => { - const response = await got({ - method: 'get', - url: apiUrl, - }); +const ProcessItems = async (apiUrl, tryGet) => { + const response = await got({ + method: 'get', + url: apiUrl, + }); - const items = response.data.map((item) => ({ - title: item.NewsTitle, - link: item.url.startsWith('http') ? item.url : `${rootUrl}${item.AppID === 0 ? `/vip` : ''}${item.url}`, - author: item.NewsAuthor || item.NewsSource || item.CreaterName, - pubDate: timezone(parseDate(item.CreateDate), +8), - category: [item.ChannelName], - description: art(path.join(__dirname, 'templates/description.art'), { - image: { - src: item.originPic, - alt: item.NewsTitle, - }, - video: { - src: item.VideoUrl, - type: item.VideoUrl?.split(/\./).pop() ?? undefined, - }, - intro: item.NewsNotes, - }), - })); + const items = response.data.map((item) => ({ + title: item.NewsTitle, + link: item.url.startsWith('http') ? item.url : `${rootUrl}${item.AppID === 0 ? `/vip` : ''}${item.url}`, + author: item.NewsAuthor || item.NewsSource || item.CreaterName, + pubDate: timezone(parseDate(item.CreateDate), +8), + category: [item.ChannelName], + description: art(path.join(__dirname, 'templates/description.art'), { + image: { + src: item.originPic, + alt: item.NewsTitle, + }, + video: { + src: item.VideoUrl, + type: item.VideoUrl?.split(/\./).pop() ?? undefined, + }, + intro: item.NewsNotes, + }), + })); - return Promise.all( - items.map((item) => - tryGet(item.link, async () => { - const detailResponse = await got({ - method: 'get', - url: item.link, - }); + return Promise.all( + items.map((item) => + tryGet(item.link, async () => { + const detailResponse = await got({ + method: 'get', + url: item.link, + }); - const content = load(detailResponse.data); + const content = load(detailResponse.data); - content('h1').remove(); - content('.u-btn6, .m-smallshare, .topic-hot').remove(); + content('h1').remove(); + content('.u-btn6, .m-smallshare, .topic-hot').remove(); - item.description += content('.multiText, #multi-text, .txt').html() ?? ''; + item.description += content('.multiText, #multi-text, .txt').html() ?? ''; - return item; - }) - ) - ); - }, + return item; + }) + ) + ); }; + +export { rootUrl, ProcessItems }; diff --git a/lib/routes/yicai/video.ts b/lib/routes/yicai/video.ts index ff88d8a96b..17039d5b69 100644 --- a/lib/routes/yicai/video.ts +++ b/lib/routes/yicai/video.ts @@ -1,7 +1,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id') ?? ''; diff --git a/lib/routes/yicai/vip.ts b/lib/routes/yicai/vip.ts index eb77a22537..3eb77133cd 100644 --- a/lib/routes/yicai/vip.ts +++ b/lib/routes/yicai/vip.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; -const { rootUrl, ProcessItems } = require('./utils'); +import { rootUrl, ProcessItems } from './utils'; export default async (ctx) => { const id = ctx.req.param('id') ?? '428'; diff --git a/lib/routes/yoasobi-music/info.ts b/lib/routes/yoasobi-music/info.ts index 7525dadeb2..85da010394 100644 --- a/lib/routes/yoasobi-music/info.ts +++ b/lib/routes/yoasobi-music/info.ts @@ -3,7 +3,7 @@ const __dirname = getCurrentPath(import.meta.url); import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { parseJSONP } = require('./jsonp-helper'); +import { parseJSONP } from './jsonp-helper'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/yoasobi-music/jsonp-helper.ts b/lib/routes/yoasobi-music/jsonp-helper.ts index 6358a509e5..d2e8ddfa55 100644 --- a/lib/routes/yoasobi-music/jsonp-helper.ts +++ b/lib/routes/yoasobi-music/jsonp-helper.ts @@ -14,6 +14,4 @@ function parseJSONP(jsonpData) { } } -module.exports = { - parseJSONP, -}; +export { parseJSONP }; diff --git a/lib/routes/yoasobi-music/live.ts b/lib/routes/yoasobi-music/live.ts index f799be3c08..2028e10f6b 100644 --- a/lib/routes/yoasobi-music/live.ts +++ b/lib/routes/yoasobi-music/live.ts @@ -2,7 +2,7 @@ import { getCurrentPath } from '@/utils/helpers'; const __dirname = getCurrentPath(import.meta.url); import got from '@/utils/got'; -const { parseJSONP } = require('./jsonp-helper'); +import { parseJSONP } from './jsonp-helper'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/yoasobi-music/media.ts b/lib/routes/yoasobi-music/media.ts index c3923dcc91..192ad59bf8 100644 --- a/lib/routes/yoasobi-music/media.ts +++ b/lib/routes/yoasobi-music/media.ts @@ -2,7 +2,7 @@ import { getCurrentPath } from '@/utils/helpers'; const __dirname = getCurrentPath(import.meta.url); import got from '@/utils/got'; -const { parseJSONP } = require('./jsonp-helper'); +import { parseJSONP } from './jsonp-helper'; import { art } from '@/utils/render'; import * as path from 'node:path'; diff --git a/lib/routes/youtube/charts.ts b/lib/routes/youtube/charts.ts index 19af0e2069..505e2006c6 100644 --- a/lib/routes/youtube/charts.ts +++ b/lib/routes/youtube/charts.ts @@ -1,6 +1,6 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; -const { renderDescription } = require('./utils'); +import { renderDescription } from './utils'; import { config } from '@/config'; export default async (ctx) => { diff --git a/lib/routes/youtube/community.ts b/lib/routes/youtube/community.ts index 13c2c64c8a..58dffdf1c3 100644 --- a/lib/routes/youtube/community.ts +++ b/lib/routes/youtube/community.ts @@ -6,7 +6,7 @@ import { load } from 'cheerio'; import { parseRelativeDate } from '@/utils/parse-date'; import { art } from '@/utils/render'; import * as path from 'node:path'; -const { isYouTubeChannelId } = require('./utils'); +import { isYouTubeChannelId } from './utils'; export default async (ctx) => { const handle = ctx.req.param('handle'); diff --git a/lib/routes/yuque/book.ts b/lib/routes/yuque/book.ts index 24f18b45fd..d89a0e8675 100644 --- a/lib/routes/yuque/book.ts +++ b/lib/routes/yuque/book.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { card2Html } = require('./utils'); +import { card2Html } from './utils'; const { CookieJar } = require('tough-cookie'); const APP_DATA_REGEX = /window\.appData = JSON\.parse\(decodeURIComponent\("(.+?)"\)\);/; diff --git a/lib/routes/yuque/utils.ts b/lib/routes/yuque/utils.ts index ec210aaf57..ccf5fbc718 100644 --- a/lib/routes/yuque/utils.ts +++ b/lib/routes/yuque/utils.ts @@ -76,6 +76,4 @@ const card2Html = (elem, link) => { elem.replaceWith(html); }; -module.exports = { - card2Html, -}; +export { card2Html }; diff --git a/lib/routes/yxdown/news.ts b/lib/routes/yxdown/news.ts index 3b7838fe38..39e3dae437 100644 --- a/lib/routes/yxdown/news.ts +++ b/lib/routes/yxdown/news.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl, getCookie } = require('./utils'); +import { rootUrl, getCookie } from './utils'; export default async (ctx) => { const category = ctx.req.param('category') ? `${ctx.req.param('category')}/` : ''; diff --git a/lib/routes/yxdown/recommend.ts b/lib/routes/yxdown/recommend.ts index 4576bc3a04..f8a1906d70 100644 --- a/lib/routes/yxdown/recommend.ts +++ b/lib/routes/yxdown/recommend.ts @@ -3,7 +3,7 @@ import got from '@/utils/got'; import { load } from 'cheerio'; import timezone from '@/utils/timezone'; import { parseDate } from '@/utils/parse-date'; -const { rootUrl, getCookie } = require('./utils'); +import { rootUrl, getCookie } from './utils'; export default async (ctx) => { const currentUrl = `${rootUrl}/news/`; diff --git a/lib/routes/yxdown/utils.ts b/lib/routes/yxdown/utils.ts index dbe01d10c3..989803f1a2 100644 --- a/lib/routes/yxdown/utils.ts +++ b/lib/routes/yxdown/utils.ts @@ -11,7 +11,4 @@ const getCookie = async () => { return cookieStr; }; -module.exports = { - rootUrl, - getCookie, -}; +export { rootUrl, getCookie }; diff --git a/lib/routes/zaobao/index.ts b/lib/routes/zaobao/index.ts index 301025bc54..859cbf0f11 100644 --- a/lib/routes/zaobao/index.ts +++ b/lib/routes/zaobao/index.ts @@ -1,4 +1,4 @@ -const { parseList } = require('./util'); +import { parseList } from './util'; const baseUrl = 'https://www.zaobao.com'; export default async (ctx) => { diff --git a/lib/routes/zaobao/interactive.ts b/lib/routes/zaobao/interactive.ts index 36c4c76617..0511764ff1 100644 --- a/lib/routes/zaobao/interactive.ts +++ b/lib/routes/zaobao/interactive.ts @@ -1,4 +1,4 @@ -const { parseList } = require('./util'); +import { parseList } from './util'; const baseUrl = 'https://www.zaobao.com'; export default async (ctx) => { diff --git a/lib/routes/zaobao/realtime.ts b/lib/routes/zaobao/realtime.ts index 0d7eed29af..072d621545 100644 --- a/lib/routes/zaobao/realtime.ts +++ b/lib/routes/zaobao/realtime.ts @@ -1,4 +1,4 @@ -const { parseList } = require('./util'); +import { parseList } from './util'; const baseUrl = 'https://www.zaobao.com'; export default async (ctx) => { diff --git a/lib/routes/zaobao/util.ts b/lib/routes/zaobao/util.ts index dc2fb6aae1..c2505b19ff 100644 --- a/lib/routes/zaobao/util.ts +++ b/lib/routes/zaobao/util.ts @@ -178,7 +178,4 @@ const orderContent = (parent) => { } }; -module.exports = { - parseList, - orderContent, -}; +export { parseList, orderContent }; diff --git a/lib/routes/zaobao/znews.ts b/lib/routes/zaobao/znews.ts index 24d670f8da..ef05c47264 100644 --- a/lib/routes/zaobao/znews.ts +++ b/lib/routes/zaobao/znews.ts @@ -1,4 +1,4 @@ -const { parseList } = require('./util'); +import { parseList } from './util'; const baseUrl = 'https://www.zaobao.com'; export default async (ctx) => { diff --git a/lib/routes/zcool/locations.ts b/lib/routes/zcool/locations.ts index aecaa23439..c979c95508 100644 --- a/lib/routes/zcool/locations.ts +++ b/lib/routes/zcool/locations.ts @@ -1,4 +1,4 @@ -module.exports = { +export default { 亚洲: 1, 欧洲: 2, 非洲: 3, diff --git a/lib/routes/zcool/top.ts b/lib/routes/zcool/top.ts index 7500df198a..fedcadec34 100644 --- a/lib/routes/zcool/top.ts +++ b/lib/routes/zcool/top.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { extractArticle, extractWork } = require('./utils'); +import { extractArticle, extractWork } from './utils'; const baseUrl = 'https://www.zcool.com.cn'; export default async (ctx) => { diff --git a/lib/routes/zcool/user.ts b/lib/routes/zcool/user.ts index 689be40681..bfe2b81419 100644 --- a/lib/routes/zcool/user.ts +++ b/lib/routes/zcool/user.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; -const { extractArticle, extractWork } = require('./utils'); +import { extractArticle, extractWork } from './utils'; import { isValidHost } from '@/utils/valid-host'; export default async (ctx) => { diff --git a/lib/routes/zcool/utils.ts b/lib/routes/zcool/utils.ts index f9f6e2bf95..37e1393891 100644 --- a/lib/routes/zcool/utils.ts +++ b/lib/routes/zcool/utils.ts @@ -11,7 +11,4 @@ const extractWork = (data) => data: data.props.pageProps.data, }); -module.exports = { - extractArticle, - extractWork, -}; +export { extractArticle, extractWork }; diff --git a/lib/routes/zhihu/collection.ts b/lib/routes/zhihu/collection.ts index be10319a83..9d6f70948d 100644 --- a/lib/routes/zhihu/collection.ts +++ b/lib/routes/zhihu/collection.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { load } from 'cheerio'; const utils = require('./utils'); -const { generateData } = require('./pin/utils'); +import { generateData } from './pin/utils'; import { parseDate } from '@/utils/parse-date'; export default async (ctx) => { diff --git a/lib/routes/zhihu/pin/daily.ts b/lib/routes/zhihu/pin/daily.ts index 6440d49186..e6ee798cb8 100644 --- a/lib/routes/zhihu/pin/daily.ts +++ b/lib/routes/zhihu/pin/daily.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { generateData } = require('./utils'); +import { generateData } from './utils'; export default async (ctx) => { const { diff --git a/lib/routes/zhihu/pin/hotlist.ts b/lib/routes/zhihu/pin/hotlist.ts index d812203264..99f98beddc 100644 --- a/lib/routes/zhihu/pin/hotlist.ts +++ b/lib/routes/zhihu/pin/hotlist.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { generateData } = require('./utils'); +import { generateData } from './utils'; export default async (ctx) => { const { diff --git a/lib/routes/zhihu/pin/people.ts b/lib/routes/zhihu/pin/people.ts index 4dbd9f5d3f..3b5f91eea4 100644 --- a/lib/routes/zhihu/pin/people.ts +++ b/lib/routes/zhihu/pin/people.ts @@ -1,5 +1,5 @@ import got from '@/utils/got'; -const { generateData } = require('./utils'); +import { generateData } from './utils'; export default async (ctx) => { const id = ctx.req.param('id'); diff --git a/lib/routes/zhihu/pin/utils.ts b/lib/routes/zhihu/pin/utils.ts index 71ac91e809..b1ea9329ba 100644 --- a/lib/routes/zhihu/pin/utils.ts +++ b/lib/routes/zhihu/pin/utils.ts @@ -42,27 +42,27 @@ const generateDescription = (target, init) => return description; }, init); -module.exports = { - generateData: (data) => - data.map((item) => { - const target = item.target ?? item; - const pubDate = parseDate(target.created * 1000); - const author = target.author.name; - const title = `${author}:${target.excerpt_title}`; - const link = `https://www.zhihu.com/pin/${target.id}`; - let description = generateDescription(target, `${author}:`); - if (target.origin_pin !== undefined) { - const t = target.origin_pin; - const origin_link = `转发原文:`; - const origin_description = generateDescription(t, `${t.author.name}:`); - description = `${description} ${origin_link} ${origin_description}`; - } - return { - title, - description, - author, - pubDate, - link, - }; - }), -}; +const generateData = (data) => + data.map((item) => { + const target = item.target ?? item; + const pubDate = parseDate(target.created * 1000); + const author = target.author.name; + const title = `${author}:${target.excerpt_title}`; + const link = `https://www.zhihu.com/pin/${target.id}`; + let description = generateDescription(target, `${author}:`); + if (target.origin_pin !== undefined) { + const t = target.origin_pin; + const origin_link = `转发原文:`; + const origin_description = generateDescription(t, `${t.author.name}:`); + description = `${description} ${origin_link} ${origin_description}`; + } + return { + title, + description, + author, + pubDate, + link, + }; + }); + +export { generateData }; diff --git a/lib/routes/zhihu/utils.ts b/lib/routes/zhihu/utils.ts index 6efa3b5662..d1790c56d5 100644 --- a/lib/routes/zhihu/utils.ts +++ b/lib/routes/zhihu/utils.ts @@ -1,6 +1,6 @@ import { load } from 'cheerio'; -module.exports = { +export default { header: { 'x-api-version': '3.0.91', }, diff --git a/lib/routes/zhihu/xhu/auth.ts b/lib/routes/zhihu/xhu/auth.ts index 11713743e8..81f6398f8b 100644 --- a/lib/routes/zhihu/xhu/auth.ts +++ b/lib/routes/zhihu/xhu/auth.ts @@ -9,7 +9,7 @@ const ProcessNewCookie = (oldCookie, newCookie) => { return [...oldCookieArray, ...newCookieArray].join('; '); }; -module.exports = { +export default { getCookie: () => { const key = 'zhihu-xhu-cookie'; return cache.tryGet(key, async () => { diff --git a/lib/routes/zhiy/letter.ts b/lib/routes/zhiy/letter.ts index fd1317a76e..8b4ec43b70 100644 --- a/lib/routes/zhiy/letter.ts +++ b/lib/routes/zhiy/letter.ts @@ -1,6 +1,6 @@ import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, fetchUserDate } = require('./utils'); +import { baseUrl, fetchUserDate } from './utils'; export default async (ctx) => { const author = ctx.req.param('author'); diff --git a/lib/routes/zhiy/post.ts b/lib/routes/zhiy/post.ts index 146a3073bd..e9985c7962 100644 --- a/lib/routes/zhiy/post.ts +++ b/lib/routes/zhiy/post.ts @@ -4,7 +4,7 @@ const __dirname = getCurrentPath(import.meta.url); import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; -const { baseUrl, fetchUserDate } = require('./utils'); +import { baseUrl, fetchUserDate } from './utils'; import { art } from '@/utils/render'; import * as path from 'node:path'; const dayjs = require('dayjs'); diff --git a/lib/routes/zhiy/utils.ts b/lib/routes/zhiy/utils.ts index d8169c441e..8941c18499 100644 --- a/lib/routes/zhiy/utils.ts +++ b/lib/routes/zhiy/utils.ts @@ -7,7 +7,4 @@ const fetchUserDate = async (author) => { return userData; }; -module.exports = { - baseUrl, - fetchUserDate, -}; +export { baseUrl, fetchUserDate }; diff --git a/lib/routes/zuvio/boards.ts b/lib/routes/zuvio/boards.ts index 7566336b93..6748f4af30 100644 --- a/lib/routes/zuvio/boards.ts +++ b/lib/routes/zuvio/boards.ts @@ -1,5 +1,5 @@ import cache from '@/utils/cache'; -const { getBoards, rootUrl } = require('./utils'); +import { getBoards, rootUrl } from './utils'; export default async (ctx) => { const items = await getBoards(cache.tryGet); diff --git a/lib/routes/zuvio/student5.ts b/lib/routes/zuvio/student5.ts index 44a7f9b74f..60dc6184ce 100644 --- a/lib/routes/zuvio/student5.ts +++ b/lib/routes/zuvio/student5.ts @@ -2,7 +2,7 @@ import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; import timezone from '@/utils/timezone'; -const { token, apiUrl, rootUrl, renderDesc, getBoards } = require('./utils'); +import { token, apiUrl, rootUrl, renderDesc, getBoards } from './utils'; export default async (ctx) => { const { board = '' } = ctx.req.param(); diff --git a/lib/routes/zuvio/utils.ts b/lib/routes/zuvio/utils.ts index ce4728d738..f80a6063f3 100644 --- a/lib/routes/zuvio/utils.ts +++ b/lib/routes/zuvio/utils.ts @@ -69,11 +69,4 @@ const getBoards = (tryGet) => })); }); -module.exports = { - token, - apiUrl, - rootUrl, - renderDesc, - renderSections, - getBoards, -}; +export { token, apiUrl, rootUrl, renderDesc, renderSections, getBoards };