├── .codecov.yml ├── .dockerignore ├── .editorconfig ├── .eslintignore ├── .eslintrc ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report_en.yml │ ├── bug_report_zh.yml │ ├── config.yml │ ├── feature_request_en.yml │ ├── feature_request_zh.yml │ ├── rss_request_en.yml │ └── rss_request_zh.yml ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml └── workflows │ └── docker-release.yml ├── .gitignore ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── Procfile ├── README.md ├── SECURITY.md ├── api └── now.js ├── app.json ├── assets ├── 404.html ├── CNAME ├── build │ └── .gitkeep ├── index.html └── radar-rules.js ├── dev.sh ├── docker-compose.yml ├── docs ├── .format │ ├── chineseFormat.js │ ├── file.js │ ├── format.js │ ├── md │ │ └── hierarchySlug.js │ └── sortByHeading.js ├── .vuepress │ ├── components │ │ ├── Route.vue │ │ └── RouteEn.vue │ ├── config.js │ ├── nav │ │ ├── en.js │ │ └── zh.js │ ├── public │ │ ├── _headers │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-384x384.png │ │ ├── apple-touch-icon.png │ │ ├── logo.png │ │ ├── manifest.json │ │ ├── readable-douban.png │ │ ├── readable-twitter.png │ │ ├── readable-weibo.png │ │ └── safari-pinned-tab.svg │ └── styles │ │ ├── index.styl │ │ └── palette.styl ├── README.md ├── anime.md ├── api.md ├── bbs.md ├── blog.md ├── design.md ├── en │ ├── README.md │ ├── anime.md │ ├── api.md │ ├── bbs.md │ ├── blog.md │ ├── design.md │ ├── faq.md │ ├── finance.md │ ├── forecast.md │ ├── game.md │ ├── government.md │ ├── install │ │ └── README.md │ ├── joinus │ │ ├── pub-date.md │ │ ├── quick-start.md │ │ ├── script-standard.md │ │ └── use-cache.md │ ├── journal.md │ ├── live.md │ ├── multimedia.md │ ├── new-media.md │ ├── other.md │ ├── parameter.md │ ├── picture.md │ ├── program-update.md │ ├── programming.md │ ├── reading.md │ ├── shopping.md │ ├── social-media.md │ ├── study.md │ ├── support │ │ └── README.md │ ├── traditional-media.md │ ├── travel.md │ ├── university.md │ └── usage.md ├── faq.md ├── finance.md ├── forecast.md ├── game.md ├── government.md ├── install │ └── README.md ├── joinus │ ├── pub-date.md │ ├── quick-start.md │ ├── script-standard.md │ └── use-cache.md ├── journal.md ├── live.md ├── multimedia.md ├── new-media.md ├── other.md ├── parameter.md ├── picture.md ├── program-update.md ├── programming.md ├── reading.md ├── shopping.md ├── social-media.md ├── study.md ├── support │ └── README.md ├── traditional-media.md ├── travel.md ├── university.md └── usage.md ├── jsconfig.json ├── lib ├── api_router.js ├── app.js ├── config.js ├── core_router.js ├── errors │ ├── RequestInProgress.js │ └── index.js ├── favicon.png ├── index.js ├── maintainer.js ├── middleware │ ├── access-control.js │ ├── anti-hotlink.js │ ├── api-response-handler.js │ ├── api-template.js │ ├── cache │ │ ├── index.js │ │ ├── memory.js │ │ └── redis.js │ ├── debug.js │ ├── header.js │ ├── load-on-demand.js │ ├── onerror.js │ ├── parameter.js │ ├── template.js │ └── utf8.js ├── pkg.js ├── protected_router.js ├── radar-rules.js ├── radar.js ├── router.js ├── routes │ ├── 93 │ │ └── index.js │ ├── 755 │ │ └── user.js │ ├── 12379 │ │ └── index.js │ ├── 005tv │ │ └── zx.js │ ├── 10000link │ │ └── news.js │ ├── 141jav │ │ └── 141jav.js │ ├── 141ppv │ │ └── 141ppv.js │ ├── 199it │ │ ├── category.js │ │ ├── index.js │ │ ├── tag.js │ │ └── utils.js │ ├── 1draw │ │ └── index.js │ ├── 1point3acres │ │ ├── blog.js │ │ ├── offer.js │ │ ├── post.js │ │ ├── posts.js │ │ └── threads.js │ ├── 1x │ │ └── index.js │ ├── 21caijing │ │ └── channel.js │ ├── 3dm │ │ ├── game.js │ │ └── news_center.js │ ├── 3k8 │ │ └── latest.js │ ├── 3ycy │ │ └── home.js │ ├── 4gamers │ │ ├── category.js │ │ ├── tag.js │ │ └── topic.js │ ├── 51voa │ │ └── channel.js │ ├── 60s-science │ │ └── transcript.js │ ├── 6park │ │ └── index.js │ ├── 8btc │ │ ├── author.js │ │ └── news │ │ │ └── flash.js │ ├── 91ddcc │ │ ├── stage.js │ │ └── user.js │ ├── 99percentinvisible │ │ └── transcript.js │ ├── 9to5 │ │ ├── subsite.js │ │ └── utils.js │ ├── a9vg │ │ └── a9vg.js │ ├── abc │ │ ├── documentId.js │ │ ├── id.js │ │ └── index.js │ ├── acfun │ │ ├── bangumi.js │ │ └── video.js │ ├── acm │ │ └── amturingaward.js │ ├── acwifi │ │ └── index.js │ ├── adnmb │ │ └── index.js │ ├── adquan │ │ └── index.js │ ├── aeon │ │ └── category.js │ ├── afdian │ │ ├── dynamic.js │ │ └── explore.js │ ├── aflcio │ │ └── blog.js │ ├── agefans │ │ ├── detail.js │ │ └── update.js │ ├── aisixiang │ │ ├── column.js │ │ ├── ranking.js │ │ ├── thinktank.js │ │ └── utils.js │ ├── aiyanxishe │ │ └── home.js │ ├── algocasts │ │ └── all.js │ ├── aliyun-kernel │ │ └── index.js │ ├── aliyun │ │ ├── database_month.js │ │ ├── developer │ │ │ └── group.js │ │ └── notice.js │ ├── aljazeera │ │ └── news.js │ ├── allnow │ │ ├── column.js │ │ ├── index.js │ │ ├── tag.js │ │ ├── user.js │ │ └── utils.js │ ├── allpoetry │ │ └── order.js │ ├── alter-cn │ │ └── news.js │ ├── amazfitwatchfaces │ │ ├── fresh.js │ │ ├── search.js │ │ ├── top.js │ │ ├── updated.js │ │ └── utils.js │ ├── amazon │ │ └── ku.js │ ├── amd │ │ └── graphicsdrivers.js │ ├── andyt │ │ └── index.js │ ├── anigamer │ │ ├── anime.js │ │ └── new_anime.js │ ├── anime1 │ │ ├── anime.js │ │ └── search.js │ ├── animen │ │ └── news.js │ ├── anitama │ │ └── channel.js │ ├── anki │ │ └── changes.js │ ├── anytxt │ │ └── release-notes.js │ ├── aom │ │ └── journal.js │ ├── aozora │ │ └── newbook.js │ ├── apkpure │ │ └── versions.js │ ├── apnews │ │ └── topics.js │ ├── appsales │ │ └── index.js │ ├── aptonic │ │ └── action.js │ ├── aqicn │ │ └── index.js │ ├── aqk │ │ ├── category.js │ │ └── vul.js │ ├── archdaily │ │ └── home.js │ ├── arknights │ │ ├── japan.js │ │ └── news.js │ ├── arxiv │ │ └── query.js │ ├── asahi │ │ ├── area.js │ │ └── index.js │ ├── asiantolick │ │ └── index.js │ ├── asml │ │ └── press-releases.js │ ├── atfd │ │ └── index.js │ ├── autotrader │ │ └── index.js │ ├── av01 │ │ ├── actor.js │ │ └── tag.js │ ├── avgle │ │ └── videos.js │ ├── axis-studios │ │ └── work.js │ ├── babehub │ │ ├── index.js │ │ ├── search.js │ │ └── utils.js │ ├── babykingdom │ │ └── index.js │ ├── bahamut │ │ ├── creation.js │ │ ├── creation_index.js │ │ └── utils.js │ ├── baidu │ │ ├── daily.js │ │ ├── doodles.js │ │ └── topwords.js │ ├── baijing │ │ └── index.js │ ├── bandisoft │ │ └── index.js │ ├── bangumi │ │ ├── calendar │ │ │ ├── _base.js │ │ │ └── today.js │ │ ├── group │ │ │ ├── reply.js │ │ │ └── topic.js │ │ ├── person │ │ │ └── index.js │ │ ├── subject │ │ │ ├── comments.js │ │ │ ├── ep.js │ │ │ ├── index.js │ │ │ └── offcial-subject-api.js │ │ └── user │ │ │ └── blog.js │ ├── banyuetan │ │ ├── byt.js │ │ └── index.js │ ├── bbc │ │ ├── index.js │ │ └── utils.js │ ├── behance │ │ └── index.js │ ├── bell-labs │ │ └── events-news.js │ ├── benedictevans │ │ └── recent.js │ ├── bibgame │ │ └── category.js │ ├── bihu │ │ └── activaties.js │ ├── bing │ │ └── index.js │ ├── biobio │ │ ├── index.js │ │ └── others.js │ ├── bioon │ │ └── latest.js │ ├── bishijie │ │ └── kuaixun.js │ ├── bjnews │ │ ├── epaper.js │ │ └── news.js │ ├── bjp │ │ └── apod.js │ ├── bjx │ │ └── huanbao.js │ ├── blizzard │ │ └── news.js │ ├── blogread │ │ └── newest.js │ ├── blogs │ │ ├── diygod │ │ │ ├── animal-crossing.js │ │ │ └── gk.js │ │ ├── foreverblog.js │ │ ├── hedwig.js │ │ ├── jianning.js │ │ ├── jingwei_link.js │ │ ├── leemeng.js │ │ ├── paulgraham.js │ │ ├── wang54.js │ │ ├── wangyin.js │ │ └── wordpress.js │ ├── blow-studio │ │ └── work.js │ ├── blur-studio │ │ └── index.js │ ├── boc │ │ └── whpj.js │ ├── bof │ │ └── home.js │ ├── bookscomtw │ │ └── newbooks.js │ ├── booksource │ │ └── index.js │ ├── bookwalkertw │ │ └── news.js │ ├── booth-pm │ │ └── shop.js │ ├── boston │ │ └── index.js │ ├── bsblog123 │ │ └── index.js │ ├── buaq │ │ └── index.js │ ├── caixin │ │ ├── article.js │ │ ├── blog.js │ │ ├── category.js │ │ ├── database.js │ │ ├── latest.js │ │ └── yxnews.js │ ├── cartoonmad │ │ └── comic.js │ ├── caus │ │ └── index.js │ ├── cbc │ │ └── topics.js │ ├── cbndata │ │ └── information.js │ ├── ccdi │ │ └── scdc.js │ ├── ccf │ │ └── news.js │ ├── ccg │ │ └── index.js │ ├── cctv │ │ ├── category.js │ │ ├── jx.js │ │ ├── lm.js │ │ ├── special.js │ │ ├── utils │ │ │ ├── mzzlbg.js │ │ │ ├── news.js │ │ │ └── xinwen1j1.js │ │ └── xwlb.js │ ├── cell │ │ ├── cell │ │ │ └── index.js │ │ └── cover.js │ ├── centbrowser │ │ └── history.js │ ├── cfan │ │ └── news.js │ ├── cfd │ │ └── gbp_div.js │ ├── cgtn │ │ ├── most.js │ │ ├── opinions.js │ │ ├── pick.js │ │ └── top.js │ ├── changku │ │ └── index.js │ ├── chaoli │ │ └── index.js │ ├── checkee │ │ └── index.js │ ├── checkra1n │ │ └── releases.js │ ├── chicagotribune │ │ └── index.js │ ├── chiculture │ │ └── topic.js │ ├── chinadaily │ │ └── english.js │ ├── chinadialogue │ │ ├── column.js │ │ └── topics.js │ ├── chinafile │ │ └── index.js │ ├── chinalaborwatch │ │ └── reports.js │ ├── chinatimes │ │ └── index.js │ ├── chiphell │ │ └── forum.js │ ├── chocolatey │ │ └── software.js │ ├── chouti │ │ ├── index.js │ │ └── top.js │ ├── chrome │ │ └── extensions.js │ ├── chsi │ │ └── zszcgd.js │ ├── chuapp │ │ └── index.js │ ├── chuhaibiji │ │ └── index.js │ ├── chuiniu │ │ ├── column.js │ │ └── column_list.js │ ├── citavi │ │ └── index.js │ ├── ciweimao │ │ └── chapter.js │ ├── cktest │ │ ├── app.js │ │ └── policy.js │ ├── clb │ │ └── commentary.js │ ├── clickme │ │ └── index.js │ ├── cls │ │ ├── depth.js │ │ └── telegraph.js │ ├── cmes │ │ └── news.js │ ├── cna │ │ └── index.js │ ├── cneb │ │ ├── guoneinews.js │ │ └── yjxx.js │ ├── cninfo │ │ └── announcement.js │ ├── cnu │ │ ├── discovery.js │ │ ├── selected.js │ │ └── utils.js │ ├── codeceo │ │ ├── category.js │ │ └── home.js │ ├── comicskingdom │ │ └── index.js │ ├── commonapp │ │ └── blog.js │ ├── coolapk │ │ ├── dyh.js │ │ ├── hot.js │ │ ├── huati.js │ │ ├── toutiao.js │ │ ├── tuwen.js │ │ ├── userDynamic.js │ │ └── utils.js │ ├── coolbuy │ │ └── newest.js │ ├── copymanga │ │ └── comic.js │ ├── coronavirus │ │ ├── caixin.js │ │ ├── dxy-data.js │ │ ├── dxy.js │ │ ├── mogov-2019ncov.js │ │ ├── nhc.js │ │ ├── scmp.js │ │ ├── sg-moh.js │ │ └── yahoo-japan.js │ ├── cowlevel │ │ └── element.js │ ├── cpta │ │ └── notice.js │ ├── cpython │ │ └── index.js │ ├── craigslist │ │ └── search.js │ ├── creaders │ │ └── headline.js │ ├── cria │ │ └── news.js │ ├── cs │ │ └── news.js │ ├── csc │ │ └── notice.js │ ├── csrc │ │ ├── auditstatus.js │ │ ├── fashenwei.js │ │ └── news.js │ ├── ctei │ │ └── news.js │ ├── ctfhub │ │ ├── search.js │ │ └── upcoming.js │ ├── curiouscat │ │ └── user.js │ ├── curseforge │ │ ├── files.js │ │ └── generalfiles.js │ ├── cve │ │ └── search.js │ ├── cyzone │ │ ├── author.js │ │ └── label.js │ ├── d1bz │ │ └── novel.js │ ├── d2 │ │ └── daily.js │ ├── dailyart │ │ └── index.js │ ├── damai │ │ └── activity.js │ ├── daodu │ │ └── index.js │ ├── dapenti │ │ ├── subject.js │ │ ├── tugua.js │ │ └── utils.js │ ├── darwinawards │ │ └── articles.js │ ├── daxiaamu │ │ └── home.js │ ├── dayone │ │ └── blog.js │ ├── dbaplus │ │ ├── activity.js │ │ └── tab.js │ ├── dcard │ │ ├── section.js │ │ └── utils.js │ ├── dcinside │ │ └── board.js │ ├── ddrk │ │ ├── index.js │ │ └── list.js │ ├── dedao │ │ ├── index.js │ │ ├── knowledge.js │ │ └── list.js │ ├── deepl │ │ └── blog.js │ ├── deeplearningai │ │ └── thebatch.js │ ├── deepmind │ │ └── blog.js │ ├── dekudeals │ │ └── index.js │ ├── deloitte │ │ └── industries.js │ ├── dengekionline │ │ └── new.js │ ├── dev.to │ │ └── top.js │ ├── dgjyw │ │ └── index.js │ ├── dgtle │ │ ├── index.js │ │ ├── keyword.js │ │ ├── trade.js │ │ ├── whale.js │ │ └── whale_rank.js │ ├── dhl │ │ └── shipment-tracking.js │ ├── dianping │ │ └── user.js │ ├── dida365 │ │ └── habit-checkins.js │ ├── digic-pictures │ │ └── index.js │ ├── digitaling │ │ ├── article.js │ │ ├── index.js │ │ └── project.js │ ├── dilbert │ │ └── strip.js │ ├── dilidili │ │ └── fanju.js │ ├── discuss │ │ └── index.js │ ├── discuz │ │ └── discuz.js │ ├── disqus │ │ └── posts.js │ ├── ditto │ │ └── changes.js │ ├── dlsite │ │ ├── campaign.js │ │ └── new.js │ ├── dockone │ │ └── weekly.js │ ├── docschina │ │ └── jsweekly.js │ ├── donews │ │ ├── index.js │ │ └── utils.js │ ├── dongmanmanhua │ │ └── comic.js │ ├── dongqiudi │ │ ├── daily.js │ │ ├── player_news.js │ │ ├── result.js │ │ ├── special.js │ │ ├── team_news.js │ │ ├── top_news.js │ │ └── utils.js │ ├── douyu │ │ └── room.js │ ├── dribbble │ │ ├── keyword.js │ │ ├── popular.js │ │ ├── user.js │ │ └── utils.js │ ├── dsb │ │ └── area.js │ ├── dsndsht23 │ │ └── index.js │ ├── duozhi │ │ └── index.js │ ├── duozhuayu │ │ └── search.js │ ├── dw │ │ └── index.js │ ├── dwnews │ │ ├── rank.js │ │ ├── utils.js │ │ └── yaowen.js │ ├── dx2025 │ │ └── index.js │ ├── dxy │ │ └── vaccine.js │ ├── dykszx │ │ └── news.js │ ├── dysfz │ │ └── index.js │ ├── dytt │ │ └── index.js │ ├── eagle │ │ └── changelog.js │ ├── earthquake │ │ ├── ceic.js │ │ └── index.js │ ├── ebb │ │ └── index.js │ ├── edge │ │ └── addon.js │ ├── edrawsoft │ │ └── mindmap.js │ ├── eeo │ │ └── index.js │ ├── egsea │ │ └── flash.js │ ├── ehentai │ │ ├── ehapi.js │ │ ├── favorites.js │ │ ├── search.js │ │ └── tag.js │ ├── eleduck │ │ └── jobs.js │ ├── eleme │ │ ├── open-be │ │ │ └── announce.js │ │ └── open │ │ │ └── announce.js │ ├── elife │ │ └── index.js │ ├── elitebabes │ │ ├── index.js │ │ ├── search.js │ │ ├── utils.js │ │ └── videos.js │ ├── embassy │ │ ├── index.js │ │ └── supportedList.js │ ├── emi-nitta │ │ └── home.js │ ├── enclavebooks │ │ ├── category.js │ │ ├── collection.js │ │ └── user.js │ ├── engadget │ │ └── home.js │ ├── erbingapp │ │ └── news.js │ ├── esquirehk │ │ └── tag.js │ ├── etherscan │ │ └── transactions.js │ ├── etoland │ │ └── board.js │ ├── europapress │ │ └── index.js │ ├── everything │ │ └── changes.js │ ├── eztv │ │ └── imdb.js │ ├── facebook │ │ └── page.js │ ├── fanbox │ │ ├── conv.js │ │ ├── header.js │ │ └── main.js │ ├── fanfou │ │ ├── favorites.js │ │ ├── home_timeline.js │ │ ├── public_timeline.js │ │ ├── trends.js │ │ ├── user_timeline.js │ │ └── utils.js │ ├── fantia │ │ ├── search.js │ │ └── user.js │ ├── fanxinzhui │ │ └── latest.js │ ├── fashionnetwork │ │ ├── headline.js │ │ └── news.js │ ├── fdroid │ │ └── apprelease.js │ ├── feed-the-beast │ │ └── modpack.js │ ├── feixuew │ │ └── index.js │ ├── fgo │ │ └── news.js │ ├── finviz │ │ └── news.js │ ├── fir │ │ └── update.js │ ├── firefox │ │ ├── addons.js │ │ └── release.js │ ├── fitchratings │ │ └── site.js │ ├── fjnews │ │ ├── fznews.js │ │ └── jjnews.js │ ├── fnal │ │ └── news.js │ ├── fontstory │ │ └── tw.js │ ├── fulinian │ │ └── index.js │ ├── furaffinity │ │ ├── browse.js │ │ ├── commissions.js │ │ ├── favorites.js │ │ ├── gallery.js │ │ ├── home.js │ │ ├── journal_comments.js │ │ ├── journals.js │ │ ├── scraps.js │ │ ├── search.js │ │ ├── shouts.js │ │ ├── status.js │ │ ├── submission_comments.js │ │ ├── user.js │ │ ├── watchers.js │ │ └── watching.js │ ├── futunn │ │ └── highlights.js │ ├── fx678 │ │ └── kx.js │ ├── fzdm │ │ └── manhua.js │ ├── gab │ │ ├── explore.js │ │ └── user.js │ ├── galaxylab │ │ └── index.js │ ├── galgame │ │ ├── hhgal.js │ │ ├── sayhuahuo.js │ │ └── zdfx.js │ ├── game4399 │ │ └── forum.js │ ├── gamegrape │ │ └── index.js │ ├── gamer │ │ └── gnn_index.js │ ├── gameres │ │ ├── hot.js │ │ ├── list.js │ │ └── utils.js │ ├── gamersky │ │ ├── ent.js │ │ └── news.js │ ├── gaoqing │ │ ├── latest.js │ │ └── utils.js │ ├── gaoqingla │ │ └── latest.js │ ├── gbcc │ │ └── trust.js │ ├── geekpark │ │ └── breakingnews.js │ ├── geektime │ │ ├── column.js │ │ └── news.js │ ├── gelonghui │ │ ├── keyword.js │ │ ├── subject.js │ │ └── user.js │ ├── getitfree │ │ ├── category.js │ │ ├── search.js │ │ └── utils.js │ ├── girlimg │ │ └── album.js │ ├── gitchat │ │ └── newest.js │ ├── gitea │ │ └── blog.js │ ├── gitlab │ │ ├── explore.js │ │ ├── release.js │ │ └── tag.js │ ├── gnn │ │ └── gnn.js │ ├── go-weekly │ │ └── index.js │ ├── go.jp │ │ └── mofa │ │ │ └── main.js │ ├── gocomics │ │ └── index.js │ ├── gov │ │ ├── beijing │ │ │ ├── eea.js │ │ │ └── mhc.js │ │ ├── caict │ │ │ ├── bps.js │ │ │ ├── caictgd.js │ │ │ └── qwsj.js │ │ ├── chinatax │ │ │ └── latest.js │ │ ├── chongqing │ │ │ └── ljxq │ │ │ │ ├── dwgk.js │ │ │ │ └── zwgk.js │ │ ├── city │ │ │ ├── index.js │ │ │ └── nanjing │ │ │ │ ├── getContent.js │ │ │ │ └── index.js │ │ ├── cnca │ │ │ ├── hydt.js │ │ │ ├── jgdt.js │ │ │ └── zxtz.js │ │ ├── cppcc │ │ │ └── index.js │ │ ├── customs │ │ │ └── list.js │ │ ├── guangdong │ │ │ ├── edu.js │ │ │ └── eea.js │ │ ├── harbin │ │ │ └── kjj.js │ │ ├── hubei │ │ │ └── hbsia.js │ │ ├── hunan │ │ │ └── notice.js │ │ ├── jiangsu │ │ │ └── eea.js │ │ ├── moa │ │ │ ├── moa.js │ │ │ └── sjzxfb.js │ │ ├── moe │ │ │ └── moe.js │ │ ├── mohrss │ │ │ └── sbjm.js │ │ ├── mohurd │ │ │ └── policy.js │ │ ├── ndrc │ │ │ └── xwdt.js │ │ ├── news │ │ │ └── index.js │ │ ├── ngd │ │ │ └── index.js │ │ ├── nppa │ │ │ ├── channels.js │ │ │ └── contents.js │ │ ├── province │ │ │ ├── index.js │ │ │ └── jiangsu │ │ │ │ ├── getContent.js │ │ │ │ └── index.js │ │ ├── sapprft │ │ │ └── 7026.js │ │ ├── shanghai │ │ │ └── sthj.js │ │ ├── shanxi │ │ │ └── rst.js │ │ ├── shenzhen │ │ │ └── xxgk │ │ │ │ └── zfxxgj.js │ │ ├── shuju │ │ │ └── index.js │ │ ├── statecouncil │ │ │ └── briefing.js │ │ ├── suzhou │ │ │ ├── doc.js │ │ │ ├── news.js │ │ │ └── utils.js │ │ ├── taiwan │ │ │ └── mnd.js │ │ ├── veterans │ │ │ ├── china.js │ │ │ └── hebei.js │ │ ├── wuhan │ │ │ ├── kjj.js │ │ │ └── wehdz.js │ │ ├── xinwen │ │ │ └── tujie.js │ │ └── zhengce │ │ │ ├── govall.js │ │ │ ├── wenjian.js │ │ │ └── zuixin.js │ ├── gq │ │ └── tw │ │ │ └── index.js │ ├── gracg │ │ └── user.js │ ├── gradcafe │ │ └── result.js │ ├── grandchallenge │ │ ├── challenges.js │ │ └── user.js │ ├── greasyfork │ │ └── scripts.js │ ├── growincity │ │ └── news.js │ ├── grubstreet │ │ ├── index.js │ │ └── utils.js │ ├── guanggoo │ │ └── index.js │ ├── guardian │ │ ├── guardian.js │ │ └── utils.js │ ├── guat │ │ └── news.js │ ├── guet │ │ └── news.js │ ├── guiltfree │ │ └── onsale.js │ ├── guokr │ │ ├── calendar.js │ │ └── scientific.js │ ├── gushiwen │ │ └── recommend.js │ ├── gvm │ │ └── index.js │ ├── gwern │ │ └── category.js │ ├── hackerone │ │ ├── hacktivity.js │ │ └── search.js │ ├── haimaoba │ │ └── comics.js │ ├── hainanu │ │ └── ssszs.js │ ├── hanime │ │ └── video.js │ ├── haohaozhu │ │ ├── discover.js │ │ └── whole-house.js │ ├── hatena │ │ └── anonymous_diary │ │ │ └── archive.js │ ├── hdx │ │ └── explore.js │ ├── hentai-cosplays │ │ ├── hentai-cosplays.js │ │ ├── porn-images-xxx.js │ │ └── utils.js │ ├── hentaimama │ │ └── videos.js │ ├── hexo │ │ ├── fluid.js │ │ ├── next.js │ │ └── yilia.js │ ├── hinatazaka46 │ │ ├── blog.js │ │ └── news.js │ ├── hk01 │ │ ├── channel.js │ │ ├── hot.js │ │ ├── issue.js │ │ ├── tag.js │ │ └── zone.js │ ├── hkcd │ │ └── pdf.js │ ├── hkcnews │ │ └── news.js │ ├── hkej │ │ └── index.js │ ├── hkgolden │ │ └── index.js │ ├── hko │ │ └── weather.js │ ├── hopper │ │ └── index.js │ ├── hpoi │ │ ├── index.js │ │ ├── info.js │ │ └── user.js │ ├── huawei │ │ └── xinsheng │ │ │ └── index.js │ ├── hudongba │ │ └── index.js │ ├── hugo │ │ └── releases.js │ ├── huxiu │ │ ├── article.js │ │ ├── author.js │ │ ├── collection.js │ │ ├── search.js │ │ ├── tag.js │ │ └── utils.js │ ├── huya │ │ └── live.js │ ├── icable │ │ └── category.js │ ├── ichunqiu │ │ └── index.js │ ├── iciba │ │ └── index.js │ ├── icity │ │ └── index.js │ ├── icourse163 │ │ └── newest.js │ ├── idaily │ │ └── index.js │ ├── idownloadblog │ │ └── index.js │ ├── iea │ │ └── index.js │ ├── ieee │ │ └── author.js │ ├── ifanr │ │ └── index.js │ ├── ifnews │ │ └── column.js │ ├── iie │ │ └── blog.js │ ├── ikea │ │ └── uk │ │ │ ├── new.js │ │ │ └── offer.js │ ├── im2maker │ │ └── index.js │ ├── imaijia │ │ └── category.js │ ├── imuseum │ │ └── index.js │ ├── index.js │ ├── indienova │ │ └── article.js │ ├── infoq │ │ ├── recommend.js │ │ ├── topic.js │ │ └── utils.js │ ├── infzm │ │ └── news.js │ ├── initium │ │ └── full.js │ ├── instagram │ │ ├── index.js │ │ └── utils.js │ ├── instapaper │ │ └── person.js │ ├── interesting-sky │ │ ├── astronomical_events.js │ │ ├── index.js │ │ └── recent-interesting.js │ ├── invisionapp │ │ └── inside-design.js │ ├── iplay │ │ ├── home.js │ │ └── utils.js │ ├── ipsw │ │ └── index.js │ ├── iqiyi │ │ ├── dongman.js │ │ └── video.js │ ├── itjuzi │ │ ├── invest.js │ │ └── merge.js │ ├── itslaw │ │ └── judgements.js │ ├── itslide │ │ └── new.js │ ├── iyiou │ │ └── index.js │ ├── iyouport │ │ ├── index.js │ │ └── utils.js │ ├── japanpost │ │ ├── track.js │ │ └── utils.js │ ├── jdlingyu │ │ └── index.js │ ├── jianshu │ │ ├── collection.js │ │ ├── home.js │ │ ├── trending.js │ │ ├── user.js │ │ └── utils.js │ ├── jiazhen108 │ │ └── index.js │ ├── jiemian │ │ ├── list.js │ │ └── utils.js │ ├── jijitang │ │ ├── article.js │ │ └── publication.js │ ├── jike │ │ ├── common.js │ │ ├── topic.js │ │ ├── topicText.js │ │ └── user.js │ ├── jingdong │ │ └── zhongchou.js │ ├── jinritoutiao │ │ └── keyword.js │ ├── jinse │ │ ├── catalogue.js │ │ ├── lives.js │ │ └── timeline.js │ ├── jinshi │ │ └── index.js │ ├── jpmorganchase │ │ └── research.js │ ├── jskou │ │ └── index.js │ ├── juejin │ │ ├── books.js │ │ ├── category.js │ │ ├── collection.js │ │ ├── column.js │ │ ├── favorites.js │ │ ├── pins.js │ │ ├── posts.js │ │ ├── shares.js │ │ ├── tag.js │ │ ├── trending.js │ │ └── utils.js │ ├── juesheng │ │ └── index.js │ ├── justrun │ │ └── index.js │ ├── jx3 │ │ └── news.js │ ├── kaggle │ │ ├── competitions.js │ │ ├── discussion.js │ │ └── user.js │ ├── kaiyan │ │ └── index.js │ ├── kaopunews │ │ └── index.js │ ├── kaoyan │ │ └── kaoyan.js │ ├── kchuhai │ │ └── index.js │ ├── keep │ │ └── user.js │ ├── kenshin │ │ └── index.js │ ├── keyakizaka46 │ │ ├── blog.js │ │ └── news.js │ ├── kingarthur │ │ └── index.js │ ├── kirara │ │ └── news.js │ ├── kkj │ │ └── news.js │ ├── konachan │ │ └── post_popular_recent.js │ ├── konami │ │ └── pesmobile.js │ ├── kongfz │ │ ├── people.js │ │ └── shop.js │ ├── kotaku │ │ └── story.js │ ├── kpmg │ │ └── insights.js │ ├── krankenkassen │ │ └── index.js │ ├── ku │ │ └── index.js │ ├── kuai │ │ ├── id.js │ │ └── index.js │ ├── kuaibao │ │ └── index.js │ ├── kuaidi100 │ │ ├── index.js │ │ ├── supported_company.js │ │ └── utils.js │ ├── kzfeed │ │ └── topic.js │ ├── lagou │ │ └── jobs.js │ ├── langlive │ │ └── room.js │ ├── laosiji │ │ ├── feed.js │ │ ├── hot.js │ │ └── hotshow.js │ ├── lastfm │ │ ├── loved.js │ │ ├── recent.js │ │ └── top.js │ ├── latexstudio │ │ └── home.js │ ├── law │ │ ├── dh.js │ │ ├── gf.js │ │ ├── hq.js │ │ ├── hw.js │ │ ├── jctd.js │ │ ├── jh.js │ │ ├── jtc.js │ │ ├── ts.js │ │ └── zl.js │ ├── leboncoin │ │ └── ad.js │ ├── leetcode │ │ ├── articles.js │ │ ├── check-cn.js │ │ ├── check-us.js │ │ └── utils.js │ ├── letterboxd │ │ ├── followingdiary.js │ │ ├── userdiary.js │ │ └── utils.js │ ├── liequtv │ │ └── room.js │ ├── lifetimes │ │ └── index.js │ ├── lingyi │ │ └── index.js │ ├── linkedkeeper │ │ └── index.js │ ├── linkresearcher │ │ └── index.js │ ├── liquipedia │ │ └── dota2_matches.js │ ├── liwushuo │ │ └── index.js │ ├── liyuan-forums │ │ └── threads.js │ ├── lizhi │ │ └── user.js │ ├── logseq │ │ └── changelog.js │ ├── lol │ │ └── newsindex.js │ ├── lolapp │ │ ├── article.js │ │ └── recommend.js │ ├── loveheaven │ │ └── update.js │ ├── lowendtalk │ │ └── discussion.js │ ├── ltaaa │ │ └── index.js │ ├── luogu │ │ ├── contest.js │ │ ├── daily.js │ │ └── userFeed.js │ ├── lwn │ │ └── alerts.js │ ├── macau-bolsas │ │ └── index.js │ ├── macked │ │ └── app.js │ ├── macwk │ │ └── soft.js │ ├── mafengwo │ │ ├── note.js │ │ └── ziyouxing.js │ ├── magireco │ │ ├── announcements.js │ │ └── event_banner.js │ ├── mail │ │ └── imap.js │ ├── maitta │ │ └── index.js │ ├── makeuseof │ │ └── index.js │ ├── mamibuy │ │ └── index.js │ ├── manhuadb │ │ └── comics.js │ ├── manhuadui │ │ └── manhua.js │ ├── manhuagui │ │ └── comic.js │ ├── manictime │ │ └── releases.js │ ├── manong-weekly │ │ └── issues.js │ ├── manxiaosi │ │ └── book.js │ ├── maoyan │ │ ├── hot.js │ │ ├── hotComplete.js │ │ └── upcoming.js │ ├── marginnote │ │ └── tag.js │ ├── mastodon │ │ ├── account_id.js │ │ ├── acct.js │ │ ├── timeline_local.js │ │ ├── timeline_remote.js │ │ └── utils.js │ ├── matataki │ │ ├── site │ │ │ └── posts │ │ │ │ ├── author.js │ │ │ │ ├── favorite.js │ │ │ │ ├── scoreranking.js │ │ │ │ ├── tag.js │ │ │ │ ├── timeranking.js │ │ │ │ └── token.js │ │ └── utils │ │ │ └── matataki-utils.js │ ├── mathpix │ │ └── blog.js │ ├── mathunion │ │ └── fields-medal.js │ ├── matters │ │ ├── author.js │ │ ├── latest.js │ │ └── tags.js │ ├── maxnews │ │ └── dota2.js │ ├── mcbbs │ │ ├── forum.js │ │ ├── post.js │ │ └── utils.js │ ├── mcdonalds │ │ └── news.js │ ├── mckinsey │ │ └── index.js │ ├── mediadigest │ │ └── category.js │ ├── meihua │ │ ├── article.js │ │ └── shots.js │ ├── meipai │ │ ├── user.js │ │ └── utils.js │ ├── meituan │ │ ├── open │ │ │ └── announce.js │ │ └── tech │ │ │ └── home.js │ ├── melon │ │ └── chart.js │ ├── mercari │ │ └── index.js │ ├── metacritic │ │ └── release.js │ ├── method-studios │ │ └── index.js │ ├── metred │ │ └── fuli.js │ ├── mhgui │ │ └── comic.js │ ├── mhw │ │ ├── news.js │ │ └── update.js │ ├── mi │ │ ├── board.js │ │ ├── crowdfunding.js │ │ ├── golden.js │ │ ├── miui │ │ │ └── index.js │ │ └── youpin │ │ │ ├── crowdfunding.js │ │ │ └── new.js │ ├── micmicidol │ │ ├── article.js │ │ ├── latest.js │ │ ├── parse.js │ │ └── search.js │ ├── microsoft-store │ │ └── updates.js │ ├── mihoyo │ │ ├── bh2.js │ │ └── bh3.js │ ├── mind42 │ │ ├── index.js │ │ ├── search.js │ │ ├── tag.js │ │ └── utils.js │ ├── minecraft │ │ └── version.js │ ├── mingjian │ │ └── index.js │ ├── miniapp │ │ ├── article.js │ │ └── store │ │ │ └── newest.js │ ├── miniflux │ │ ├── get_entries.js │ │ └── get_feeds.js │ ├── mirror │ │ └── entries.js │ ├── missevan │ │ ├── drama.js │ │ └── latest.js │ ├── mitbbs │ │ └── index.js │ ├── mitre │ │ └── publications.js │ ├── mittrchina │ │ └── index.js │ ├── mlhang │ │ └── latest.js │ ├── mlog-club │ │ ├── projects.js │ │ └── topics.js │ ├── mobdata │ │ └── report.js │ ├── mobilism │ │ └── release.js │ ├── modian │ │ └── zhongchou.js │ ├── mofcom │ │ └── article.js │ ├── mofish │ │ ├── index.js │ │ └── templates │ │ │ └── description.art │ ├── monotype │ │ └── article.js │ ├── moxingfans │ │ └── index.js │ ├── moxingnet │ │ └── index.js │ ├── mp4ba │ │ └── index.js │ ├── mp4er │ │ └── index.js │ ├── mqube │ │ ├── latest.js │ │ ├── tag.js │ │ ├── top.js │ │ └── user.js │ ├── mubu │ │ └── explore.js │ ├── muchong │ │ ├── index.js │ │ └── journal.js │ ├── mzitu │ │ ├── category.js │ │ ├── home.js │ │ ├── post.js │ │ ├── tag.js │ │ ├── tags.js │ │ └── util.js │ ├── nace │ │ └── blog.js │ ├── namoc │ │ ├── announcement.js │ │ ├── exhibition.js │ │ ├── media.js │ │ ├── news.js │ │ └── specials.js │ ├── nasa │ │ ├── apod-cn.js │ │ ├── apod-ncku.js │ │ └── apod.js │ ├── nature │ │ ├── cover.js │ │ ├── highlight.js │ │ ├── news-and-comment.js │ │ ├── news.js │ │ └── research.js │ ├── nautilus │ │ └── topics.js │ ├── navisec │ │ └── index.js │ ├── nba │ │ └── app_news.js │ ├── ncm │ │ ├── artist.js │ │ ├── djradio.js │ │ ├── playlist.js │ │ ├── templates │ │ │ └── djradio-content.art │ │ ├── userplaylist.js │ │ └── userplayrecords.js │ ├── netease │ │ ├── ds.js │ │ ├── dy.js │ │ ├── dy2.js │ │ ├── news │ │ │ └── special.js │ │ └── open │ │ │ ├── latest.js │ │ │ └── vip.js │ ├── netflix │ │ └── newsroom.js │ ├── network360 │ │ └── jobs.js │ ├── newrank │ │ ├── douyin.js │ │ ├── utils.js │ │ └── wechat.js │ ├── newsmth │ │ ├── account.js │ │ └── section.js │ ├── newzmz │ │ ├── index.js │ │ └── view.js │ ├── nfmovies │ │ └── index.js │ ├── nga │ │ ├── forum.js │ │ └── post.js │ ├── nhentai │ │ ├── other.js │ │ ├── search.js │ │ └── util.js │ ├── nhk │ │ └── news_web_easy.js │ ├── niaogebiji │ │ ├── cat.js │ │ ├── index.js │ │ └── today.js │ ├── nikkei │ │ ├── index.js │ │ └── news.js │ ├── ningmeng │ │ └── song.js │ ├── nintendo │ │ ├── direct.js │ │ ├── eshop_cn.js │ │ ├── eshop_hk.js │ │ ├── eshop_jp.js │ │ ├── eshop_us.js │ │ ├── news.js │ │ ├── news_china.js │ │ ├── system-update.js │ │ └── utils.js │ ├── nobelprize │ │ └── index.js │ ├── noi │ │ ├── index.js │ │ ├── province-news.js │ │ ├── rg-news.js │ │ └── winners-list.js │ ├── northhouse │ │ └── index.js │ ├── nosec │ │ └── index.js │ ├── nosetime │ │ ├── comment.js │ │ └── home.js │ ├── notefolio │ │ └── index.js │ ├── novel │ │ ├── axdzs.js │ │ ├── biquge.js │ │ ├── biqugeinfo.js │ │ ├── booksky.js │ │ ├── dcrsw.js │ │ ├── ptwxz.js │ │ ├── shuquge.js │ │ ├── uukanshu.js │ │ ├── wenxuemi.js │ │ └── zhaishuyuan.js │ ├── now │ │ └── rank.js │ ├── npc │ │ └── index.js │ ├── nvidia │ │ └── webdriverupdate.js │ ├── nwpu │ │ └── index.js │ ├── nyaa │ │ └── search.js │ ├── obsidian │ │ └── announcements.js │ ├── ofweek │ │ └── news.js │ ├── oilprice │ │ └── index.js │ ├── one │ │ └── index.js │ ├── onejav │ │ └── one.js │ ├── onenotegem │ │ └── release.js │ ├── openai │ │ └── blog.js │ ├── or │ │ └── index.js │ ├── ornl │ │ └── news.js │ ├── oschina │ │ ├── news.js │ │ ├── topic.js │ │ ├── u.js │ │ └── user.js │ ├── outagereport │ │ └── service.js │ ├── ow │ │ └── patch.js │ ├── owspace │ │ └── read.js │ ├── p-articles │ │ ├── contributors.js │ │ ├── section.js │ │ └── utils.js │ ├── paidai │ │ ├── bbs.js │ │ ├── index.js │ │ ├── news.js │ │ └── utils.js │ ├── parcel │ │ └── hermesuk.js │ ├── partnershiponai │ │ └── resources.js │ ├── patchwork.kernel.org │ │ ├── cache.js │ │ └── comments.js │ ├── pcr │ │ ├── news-cn.js │ │ ├── news-tw.js │ │ └── news.js │ ├── pediy │ │ ├── topic.js │ │ └── utils.js │ ├── pgyer │ │ └── app.js │ ├── phoronix │ │ └── index.js │ ├── phrack │ │ └── index.js │ ├── pianyuan │ │ └── app.js │ ├── piaohua │ │ └── hot.js │ ├── piapro │ │ ├── public.js │ │ ├── user.js │ │ └── utils.js │ ├── pincong │ │ ├── hot.js │ │ ├── index.js │ │ └── topic.js │ ├── pingwest │ │ ├── status.js │ │ ├── tag.js │ │ ├── user.js │ │ └── utils.js │ ├── pintu360 │ │ └── index.js │ ├── pixiv │ │ ├── api │ │ │ ├── getBookmarks.js │ │ │ ├── getIllustFollows.js │ │ │ ├── getIllusts.js │ │ │ ├── getRanking.js │ │ │ ├── getUserDetail.js │ │ │ ├── searchIllust.js │ │ │ └── searchPopularIllust.js │ │ ├── bookmarks.js │ │ ├── constants.js │ │ ├── illustfollow.js │ │ ├── pixiv-got.js │ │ ├── ranking.js │ │ ├── search.js │ │ ├── token.js │ │ ├── user.js │ │ └── utils.js │ ├── pjsk │ │ └── news.js │ ├── plainlaw │ │ └── archives.js │ ├── pmcaff │ │ ├── feed.js │ │ ├── list.js │ │ └── user.js │ ├── pnas │ │ └── index.js │ ├── pocket │ │ └── trending.js │ ├── polar │ │ └── blog.js │ ├── polimi │ │ └── news.js │ ├── popiask │ │ ├── questions.js │ │ └── tapechat_questions.js │ ├── popyard │ │ └── index.js │ ├── pork-price │ │ └── index.js │ ├── pornhub │ │ ├── category.js │ │ ├── category_url.js │ │ ├── model.js │ │ ├── pornstar.js │ │ ├── search.js │ │ └── users.js │ ├── potplayer │ │ └── update.js │ ├── prestige-av │ │ └── series.js │ ├── processon │ │ └── popular.js │ ├── project-zero-issues │ │ └── index.js │ ├── proletar │ │ └── index.js │ ├── ps │ │ ├── list.js │ │ ├── product.js │ │ ├── ps4updates.js │ │ └── trophy.js │ ├── psnine │ │ ├── game.js │ │ ├── index.js │ │ ├── news.js │ │ ├── node.js │ │ ├── shuzhe.js │ │ └── trade.js │ ├── ptpress │ │ └── book.js │ ├── putonghua │ │ └── hangzhou.js │ ├── qdaily │ │ └── index.js │ ├── qidian │ │ ├── chapter.js │ │ ├── forum.js │ │ ├── free-next.js │ │ └── free.js │ ├── qingting │ │ └── channel.js │ ├── qlwb │ │ ├── city.js │ │ └── news.js │ ├── qnap │ │ └── release-notes.js │ ├── qstheory │ │ └── index.js │ ├── qtfyfl │ │ └── category.js │ ├── qttabbar │ │ └── change-log.js │ ├── quantamagazine │ │ └── archive.js │ ├── queshu │ │ ├── book.js │ │ └── sale.js │ ├── questmobile │ │ └── report.js │ ├── qutoutiao │ │ └── category.js │ ├── qzcea │ │ └── index.js │ ├── radio │ │ └── radio.js │ ├── react │ │ └── react-native-weekly.js │ ├── remote-work │ │ └── index.js │ ├── rescuetime │ │ └── release-notes.js │ ├── researchgate │ │ └── publications.js │ ├── reuters │ │ ├── channel.js │ │ ├── theWire.js │ │ └── utils.js │ ├── rf │ │ └── article.js │ ├── right │ │ └── forum.js │ ├── rmlt │ │ └── idea.js │ ├── rrys │ │ └── review.js │ ├── rs05 │ │ └── rs05.js │ ├── rss3 │ │ └── blog.js │ ├── rthk-news │ │ └── index.js │ ├── ruby-china │ │ ├── constants.js │ │ ├── jobs.js │ │ ├── topics.js │ │ └── utils.js │ ├── s-hentai │ │ └── index.js │ ├── sagawa │ │ └── index.js │ ├── sakurazaka46 │ │ └── blog.js │ ├── samsungmembers │ │ └── latest.js │ ├── sankakucomplex │ │ └── post.js │ ├── sans │ │ └── summit_archive.js │ ├── saraba1st │ │ └── thread.js │ ├── sbs │ │ └── chinese.js │ ├── scala-blog │ │ └── scala-blog.js │ ├── scboy │ │ └── thread.js │ ├── sciencemag │ │ ├── cover.js │ │ ├── current.js │ │ └── early.js │ ├── sciencenet │ │ └── blog.js │ ├── sckjt │ │ └── news.js │ ├── scmp │ │ └── index.js │ ├── scoresaber │ │ └── user.js │ ├── secrss │ │ ├── author.js │ │ └── category.js │ ├── secshi │ │ └── index.js │ ├── security │ │ └── pulses.js │ ├── semiconductors │ │ └── latest-news.js │ ├── sesame │ │ └── release_notes.js │ ├── sexinsex │ │ └── index.js │ ├── sf │ │ └── sffq-announce.js │ ├── shanbay │ │ ├── checkin.js │ │ └── footprints.js │ ├── shengwugu │ │ └── index.js │ ├── shinybbs │ │ ├── index.js │ │ ├── latest.js │ │ └── p.js │ ├── showroom │ │ └── room.js │ ├── shuax │ │ └── project.js │ ├── shuhui │ │ └── comics.js │ ├── simonsfoundation │ │ ├── articles.js │ │ └── recommend.js │ ├── simpread │ │ ├── changelog.js │ │ └── notice.js │ ├── sina │ │ ├── chuangshiji.js │ │ ├── discovery.js │ │ ├── finance.js │ │ ├── rollnews.js │ │ └── sports.js │ ├── siren │ │ └── index.js │ ├── sixthtone │ │ └── news.js │ ├── sketch │ │ ├── beta.js │ │ └── updates.js │ ├── skysports │ │ └── news.js │ ├── smzdm │ │ ├── article.js │ │ ├── baoliao.js │ │ ├── haowen.js │ │ ├── haowen_fenlei.js │ │ ├── keyword.js │ │ └── ranking.js │ ├── sobooks │ │ ├── date.js │ │ ├── index.js │ │ ├── tag.js │ │ └── utils.js │ ├── socialbeta │ │ ├── home.js │ │ └── hunt.js │ ├── socialclub │ │ └── events.js │ ├── sogou │ │ └── doodles.js │ ├── soomal │ │ └── topics.js │ ├── soul │ │ ├── hot.js │ │ └── index.js │ ├── soundcloud │ │ ├── tracks.js │ │ └── utils.js │ ├── souyun │ │ └── today.js │ ├── sse │ │ ├── convert.js │ │ ├── disclosure.js │ │ ├── inquire.js │ │ ├── renewal.js │ │ └── sserules.js │ ├── ssmh │ │ ├── category.js │ │ └── index.js │ ├── sspai │ │ ├── activity.js │ │ ├── author.js │ │ ├── column.js │ │ ├── matrix.js │ │ ├── series.js │ │ ├── shortcutsGallery.js │ │ ├── tag.js │ │ ├── topic.js │ │ └── topics.js │ ├── ssydt │ │ └── article.js │ ├── steam │ │ ├── search.js │ │ └── steamgifts │ │ │ └── discussions.js │ ├── stork │ │ └── keyword.js │ ├── storyfm │ │ └── index.js │ ├── swjtu │ │ └── tl │ │ │ └── news.js │ ├── sznews │ │ ├── press.js │ │ └── ranking.js │ ├── szse │ │ ├── inquire.js │ │ ├── notice.js │ │ └── projectdynamic.js │ ├── t66y │ │ ├── index.js │ │ └── post.js │ ├── tahui │ │ └── rptlist.js │ ├── tam │ │ └── forecast.js │ ├── tanchinese │ │ └── index.js │ ├── tanwu │ │ └── products.js │ ├── taoguba │ │ ├── index.js │ │ └── user.js │ ├── taptap │ │ ├── changelog.js │ │ ├── review.js │ │ └── topic.js │ ├── technologyreview │ │ ├── index.js │ │ └── topic.js │ ├── telecompaper │ │ ├── news.js │ │ └── search.js │ ├── tencent │ │ ├── bigdata │ │ │ └── index.js │ │ ├── bugly │ │ │ └── changelog.js │ │ ├── egame │ │ │ └── room.js │ │ ├── factcheck │ │ │ └── index.js │ │ ├── gameinstitute │ │ │ └── community.js │ │ ├── guyu │ │ │ └── channel.js │ │ ├── news │ │ │ └── author.js │ │ ├── pvp │ │ │ └── newsindex.js │ │ ├── qcloud │ │ │ └── mlvb │ │ │ │ └── changelog.js │ │ ├── tucaoqq │ │ │ └── post.js │ │ ├── video │ │ │ └── playlist.js │ │ └── wechat │ │ │ ├── announce.js │ │ │ ├── ce.js │ │ │ ├── csm.js │ │ │ ├── ershcimi.js │ │ │ ├── feeds.js │ │ │ ├── miniprogram │ │ │ ├── devtools.js │ │ │ ├── framework.js │ │ │ ├── plugins.js │ │ │ └── wxcloud.js │ │ │ ├── mp.js │ │ │ ├── msgalbum.js │ │ │ ├── tgchannel.js │ │ │ ├── uread.js │ │ │ ├── wechat-open │ │ │ ├── community │ │ │ │ ├── announce.js │ │ │ │ └── question.js │ │ │ └── pay │ │ │ │ └── announce.js │ │ │ ├── wemp.js │ │ │ ├── wjdn.js │ │ │ └── wxnmh.js │ ├── tesla │ │ └── update.js │ ├── testerhome │ │ └── newest.js │ ├── the-economist │ │ ├── download.js │ │ ├── full.js │ │ └── gre-vocabulary.js │ ├── thebrain │ │ └── blog.js │ ├── thrillist │ │ └── index.js │ ├── thunderbird │ │ └── release.js │ ├── tianya │ │ ├── comments.js │ │ ├── index.js │ │ └── user.js │ ├── tianyancha │ │ └── hot.js │ ├── tieba │ │ ├── forum.js │ │ ├── post.js │ │ └── user.js │ ├── tingdiantz │ │ ├── 95598.js │ │ └── nanjing.js │ ├── tingshen │ │ └── tingshen.js │ ├── tingshuitz │ │ ├── dalian.js │ │ ├── dongguan.js │ │ ├── guangzhou.js │ │ ├── hangzhou.js │ │ ├── nanjing.js │ │ ├── wuhan.js │ │ ├── xian.js │ │ ├── xiaoshan.js │ │ └── yangjiang.js │ ├── titsguru │ │ ├── category.js │ │ ├── daily.js │ │ ├── home.js │ │ ├── model.js │ │ └── util.js │ ├── tongli │ │ └── news.js │ ├── topbook │ │ ├── overview.js │ │ └── today.js │ ├── tophub │ │ └── index.js │ ├── totalcommander │ │ └── whatsnew.js │ ├── touhougarakuta │ │ ├── index.js │ │ └── json2html.js │ ├── tprtc │ │ ├── cqzr.js │ │ ├── news.js │ │ └── qyzc.js │ ├── trakt │ │ └── collection.js │ ├── transferwise │ │ └── pair.js │ ├── tssstatus │ │ └── index.js │ ├── tuicool │ │ └── mags.js │ ├── twitter │ │ ├── developer-api │ │ │ ├── search.js │ │ │ └── user.js │ │ ├── followings.js │ │ ├── keyword.js │ │ ├── likes.js │ │ ├── list.js │ │ ├── media.js │ │ ├── trends.js │ │ ├── user.js │ │ ├── utils.js │ │ └── web-api │ │ │ ├── media.js │ │ │ ├── search.js │ │ │ ├── twitter-api.js │ │ │ ├── twitter-got.js │ │ │ └── user.js │ ├── twmanhuagui │ │ └── comic.js │ ├── twreporter │ │ ├── category.js │ │ ├── fetch_article.js │ │ ├── newest.js │ │ └── photography.js │ ├── typora │ │ ├── changelog-dev.js │ │ └── changelog.js │ ├── udn │ │ └── global.js │ ├── ui-cn │ │ ├── article.js │ │ └── user.js │ ├── uisdc │ │ ├── hangye.js │ │ ├── news.js │ │ ├── talk.js │ │ ├── topic.js │ │ └── zt.js │ ├── umass │ │ └── amherst │ │ │ ├── csnews.js │ │ │ ├── ecenews.js │ │ │ ├── eceseminar.js │ │ │ ├── ipoevents.js │ │ │ └── ipostories.js │ ├── un │ │ └── scveto.js │ ├── uniqlo │ │ └── stylingbook.js │ ├── unit-image │ │ └── films.js │ ├── universities │ │ ├── ahau │ │ │ ├── cs_news │ │ │ │ ├── index.js │ │ │ │ └── utils.js │ │ │ ├── jwc │ │ │ │ ├── index.js │ │ │ │ └── utils.js │ │ │ └── main │ │ │ │ ├── index.js │ │ │ │ └── utils.js │ │ ├── ahmu │ │ │ └── news.js │ │ ├── ahut │ │ │ ├── cstzgg.js │ │ │ ├── jwc.js │ │ │ └── news.js │ │ ├── bit │ │ │ ├── bityjs.js │ │ │ ├── cs │ │ │ │ ├── cs.js │ │ │ │ └── utils.js │ │ │ └── jwc │ │ │ │ ├── jwc.js │ │ │ │ └── utils.js │ │ ├── bjtu │ │ │ └── gs │ │ │ │ └── index.js │ │ ├── buaa │ │ │ ├── news │ │ │ │ └── index.js │ │ │ └── utils.js │ │ ├── bupt │ │ │ ├── funbox.js │ │ │ ├── grs.js │ │ │ ├── news.js │ │ │ ├── portal.js │ │ │ ├── utils.js │ │ │ └── yz.js │ │ ├── bwu │ │ │ ├── news.js │ │ │ └── utils.js │ │ ├── cas │ │ │ ├── cg │ │ │ │ └── index.js │ │ │ ├── iee │ │ │ │ └── kydt.js │ │ │ ├── mesalab │ │ │ │ └── kb.js │ │ │ └── sim │ │ │ │ └── academic.js │ │ ├── cauele │ │ │ └── cauele.js │ │ ├── cauyjs │ │ │ └── cauyjs.js │ │ ├── ccnu │ │ │ ├── career.js │ │ │ ├── ccnucs.js │ │ │ ├── ccnuwu.js │ │ │ └── ccnuyjs.js │ │ ├── cczu │ │ │ ├── jwc.js │ │ │ └── news.js │ │ ├── cpu │ │ │ ├── home.js │ │ │ ├── jwc.js │ │ │ └── yjsy.js │ │ ├── cqu │ │ │ ├── jwc │ │ │ │ └── announcement.js │ │ │ ├── net │ │ │ │ └── info.js │ │ │ ├── news │ │ │ │ ├── jzyg.js │ │ │ │ ├── tz.js │ │ │ │ └── utils.js │ │ │ ├── sci │ │ │ │ └── info.js │ │ │ └── youth │ │ │ │ └── info.js │ │ ├── cqust │ │ │ ├── jw.js │ │ │ └── lib.js │ │ ├── cqut │ │ │ ├── cqut-libnews.js │ │ │ └── cqut-news.js │ │ ├── csu │ │ │ └── job.js │ │ ├── cuc │ │ │ └── yz.js │ │ ├── cucyjs │ │ │ └── cucyjs.js │ │ ├── cug │ │ │ ├── gcxy │ │ │ │ └── index.js │ │ │ ├── graduate.js │ │ │ ├── news.js │ │ │ ├── undergraduate.js │ │ │ └── xgxy.js │ │ ├── cuit │ │ │ └── cxxww.js │ │ ├── dgut │ │ │ ├── jwc.js │ │ │ └── xsc.js │ │ ├── dlmu │ │ │ ├── grs │ │ │ │ └── zsgz.js │ │ │ └── news.js │ │ ├── dlu │ │ │ └── jiaowu │ │ │ │ └── news.js │ │ ├── dpu │ │ │ ├── jiaowu │ │ │ │ └── news.js │ │ │ └── wlfw │ │ │ │ └── news.js │ │ ├── dut │ │ │ ├── index.js │ │ │ └── subsite.js │ │ ├── ecnuyjs │ │ │ └── ecnuyjs.js │ │ ├── ecustyjs │ │ │ └── ecustyjs.js │ │ ├── fudan │ │ │ └── cce.js │ │ ├── fzu │ │ │ ├── news.js │ │ │ └── news_min.js │ │ ├── gdou │ │ │ └── jwc │ │ │ │ ├── jwtz.js │ │ │ │ └── utils.js │ │ ├── gdut │ │ │ └── news.js │ │ ├── gzmtu │ │ │ ├── jwc │ │ │ │ ├── index.js │ │ │ │ └── utils.js │ │ │ └── tsg │ │ │ │ ├── index.js │ │ │ │ └── utils.js │ │ ├── gzyjs │ │ │ └── gzyjs.js │ │ ├── harvard │ │ │ └── health │ │ │ │ └── blog.js │ │ ├── hbut │ │ │ ├── cs.js │ │ │ └── news.js │ │ ├── henu │ │ │ └── news.js │ │ ├── hfut │ │ │ └── tzgg.js │ │ ├── hhu │ │ │ ├── libNews.js │ │ │ └── libNewsc.js │ │ ├── hit │ │ │ ├── jwc.js │ │ │ └── today.js │ │ ├── hitsz │ │ │ └── article.js │ │ ├── hitwh │ │ │ └── today.js │ │ ├── hnust │ │ │ ├── art │ │ │ │ └── index.js │ │ │ ├── chem │ │ │ │ └── index.js │ │ │ ├── computer │ │ │ │ └── index.js │ │ │ ├── graduate │ │ │ │ └── index.js │ │ │ └── jwc │ │ │ │ └── index.js │ │ ├── hubu │ │ │ └── news.js │ │ ├── hust │ │ │ └── aia │ │ │ │ ├── news.js │ │ │ │ └── notice.js │ │ ├── hustyjs │ │ │ └── hustyjs.js │ │ ├── jgsu │ │ │ └── jwc.js │ │ ├── jlbtc │ │ │ ├── index.js │ │ │ ├── jwc.js │ │ │ └── kyc.js │ │ ├── jlu │ │ │ └── oa.js │ │ ├── jnu │ │ │ ├── xysx │ │ │ │ └── index.js │ │ │ └── yw │ │ │ │ └── index.js │ │ ├── ju │ │ │ └── jwc.js │ │ ├── kmust │ │ │ ├── job │ │ │ │ ├── careers.js │ │ │ │ └── jobfairs.js │ │ │ └── jwc.js │ │ ├── lit │ │ │ ├── jwc.js │ │ │ ├── tw.js │ │ │ └── xwzx.js │ │ ├── lntu │ │ │ └── jwnews.js │ │ ├── lyu │ │ │ └── news │ │ │ │ ├── index.js │ │ │ │ └── utils.js │ │ ├── mit │ │ │ ├── csail │ │ │ │ └── news.js │ │ │ ├── graduateadmissions.js │ │ │ └── ocw-top.js │ │ ├── nchu │ │ │ └── jwc.js │ │ ├── nciae │ │ │ ├── news.js │ │ │ ├── tzgg.js │ │ │ └── xsxx.js │ │ ├── ncwu │ │ │ └── notice.js │ │ ├── neu │ │ │ └── news.js │ │ ├── njfu │ │ │ └── jwc.js │ │ ├── njtech │ │ │ └── jwc.js │ │ ├── njust │ │ │ ├── cwc │ │ │ │ └── index.js │ │ │ ├── eo │ │ │ │ ├── index.js │ │ │ │ └── util.js │ │ │ ├── gs │ │ │ │ └── index.js │ │ │ └── jwc │ │ │ │ └── index.js │ │ ├── nku │ │ │ └── jwc │ │ │ │ └── index.js │ │ ├── nuc │ │ │ └── index.js │ │ ├── nudt │ │ │ └── yjszs.js │ │ ├── nuist │ │ │ ├── bulletin.js │ │ │ ├── cas.js │ │ │ ├── jwc.js │ │ │ ├── library │ │ │ │ └── lib.js │ │ │ ├── scs.js │ │ │ ├── sese.js │ │ │ ├── xgc.js │ │ │ └── yjs.js │ │ ├── nwafu │ │ │ ├── 54youth.js │ │ │ ├── cie.js │ │ │ ├── gs.js │ │ │ ├── jcc.js │ │ │ ├── jiaowu.js │ │ │ ├── lib.js │ │ │ ├── news.js │ │ │ ├── nic.js │ │ │ └── yjshy.js │ │ ├── ouc │ │ │ └── it.js │ │ ├── outele │ │ │ └── outele.js │ │ ├── outyjs │ │ │ └── outyjs.js │ │ ├── pku │ │ │ ├── bbs │ │ │ │ └── hot.js │ │ │ ├── cls │ │ │ │ └── lecture.js │ │ │ ├── eecs.js │ │ │ ├── pkuyjs.js │ │ │ └── rccp │ │ │ │ └── mzyt.js │ │ ├── scauyjs │ │ │ └── scauyjs.js │ │ ├── scnu │ │ │ ├── cs │ │ │ │ └── match.js │ │ │ ├── jw.js │ │ │ ├── library.js │ │ │ ├── scnucs.js │ │ │ └── scnuyjs.js │ │ ├── sctu │ │ │ ├── information-engineer-faculty │ │ │ │ ├── context.js │ │ │ │ └── index.js │ │ │ └── jwc │ │ │ │ ├── context.js │ │ │ │ └── index.js │ │ ├── scu │ │ │ ├── jwc.js │ │ │ └── xg.js │ │ ├── scut │ │ │ ├── jwc │ │ │ │ ├── news.js │ │ │ │ ├── notice.js │ │ │ │ └── school.js │ │ │ ├── scet │ │ │ │ └── notice.js │ │ │ ├── scutyjs.js │ │ │ └── seie │ │ │ │ └── news_center.js │ │ ├── scvtc │ │ │ └── xygg.js │ │ ├── sdu │ │ │ ├── cmse.js │ │ │ ├── cs.js │ │ │ ├── epe.js │ │ │ ├── mech.js │ │ │ └── sc.js │ │ ├── seu │ │ │ ├── cse │ │ │ │ └── index.js │ │ │ ├── radio │ │ │ │ └── academic.js │ │ │ └── yzb │ │ │ │ └── index.js │ │ ├── shanghaitech │ │ │ ├── activity.js │ │ │ └── sist │ │ │ │ └── activity.js │ │ ├── shiep │ │ │ └── index.js │ │ ├── shmtu │ │ │ ├── jwc.js │ │ │ └── www.js │ │ ├── shou │ │ │ └── www.js │ │ ├── shu │ │ │ ├── index.js │ │ │ └── jwc.js │ │ ├── sjtu │ │ │ ├── gs │ │ │ │ ├── tzgg.js │ │ │ │ └── utils.js │ │ │ ├── jwc.js │ │ │ ├── seiee │ │ │ │ ├── academic.js │ │ │ │ ├── bjwb.js │ │ │ │ ├── utils.js │ │ │ │ └── xsb.js │ │ │ ├── tongqu │ │ │ │ └── activity.js │ │ │ └── yzb │ │ │ │ └── zkxx.js │ │ ├── slu │ │ │ ├── csggxy.js │ │ │ ├── jwc.js │ │ │ ├── kjxy.js │ │ │ ├── tyyjkxy.js │ │ │ ├── tzgg.js │ │ │ ├── utils.js │ │ │ └── xsc.js │ │ ├── sustech │ │ │ ├── bidding.js │ │ │ └── newshub-zh.js │ │ ├── sustyjs │ │ │ └── sustyjs.js │ │ ├── swufe │ │ │ └── seie │ │ │ │ └── index.js │ │ ├── swust │ │ │ ├── cs.js │ │ │ ├── helper.js │ │ │ ├── jwc_news.js │ │ │ └── jwc_notice.js │ │ ├── szu │ │ │ └── yz │ │ │ │ ├── index.js │ │ │ │ └── utils.js │ │ ├── szuyjs │ │ │ └── szuyjs.js │ │ ├── thu │ │ │ ├── career.js │ │ │ └── index.js │ │ ├── tjpyu │ │ │ └── ooa.js │ │ ├── tju │ │ │ └── sse │ │ │ │ ├── _article.js │ │ │ │ └── notice.js │ │ ├── tjuyjs │ │ │ └── tjuyjs.js │ │ ├── tynu │ │ │ └── tynu.js │ │ ├── uestc │ │ │ ├── auto.js │ │ │ ├── cqe.js │ │ │ ├── cs.js │ │ │ ├── gr.js │ │ │ ├── is.js │ │ │ ├── jwc.js │ │ │ ├── news.js │ │ │ └── sice.js │ │ ├── upc │ │ │ ├── jsj.js │ │ │ └── main.js │ │ ├── upcyjs │ │ │ └── upcyjs.js │ │ ├── usst │ │ │ └── jwc.js │ │ ├── ustb │ │ │ └── tj │ │ │ │ └── news.js │ │ ├── ustc │ │ │ ├── index.js │ │ │ ├── job.js │ │ │ └── jwc │ │ │ │ └── index.js │ │ ├── utdallas │ │ │ └── isso.js │ │ ├── whu │ │ │ ├── cs.js │ │ │ └── news.js │ │ ├── wtu │ │ │ └── index.js │ │ ├── wzbc │ │ │ └── news.js │ │ ├── xidian │ │ │ └── jwc.js │ │ ├── xjtu │ │ │ ├── dean.js │ │ │ ├── ee.js │ │ │ ├── gs │ │ │ │ └── tzgg.js │ │ │ ├── international.js │ │ │ └── job.js │ │ ├── xmu │ │ │ └── aero.js │ │ ├── xynu │ │ │ └── zkb │ │ │ │ └── index.js │ │ ├── ynnu │ │ │ └── edu │ │ │ │ ├── base64.js │ │ │ │ └── news.js │ │ ├── ynu │ │ │ ├── grs │ │ │ │ ├── qttz.js │ │ │ │ └── zytz.js │ │ │ ├── home │ │ │ │ └── main.js │ │ │ ├── jwc │ │ │ │ └── zytz.js │ │ │ └── utils.js │ │ ├── yzu │ │ │ ├── home.js │ │ │ └── yjszs.js │ │ ├── zjgsu │ │ │ ├── gsgg │ │ │ │ └── scripts.js │ │ │ ├── tzgg │ │ │ │ ├── scripts.js │ │ │ │ └── utils.js │ │ │ └── xszq │ │ │ │ └── scripts.js │ │ ├── zju │ │ │ ├── career │ │ │ │ └── index.js │ │ │ ├── cst │ │ │ │ ├── custom.js │ │ │ │ └── index.js │ │ │ ├── grs │ │ │ │ └── index.js │ │ │ ├── list.js │ │ │ └── physics │ │ │ │ └── index.js │ │ ├── zjut │ │ │ ├── design.js │ │ │ └── index.js │ │ ├── zkyai │ │ │ └── zkyai.js │ │ ├── zkyyjs │ │ │ └── zkyyjs.js │ │ ├── zucc │ │ │ ├── cssearch │ │ │ │ └── index.js │ │ │ └── news │ │ │ │ └── index.js │ │ ├── zzu │ │ │ ├── news.js │ │ │ └── soft │ │ │ │ └── news.js │ │ └── zzuli │ │ │ ├── campus │ │ │ └── index.js │ │ │ └── yjsc │ │ │ └── index.js │ ├── uraaka-joshi │ │ ├── uraaka-joshi-user.js │ │ └── uraaka-joshi.js │ ├── us │ │ ├── cia │ │ │ └── foia-annual-report.js │ │ ├── supremecourt │ │ │ └── argument_audio.js │ │ ├── treasury │ │ │ └── press-releases.js │ │ └── ustr │ │ │ └── press-releases.js │ ├── uwants │ │ └── index.js │ ├── v2ex │ │ ├── post.js │ │ ├── tab.js │ │ └── topics.js │ ├── verge │ │ └── index.js │ ├── vgn │ │ └── index.js │ ├── vgtime │ │ ├── keyword.js │ │ ├── news.js │ │ └── release.js │ ├── voa │ │ ├── day-photos.js │ │ └── index.js │ ├── vocus │ │ ├── publication.js │ │ ├── user.js │ │ └── utils.js │ ├── vol │ │ └── lastupdate.js │ ├── vscode │ │ └── marketplace.js │ ├── vuevideo │ │ └── user.js │ ├── vulture │ │ ├── index.js │ │ └── utils.js │ ├── waijiedanao │ │ └── article.js │ ├── wainao │ │ └── index.js │ ├── wallpaperhub │ │ └── index.js │ ├── wanwansub │ │ ├── index.js │ │ └── info.js │ ├── watchface │ │ └── update.js │ ├── weatheralarm │ │ └── index.js │ ├── webtoons │ │ ├── comic.js │ │ └── naver.js │ ├── weexcn │ │ └── index.js │ ├── weforum │ │ └── report.js │ ├── wegene │ │ ├── column.js │ │ └── newest.js │ ├── weibo │ │ ├── keyword.js │ │ ├── oasis │ │ │ └── user.js │ │ ├── search │ │ │ └── hot.js │ │ ├── super_index.js │ │ ├── timeline.js │ │ ├── user.js │ │ └── utils.js │ ├── weidian │ │ └── goods.js │ ├── wenxuecity │ │ ├── bbs.js │ │ ├── blog.js │ │ ├── hot.js │ │ └── news.js │ ├── weseepro │ │ ├── circle.js │ │ ├── newest-direct.js │ │ └── newest.js │ ├── westore │ │ └── new.js │ ├── whalegogo │ │ ├── home.js │ │ └── portal.js │ ├── whb │ │ └── zhuzhan.js │ ├── wikihow │ │ ├── category.js │ │ └── index.js │ ├── wikipedia │ │ └── mainland.js │ ├── windows10spotlight │ │ └── index.js │ ├── wineyun │ │ └── index.js │ ├── wired │ │ └── tag.js │ ├── wolley │ │ ├── host.js │ │ ├── index.js │ │ └── user.js │ ├── worldhappiness │ │ ├── archive.js │ │ └── blog.js │ ├── woshipm │ │ ├── bookmarks.js │ │ ├── latest.js │ │ ├── popular.js │ │ ├── user_article.js │ │ └── wen.js │ ├── wto │ │ └── dispute-settlement.js │ ├── wukong │ │ └── user.js │ ├── x-mol │ │ ├── news.js │ │ ├── paper.js │ │ └── utils.js │ ├── x410 │ │ └── news.js │ ├── x6d │ │ └── index.js │ ├── xclient │ │ └── app.js │ ├── xiachufang │ │ ├── popular.js │ │ ├── user │ │ │ ├── cooked.js │ │ │ └── created.js │ │ └── utils.js │ ├── xiaoheihe │ │ ├── discount.js │ │ ├── news.js │ │ └── user.js │ ├── xiaohongshu │ │ ├── board.js │ │ ├── user.js │ │ └── util.js │ ├── xiaomieu │ │ └── releases.js │ ├── xici │ │ └── index.js │ ├── ximalaya │ │ ├── album.js │ │ └── utils.js │ ├── xinquji │ │ ├── internal.js │ │ └── today.js │ ├── xinwenlianbo │ │ └── index.js │ ├── xmind │ │ └── mindmap.js │ ├── xposed │ │ └── module.js │ ├── xuangubao │ │ └── subject.js │ ├── xueqiu │ │ ├── favorite.js │ │ ├── fund.js │ │ ├── hots.js │ │ ├── snb.js │ │ ├── stock_comments.js │ │ ├── stock_info.js │ │ ├── user.js │ │ └── user_stock.js │ ├── xuetangx │ │ ├── course_info.js │ │ └── course_list.js │ ├── xwlb │ │ └── index.js │ ├── xyplorer │ │ └── whatsnew.js │ ├── yahoo-author │ │ └── index.js │ ├── yahoo-jp-tv │ │ └── index.js │ ├── yahoo-news │ │ └── index.js │ ├── yande.re │ │ └── post_popular_recent.js │ ├── yicai │ │ └── brief.js │ ├── yicas │ │ └── blog.js │ ├── yidoutang │ │ ├── case.js │ │ ├── guide.js │ │ ├── index.js │ │ └── mtest.js │ ├── yinxiang │ │ ├── card.js │ │ ├── category.js │ │ ├── note.js │ │ ├── personal.js │ │ └── tag.js │ ├── yomiuri │ │ └── news.js │ ├── youdao │ │ ├── latest.js │ │ └── xueba.js │ ├── youtube │ │ ├── channel.js │ │ ├── playlist.js │ │ ├── user.js │ │ └── utils.js │ ├── youzan │ │ └── goods.js │ ├── yuanliao │ │ └── index.js │ ├── yuanshen │ │ └── index.js │ ├── yuque │ │ └── doc.js │ ├── yuzu-emu │ │ └── entry.js │ ├── yxdown │ │ ├── news.js │ │ └── recommend.js │ ├── yyets │ │ └── todayfilelist.js │ ├── yystv │ │ ├── category.js │ │ └── docs.js │ ├── zcfy │ │ ├── hot.js │ │ └── index.js │ ├── zcool │ │ ├── discover.js │ │ ├── locations.js │ │ ├── top.js │ │ └── user.js │ ├── zfrontier │ │ ├── board_postlist.js │ │ └── postlist.js │ ├── zhanqi │ │ └── room.js │ ├── zhihu │ │ ├── activities.js │ │ ├── answers.js │ │ ├── bookstore │ │ │ └── newest.js │ │ ├── collection.js │ │ ├── daily.js │ │ ├── daily_section.js │ │ ├── execlib │ │ │ └── jsencrypt.js │ │ ├── hot.js │ │ ├── hotlist.js │ │ ├── pin │ │ │ ├── daily.js │ │ │ ├── hotlist.js │ │ │ ├── people.js │ │ │ └── utils.js │ │ ├── posts.js │ │ ├── question.js │ │ ├── timeline.js │ │ ├── topic.js │ │ ├── utils.js │ │ ├── weekly.js │ │ └── zhuanlan.js │ ├── zhilian │ │ └── index.js │ ├── zhimap │ │ └── index.js │ ├── zhishifenzi │ │ ├── depth.js │ │ ├── innovation.js │ │ └── news.js │ ├── zhuixinfan │ │ └── list.js │ ├── zhutix │ │ └── latest.js │ ├── zimuku │ │ └── index.js │ ├── zimuxia │ │ ├── index.js │ │ └── portfolio.js │ ├── zimuzu │ │ ├── resource.js │ │ └── top.js │ ├── ziroom │ │ └── room.js │ ├── zongheng │ │ └── chapter.js │ ├── zreading │ │ └── home.js │ ├── zsnews │ │ └── index.js │ ├── zyshow │ │ └── index.js │ └── zzz │ │ └── index.js ├── utils │ ├── common-config.js │ ├── common-utils.js │ ├── date.js │ ├── dateParser.js │ ├── got.js │ ├── logger.js │ ├── md5.js │ ├── parse-date.js │ ├── puppeteer.js │ ├── readable-social.js │ ├── render.js │ ├── request-wrapper.js │ ├── rss-parser.js │ ├── timezone.js │ ├── torrent.js │ └── wait.js ├── v2 │ ├── 2047 │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── 2048 │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── download.art │ ├── 12306 │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── train.art │ │ └── zxdt.js │ ├── 18comic │ │ ├── album.js │ │ ├── blogs.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── search.js │ │ └── utils.js │ ├── 35photo │ │ ├── actual.js │ │ ├── author.js │ │ ├── genre.js │ │ ├── interesting.js │ │ ├── maintainer.js │ │ ├── map.js │ │ ├── new.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── 36kr │ │ ├── maintainer.js │ │ ├── motif.js │ │ ├── news.js │ │ ├── newsflashes.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── search │ │ │ └── article.js │ │ └── user.js │ ├── 423down │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── 50forum │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── zhuanjia.js │ ├── 52hrtt │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── symposium.js │ ├── 8kcos │ │ ├── article.js │ │ ├── cat.js │ │ ├── const.js │ │ ├── latest.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── tag.js │ ├── 8world │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── 95mm │ │ ├── category.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── tab.js │ │ ├── tag.js │ │ ├── templates │ │ │ └── description.art │ │ └── utils.js │ ├── aamacau │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── abmedia │ │ ├── category.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── abskoop │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── acm-ecnu │ │ ├── contest.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── agirls │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── description.art │ │ ├── topic.js │ │ └── topic_list.js │ ├── ahjzu │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── ajmide │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── app-center │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── release.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── apple │ │ ├── exchange_repair.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── appledaily │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── content.art │ ├── appstore │ │ ├── gofans.js │ │ ├── in-app-purchase.js │ │ ├── maintainer.js │ │ ├── price.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── update.js │ │ └── xianmian.js │ ├── ash-maurya │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── asus │ │ ├── bios.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── bios.art │ ├── atcoder │ │ ├── contest.js │ │ ├── maintainer.js │ │ ├── post.js │ │ ├── radar.js │ │ └── router.js │ ├── audiobar │ │ ├── latest.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── bandcamp │ │ ├── live.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── tag.js │ │ ├── templates │ │ │ └── weekly.art │ │ └── weekly.js │ ├── baozimh │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── desc.art │ ├── barronschina │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── bbcnewslabs │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── bendibao │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── bigquant │ │ ├── collections.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── bilibili │ │ ├── app.js │ │ ├── article.js │ │ ├── audio.js │ │ ├── bangumi.js │ │ ├── blackboard.js │ │ ├── cache.js │ │ ├── coin.js │ │ ├── danmaku.js │ │ ├── dynamic.js │ │ ├── dynamic_mstdn.js │ │ ├── fav.js │ │ ├── followers.js │ │ ├── followings.js │ │ ├── followings_article.js │ │ ├── followings_dynamic.js │ │ ├── followings_video.js │ │ ├── linkNews.js │ │ ├── liveArea.js │ │ ├── liveRoom.js │ │ ├── liveSearch.js │ │ ├── mallIP.js │ │ ├── mallNew.js │ │ ├── manga_followings.js │ │ ├── manga_update.js │ │ ├── online.js │ │ ├── page.js │ │ ├── partion-ranking.js │ │ ├── partion.js │ │ ├── radar.js │ │ ├── ranking.js │ │ ├── readlist.js │ │ ├── reply.js │ │ ├── router.js │ │ ├── topic.js │ │ ├── userChannel.js │ │ ├── userFav.js │ │ ├── user_bangumi.js │ │ ├── utils.js │ │ ├── video.js │ │ ├── vsearch.js │ │ └── weekly_recommend.js │ ├── biodiscover │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── bioone │ │ ├── featured.js │ │ ├── journal.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── bit │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── rszhaopin.js │ ├── bitbucket │ │ ├── commits.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── tags.js │ ├── bitmovin │ │ ├── blog.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── bjfu │ │ ├── grs.js │ │ ├── it │ │ │ ├── index.js │ │ │ └── utils.js │ │ ├── jwc │ │ │ ├── index.js │ │ │ └── utils.js │ │ ├── kjc.js │ │ ├── maintainer.js │ │ ├── news │ │ │ ├── index.js │ │ │ └── utils.js │ │ ├── radar.js │ │ └── router.js │ ├── blockbeats │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── bnu │ │ ├── bs.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── bse │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── btzj │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── torrents.art │ ├── bupt │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── rczp.js │ │ └── router.js │ ├── cahkms │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── cbirc │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ccac │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── ccreports │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── cde │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── cdi │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── cebbank │ │ ├── all.js │ │ ├── history.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ ├── allDes.art │ │ │ └── historyDes.art │ │ └── utils.js │ ├── changba │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── work_description.art │ │ └── user.js │ ├── chaoxing │ │ ├── maintainer.js │ │ ├── qk.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── chaping │ │ ├── banner.js │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── newsflash.js │ │ ├── radar.js │ │ └── router.js │ ├── ciidbnu │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── cnbeta │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── type.js │ │ └── utils.js │ ├── cnki │ │ ├── debut.js │ │ ├── journals.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── desc.art │ ├── cntv │ │ ├── column.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── column.art │ ├── codeforces │ │ ├── contests.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── contest.art │ ├── consumer │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── cool18 │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── cpcey │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── cqwu │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── csc │ │ ├── maintainer.js │ │ ├── notice.js │ │ ├── radar.js │ │ └── router.js │ ├── dahecube │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── dayanzai │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── dbmv │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ddosi │ │ ├── category.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── dhu │ │ ├── jiaowu │ │ │ └── news.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── xxgk │ │ │ └── news.js │ ├── disinfo │ │ ├── maintainer.js │ │ ├── publications.js │ │ ├── radar.js │ │ └── router.js │ ├── disinformationindex │ │ ├── blog.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── research.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── distill │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── dockerhub │ │ ├── build.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── tag.js │ │ └── utils.js │ ├── douban │ │ ├── book │ │ │ └── rank.js │ │ ├── channel │ │ │ ├── subject.js │ │ │ └── topic.js │ │ ├── commercialpress │ │ │ └── latest.js │ │ ├── event │ │ │ └── hot.js │ │ ├── maintainer.js │ │ ├── other │ │ │ ├── bookstore.js │ │ │ ├── celebrity.js │ │ │ ├── classification.js │ │ │ ├── doulist.js │ │ │ ├── explore.js │ │ │ ├── explore_column.js │ │ │ ├── group.js │ │ │ ├── jobs.js │ │ │ ├── later.js │ │ │ ├── latest_book.js │ │ │ ├── latest_music.js │ │ │ ├── playing.js │ │ │ ├── replied.js │ │ │ ├── replies.js │ │ │ ├── topic.js │ │ │ ├── ustop.js │ │ │ └── weekly_best.js │ │ ├── people │ │ │ ├── status.js │ │ │ └── wish.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── explore.art │ ├── dtcj │ │ ├── datahero.js │ │ ├── datainsight.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── dushu │ │ ├── fuzhou │ │ │ ├── index.js │ │ │ └── templates │ │ │ │ └── message.art │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── e-hentai │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── images.art │ ├── eastday │ │ ├── 24.js │ │ ├── find.js │ │ ├── maintainer.js │ │ ├── portrait.js │ │ ├── radar.js │ │ ├── router.js │ │ └── sh.js │ ├── eastmoney │ │ ├── radar.js │ │ ├── router.js │ │ └── ttjj │ │ │ └── user.js │ ├── ecust-jxjy │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── elsevier │ │ ├── latest.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── description.art │ │ └── volume.js │ ├── ems │ │ ├── apple.js │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── apple.art │ ├── epicgames │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── router.js │ │ └── supportedList.js │ ├── eprice │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── rss.js │ │ └── templates │ │ │ ├── description.art │ │ │ └── image.art │ ├── eventernote │ │ ├── actors.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ezone │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ff14 │ │ ├── ff14_global.js │ │ ├── ff14_zh.js │ │ ├── maintainer.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── filmdeepfocus │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── firefox │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── fisher-spb │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ ├── image.art │ │ │ └── video.art │ ├── flyert │ │ ├── creditcard.js │ │ ├── maintainer.js │ │ ├── preferential.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── focustaiwan │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── article.art │ ├── foresightnews │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── fortunechina │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ft │ │ ├── channel.js │ │ ├── maintainer.js │ │ ├── myft.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── furstar │ │ ├── archive.js │ │ ├── artists.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ ├── author.art │ │ │ └── description.art │ │ └── utils.js │ ├── gameapps │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── gamer │ │ ├── hot.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── gamersecret │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── gcores │ │ ├── category.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── tag.js │ ├── getdr │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── gf-cn │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── github │ │ ├── branches.js │ │ ├── comments.js │ │ ├── contributors.js │ │ ├── file.js │ │ ├── follower.js │ │ ├── issue.js │ │ ├── maintainer.js │ │ ├── pulls.js │ │ ├── radar.js │ │ ├── repos.js │ │ ├── router.js │ │ ├── search.js │ │ ├── star.js │ │ ├── starred_repos.js │ │ ├── templates │ │ │ └── comments-description.art │ │ ├── topic.js │ │ └── trending.js │ ├── gitpod │ │ ├── blog.js │ │ ├── changelog.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── description.art │ │ └── utils.js │ ├── gocn │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── topics.js │ ├── google │ │ ├── album.js │ │ ├── citations.js │ │ ├── doodles.js │ │ ├── fonts.js │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── scholar.js │ │ ├── sites.js │ │ ├── sitesRecentChanges.js │ │ ├── templates │ │ │ └── fonts.art │ │ └── translate.js │ ├── gov │ │ ├── anhui │ │ │ └── kjt.js │ │ ├── beijing │ │ │ └── kw │ │ │ │ └── index.js │ │ ├── guangdong │ │ │ └── tqyb │ │ │ │ ├── sncsyjxh.js │ │ │ │ ├── templates │ │ │ │ ├── sncsyjxh.art │ │ │ │ └── tfxtq.art │ │ │ │ └── tfxtq.js │ │ ├── huizhou │ │ │ └── zwgk │ │ │ │ └── index.js │ │ ├── maintainer.js │ │ ├── mee │ │ │ └── ywdt.js │ │ ├── mfa │ │ │ └── wjdt.js │ │ ├── miit │ │ │ ├── wjfb.js │ │ │ ├── wjgs.js │ │ │ ├── yjzj.js │ │ │ ├── zcjd.js │ │ │ └── zcwj.js │ │ ├── pbc │ │ │ ├── goutongjiaoliu.js │ │ │ ├── gzlw.js │ │ │ ├── tradeAnnouncement.js │ │ │ ├── utils.js │ │ │ └── zcyj.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── shanghai │ │ │ ├── rsj │ │ │ │ ├── ksxm.js │ │ │ │ └── templates │ │ │ │ │ └── ksxm.art │ │ │ └── wsjkw │ │ │ │ └── yqtb │ │ │ │ └── index.js │ │ ├── shenzhen │ │ │ ├── hrss │ │ │ │ └── szksy │ │ │ │ │ └── index.js │ │ │ └── zzb │ │ │ │ └── index.js │ │ └── sichuan │ │ │ └── deyang │ │ │ ├── govpulicinfo.js │ │ │ └── templates │ │ │ └── govPublicInfo.art │ ├── guancha │ │ ├── headline.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── member.js │ │ ├── personalpage.js │ │ ├── radar.js │ │ ├── router.js │ │ └── topic.js │ ├── guduodata │ │ ├── daily.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── daily.art │ ├── hackernews │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── hameln │ │ ├── chapter.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── hbr │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── topic.js │ ├── hdu │ │ ├── cs │ │ │ └── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── hellobtc │ │ ├── information.js │ │ ├── kepu.js │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ ├── router.js │ │ └── topic.js │ ├── hellogithub │ │ ├── article.js │ │ ├── maintainer.js │ │ ├── month.js │ │ ├── radar.js │ │ ├── ranking.js │ │ └── router.js │ ├── heu │ │ ├── gx │ │ │ ├── card.js │ │ │ └── list.js │ │ ├── job │ │ │ ├── bigemploy.js │ │ │ ├── calendar.js │ │ │ └── list.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── uae │ │ │ └── list.js │ │ └── yjsy │ │ │ └── list.js │ ├── hex-rays │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── hizu │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── hkej │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ ├── articleImg.art │ │ │ └── description.art │ ├── hkepc │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ ├── description.art │ │ │ └── image.art │ ├── hket │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ ├── description.art │ │ │ └── image.art │ ├── hkjunkcall │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── hnrb │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── hongkong │ │ ├── chp.js │ │ ├── dh.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── hotchina │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── hotukdeals │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── houxu │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── hupu │ │ ├── all.js │ │ ├── bbs.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── hyqss │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── icac │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── ieee │ │ ├── latestdate.js │ │ ├── latestvol.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── ielts │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ifeng │ │ ├── feng.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── independent │ │ ├── maintainer.js │ │ ├── ps5-stock-uk.js │ │ ├── radar.js │ │ └── router.js │ ├── informs │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── content.art │ ├── iresearch │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── report.js │ │ ├── router.js │ │ └── templates │ │ │ └── report.art │ ├── ithome │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── ranking.js │ │ ├── router.js │ │ ├── tag.js │ │ └── zt.js │ ├── iwara │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ixigua │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── userVideo.art │ │ └── userVideo.js │ ├── jandan │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── section.js │ │ └── templates │ │ │ └── description.art │ ├── jasa │ │ ├── latest.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── section.js │ │ └── templates │ │ │ └── description.art │ ├── javbus │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── javdb │ │ ├── actors.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── makers.js │ │ ├── radar.js │ │ ├── rankings.js │ │ ├── router.js │ │ ├── search.js │ │ ├── series.js │ │ ├── tags.js │ │ └── utils.js │ ├── javlibrary │ │ ├── bestrated.js │ │ ├── bestreviews.js │ │ ├── genre.js │ │ ├── maintainer.js │ │ ├── mostwanted.js │ │ ├── newentries.js │ │ ├── newrelease.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── star.js │ │ ├── templates │ │ │ └── description.art │ │ ├── update.js │ │ ├── user.js │ │ └── utils.js │ ├── jisilu │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── jump │ │ ├── discount.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── discount.art │ ├── kakuyomu │ │ ├── episode.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── kbs │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ ├── router.js │ │ └── today.js │ ├── kemono │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── knowmedia │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── desc.art │ ├── kyodonews │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── lanqiao │ │ ├── author.js │ │ ├── courses.js │ │ ├── maintainer.js │ │ ├── questions.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── courseDesc.art │ │ └── utils.js │ ├── latepost │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── lativ │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── detail.art │ ├── learnku │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── topic.art │ │ └── topic.js │ ├── leiphone │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── newsflash.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── lfsyd │ │ ├── home.js │ │ ├── maintainer.js │ │ ├── old_home.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── tag.js │ │ ├── templates │ │ │ └── card.art │ │ ├── user.js │ │ └── utils.js │ ├── line │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── today.js │ ├── literotica │ │ ├── category.js │ │ ├── maintainer.js │ │ ├── new.js │ │ ├── radar.js │ │ └── router.js │ ├── liulinblog │ │ ├── itnews.js │ │ ├── kuaixun.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── lkong │ │ ├── forum.js │ │ ├── maintainer.js │ │ ├── query.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ ├── content.art │ │ │ └── quote.art │ │ └── thread.js │ ├── lofter │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── tag.js │ │ └── user.js │ ├── logonews │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── lvv2 │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── outlink.art │ │ └── top.js │ ├── medsci │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── mihoyo │ │ ├── bbs.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── mingpao │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ ├── description.art │ │ │ └── fancybox.art │ ├── mohw │ │ ├── clarification.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── mox │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── mpaypass │ │ ├── main.js │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── mtime │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── mvm │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── mydrivers │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── mygopen │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── natgeo │ │ ├── dailyphoto.js │ │ ├── dailyselection.js │ │ ├── maintainer.js │ │ ├── natgeo.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── dailyPhoto.art │ ├── nbd │ │ ├── article.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── neea │ │ ├── index.js │ │ ├── jlpt.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── netease │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── rank.js │ │ ├── renjian.js │ │ ├── router.js │ │ └── today.js │ ├── news │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── whxw.js │ ├── newsmarket │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ngocn2 │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── nifd │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── research.js │ │ └── router.js │ ├── nikkei-asia │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── nikkei-cn │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── nippon │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── njnu │ │ ├── ceai │ │ │ ├── ceai.js │ │ │ └── utils.js │ │ ├── jwc │ │ │ ├── jwc.js │ │ │ └── utils.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── nju │ │ ├── gra.js │ │ ├── jw.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── rczp.js │ │ ├── router.js │ │ ├── scit.js │ │ ├── zbb.js │ │ └── zcc.js │ ├── njupt │ │ ├── jwc.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── nltimes │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── nodejs │ │ ├── blog.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── nogizaka46 │ │ ├── blog.js │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── now │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── nowcoder │ │ ├── discuss.js │ │ ├── experience.js │ │ ├── jobcenter.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── recommend.js │ │ ├── router.js │ │ └── schedule.js │ ├── npm │ │ ├── maintainer.js │ │ ├── package.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── package.art │ ├── nsfc │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── ntdtv │ │ ├── channel.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── nuaa │ │ ├── cs │ │ │ └── index.js │ │ ├── jwc │ │ │ └── jwc.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── utils │ │ │ └── pypasswaf.js │ │ └── yjsy │ │ │ └── yjsy.js │ ├── nytimes │ │ ├── author.js │ │ ├── book.js │ │ ├── daily_briefing_chinese.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── utils.js │ ├── odaily │ │ ├── activity.js │ │ ├── maintainer.js │ │ ├── newsflash.js │ │ ├── post.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── user.js │ │ └── utils.js │ ├── oilchem │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── routes.js │ ├── oncc │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── article.art │ ├── orcid │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── oup │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── article.art │ ├── panewslab │ │ ├── column.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── newsflash.js │ │ ├── radar.js │ │ ├── router.js │ │ └── topic.js │ ├── people │ │ ├── index.js │ │ ├── liuyan.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── xjpjh.js │ ├── picuki │ │ ├── maintainer.js │ │ ├── profile.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── post.art │ ├── pku │ │ ├── hr.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── polkaworld │ │ ├── home.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── producthunt │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── descImg.art │ │ └── today.js │ ├── pts │ │ ├── dailynews.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── pubmed │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── description.art │ │ └── trending.js │ ├── qidiantu │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── qm120 │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── qq │ │ ├── ac │ │ │ ├── comic.js │ │ │ ├── rank.js │ │ │ ├── templates │ │ │ │ └── description.art │ │ │ └── utils.js │ │ ├── live.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── qq88 │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── quicker │ │ ├── maintainer.js │ │ ├── qa.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── share.js │ │ ├── user.js │ │ └── versions.js │ ├── qweather │ │ ├── 3days.js │ │ ├── maintainer.js │ │ ├── now.js │ │ ├── router.js │ │ └── util │ │ │ ├── 3days.art │ │ │ └── now.art │ ├── radio-canada │ │ ├── latest.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── readhub │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── rfa │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── rfi │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── rsshub │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── routes.js │ │ └── sponsors.js │ ├── ruancan │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ruc │ │ ├── hr.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── sciencedirect │ │ ├── journal.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── secnews │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── segmentfault │ │ ├── channel.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── user.js │ ├── shmeea │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── self-study.js │ ├── shopback │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── store.js │ ├── sicau │ │ ├── dky.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── yan.js │ │ └── zsjy.js │ ├── sohu │ │ ├── maintainer.js │ │ ├── mp.js │ │ ├── radar.js │ │ └── router.js │ ├── solidot │ │ ├── _article.js │ │ ├── main.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── soundofhope │ │ ├── channel.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── spotify │ │ ├── artist.js │ │ ├── maintainer.js │ │ ├── playlist.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── saved.js │ │ ├── top.js │ │ └── utils.js │ ├── sputniknews │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ssm │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── news.art │ ├── startuplatte │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── stcn │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── storm │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── subhd │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── swissinfo │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── swpu │ │ ├── bgw.js │ │ ├── dean.js │ │ ├── dxy.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── scs.js │ │ └── utils.js │ ├── sysu │ │ ├── cse.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── szse │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── rule.js │ ├── taobao │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── zhongchou.art │ │ └── zhongchou.js │ ├── telegram │ │ ├── blog.js │ │ ├── channel.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── stickerpack.js │ │ └── templates │ │ │ └── video.art │ ├── tencent │ │ ├── maintainer.js │ │ ├── qq │ │ │ └── sdk │ │ │ │ └── changelog.js │ │ ├── radar.js │ │ └── router.js │ ├── test │ │ ├── index.js │ │ ├── maintainer.js │ │ └── router.js │ ├── thepaper │ │ ├── 839studio │ │ │ ├── category.js │ │ │ └── studio.js │ │ ├── channel.js │ │ ├── factpaper.js │ │ ├── featured.js │ │ ├── list.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── factpaper.art │ │ └── utils.js │ ├── timednews │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── tisi │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── tokeninsight │ │ ├── blog.js │ │ ├── bulletin.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── report.js │ │ └── router.js │ ├── topys │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── trow │ │ ├── maintainer.js │ │ ├── portal.js │ │ ├── radar.js │ │ └── router.js │ ├── txrjy │ │ ├── fornumtopic.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── fornumtopic.art │ ├── ucas │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── rader.js │ │ └── router.js │ ├── uibe │ │ ├── hr.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── ulapia │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── research.js │ │ └── router.js │ ├── ustb │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── yjsy │ │ │ └── news.js │ ├── verfghbw │ │ ├── maintainer.js │ │ ├── press.js │ │ ├── radar.js │ │ └── router.js │ ├── vimeo │ │ ├── category.js │ │ ├── channel.js │ │ ├── radar.js │ │ ├── router.js │ │ ├── templates │ │ │ └── description.art │ │ └── usr-videos.js │ ├── wallhaven │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── wallstreetcn │ │ ├── live.js │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── wangqiutiyu │ │ ├── anchor.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── watchout │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── wechat │ │ ├── feeddd.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ ├── description.art │ │ │ └── image.art │ ├── wenku8 │ │ ├── chapter.js │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── volume.js │ ├── wfu │ │ ├── jwc.js │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── whitehouse │ │ ├── briefing-room.js │ │ ├── maintainer.js │ │ ├── ostp.js │ │ ├── radar.js │ │ └── router.js │ ├── who │ │ ├── maintainer.js │ │ ├── news-room.js │ │ ├── news.js │ │ ├── radar.js │ │ ├── router.js │ │ └── speeches.js │ ├── whoscall │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── wikinews │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── wp-china │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── wsj │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── wsyu │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── wyzxwk │ │ ├── article.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── wzu │ │ ├── maintainer.js │ │ ├── news.js │ │ ├── radar.js │ │ └── router.js │ ├── xaut │ │ ├── index.js │ │ ├── jwc.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── rsc.js │ ├── xiaoyuzhou │ │ ├── maintainer.js │ │ ├── pickup.js │ │ ├── podcast.js │ │ ├── radar.js │ │ └── router.js │ ├── xmanhua │ │ ├── index.js │ │ ├── radar.js │ │ └── router.js │ ├── yaohuo │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── youku │ │ ├── channel.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── channel.art │ ├── youzhiyouxing │ │ ├── maintainer.js │ │ ├── materials.js │ │ ├── radar.js │ │ └── router.js │ ├── yxdzqb │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── templates │ │ │ └── description.art │ ├── zaker │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── zaobao │ │ ├── index.js │ │ ├── interactive.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── realtime.js │ │ ├── router.js │ │ ├── templates │ │ │ └── zaobao.art │ │ ├── util.js │ │ └── znews.js │ ├── zhibo8 │ │ ├── forum.js │ │ ├── maintainer.js │ │ ├── more.js │ │ ├── post.js │ │ ├── radar.js │ │ └── router.js │ ├── zhubai │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ ├── zjgtjy │ │ ├── index.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ └── router.js │ └── zooTeam │ │ ├── blog.js │ │ ├── maintainer.js │ │ ├── radar.js │ │ ├── router.js │ │ └── weekly.js ├── v2router.js └── views │ ├── atom.art │ ├── error.art │ ├── json.art │ ├── rss.art │ └── welcome.art ├── logs └── .gitkeep ├── now.json ├── package.json ├── process.json ├── scripts ├── ansible │ ├── .gitignore │ ├── README.md │ ├── Vagrantfile │ ├── rsshub.Caddyfile │ ├── rsshub.env │ ├── rsshub.service │ ├── rsshub.yaml │ └── try.sh ├── docker │ ├── minify-docker.js │ └── test-docker.sh └── workflow │ ├── build-maintainer.js │ ├── build-radar.js │ └── test-route │ ├── identify.js │ └── test.js ├── test ├── .eslintrc ├── config.js ├── middleware │ ├── access-control.js │ ├── anti-hotlink.js │ ├── cache.js │ ├── debug.js │ ├── header.js │ ├── onerror.js │ ├── parameter.js │ └── template.js ├── pkg.js ├── router.js └── utils │ ├── common-config.js │ ├── common-utils.js │ ├── date.js │ ├── dateParser.js │ ├── got.js │ ├── md5.js │ ├── parse-date.js │ ├── puppeteer.js │ ├── request-wrapper.js │ ├── rss-parser.js │ └── wait.js ├── web.log └── yarn.lock /.codecov.yml: -------------------------------------------------------------------------------- 1 | comment: off 2 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | coverage 2 | .vscode 3 | docker-compose.yml 4 | !/.github 5 | !/docs/.vuepress 6 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | github: DIYgod 3 | patreon: DIYgod 4 | custom: ['https://afdian.net/@diygod', 'https://diygod.me/images/zfb.jpg', 'https://diygod.me/images/wx.jpg'] 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | error.log 4 | combined.log 5 | .vscode 6 | .idea 7 | .DS_Store 8 | docs/.vuepress/dist 9 | lib/config/app.json 10 | lib/config/config.js 11 | yarn-error.log 12 | tmp 13 | *.swp 14 | *.iml 15 | coverage 16 | .env 17 | app-minimal/ 18 | Session.vim 19 | 20 | .now 21 | .vercel 22 | 23 | assets/build/ 24 | package-lock.json 25 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | lts/* 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | package.json 2 | docs/.vuepress/dist 3 | package-lock.json 4 | .github/*.md 5 | renovate.json 6 | coverage 7 | .vscode/ 8 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 233, 3 | "tabWidth": 4, 4 | "singleQuote": true, 5 | "trailingComma": "es5", 6 | "arrowParens": "always" 7 | } 8 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## 请参见[参与我们](https://docs.rsshub.app/joinus/quick-start.html) 2 | 3 | ## Please refer to [Join Us](https://docs.rsshub.app/en/joinus/quick-start.html) 4 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: node lib/index.js 2 | -------------------------------------------------------------------------------- /assets/404.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/CNAME: -------------------------------------------------------------------------------- 1 | rsshub.js.org -------------------------------------------------------------------------------- /assets/build/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/assets/build/.gitkeep -------------------------------------------------------------------------------- /assets/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dev.sh: -------------------------------------------------------------------------------- 1 | PUPPETEER_WS_ENDPOINT=ws://127.0.0.1:106 yarn dev -------------------------------------------------------------------------------- /docs/.vuepress/public/_headers: -------------------------------------------------------------------------------- 1 | /* 2 | cache-control: public, max-age=60 3 | -------------------------------------------------------------------------------- /docs/.vuepress/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/docs/.vuepress/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /docs/.vuepress/public/android-chrome-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/docs/.vuepress/public/android-chrome-384x384.png -------------------------------------------------------------------------------- /docs/.vuepress/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/docs/.vuepress/public/apple-touch-icon.png -------------------------------------------------------------------------------- /docs/.vuepress/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/docs/.vuepress/public/logo.png -------------------------------------------------------------------------------- /docs/.vuepress/public/readable-douban.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/docs/.vuepress/public/readable-douban.png -------------------------------------------------------------------------------- /docs/.vuepress/public/readable-twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/docs/.vuepress/public/readable-twitter.png -------------------------------------------------------------------------------- /docs/.vuepress/public/readable-weibo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/docs/.vuepress/public/readable-weibo.png -------------------------------------------------------------------------------- /docs/.vuepress/styles/palette.styl: -------------------------------------------------------------------------------- 1 | $accentColor = #F5712C 2 | -------------------------------------------------------------------------------- /docs/en/live.md: -------------------------------------------------------------------------------- 1 | --- 2 | pageClass: routes 3 | --- 4 | 5 | # Live 6 | -------------------------------------------------------------------------------- /docs/joinus/use-cache.md: -------------------------------------------------------------------------------- 1 | # 使用缓存 2 | 3 | 部分 RSS 在生成时需要访问数个页面,这些页面同时并不是很可能经常变化。出于减轻对方服务器压力和节约不必要流量 / 算力的考虑,这种情况下应当使用缓存。下面是关于缓存工具类的使用场景和具体介绍 4 | 5 | 6 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "@/*": ["./lib/*"] 6 | } 7 | }, 8 | "include": ["./lib/**/*"] 9 | } 10 | -------------------------------------------------------------------------------- /lib/errors/RequestInProgress.js: -------------------------------------------------------------------------------- 1 | class RequestInProgressError extends Error {} 2 | 3 | module.exports = RequestInProgressError; 4 | -------------------------------------------------------------------------------- /lib/errors/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | RequestInProgressError: require('./RequestInProgress'), 3 | }; 4 | -------------------------------------------------------------------------------- /lib/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/lib/favicon.png -------------------------------------------------------------------------------- /lib/middleware/api-template.js: -------------------------------------------------------------------------------- 1 | module.exports = async (ctx, next) => { 2 | await next(); 3 | if (ctx.request.path.startsWith('/api/')) { 4 | return ctx.res.ok({ 5 | message: `request returned ${ctx.body.counter} ${ctx.body.counter > 1 ? 'routes' : 'route'}`, 6 | data: ctx.body.result, 7 | }); 8 | } 9 | }; 10 | -------------------------------------------------------------------------------- /lib/protected_router.js: -------------------------------------------------------------------------------- 1 | const Router = require('@koa/router'); 2 | const router = new Router(); 3 | const auth = require('koa-basic-auth'); 4 | const config = require('./config').value; 5 | 6 | router.use('/(.*)', auth(config.authentication)); 7 | 8 | // RSSHub 9 | router.get('/rsshub/routes/:lang?', require('./v2/rsshub/routes')); 10 | 11 | module.exports = router; 12 | -------------------------------------------------------------------------------- /lib/routes/199it/category.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | const rootUrl = 'http://www.199it.com/archives/category/'; 4 | 5 | module.exports = async (ctx) => { 6 | const keyword = ctx.params.caty.split('|').join('/'); 7 | const currentUrl = `${rootUrl}/${keyword}`; 8 | 9 | ctx.state.data = await utils(ctx, keyword, currentUrl); 10 | }; 11 | -------------------------------------------------------------------------------- /lib/routes/199it/tag.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | const rootUrl = 'http://www.199it.com/archives/tag/'; 4 | 5 | module.exports = async (ctx) => { 6 | const keyword = ctx.params.tag.split('|').join('/'); 7 | const currentUrl = `${rootUrl}/${keyword}`; 8 | 9 | ctx.state.data = await utils(ctx, keyword, currentUrl); 10 | }; 11 | -------------------------------------------------------------------------------- /lib/routes/allnow/column.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const id = ctx.params.id; 5 | 6 | ctx.state.data = await utils.processItems(ctx, `${utils.rootUrl}/column/${id}`); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/allnow/index.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | ctx.state.data = await utils.processItems(ctx, utils.rootUrl); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/routes/allnow/tag.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const id = ctx.params.id; 5 | 6 | ctx.state.data = await utils.processItems(ctx, `${utils.rootUrl}/tag/${id}`); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/allnow/user.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const id = ctx.params.id; 5 | 6 | ctx.state.data = await utils.processItems(ctx, `${utils.rootUrl}/user/${id}`); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/amazfitwatchfaces/fresh.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const currentUrl = `${ctx.params.model}/fresh?${ctx.params.lang ? 'lang=' + ctx.params.lang : ''}${ctx.params.type ? '&compatible=' + ctx.params.type : ''}`; 5 | 6 | ctx.state.data = await utils(ctx, currentUrl); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/amazfitwatchfaces/search.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const currentUrl = `search/${ctx.params.model}/tags/${ctx.params.keyword ? ctx.params.keyword : ''}${ctx.params.sortBy ? '?sortby=' + ctx.params.sortBy : ''}`; 5 | 6 | ctx.state.data = await utils(ctx, currentUrl); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/amazfitwatchfaces/updated.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const currentUrl = `${ctx.params.model}/updated?${ctx.params.lang ? 'lang=' + ctx.params.lang : ''}${ctx.params.type ? '&compatible=' + ctx.params.type : ''}`; 5 | 6 | ctx.state.data = await utils(ctx, currentUrl); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/dapenti/subject.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | ctx.state.data = await utils.parseFeed({ subjectid: ctx.params.id }); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/routes/dapenti/tugua.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | ctx.state.data = await utils.parseFeed({ subjectid: 70 }); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/routes/dongqiudi/player_news.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const id = ctx.params.id; 5 | const link = `https://www.dongqiudi.com/player/${id}.html`; 6 | 7 | await utils.ProcessFeed(ctx, link, 'player'); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/routes/dongqiudi/team_news.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const team = ctx.params.team; 5 | const link = `https://www.dongqiudi.com/team/${team}.html`; 6 | 7 | await utils.ProcessFeed(ctx, link, 'team'); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/routes/dribbble/keyword.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const keyword = ctx.params.keyword; 5 | const url = `https://dribbble.com/search/shots/recent?q=${keyword}`; 6 | 7 | const title = `Dribbble - keyword ${keyword}`; 8 | 9 | ctx.state.data = await utils.getData(ctx, url, title); 10 | }; 11 | -------------------------------------------------------------------------------- /lib/routes/dribbble/user.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const name = ctx.params.name; 5 | const url = `https://dribbble.com/${name}`; 6 | 7 | const title = `Dribbble - user ${name}`; 8 | 9 | ctx.state.data = await utils.getData(ctx, url, title); 10 | }; 11 | -------------------------------------------------------------------------------- /lib/routes/gameres/hot.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const rootUrl = 'https://www.gameres.com'; 5 | 6 | ctx.state.data = await utils(ctx, rootUrl, '.hot-item h3'); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/gameres/list.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const rootUrl = 'https://www.gameres.com'; 5 | const currentUrl = `${rootUrl}/list/${ctx.params.id}`; 6 | 7 | ctx.state.data = await utils(ctx, currentUrl, '.feed-item-right a h3'); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/routes/letterboxd/followingdiary.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const url = `https://letterboxd.com/${ctx.params.username}/following/`; 5 | const title = `Letterboxd - following diary - ${ctx.params.username}`; 6 | 7 | ctx.state.data = await utils.getFollowingData(ctx, ctx.params.username, url, title); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/routes/letterboxd/userdiary.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const url = `https://letterboxd.com/${ctx.params.username}/films/diary/by/added/`; 5 | const title = `Letterboxd - diary - ${ctx.params.username}`; 6 | 7 | ctx.state.data = await utils.getData(ctx, ctx.params.username, url, title); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/routes/mcbbs/utils.js: -------------------------------------------------------------------------------- 1 | const utils = { 2 | host: 'https://www.mcbbs.net', 3 | forumUrl: 'forum.php', 4 | }; 5 | 6 | module.exports = utils; 7 | -------------------------------------------------------------------------------- /lib/routes/micmicidol/latest.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse'); 2 | 3 | module.exports = (ctx) => parse(ctx, '', 'Latest'); 4 | -------------------------------------------------------------------------------- /lib/routes/micmicidol/search.js: -------------------------------------------------------------------------------- 1 | const parse = require('./parse'); 2 | 3 | module.exports = (ctx) => { 4 | const max = ctx.query.limit || 50; 5 | const { label } = ctx.params; 6 | return parse(ctx, `search/label/${label}?max-results=${max}`, label); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/mind42/index.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const currentUrl = ctx.params.caty || 'mindmaps'; 5 | 6 | ctx.state.data = await utils(ctx, currentUrl); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/mind42/search.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | ctx.state.data = await utils(ctx, `search?q=${ctx.params.keyword}`); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/routes/mind42/tag.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | ctx.state.data = await utils(ctx, `tag/${ctx.params.id}`); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/routes/mofish/templates/description.art: -------------------------------------------------------------------------------- 1 |

2 | 3 |
4 |

-------------------------------------------------------------------------------- /lib/routes/pixiv/constants.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | maskHeader: { 3 | 'App-OS': 'ios', 4 | 'App-OS-Version': '10.3.1', 5 | 'App-Version': '6.7.1', 6 | 'User-Agent': 'PixivIOSApp/6.7.1 (iOS 10.3.1; iPhone8,1)', 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /lib/routes/ruby-china/constants.js: -------------------------------------------------------------------------------- 1 | const RUBY_CHINA_HOST = 'https://ruby-china.org'; 2 | 3 | module.exports = { 4 | RUBY_CHINA_HOST, 5 | }; 6 | -------------------------------------------------------------------------------- /lib/routes/sobooks/date.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const date = ctx.params.date || `${new Date().getFullYear()}/${new Date().getMonth()}`; 5 | 6 | ctx.state.data = await utils(ctx, `books/date/${date.replace('-', '/')}`); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/sobooks/index.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const category = ctx.params.category || ''; 5 | 6 | ctx.state.data = await utils(ctx, category); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/sobooks/tag.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const id = ctx.params.id || '小说'; 5 | 6 | ctx.state.data = await utils(ctx, `books/tag/${id}`); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/titsguru/category.js: -------------------------------------------------------------------------------- 1 | const { getPage, normalizeKeyword } = require('./util'); 2 | 3 | module.exports = async (ctx) => { 4 | const { type } = ctx.params; 5 | 6 | ctx.state.data = await getPage(`https://tits-guru.com/category/${normalizeKeyword(type)}/date`); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/titsguru/daily.js: -------------------------------------------------------------------------------- 1 | const { createHandler } = require('./util'); 2 | 3 | module.exports = createHandler('https://tits-guru.com/thebest/perDay'); 4 | -------------------------------------------------------------------------------- /lib/routes/titsguru/home.js: -------------------------------------------------------------------------------- 1 | const { createHandler } = require('./util'); 2 | 3 | module.exports = createHandler('https://tits-guru.com/'); 4 | -------------------------------------------------------------------------------- /lib/routes/twitter/media.js: -------------------------------------------------------------------------------- 1 | // const config = require('@/config').value; 2 | // const devApiImpl = require('./developer-api/user'); 3 | const webApiImpl = require('./web-api/media'); 4 | 5 | module.exports = async (ctx) => { 6 | await webApiImpl(ctx); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/routes/xiachufang/popular.js: -------------------------------------------------------------------------------- 1 | const { generatePopularData } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | ctx.state.data = await generatePopularData(ctx.params.timeframe); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/routes/xiachufang/user/cooked.js: -------------------------------------------------------------------------------- 1 | const { generateUserData } = require('../utils'); 2 | 3 | module.exports = async (ctx) => { 4 | ctx.state.data = await generateUserData({ 5 | id: ctx.params.id, 6 | path: 'cooked', 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/routes/xiachufang/user/created.js: -------------------------------------------------------------------------------- 1 | const { generateUserData } = require('../utils'); 2 | 3 | module.exports = async (ctx) => { 4 | ctx.state.data = await generateUserData({ 5 | id: ctx.params.id, 6 | path: 'created', 7 | }); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/utils/md5.js: -------------------------------------------------------------------------------- 1 | const crypto = require('crypto'); 2 | 3 | module.exports = function md5(date) { 4 | return crypto.createHash('md5').update(date).digest('hex'); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/utils/render.js: -------------------------------------------------------------------------------- 1 | const art = require('art-template'); 2 | 3 | // We may add more control over it later 4 | 5 | module.exports = { 6 | art, 7 | }; 8 | -------------------------------------------------------------------------------- /lib/utils/rss-parser.js: -------------------------------------------------------------------------------- 1 | const config = require('@/config').value; 2 | const Parser = require('rss-parser'); 3 | 4 | const parser = new Parser({ 5 | customFields: { 6 | item: ['magnet'], 7 | }, 8 | headers: { 9 | 'User-Agent': config.ua, 10 | }, 11 | }); 12 | 13 | module.exports = parser; 14 | -------------------------------------------------------------------------------- /lib/utils/wait.js: -------------------------------------------------------------------------------- 1 | module.exports = function wait(ms) { 2 | return new Promise((resolve) => { 3 | setTimeout(resolve, ms); 4 | }); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/12306/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:date/:from/:to/:type?': ['Fatpandac'], 3 | '/zxdt/:id?': ['LogicJake'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/12306/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:date/:from/:to/:type?', require('./index')); 3 | router.get('/zxdt/:id?', require('./zxdt')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/18comic/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/album/:id': ['nczitzk'], 3 | '/blogs/:category?': ['nczitzk'], 4 | '/search/:option?/:category?/:time?/:order?/:keyword?': ['nczitzk'], 5 | '/:category?/:time?/:order?/:keyword?': ['nczitzk'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/18comic/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/album/:id', require('./album')); 3 | router.get('/blogs/:category?', require('./blogs')); 4 | router.get('/search/:option?/:category?/:keyword?/:time?/:order?', require('./search')); 5 | router.get('/:category?/:time?/:order?/:keyword?', require('./index')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/2047/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?/:sort?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/2047/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?/:sort?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/2048/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:id?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/2048/radar.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/lib/v2/2048/radar.js -------------------------------------------------------------------------------- /lib/v2/2048/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/2048/templates/download.art: -------------------------------------------------------------------------------- 1 | 磁力連結 | 下載檔案 -------------------------------------------------------------------------------- /lib/v2/35photo/actual.js: -------------------------------------------------------------------------------- 1 | const { rootUrl, ProcessItems } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const currentUrl = `${rootUrl}/new/actual`; 5 | 6 | ctx.state.data = await ProcessItems(currentUrl); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/35photo/author.js: -------------------------------------------------------------------------------- 1 | const { rootUrl, ProcessItems } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const id = ctx.params.id; 5 | 6 | const currentUrl = `${rootUrl}/${id}`; 7 | 8 | ctx.state.data = await ProcessItems(currentUrl); 9 | }; 10 | -------------------------------------------------------------------------------- /lib/v2/35photo/genre.js: -------------------------------------------------------------------------------- 1 | const { rootUrl, ProcessItems } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const id = ctx.params.id; 5 | 6 | const currentUrl = `${rootUrl}/genre_${id}`; 7 | 8 | ctx.state.data = await ProcessItems(currentUrl); 9 | }; 10 | -------------------------------------------------------------------------------- /lib/v2/35photo/interesting.js: -------------------------------------------------------------------------------- 1 | const { rootUrl, ProcessItems } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const currentUrl = `${rootUrl}/new/interesting`; 5 | 6 | ctx.state.data = await ProcessItems(currentUrl); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/35photo/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/actual': ['nczitzk'], 3 | '/author/:id': ['nczitzk'], 4 | '/genre/:id': ['nczitzk'], 5 | '/interesting': ['nczitzk'], 6 | '/map': ['nczitzk'], 7 | '/new': ['nczitzk'], 8 | }; 9 | -------------------------------------------------------------------------------- /lib/v2/35photo/map.js: -------------------------------------------------------------------------------- 1 | const { rootUrl, ProcessItems } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const currentUrl = `${rootUrl}/new/map`; 5 | 6 | ctx.state.data = await ProcessItems(currentUrl); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/35photo/new.js: -------------------------------------------------------------------------------- 1 | const { rootUrl, ProcessItems } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const currentUrl = `${rootUrl}/new`; 5 | 6 | ctx.state.data = await ProcessItems(currentUrl); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/35photo/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/actual', require('./actual')); 3 | router.get('/author/:id', require('./author')); 4 | router.get('/genre/:id', require('./genre')); 5 | router.get('/interesting', require('./interesting')); 6 | router.get('/map', require('./map')); 7 | router.get('/new', require('./new')); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/v2/36kr/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/motif/:mid': ['nczitzk'], 3 | '/news/:category?': ['nczitzk'], 4 | '/newsflashes': ['hillerliao'], 5 | '/search/article/:keyword': ['xyqfer', 'kt286'], 6 | '/user/:uid': ['nczitzk'], 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/36kr/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/motif/:mid', require('./motif')); 3 | router.get('/news/:category?', require('./news')); 4 | router.get('/newsflashes', require('./newsflashes')); 5 | router.get('/search/article/:keyword', require('./search/article')); 6 | router.get('/user/:uid', require('./user')); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/423down/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category/:type': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/423down/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category/:type?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/50forum/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['sddiky'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/50forum/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/', require('./zhuanjia')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/52hrtt/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/symposium/:id?/:classId?': ['nczitzk'], 3 | '/:area?/:type?': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/52hrtt/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/symposium/:id?/:classId?', require('./symposium')); 3 | router.get('/:area?/:type?', require('./')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/8kcos/const.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | SUB_NAME_PREFIX: '8KCosplay', 3 | SUB_URL: 'https://www.8kcosplay.com/', 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/8kcos/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['KotoriK'], 3 | '/cat/:cat*': ['KotoriK'], 4 | '/tag/:tag': ['KotoriK'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/8kcos/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/', require('./latest')); 3 | router.get('/cat/:cat*', require('./cat')); 4 | router.get('/tag/:tag', require('./tag')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/8world/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/8world/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/95mm/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/tab/:tab?': ['nczitzk'], 3 | '/tag/:tag': ['nczitzk'], 4 | '/category/:category': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/95mm/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/tab/:tab?', require('./tab')); 3 | router.get('/tag/:tag', require('./tag')); 4 | router.get('/category/:category', require('./category')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/95mm/tab.js: -------------------------------------------------------------------------------- 1 | const { rootUrl, ProcessItems } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const tab = ctx.params.tab ?? '最新'; 5 | 6 | const currentUrl = `${rootUrl}/home-ajax/index.html?tabcid=${tab}&page=1`; 7 | 8 | ctx.state.data = await ProcessItems(ctx, tab, currentUrl); 9 | }; 10 | -------------------------------------------------------------------------------- /lib/v2/95mm/tag.js: -------------------------------------------------------------------------------- 1 | const { rootUrl, ProcessItems } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const tag = ctx.params.tag; 5 | 6 | const currentUrl = `${rootUrl}/tag-${tag}/page-1/index.html`; 7 | 8 | ctx.state.data = await ProcessItems(ctx, tag, currentUrl); 9 | }; 10 | -------------------------------------------------------------------------------- /lib/v2/95mm/templates/description.art: -------------------------------------------------------------------------------- 1 | {{ each images }} 2 | 3 | {{ /each }} 4 | -------------------------------------------------------------------------------- /lib/v2/aamacau/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/aamacau/:category?/:id?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/aamacau/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/abmedia/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/abmedia/:category?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/abmedia/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/index', require('./index')); 3 | router.get('/:category?', require('./category')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/abskoop/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['zhenhappy'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/abskoop/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/abskoop/templates/description.art: -------------------------------------------------------------------------------- 1 | {{each desc}} 2 |

{{@ $value}}

3 | {{/each}} 4 | -------------------------------------------------------------------------------- /lib/v2/acm-ecnu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/contest/:category?': ['a180285'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/acm-ecnu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/contest/:category?', require('./contest')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/acm-ecnu/templates/description.art: -------------------------------------------------------------------------------- 1 |

Title: {{title}}

2 |

Time: {{startTime}} (China time)

3 |

Duration: {{duration}}

4 | -------------------------------------------------------------------------------- /lib/v2/agirls/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/topic/:topic': ['TonyRL'], 3 | '/topic_list': ['TonyRL'], 4 | '/:category?': ['TonyRL'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/agirls/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/topic/:topic', require('./topic')); 3 | router.get('/topic_list', require('./topic_list')); 4 | router.get('/:category?', require('./index')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/agirls/templates/description.art: -------------------------------------------------------------------------------- 1 | {{@ desc }} 2 | -------------------------------------------------------------------------------- /lib/v2/ahjzu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news': ['Yuk-0v0'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ahjzu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ajmide/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:id': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ajmide/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:id', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/app-center/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/release/:user/:app/:distribution_group': ['Rongronggg9'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/app-center/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/release/:user/:app/:distribution_group', require('./release')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/apple/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/exchange_repair/:country?': ['metowolf', 'HenryQW', 'kt286'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/apple/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/exchange_repair/:country?', require('./exchange_repair')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/appledaily/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:channel?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/appledaily/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:channel?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/appledaily/templates/content.art: -------------------------------------------------------------------------------- 1 | {{ each content_elements }} 2 | {{ if $value.type === 'image' }} 3 | {{ $value.caption }} 4 | {{ else if $value.type === 'text' }} 5 |

{{ $value.content }}

6 | {{ /if }} 7 | {{ /each }} 8 | -------------------------------------------------------------------------------- /lib/v2/appstore/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/update/:country/:id': ['HenryQW'], 3 | '/price/:country/:type/:id': ['HenryQW'], 4 | '/iap/:country/:id': ['HenryQW'], 5 | '/xianmian': ['Andiedie'], 6 | '/gofans': ['HenryQW'], 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/appstore/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/gofans', require('./gofans')); 3 | router.get('/xianmian', require('./xianmian')); 4 | router.get('/iap/:country/:id', require('./in-app-purchase')); 5 | router.get('/price/:country/:type/:id', require('./price')); 6 | router.get('/update/:country/:id', require('./update')); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/ash-maurya/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/ash-maurya': ['james-tindal'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ash-maurya/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/asus/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/bios/:model': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/asus/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/bios/:model', require('./bios')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/asus/templates/bios.art: -------------------------------------------------------------------------------- 1 |

更新信息:

2 | {{@ item.Description}} 3 |

版本: {{item.Version}}

4 |

大小: {{item.FileSize}}

5 |

更新日期: {{item.ReleaseDate}}

6 |

下载链接: 中国下载 | 全球下载

7 | -------------------------------------------------------------------------------- /lib/v2/atcoder/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/post/:language?/:keyword?': ['nczitzk'], 3 | '/contest/:language?/:rated?/:category?/:keyword?': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/atcoder/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/post/:language?/:keyword?', require('./post')); 3 | router.get('/contest/:language?/:rated?/:category?/:keyword?', require('./contest')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/audiobar/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/latest': ['zxzhuty'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/audiobar/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/latest', require('./latest')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bandcamp/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/tag/:tag?': ['nczitzk'], 3 | '/live': ['nczitzk'], 4 | '/weekly': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/bandcamp/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/tag/:tag?', require('./tag')); 3 | router.get('/live', require('./live')); 4 | router.get('/weekly', require('./weekly')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/bandcamp/templates/weekly.art: -------------------------------------------------------------------------------- 1 |

{{ desc }}

-------------------------------------------------------------------------------- /lib/v2/baozimh/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/comic/:name': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/baozimh/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/comic/:name', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/baozimh/templates/desc.art: -------------------------------------------------------------------------------- 1 | {{ each imgUrlList }} 2 | 3 | {{ /each }} 4 | -------------------------------------------------------------------------------- /lib/v2/barronschina/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:id?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/barronschina/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bbcnewslabs/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news': ['elxy'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bbcnewslabs/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/news', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bendibao/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:city': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bendibao/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:city', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bigquant/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/collections': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bigquant/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/collections', require('./collections')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/biodiscover/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:channel?': ['aidistan'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/biodiscover/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:channel?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bioone/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/featured': ['nczitzk'], 3 | '/journals/:journal?': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/bioone/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/featured', require('./featured')); 3 | router.get('/journals/:journal?', require('./journal')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/bit/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/rszhaopin': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bit/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/rszhaopin', require('./rszhaopin')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bitbucket/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/commits/:workspace/:repo_slug': ['AuroraDysis'], 3 | '/tags/:workspace/:repo_slug': ['AuroraDysis'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/bitbucket/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/commits/:workspace/:repo_slug', require('./commits')); 3 | router.get('/tags/:workspace/:repo_slug', require('./tags')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/bitmovin/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/blog': ['elxy'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bitmovin/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/blog', require('./blog')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bjfu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/grs': ['markmingjie'], 3 | '/it/:type': ['wzc-blog'], 4 | '/jwc/:type': ['markmingjie'], 5 | '/kjc': ['markmingjie'], 6 | '/news/:type': ['markmingjie'], 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/bjfu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/grs', require('./grs')); 3 | router.get('/it/:type', require('./it/index')); 4 | router.get('/jwc/:type', require('./jwc/index')); 5 | router.get('/kjc', require('./kjc')); 6 | router.get('/news/:type', require('./news/index')); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/blockbeats/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:channel?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/blockbeats/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:channel?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bnu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/bs/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bnu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/bs/:category?', require('./bs')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bse/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?/:keyword?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bse/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?/:keyword?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/btzj/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/btzj/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/btzj/templates/torrents.art: -------------------------------------------------------------------------------- 1 | 2 | {{ each torrents torrent }} 3 | 4 | {{ /each }} 5 |
{{ torrent }}
-------------------------------------------------------------------------------- /lib/v2/bupt/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/rczp': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/bupt/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/rczp', require('./rczp')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cahkms/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cahkms/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cbirc/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['JkCheung'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cbirc/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ccac/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:type/:lang?': ['linbuxiao'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ccac/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:type/:lang?', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ccreports/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/article': ['EsuRt', 'Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ccreports/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/article', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cde/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:channel/:category': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cde/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:channel/:category', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cdi/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:id?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cdi/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cebbank/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/quotation/all': ['linbuxiao'], 3 | '/quotation/history/:type': ['linbuxiao'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/cebbank/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/quotation/all', require('./all')); 3 | router.get('/quotation/history/:type', require('./history')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/cebbank/templates/allDes.art: -------------------------------------------------------------------------------- 1 |

购汇:{{ fcer }},购钞:{{ pmc }}

2 |

结汇: {{ exrt }},结钞:{{ mc }}

-------------------------------------------------------------------------------- /lib/v2/cebbank/templates/historyDes.art: -------------------------------------------------------------------------------- 1 |

更新时间: {{ time }} 2 |

购汇:{{ fcer }},购钞:{{ pmc }}

3 |

结汇: {{ exrt }},结钞:{{ mc }}

-------------------------------------------------------------------------------- /lib/v2/changba/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/changba/:userid': ['xizeyoupan', 'kt286'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/changba/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:userid', require('./user')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/changba/templates/work_description.art: -------------------------------------------------------------------------------- 1 |

{{ desc }}

2 | -------------------------------------------------------------------------------- /lib/v2/chaoxing/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/qk/:id/:needContent?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/chaoxing/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/qk/:id/:needContent?', require('./qk')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/chaoxing/templates/description.art: -------------------------------------------------------------------------------- 1 | {{ if description }} 2 |

{{ description }}

3 | {{ /if }} -------------------------------------------------------------------------------- /lib/v2/chaping/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/banner': ['nczitzk'], 3 | '/news/:caty?': ['nczitzk'], 4 | '/newsflash': ['Fatpandac'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/chaping/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/banner', require('./banner')); 3 | router.get('/news/:caty?', require('./news')); 4 | router.get('/newsflash', require('./newsflash')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/ciidbnu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:id?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ciidbnu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cnbeta/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['nczitzk'], 3 | '/category/:id': ['nczitzk'], 4 | '/topics/:id': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/cnbeta/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type/:id', require('./type')); 3 | router.get('/', require('./index')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/cnki/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/journals/:name': ['Fatpandac'], 3 | '/journals/debut/:name': ['Fatpandac'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/cnki/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/journals/:name', require('./journals')); 3 | router.get('/journals/debut/:name', require('./debut')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/cnki/templates/desc.art: -------------------------------------------------------------------------------- 1 | 作者:{{ author }} 2 |
3 | 单位:{{ company }} 4 |
5 | {{ content }} 6 | -------------------------------------------------------------------------------- /lib/v2/cntv/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:column': ['WhoIsSure', 'Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cntv/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:column', require('./column')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cntv/templates/column.art: -------------------------------------------------------------------------------- 1 |

{{ item.brief }}

2 |

时长:{{ item.length }}

3 |

4 |

在线观看

5 | -------------------------------------------------------------------------------- /lib/v2/codeforces/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/contests': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/codeforces/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/contests', require('./contests')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/codeforces/templates/contest.art: -------------------------------------------------------------------------------- 1 | 比赛:{{ title }} 2 |
3 | 开始时间:{{ startTime }} 4 |
5 | 持续时间:{{ durationTime }} 分钟 6 |
7 | 相对时间:{{ relativeTime }} 分钟 8 |
9 | 比赛类型:{{ type }} 10 |
11 | 12 | -------------------------------------------------------------------------------- /lib/v2/consumer/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?/:language?/:keyword?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/consumer/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?/:language?/:keyword?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cool18/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:id?/:type?/:keyword?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cool18/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:id?/:type?/:keyword?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cpcey/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cpcey/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cqwu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:type?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/cqwu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:type?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/csc/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/notice/:type?': ['Derekmini'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/csc/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/notice/:type?', require('./notice')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/dahecube/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type?': ['linbuxiao'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/dahecube/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/dayanzai/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/dayanzai/:category/:fulltext?': ['nitezs'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/dayanzai/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category/:fulltext?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/dbmv/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['kba977'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/dbmv/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ddosi/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['XinRoom'], 3 | '/category/:category': ['XinRoom'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/ddosi/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/category/:category?', require('./category')); 3 | router.get('/', require('./index')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/dhu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/jiaowu/news/:type?': ['KiraKiseki'], 3 | '/xxgk/news': ['KiraKiseki'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/dhu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/jiaowu/news/:type?', require('./jiaowu/news')); 3 | router.get('/xxgk/news', require('./xxgk/news')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/disinfo/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/publications': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/disinfo/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/publications', require('./publications')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/disinformationindex/maintainer.js: -------------------------------------------------------------------------------- 1 | module.export = { 2 | '/blog': ['nczitzk'], 3 | '/research': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/disinformationindex/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/blog', require('./blog')); 3 | router.get('/research', require('./research')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/disinformationindex/templates/description.art: -------------------------------------------------------------------------------- 1 | {{ if image }} 2 |
3 | {{ /if }} 4 | {{ if title }} 5 | {{@ title }} 6 | {{ /if }} 7 | {{@ links }} 8 | -------------------------------------------------------------------------------- /lib/v2/distill/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/distill/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/dockerhub/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/build/:owner/:image/:tag?': ['HenryQW'], 3 | '/tag/:owner/:image': ['outloudvi'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/dockerhub/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/build/:owner/:image/:tag?', require('./build')); 3 | router.get('/tag/:owner/:image/:limits?', require('./tag')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/dockerhub/utils.js: -------------------------------------------------------------------------------- 1 | const md5 = require('@/utils/md5'); 2 | 3 | function hash(images) { 4 | const entries = Object.entries(images) 5 | .map((x) => [`${x[1].os}/${x[1].architecture}`, x[1].digest]) 6 | .sort((a, b) => a[0] - b[0]); 7 | return md5(entries.map((x) => x.join(',')).join('|')); 8 | } 9 | 10 | module.exports = { hash }; 11 | -------------------------------------------------------------------------------- /lib/v2/douban/templates/explore.art: -------------------------------------------------------------------------------- 1 | 作者:{{author}} 2 |
3 | 描述:{{desc}} 4 |
5 | {{ if itemPic }} 6 | 7 | {{ /if }} 8 | -------------------------------------------------------------------------------- /lib/v2/dtcj/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/datahero/:category?': ['nczitzk'], 3 | '/datainsight/:id?': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/dtcj/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/datahero/:category?', require('./datahero')); 3 | router.get('/datainsight/:id?', require('./datainsight')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/dushu/fuzhou/templates/message.art: -------------------------------------------------------------------------------- 1 | 地区:{{item.areaName}} 2 |
3 | 地点:{{item.address}} 4 |
5 | 开始时间: {{item.startTime}} 6 |
7 | 结束时间: {{item.endTime}} 8 |
9 | 10 | -------------------------------------------------------------------------------- /lib/v2/dushu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/fuzhou': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/dushu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/fuzhou', require('./fuzhou/index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/e-hentai/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/category/:category?/:needTorrents?/:needImages?': ['nczitzk'], 3 | '/tag/:tag?/:needTorrents?/:needImages?': ['nczitzk'], 4 | '/search/:keyword?/:needTorrents?/:needImages?': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/e-hentai/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:what?/:id?/:needTorrents?/:needImages?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/e-hentai/templates/images.art: -------------------------------------------------------------------------------- 1 | {{ each images image }} 2 |
3 | {{ /each }} -------------------------------------------------------------------------------- /lib/v2/eastday/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/24/:category?': ['nczitzk'], 3 | '/find': ['nczitzk'], 4 | '/portrait': ['nczitzk'], 5 | '/sh': ['saury'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/eastday/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/24/:category?', require('./24')); 3 | router.get('/find', require('./find')); 4 | router.get('/portrait', require('./portrait')); 5 | router.get('/sh', require('./sh')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/eastmoney/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/ttjj/user/:uid', require('./ttjj/user')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ecust-jxjy/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/ecust-jxjy/news': ['jialinghui'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ecust-jxjy/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/elsevier/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:journal/latest': ['Derekmini', 'sunwolf-swb'], 3 | '/:journal/vol/:id': ['Derekmini', 'sunwolf-swb'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/elsevier/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:journal/latest', require('./latest')); 3 | router.get('/:journal/vol/:id', require('./volume')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/ems/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news': ['luyuhuang'], 3 | '/apple/:id': ['Fatpandac'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/ems/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news', require('./news')); 3 | router.get('/apple/:id', require('./apple')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/ems/templates/apple.art: -------------------------------------------------------------------------------- 1 | {{ each trails}} 2 |

{{ $value.optime }}

3 |

{{ $value.opreateType}}

4 |

{{ $value.processingInstructions }}

5 |
6 | {{/each}} 7 | -------------------------------------------------------------------------------- /lib/v2/epicgames/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/epicgames/:collection': ['DIYgod', 'NeverBehave', 'Zyx-A', 'junfengP'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/epicgames/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:collection', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/eprice/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:region?': ['TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/eprice/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:region?', require('./rss')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/eprice/templates/description.art: -------------------------------------------------------------------------------- 1 | {{@ desc }} 2 | -------------------------------------------------------------------------------- /lib/v2/eprice/templates/image.art: -------------------------------------------------------------------------------- 1 | {{ alt }} 2 | -------------------------------------------------------------------------------- /lib/v2/eventernote/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/actors/:name/:id': ['KTachibanaM'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/eventernote/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/actors/:name/:id', require('./actors')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ezone/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ezone/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ff14/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/global/:lang/:type?': ['chengyuhui'], 3 | '/zh/:type?': ['Kiotlin', 'ZeroClad', '15x15G'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/ff14/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/global/:lang/:type?', require('./ff14_global')); 3 | router.get('/zh/:type?', require('./ff14_zh')); 4 | // Deprecated 5 | router.get('/ff14_global/:lang/:type?', require('./ff14_global')); 6 | router.get('/ff14_zh/:type?', require('./ff14_zh')); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/ff14/templates/description.art: -------------------------------------------------------------------------------- 1 | {{ if image }} 2 |
3 | {{ /if }} 4 | {{ description }} 5 | -------------------------------------------------------------------------------- /lib/v2/filmdeepfocus/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/filmdeepfocus/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/firefox/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/breaches': ['TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/firefox/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/breaches', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/firefox/templates/description.art: -------------------------------------------------------------------------------- 1 | {{@ header }} 2 |
3 | {{@ overview }} 4 |
5 | {{@ dataClasses }} 6 | -------------------------------------------------------------------------------- /lib/v2/fisher-spb/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news': ['denis-ya'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/fisher-spb/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/fisher-spb/templates/image.art: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /lib/v2/fisher-spb/templates/video.art: -------------------------------------------------------------------------------- 1 |
-------------------------------------------------------------------------------- /lib/v2/flyert/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/preferential': ['howel52'], 3 | '/creditcard/:bank': ['nicolaszf'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/flyert/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/preferential', require('./preferential')); 3 | router.get('/creditcard/:bank', require('./creditcard')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/focustaiwan/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/focustaiwan/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/focustaiwan/templates/article.art: -------------------------------------------------------------------------------- 1 |
{{@ description }}
2 | -------------------------------------------------------------------------------- /lib/v2/foresightnews/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['nczitzk'], 3 | '/article': ['nczitzk'], 4 | '/column/:id': ['nczitzk'], 5 | '/news': ['nczitzk'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/foresightnews/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/fortunechina/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/fortunechina/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ft/channel.js: -------------------------------------------------------------------------------- 1 | const utils = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | ctx.state.data = await utils.getData({ 5 | site: ctx.params.language === 'chinese' ? 'www' : 'big5', 6 | channel: ctx.params.channel, 7 | ctx, 8 | }); 9 | }; 10 | -------------------------------------------------------------------------------- /lib/v2/ft/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/ft/myft/:key': ['HenryQW'], 3 | '/ft/:language/:channel?': ['HenryQW', 'xyqfer'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/ft/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/myft/:key', require('./myft')); 3 | router.get('/:language/:channel?', require('./channel')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/furstar/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/characters/:lang?': ['NeverBehave'], 3 | '/artists/:lang?': ['NeverBehave'], 4 | '/archive/:lang?': ['NeverBehave'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/furstar/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/characters/:lang?', require('./index')); 3 | router.get('/artists/:lang?', require('./artists')); 4 | router.get('/archive/:lang?', require('./archive')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/furstar/templates/author.art: -------------------------------------------------------------------------------- 1 |
2 | 3 | {{ if link !== null }} 4 | {{name}} 5 | {{ else }} 6 | {{name}} 7 | {{ /if }} 8 |
-------------------------------------------------------------------------------- /lib/v2/furstar/templates/description.art: -------------------------------------------------------------------------------- 1 |

{{ desc }}

2 | {{ each pics }} 3 | 4 | {{/each}} 5 | {{ author }} -------------------------------------------------------------------------------- /lib/v2/gameapps/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/gameapps/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/gameapps/templates/description.art: -------------------------------------------------------------------------------- 1 |
2 | {{@ intro }} 3 | {{@ desc }} 4 | -------------------------------------------------------------------------------- /lib/v2/gamer/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/hot/:bsn': ['nczitzk', 'TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/gamer/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/hot/:bsn', require('./hot')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/gamersecret/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type?/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/gamersecret/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type?/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/gcores/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/category/:category': ['MoguCloud', 'StevenRCE0'], 3 | '/tag/:tag/:category?': ['StevenRCE0'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/gcores/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/category/:category', require('./category')); 3 | router.get('/tag/:tag/:category?', require('./tag')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/getdr/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/getdr/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/gf-cn/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/gf-cn/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:category?', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/github/templates/comments-description.art: -------------------------------------------------------------------------------- 1 | {{@ desc }} 2 | -------------------------------------------------------------------------------- /lib/v2/gitpod/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/blog': ['TonyRL'], 3 | '/changelog': ['TonyRL'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/gitpod/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/blog', require('./blog')); 3 | router.get('/changelog', require('./changelog')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/gitpod/templates/description.art: -------------------------------------------------------------------------------- 1 | {{ alt }} 2 | {{@ content }} -------------------------------------------------------------------------------- /lib/v2/gitpod/utils.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | rootUrl: 'https://www.gitpod.io', 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/gocn/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['AtlanCI'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/gocn/radar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'gocn.vip': { 3 | _name: 'GoCN', 4 | '.': [ 5 | { 6 | title: '文章', 7 | docs: 'https://docs.rsshub.app/programming.html#GoCN', 8 | source: ['/'], 9 | target: '/gocn', 10 | }, 11 | ], 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /lib/v2/gocn/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./topics')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/google/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/album/:id': ['hoilc'], 3 | '/citations/:id': ['KellyHwong'], 4 | '/doodles/:language?': ['xyqfer'], 5 | '/fonts/:sort?': ['Fatpandac'], 6 | '/scholar/:query': ['HenryQW'], 7 | '/sites/:id': ['hoilc'], 8 | '/sites/recentChanges/:id': ['nczitzk'], 9 | }; 10 | -------------------------------------------------------------------------------- /lib/v2/gov/guangdong/tqyb/templates/sncsyjxh.art: -------------------------------------------------------------------------------- 1 | 地区: {{ item.cname }} 2 |
3 | 等级: {{ item.sigtypename }} 4 |
5 | 发布时间:{{ item.datetime }} 6 | -------------------------------------------------------------------------------- /lib/v2/gov/guangdong/tqyb/templates/tfxtq.art: -------------------------------------------------------------------------------- 1 |

{{ content }}

2 | -------------------------------------------------------------------------------- /lib/v2/gov/shanghai/rsj/templates/ksxm.art: -------------------------------------------------------------------------------- 1 | 考试项目名称:{{ name }} 2 |
3 | 考试类别:{{ type }} 4 |
5 | 考试日期:{{ date }} 6 |
7 | 报名起止日期:{{ registrationDeadline }} 8 | -------------------------------------------------------------------------------- /lib/v2/guancha/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk', 'Jeason0228'], 3 | '/headline': ['nczitzk'], 4 | '/member/:category?': ['nczitzk'], 5 | '/personalpage/:uid': ['Jeason0228'], 6 | '/topic/:id/:order?': ['occupy5', 'nczitzk'], 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/guancha/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/headline', require('./headline')); 3 | router.get('/member/:category?', require('./member')); 4 | router.get('/personalpage/:uid', require('./personalpage')); 5 | router.get('/topic/:id/:order?', require('./topic')); 6 | router.get('/:category?', require('./index')); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/guduodata/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/daily': ['Gem1ni'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/guduodata/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/daily', require('./daily')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hackernews/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:section?/:type?/:user?': ['nczitzk', 'xie-dongping'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hackernews/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:section?/:type?/:user?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hameln/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/chapter/:id': ['huangliangshusheng'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hameln/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => router.get('/chapter/:id', require('./chapter.js')); 2 | -------------------------------------------------------------------------------- /lib/v2/hbr/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/topic/:topic?/:type?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hbr/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/topic/:topic?/:type?', require('./topic')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hdu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/cs': ['legr4ndk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hdu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | // 杭州电子科技大学 3 | router.get('/cs', require('./cs')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/hellobtc/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/information/:channel?': ['Fatpandac'], 3 | '/news': ['Fatpandac'], 4 | '/kepu/:channel?': ['Fatpandac'], 5 | '/topic/:id': ['Fatpandac'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/hellobtc/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/information/:channel?', require('./information')); 3 | router.get('/news', require('./news')); 4 | router.get('/kepu/:channel?', require('./kepu')); 5 | router.get('/topic/:id', require('./topic')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/hellogithub/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/article': ['moke8'], 3 | '/ranking/:type?': ['moke8'], 4 | '/month': ['moke8'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/hellogithub/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/article', require('./article')); 3 | router.get('/month', require('./month')); 4 | router.get('/ranking/:type?', require('./ranking')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/heu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/yjsy/list/:id': ['Derekmini'], 3 | '/job/bigemploy': ['Derekmini'], 4 | '/job/calendar': ['Derekmini'], 5 | '/job/list/:id': ['Derekmini'], 6 | '/gx/:type/:colume/:id?': ['Derekmini'], 7 | '/uae/list/:id': ['Derekmini'], 8 | }; 9 | -------------------------------------------------------------------------------- /lib/v2/hex-rays/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news': ['hellodword ', 'TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hex-rays/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hizu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:column?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hizu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:column?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hkej/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hkej/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hkej/templates/articleImg.art: -------------------------------------------------------------------------------- 1 | {{ each pics }} 2 |
{{ $value.title }}
{{ $value.title }}
3 | {{ /each }} 4 | -------------------------------------------------------------------------------- /lib/v2/hkej/templates/description.art: -------------------------------------------------------------------------------- 1 | {{@ pics }} 2 | {{@ desc }} 3 | -------------------------------------------------------------------------------- /lib/v2/hkepc/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hkepc/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hkepc/templates/description.art: -------------------------------------------------------------------------------- 1 | {{@ desc }} 2 | -------------------------------------------------------------------------------- /lib/v2/hkepc/templates/image.art: -------------------------------------------------------------------------------- 1 | {{ alt }} 2 | -------------------------------------------------------------------------------- /lib/v2/hket/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hket/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hket/templates/description.art: -------------------------------------------------------------------------------- 1 | {{@ desc }} 2 | -------------------------------------------------------------------------------- /lib/v2/hket/templates/image.art: -------------------------------------------------------------------------------- 1 |
{{ alt }}
{{ alt }}
2 | -------------------------------------------------------------------------------- /lib/v2/hkjunkcall/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hkjunkcall/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hnrb/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:id?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hnrb/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hongkong/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/dh/:language?': ['nczitzk'], 3 | '/chp/:category?/:language?': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/hongkong/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/dh/:language?', require('./dh')); 3 | router.get('/chp/:category?/:language?', require('./chp')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/hotchina/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['nczitzk'], 3 | '/category/:id?': ['nczitzk'], 4 | '/tag/:id?': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/hotchina/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hotukdeals/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type': ['DIYgod'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/hotukdeals/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/houxu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/lives/:id?': ['nczitzk'], 3 | '/:category?': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/houxu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/houxu/templates/description.art: -------------------------------------------------------------------------------- 1 |
2 |

3 | {{ title }} 4 |

5 |

{{ description }}

6 | 来源 {{ author }} 7 |
8 | 时间 {{ pubDate }} 9 |
-------------------------------------------------------------------------------- /lib/v2/hupu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/all/:id?': ['nczitzk'], 3 | '/bbs/:id?/:order?': ['LogicJake', 'nczitzk'], 4 | '/bxj/:id?/:order?': ['LogicJake', 'nczitzk'], 5 | '/dept/:category?': ['nczitzk'], 6 | '/:category?': ['nczitzk'], 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/hupu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/all/:id?', require('./all')); 3 | router.get('/bbs/:id?/:order?', require('./bbs')); 4 | router.get('/bxj/:id?/:order?', require('./bbs')); 5 | router.get('/dept/:category?', require('./index')); 6 | router.get('/:category?', require('./index')); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/hupu/templates/description.art: -------------------------------------------------------------------------------- 1 | {{ if videos }} 2 | {{ each videos video}} 3 | 4 | {{/each}} 5 | {{ /if }} 6 | {{@ description }} -------------------------------------------------------------------------------- /lib/v2/hyqss/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/hyrb/:id?': ['nczitzk'], 3 | '/hywb/:id?': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/hyqss/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type?/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/icac/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:lang?': ['linbuxiao, TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/icac/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:lang?', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ieee/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:journal/latest/date/:sortType?': ['Derekmini', 'auto-bot-ty'], 3 | '/:journal/latest/vol/:sortType?': ['Derekmini', 'auto-bot-ty'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/ieee/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:journal/latest/date/:sortType?', require('./latestdate')); 3 | router.get('/:journal/latest/vol/:sortType?', require('./latestvol')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/ielts/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['zenxds'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ielts/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ifeng/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/feng/:id/:type': ['Jamch'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ifeng/radar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'ifeng.com': { 3 | _name: '凤凰网', 4 | '.': [ 5 | { 6 | title: '大风号', 7 | docs: 'https://docs.rsshub.app/new-media.html#feng-huang-wang', 8 | }, 9 | ], 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /lib/v2/ifeng/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/feng/:id/:type', require('./feng')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/independent/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/ps5-stock-uk': ['DIYgod'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/independent/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/ps5-stock-uk', require('./ps5-stock-uk')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/informs/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/informs/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/informs/templates/content.art: -------------------------------------------------------------------------------- 1 | {{ author }} 2 |
3 | {{@ content }} 4 | -------------------------------------------------------------------------------- /lib/v2/iresearch/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/report': ['brilon', 'Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/iresearch/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/report', require('./report')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/iresearch/templates/report.art: -------------------------------------------------------------------------------- 1 | {{@ data.Content }} 2 | <% for (let i = 1; i <= data.PagesCount; i++){ %> 3 | 4 | <% } %> 5 | 6 | -------------------------------------------------------------------------------- /lib/v2/ithome/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/ranking/:type': ['immmortal', 'luyuhuang'], 3 | '/tag/:name': ['Fatpandac'], 4 | '/zt/:id': ['nczitzk'], 5 | '/:caty': ['luyuhuang'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/ithome/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/ranking/:type', require('./ranking')); 3 | router.get('/tag/:name', require('./tag')); 4 | router.get('/zt/:id', require('./zt')); 5 | router.get('/:caty', require('./index')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/iwara/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/users/:username?/:type?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/iwara/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/users/:username?/:type?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ixigua/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/ixigua/user/video/:uid/:disableEmbed?': ['FlashWingShadow', 'Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ixigua/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/user/video/:uid/:disableEmbed?', require('./userVideo')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ixigua/templates/userVideo.art: -------------------------------------------------------------------------------- 1 | {{ if !disableEmbed }} 2 |
3 | {{ /if }} 4 |

{{ i.abstract }}

5 | 6 | -------------------------------------------------------------------------------- /lib/v2/jandan/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | '/': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/jandan/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category', require('./section')); 3 | router.get('/', require('./index')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/jandan/templates/description.art: -------------------------------------------------------------------------------- 1 |
2 |

{{ summary }}

3 |
4 | -------------------------------------------------------------------------------- /lib/v2/jasa/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/latest': ['Derekmini', 'auto-bot-ty'], 3 | '/section/:id': ['Derekmini'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/jasa/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/latest', require('./latest')); 3 | router.get('/section/:id', require('./section')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/jasa/templates/description.art: -------------------------------------------------------------------------------- 1 |

2 | {{ item.title }}
3 | {{ item.authors }}
4 | https://doi.org/{{ item.doi }}
5 | 6 |

7 |

8 | {{ item.abstract }}
9 |

-------------------------------------------------------------------------------- /lib/v2/javbus/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get(/([\w\d/-]+)?/, require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/javlibrary/newentries.js: -------------------------------------------------------------------------------- 1 | const { defaultLanguage, rootUrl, ProcessItems } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const language = ctx.params.language ?? defaultLanguage; 5 | const currentUrl = `${rootUrl}/${language}/vl_newentries.php?list`; 6 | 7 | ctx.state.data = await ProcessItems(language, currentUrl, ctx.cache.tryGet); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/v2/javlibrary/templates/description.art: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{@ info }} 4 | 5 | {{if comment}} 6 |
7 | {{@ comment }} 8 |
9 | {{/if}} 10 | 11 | {{each videos}} 12 | 13 | {{/each}} 14 | 15 | {{each thumbs}} 16 | 17 | {{/each}} -------------------------------------------------------------------------------- /lib/v2/javlibrary/update.js: -------------------------------------------------------------------------------- 1 | const { defaultLanguage, rootUrl, ProcessItems } = require('./utils'); 2 | 3 | module.exports = async (ctx) => { 4 | const language = ctx.params.language ?? defaultLanguage; 5 | const currentUrl = `${rootUrl}/${language}/vl_update.php?list`; 6 | 7 | ctx.state.data = await ProcessItems(language, currentUrl, ctx.cache.tryGet); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/v2/jisilu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?/:sort?/:day?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/jisilu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?/:sort?/:day?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/jump/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/discount/:platform/:filter?/:countries?': ['zytomorrow'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/jump/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/discount/:platform/:filter?/:countries?', require('./discount.js')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/kakuyomu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/episode/:id': ['huangliangshusheng'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/kakuyomu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => router.get('/episode/:id', require('./episode.js')); 2 | -------------------------------------------------------------------------------- /lib/v2/kbs/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:category?/:language?': ['nczitzk'], 3 | '/today/:language?': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/kbs/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/news/:category?/:language?', require('./news')); 3 | router.get('/today/:language?', require('./today')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/kemono/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:source?/:id?': ['nczitzk'], 3 | '/posts': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/kemono/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:source?/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/knowmedia/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/knowmedia/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/knowmedia/templates/desc.art: -------------------------------------------------------------------------------- 1 | 2 |
3 | {{ body }} 4 | -------------------------------------------------------------------------------- /lib/v2/kyodonews/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:language?/:keyword?': ['Rongronggg9'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/kyodonews/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:language?/:keyword?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/lanqiao/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/author/:uid': ['huhuhang'], 3 | '/courses/:sort/:tag': ['huhuhang'], 4 | '/questions/:id': ['huhuhang'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/lanqiao/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/author/:uid', require('./author')); 3 | router.get('/courses/:sort/:tag', require('./courses')); 4 | router.get('/questions/:id', require('./questions')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/lanqiao/templates/courseDesc.art: -------------------------------------------------------------------------------- 1 |
{{ desc }} -------------------------------------------------------------------------------- /lib/v2/lanqiao/utils.js: -------------------------------------------------------------------------------- 1 | const { art } = require('@/utils/render'); 2 | const path = require('path'); 3 | 4 | const courseDesc = (picurl, desc) => 5 | art(path.join(__dirname, 'templates/courseDesc.art'), { 6 | picurl, 7 | desc, 8 | }); 9 | 10 | module.exports = { 11 | courseDesc, 12 | }; 13 | -------------------------------------------------------------------------------- /lib/v2/latepost/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:proma?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/latepost/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:proma?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/lativ/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:id': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/lativ/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:id', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/lativ/templates/detail.art: -------------------------------------------------------------------------------- 1 |
2 | {{ if discount != null }} 3 |

原价: {{ price }}

4 |

特价: {{ discount }}

5 | {{ else }} 6 |

价格: {{ price }}

7 | {{ /if }} 8 | {{ title }} 9 |
10 | -------------------------------------------------------------------------------- /lib/v2/learnku/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:community/:category?': ['kayw-geek'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/learnku/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:community/:category?', require('./topic.js')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/leiphone/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/leiphone': ['vlcheng'], 3 | '/leiphone/category/:catname': ['vlcheng'], 4 | '/leiphone/newsflash': ['vlcheng'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/leiphone/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/newsflash', require('./newsflash')); 3 | router.get('/:do?/:keyword?', require('./index')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/lfsyd/maintainer.js: -------------------------------------------------------------------------------- 1 | // 旅法师营地 2 | module.exports = { 3 | '/home': ['auto-bot-ty'], 4 | '/old_home': ['auto-bot-ty'], 5 | '/user/:id?': ['auto-bot-ty'], 6 | '/tag/:tagId?': ['auto-bot-ty'], 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/lfsyd/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/home', require('./home')); 3 | router.get('/old_home', require('./old_home')); 4 | router.get('/user/:id?', require('./user')); 5 | router.get('/tag/:tagId?', require('./tag')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/lfsyd/templates/card.art: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/v2/line/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/today/:edition?/:tab?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/line/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/today/:edition?/:tab?', require('./today')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/literotica/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/new': ['nczitzk'], 3 | '/category/:category': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/literotica/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/new', require('./new')); 3 | router.get('/category/:category', require('./category')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/liulinblog/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/kuaixun': ['Fatpandac'], 3 | '/itnews/:channel?': ['Fatpandac'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/liulinblog/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/kuaixun', require('./kuaixun')); 3 | router.get('/itnews/:channel?', require('./itnews')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/lkong/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/forum/:id?/:digest?': ['nczitzk', 'ma6254'], 3 | '/thread/:id': ['nczitzk', 'ma6254'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/lkong/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/forum/:id?/:digest?', require('./forum')); 3 | router.get('/thread/:id', require('./thread')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/lofter/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/tag/:name?/:type?': ['hoilc', 'nczitzk'], 3 | '/user/:name?': ['hondajojo', 'nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/lofter/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/tag/:name?/:type?', require('./tag')); 3 | router.get('/user/:name?', require('./user')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/logonews/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/work/tags/:tag': ['nczitzk'], 3 | '/work/categorys/:category': ['nczitzk'], 4 | '/work': ['nczitzk'], 5 | '/category/:category/:type': ['nczitzk'], 6 | '/tag/:tag': ['nczitzk'], 7 | '/': ['nczitzk'], 8 | }; 9 | -------------------------------------------------------------------------------- /lib/v2/logonews/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/work/tags/:tag', require('./index')); 3 | router.get('/tag/:tag', require('./index')); 4 | router.get(/([\w|\d|/|-]+)?/, require('./index')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/logonews/templates/description.art: -------------------------------------------------------------------------------- 1 | {{if isWork}} 2 | 3 | {{/if}} 4 | {{ description }} -------------------------------------------------------------------------------- /lib/v2/lvv2/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:channel/:sort?': ['Fatpandac'], 3 | '/top/:channel/:sort?': ['Fatpandac'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/lvv2/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:channel/:sort?', require('./news')); 3 | router.get('/top/:channel/:sort?', require('./top')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/lvv2/templates/outlink.art: -------------------------------------------------------------------------------- 1 | 文章链接 2 | -------------------------------------------------------------------------------- /lib/v2/medsci/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:sid?/:tid?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/medsci/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:sid?/:tid?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mihoyo/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/bbs/official/:gids/:type?/:page_size?/:last_id?': ['CaoMeiYouRen'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mihoyo/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/bbs/official/:gids/:type?/:page_size?/:last_id?', require('./bbs')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mihoyo/templates/description.art: -------------------------------------------------------------------------------- 1 | {{ description }} 2 | {{if images}} 3 | {{each images}} 4 | 5 | {{/each}} 6 | {{/if}} 7 | -------------------------------------------------------------------------------- /lib/v2/mingpao/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type?/:category?': ['TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mingpao/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type?/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mingpao/templates/description.art: -------------------------------------------------------------------------------- 1 | {{@ pics }} 2 | {{@ desc }} 3 | -------------------------------------------------------------------------------- /lib/v2/mingpao/templates/fancybox.art: -------------------------------------------------------------------------------- 1 | {{ each pics }} 2 |
{{ $value.title }}
{{ $value.title }}
3 | {{ /each }} 4 | -------------------------------------------------------------------------------- /lib/v2/mohw/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/clarification': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mohw/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/clarification', require('./clarification')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mox/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mox/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mpaypass/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/main/:type?': ['zhuan-zhu'], 3 | '/news': ['LogicJake', 'genghis-yang'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/mpaypass/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/main/:type?', require('./main')); 3 | router.get('/news', require('./news')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/mtime/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/mtime/news': ['TsSmartTT'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mtime/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mvm/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mvm/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mydrivers/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type?/:id?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mydrivers/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type?/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mygopen/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:label?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/mygopen/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:label?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/natgeo/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/dailyselection': ['OrangeEd1t'], 3 | '/dailyphoto': ['LogicJake', 'OrangeEd1t', 'TonyRL'], 4 | '/:cat/:type?': ['fengkx'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/natgeo/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/dailyphoto', require('./dailyphoto')); 3 | router.get('/dailyselection', require('./dailyselection')); 4 | router.get('/:cat/:type?', require('./natgeo')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/natgeo/templates/dailyPhoto.art: -------------------------------------------------------------------------------- 1 | {{@ img.altText }} 2 |
3 |

{{@ img.ttl }}

4 |

{{@ img.dsc }}

5 |

{{@ img.crdt }}

6 | -------------------------------------------------------------------------------- /lib/v2/nbd/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/daily': ['MeXunco'], 3 | '/:id?': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/nbd/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/daily', require('./article')); 3 | router.get('/:id?', require('./index')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/neea/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/jlpt': ['nczitzk'], 3 | '/:type?': ['SunShinenny'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/neea/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/jlpt', require('./jlpt')); 3 | router.get('/:type?', require('./index')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/netease/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/renjian/:category?': ['nczitzk'], 3 | '/today/:need_content?': ['nczitzk'], 4 | '/news/rank/:category?/:type?/:time?': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/netease/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/renjian/:category?', require('./renjian')); 3 | router.get('/today/:need_content?', require('./today')); 4 | router.get('/news/rank/:category?/:type?/:time?', require('./rank')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/news/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/whxw': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/news/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/whxw', require('./whxw')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/newsmarket/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/newsmarket/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ngocn2/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ngocn2/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nifd/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/research/:categoryGuid?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nifd/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/research/:categoryGuid?', require('./research')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nikkei-asia/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/nikkei-asia': ['rainrdx'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nikkei-asia/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nikkei-cn/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:language?/:category?/:type?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nikkei-cn/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:language?/:category?/:type?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nippon/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['laampui'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nippon/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/njnu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/jwc/:type': ['Shujakuinkuraudo'], 3 | '/ceai/:type': ['Shujakuinkuraudo'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/njnu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/jwc/:type', require('./jwc/jwc')); 3 | router.get('/ceai/:type', require('./ceai/ceai')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/nju/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/jw/:type': ['ret-1'], 3 | '/gra': ['ret-1'], 4 | '/rczp/:type': ['ret-1'], 5 | '/scit/:type': ['ret-1'], 6 | '/zcc': ['ret-1'], 7 | '/zbb/:type': ['ret-1'], 8 | }; 9 | -------------------------------------------------------------------------------- /lib/v2/nju/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/jw/:type', require('./jw')); 3 | router.get('/gra', require('./gra')); 4 | router.get('/rczp/:type', require('./rczp')); 5 | router.get('/scit/:type', require('./scit')); 6 | router.get('/zcc', require('./zcc')); 7 | router.get('/zbb/:type', require('./zbb')); 8 | }; 9 | -------------------------------------------------------------------------------- /lib/v2/njupt/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/jwc/:type?': ['shaoye'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/njupt/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/jwc/:type?', require('./jwc')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nltimes/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:category?': ['Hivol'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nltimes/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/news/:category?', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nodejs/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/blog/:language?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nodejs/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/blog/:language?', require('./blog')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nogizaka46/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news': ['crispgm', 'Fatpandac'], 3 | '/blog': ['Kasper4649'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/nogizaka46/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news', require('./news')); 3 | router.get('/blog', require('./blog')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/now/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:category?/:id?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/now/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:category?/:id?', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nowcoder/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/discuss/:type/:order': ['LogicJake'], 3 | '/experience/:tagId': ['huyyi'], 4 | '/jobcenter/:recruitType?/:city?/:type?/:order?/:latest?': ['nczitzk'], 5 | '/recommend': ['junfengP'], 6 | '/schedule/:propertyId?/:typeId?': ['junfengP'], 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/npm/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/package/:name': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/npm/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/package/:name', require('./package')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/npm/templates/package.art: -------------------------------------------------------------------------------- 1 |

Download

2 |

Last Day: {{packageDownloadCountLastDay}}

3 |

Last week: {{packageDownloadCountLastWeek}}

4 |

Last month: {{packageDownloadCountLastMonth}}

5 |
6 |

Version

7 | {{ each packageVersion}} 8 |

{{$value.version}}: {{$value.time}}

9 | {{/each}} 10 | 11 | -------------------------------------------------------------------------------- /lib/v2/nsfc/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:type?': ['Derekmini'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nsfc/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:type?', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ntdtv/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:language/:id': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ntdtv/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:language/:id', require('./channel')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/nuaa/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/cs/:type/:getDescription?': ['LogicJake', 'Seiry', 'qrzbing'], 3 | '/jwc/:type/:getDescription?': ['arcosx', 'Seiry', 'qrzbing'], 4 | '/yjsy/:type?': ['junfengP', 'Seiry'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/nuaa/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/cs/:type/:getDescription?', require('./cs/index')); 3 | router.get('/jwc/:type/:getDescription?', require('./jwc/jwc')); 4 | router.get('/yjsy/:type?', require('./yjsy/yjsy')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/nytimes/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/author/:byline': ['kevinschaul'], 3 | '/book/:category?': ['melvinto'], 4 | '/daily_briefing_chinese': ['yueyericardo'], 5 | '/:lang?': ['HenryQW'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/nytimes/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/author/:byline', require('./author.js')); 3 | router.get('/book/:category?', require('./book.js')); 4 | router.get('/daily_briefing_chinese', require('./daily_briefing_chinese')); 5 | router.get('/:lang?', require('./index')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/odaily/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/activity': ['nczitzk'], 3 | '/newsflash': ['nczitzk'], 4 | '/user/:id': ['nczitzk'], 5 | '/:id?': ['nczitzk'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/odaily/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/activity', require('./activity')); 3 | router.get('/newsflash', require('./newsflash')); 4 | router.get('/user/:id', require('./user')); 5 | router.get('/:id?', require('./post')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/odaily/utils.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | rootUrl: 'https://www.0daily.com', 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/oilchem/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type?/:category?/:subCategory?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/oilchem/radar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'oilchem.net': { 3 | _name: '隆众资讯', 4 | '.': [ 5 | { 6 | title: '资讯', 7 | docs: 'https://docs.rsshub.app/new-media.html#long-zhong-zi-xun', 8 | }, 9 | ], 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /lib/v2/oilchem/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/:type?/:category?/:subCategory?', require('./')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/oncc/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:language/:channel?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/oncc/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:language/:channel?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/oncc/templates/article.art: -------------------------------------------------------------------------------- 1 | 2 | {{ content }} 3 | -------------------------------------------------------------------------------- /lib/v2/orcid/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:id': ['OrangeEd1t'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/orcid/radar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'orcid.org': { 3 | _name: 'ORCID', 4 | '.': [ 5 | { 6 | title: '作品列表', 7 | docs: 'https://docs.rsshub.app/study.html#orcid', 8 | source: ['/:id', '/'], 9 | target: '/ocrid/:id', 10 | }, 11 | ], 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /lib/v2/orcid/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/:id', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/orcid/templates/description.art: -------------------------------------------------------------------------------- 1 |

{{ title }}

{{ journalTitle }}

2 | {{ if publicationDate.year }}{{ publicationDate.year }}{{ /if }}{{ if publicationDate.month }}-{{ publicationDate.month }}{{ /if }}{{ if publicationDate.day }}-{{ publicationDate.day }}{{ /if }} | {{ workType }}
3 | {{@ Str }}Source: {{ sourceName }} -------------------------------------------------------------------------------- /lib/v2/oup/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:name': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/oup/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/journals/:name', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/oup/templates/article.art: -------------------------------------------------------------------------------- 1 |

Abstract

2 |

{{abstractContent}}

3 | {{ if keywords }} 4 |

Keywords

5 |

{{keywords}}

6 | {{ /if }} 7 | -------------------------------------------------------------------------------- /lib/v2/panewslab/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/column/:id': ['nczitzk'], 3 | '/newsflash/:language?': ['nczitzk'], 4 | '/topic/:id': ['nczitzk'], 5 | '/:category?': ['nczitzk'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/panewslab/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/column/:id', require('./column')); 3 | router.get('/newsflash/:language?', require('./newsflash')); 4 | router.get('/topic/:id', require('./topic')); 5 | router.get('/:category?', require('./index')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/people/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/cpc/24h': ['nczitzk'], 3 | '/liuyan/:id/:state?': ['nczitzk'], 4 | '/xjpjh/:keyword?/:year': ['LogicJake'], 5 | '/:site?/:category?': ['nczitzk'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/people/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/liuyan/:id/:state?', require('./liuyan')); 3 | router.get('/xjpjh/:keyword?/:year?', require('./xjpjh')); 4 | router.get(/([\w|\d]+)\/([\w|\d|/]+)?/, require('./index')); 5 | router.get('/:0?', require('./index')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/picuki/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/profile/:id/:displayVideo?': ['hoilc', 'Rongronggg9'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/picuki/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/profile/:id/:functionalFlag?', require('./profile')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/pku/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/hr/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/pku/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/hr/:category?', require('./hr')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/polkaworld/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/polkaworld/newest': ['iceqing'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/polkaworld/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/newest', require('./home')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/producthunt/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/today': ['miaoyafeng', 'Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/producthunt/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/today', require('./today')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/producthunt/templates/descImg.art: -------------------------------------------------------------------------------- 1 |
2 | {{ each descData.structuredData.json.screenshot }} 3 | 4 | {{ /each }} 5 | 6 | -------------------------------------------------------------------------------- /lib/v2/pts/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/dailynews': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/pts/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/dailynews', require('./dailynews')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/pubmed/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/trending/:filters?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/pubmed/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/trending/:filters?', require('./trending')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/pubmed/templates/description.art: -------------------------------------------------------------------------------- 1 | {{ if authors }} 2 | {{@ authors }} 3 | {{ /if}} 4 |
5 | {{ if abs }} 6 | {{@ abs }} 7 | {{ /if}} -------------------------------------------------------------------------------- /lib/v2/qidiantu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?/:type?/:is_history?': ['nczitzk'], 3 | '/shouding': ['nczitzk'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/qidiantu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?/:type?/:is_history?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/qm120/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/qm120/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:category?', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/qq/ac/templates/description.art: -------------------------------------------------------------------------------- 1 | {{ if image !== '' }} 2 | 3 | {{ /if }} 4 | {{ if description !== '' }} 5 |

{{ description }}

6 | {{ /if }} 7 | {{ each chapters chapter }} 8 |
{{ chapter.title }}
9 | {{/each}} -------------------------------------------------------------------------------- /lib/v2/qq/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/ac/comic/:id': ['nczitzk'], 3 | '/ac/rank/:type?/:time?': ['nczitzk'], 4 | '/live/:id': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/qq/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/ac/comic/:id?', require('./ac/comic')); 3 | router.get('/ac/rank/:type?/:time?', require('./ac/rank')); 4 | router.get('/live/:id', require('./live')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/qq88/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/qq88/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/:category?', require('./')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/quicker/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/qa/:category?/:state?': ['Cesaryuan', 'nczitzk'], 3 | '/share/:category?': ['nczitzk'], 4 | '/update': ['Cesaryuan', 'nczitzk'], 5 | '/user/:category/:id': ['Cesaryuan', 'nczitzk'], 6 | '/versions': ['Cesaryuan', 'nczitzk'], 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/quicker/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/qa/:category?/:state?', require('./qa')); 3 | router.get('/share/:category?', require('./share')); 4 | router.get('/update', require('./versions')); 5 | router.get('/user/:category/:id', require('./user')); 6 | router.get('/versions', require('./versions')); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/qweather/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/qweather/3days/:location': ['Rein-Ou'], 3 | '/qweather/now/:location': ['Rein-Ou'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/qweather/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/3days/:location', require('./3days')); 3 | router.get('/now/:location', require('./now')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/radio-canada/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/latest/:language?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/radio-canada/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/latest/:language?', require('./latest')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/readhub/maintainer.js: -------------------------------------------------------------------------------- 1 | module.export = { 2 | '/:category?/:overview?': ['WhiteWorld', 'nczitzk', 'Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/readhub/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | // deprecated 3 | router.get('/category/:category?/:overview?', require('./index')); 4 | 5 | router.get('/:category?/:overview?', require('./index')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/rfa/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:language?/:channel?/:subChannel?': ['zphw'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/rfa/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/:language?/:channel?/:subChannel?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/rfi/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/rfi/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/rsshub/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/routes/:lang?': ['DIYgod'], 3 | '/rsshub/sponsors': ['DIYgod'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/rsshub/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/rss', require('./routes')); // 弃用 3 | 4 | router.get('/routes/:lang?', require('./routes')); 5 | router.get('/sponsors', require('./sponsors')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/ruancan/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/ruancan': ['nczitzk'], 3 | '/ruancan/sort/:sort?': ['nczitzk'], 4 | '/ruancan/tag/:tag': ['nczitzk'], 5 | '/ruancan/search/:keyword?': ['nczitzk'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/ruancan/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:do?/:keyword?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ruc/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/hr/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ruc/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/hr/:category?', require('./hr')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/sciencedirect/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/journal/:id': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/sciencedirect/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/journal/:id', require('./journal')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/secnews/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/index': ['kaiili'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/secnews/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/segmentfault/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/channel/:name': ['LogicJake', 'Fatpandac'], 3 | '/user/:name': ['leyuuu', 'Fatpandac'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/segmentfault/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/channel/:name', require('./channel')); 3 | router.get('/user/:name', require('./user')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/shmeea/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['jialinghui'], 3 | '/self-study': ['h2ws'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/shmeea/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | router.get('/self-study', require('./self-study')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/shopback/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:store': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/shopback/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:store', require('./store')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/sicau/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/dky/:category?': ['nczitzk'], 3 | '/yan/:category?': ['nczitzk'], 4 | '/zsjy/:category?': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/sicau/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/dky/:category?', require('./dky')); 3 | router.get('/yan/:category?', require('./yan')); 4 | router.get('/zsjy/:category?', require('./zsjy')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/sohu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/mp/:id': ['HenryQW'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/sohu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/mp/:id', require('./mp')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/solidot/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type?': ['sgqy', 'hang333', 'TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/solidot/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type?', require('./main')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/soundofhope/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:channel/:id': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/soundofhope/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:channel/:id', require('./channel')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/spotify/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/artist/:id': ['outloudvi'], 3 | '/playlist/:id': ['outloudvi'], 4 | '/saved/:limit?': ['outloudvi'], 5 | '/top/tracks': ['outloudvi'], 6 | '/top/artists': ['outloudvi'], 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/spotify/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/artist/:id', require('./artist')); 3 | router.get('/playlist/:id', require('./playlist')); 4 | router.get('/saved/:limit?', require('./saved')); 5 | router.get('/top/tracks', require('./top')('tracks')); 6 | router.get('/top/artists', require('./top')('artists')); 7 | }; 8 | -------------------------------------------------------------------------------- /lib/v2/sputniknews/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?/:language?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/sputniknews/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:category?/:language?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ssm/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ssm/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/ssm/templates/news.art: -------------------------------------------------------------------------------- 1 | 2 | {{ if vdescription }} 3 |

{{@ vdescription }}

4 | {{ /if }} 5 | -------------------------------------------------------------------------------- /lib/v2/wallhaven/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/search/:filter?/:needDetails?': ['nczitzk', 'Fatpandac'], 3 | '/:filter?/:needDetails?': ['nczitzk', 'Fatpandac'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/wallhaven/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/search/:filter?/:needDetails?', require('./index')); 3 | router.get('/:filter?/:needDetails?', require('./index')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/wallstreetcn/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/live/:category?': ['nczitzk'], 3 | '/news/:category?': ['nczitzk'], 4 | '/:category?': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/wallstreetcn/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/live/:category?/:score?', require('./live')); 3 | router.get('/news/:category?', require('./news')); 4 | router.get('/:category?', require('./news')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/wangqiutiyu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/anchor/:id': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wangqiutiyu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/anchor/:id', require('./anchor')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/watchout/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/watchout/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wechat/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/feeddd/:id': ['TonyRL', 'Rongronggg9'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wechat/radar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'feeddd.org': { 3 | _name: '微信', 4 | '.': [ 5 | { 6 | title: '公众号 (feeddd 来源)', 7 | docs: 'https://docs.rsshub.app/new-media.html#wei-xin', 8 | source: ['/'], 9 | }, 10 | ], 11 | }, 12 | }; 13 | -------------------------------------------------------------------------------- /lib/v2/wechat/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/feeddd/:id', require('./feeddd')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wechat/templates/description.art: -------------------------------------------------------------------------------- 1 | {{@ desc }} 2 | -------------------------------------------------------------------------------- /lib/v2/wechat/templates/image.art: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib/v2/wenku8/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:category?': ['Fatpandac'], 3 | '/volume/:id': ['huangliangshusheng'], 4 | '/chapter/:id': ['zsakvo'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/wenku8/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/chapter/:id', require('./chapter')); 3 | router.get('/volume/:id', require('./volume')); 4 | router.get('/:category?', require('./index')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/wfu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/jwc': ['cccht'], 3 | '/news/:type?': ['cccht'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/wfu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/jwc', require('./jwc')); 3 | router.get('/news/:type?', require('./news')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/whitehouse/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/briefing-room/:category?': ['nczitzk'], 3 | '/ostp': ['LyleLee'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/whitehouse/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/briefing-room/:category?', require('./briefing-room')); 3 | router.get('/ostp', require('./ostp')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/who/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:language?': ['nczitzk'], 3 | '/news-room/:category?/:language?': ['LogicJake', 'nczitzk'], 4 | '/speeches/:language?': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/who/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/news/:language?', require('./news')); 3 | router.get('/news-room/:category?/:language?', require('./news-room')); 4 | router.get('/speeches/:language?', require('./speeches')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/whoscall/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['nczitzk'], 3 | '/tags/:tag?': ['nczitzk'], 4 | '/categories/:category?': ['nczitzk'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/whoscall/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:what?/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wikinews/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/latest': ['KotoriK'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wikinews/router.js: -------------------------------------------------------------------------------- 1 | const routerIndex = require('./index'); 2 | module.exports = function (router) { 3 | router.get('/latest', routerIndex); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/wp-china/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:category?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wp-china/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/news/:category?', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wsj/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:lang/:category?': ['oppilate'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wsj/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/:lang/:category?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wsyu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:type?': ['Derekmini'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wsyu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:type?', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wyzxwk/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/article/:id?': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wyzxwk/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/article/:id?', require('./article')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wzu/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/news/:type?': ['Chandler-Lu'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/wzu/radar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'wzu.edu.cn': { 3 | _name: '温州大学', 4 | '.': [ 5 | { 6 | title: '温州大学 - 主站新闻', 7 | docs: 'https://docs.rsshub.app/university.html#wen-zhou-da-xue', 8 | }, 9 | ], 10 | }, 11 | }; 12 | -------------------------------------------------------------------------------- /lib/v2/wzu/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/news/:type?', require('./news')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/xaut/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/index/:category?': ['mocusez'], 3 | '/jwc/:category?': ['mocusez'], 4 | '/rsc/:category?': ['mocusez', 'light0926'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/xaut/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/index/:category?', require('./index')); 3 | router.get('/jwc/:category?', require('./jwc')); 4 | router.get('/rsc/:category?', require('./rsc')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/xiaoyuzhou/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['prnake', 'Maecenas'], 3 | '/podcast/:id': ['hondajojo', 'jtsang4'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/xiaoyuzhou/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/podcast/:id', require('./podcast')); 3 | router.get('/', require('./pickup')); 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/xmanhua/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/:uid', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/yaohuo/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/': ['nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/yaohuo/radar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'yaohuo.me': { 3 | _name: '妖火', 4 | '.': [ 5 | { 6 | title: '首页', 7 | docs: 'https://docs.rsshub.app/new-media.html#yao-huo-shou-ye', 8 | source: ['/'], 9 | target: '/yaohuo', 10 | }, 11 | ], 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /lib/v2/yaohuo/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/youku/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/channel/:channelId/:embed?': ['xyqfer', 'Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/youku/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/channel/:channelId/:embed?', require('./channel')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/youku/templates/channel.art: -------------------------------------------------------------------------------- 1 | {{ if embed }} 2 | 3 | {{ /if }} 4 |
5 | 6 | -------------------------------------------------------------------------------- /lib/v2/youzhiyouxing/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/materials/:column?': ['broven', 'Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/youzhiyouxing/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/materials/:column?', require('./materials')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/yxdzqb/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type': ['LogicJake', 'nczitzk'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/yxdzqb/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/yxdzqb/templates/description.art: -------------------------------------------------------------------------------- 1 | 2 | {{@ description }} -------------------------------------------------------------------------------- /lib/v2/zaker/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type/:id?': ['LogicJake', 'kt286', 'AlexdanerZe', 'TonyRL'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/zaker/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/:type/:id?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/zaobao/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/interactive-graphics': ['shunf4'], 3 | '/realtime/:section?': ['shunf4'], 4 | '/znews/:section?': ['shunf4'], 5 | '/:type/:section': ['shunf4'], 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/zaobao/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/interactive-graphics', require('./interactive')); 3 | router.get('/realtime/:section?', require('./realtime')); 4 | router.get('/znews/:section?', require('./znews')); 5 | router.get('/:type?/:section?', require('./index')); 6 | }; 7 | -------------------------------------------------------------------------------- /lib/v2/zhibo8/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/forum/:id': ['LogicJake'], 3 | '/more/:category?': ['nczitzk'], 4 | '/post/:id': ['LogicJake'], 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/zhibo8/router.js: -------------------------------------------------------------------------------- 1 | module.exports = (router) => { 2 | router.get('/forum/:id', require('./forum')); 3 | router.get('/more/:category?', require('./more')); 4 | router.get('/post/:id', require('./post')); 5 | }; 6 | -------------------------------------------------------------------------------- /lib/v2/zhubai/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:id': ['naixy28'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/zhubai/radar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'zhubai.love': { 3 | _name: '竹白', 4 | '.': [ 5 | { 6 | title: '文章', 7 | docs: 'https://docs.rsshub.app/blog.html#zhu-bai', 8 | source: ['/'], 9 | }, 10 | ], 11 | }, 12 | }; 13 | -------------------------------------------------------------------------------- /lib/v2/zhubai/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:id', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/zjgtjy/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/:type?': ['Fatpandac'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/zjgtjy/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/:type?', require('./index')); 3 | }; 4 | -------------------------------------------------------------------------------- /lib/v2/zooTeam/maintainer.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '/zooTeam/blog': ['Pulset'], 3 | '/zooTeam/weekly': ['Pulset'], 4 | }; 5 | -------------------------------------------------------------------------------- /lib/v2/zooTeam/router.js: -------------------------------------------------------------------------------- 1 | module.exports = function (router) { 2 | router.get('/blog', require('./blog')); 3 | router.get('/weekly', require('./weekly')); 4 | }; 5 | -------------------------------------------------------------------------------- /logs/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mashirozx/RSSHub/bdbfba8fe3aa2c56bda2e415404a8f4890613858/logs/.gitkeep -------------------------------------------------------------------------------- /now.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "routes": [ 4 | { "src": "/api/.*", "dest": "/api/now.js" }, 5 | { "src": "/.*", "dest": "/api/now.js" } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /process.json: -------------------------------------------------------------------------------- 1 | { 2 | "apps": [ 3 | { 4 | "name": "rsshub", 5 | "script": "lib/index.js", 6 | "instances": "max", 7 | "exec_mode": "cluster", 8 | "env": { 9 | "NODE_ENV": "production" 10 | } 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /scripts/ansible/Vagrantfile: -------------------------------------------------------------------------------- 1 | Vagrant.configure("2") do |config| 2 | config.vm.box = "generic/ubuntu2004" 3 | config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: ".git/" 4 | config.ssh.extra_args = ["-t", "cd /vagrant; bash --login"] 5 | end 6 | -------------------------------------------------------------------------------- /scripts/ansible/rsshub.Caddyfile: -------------------------------------------------------------------------------- 1 | {{ domain_name }} 2 | 3 | reverse_proxy localhost:1200 4 | -------------------------------------------------------------------------------- /scripts/ansible/rsshub.env: -------------------------------------------------------------------------------- 1 | NODE_ENV=production 2 | CACHE_TYPE=redis 3 | PUPPETEER_WS_ENDPOINT=ws://localhost:3000 4 | -------------------------------------------------------------------------------- /scripts/ansible/rsshub.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=RSSHub is an open source, easy to use, and extensible RSS feed aggregator 3 | 4 | [Service] 5 | User=rsshub 6 | WorkingDirectory=/home/rsshub/app 7 | ExecStart=yarn start 8 | EnvironmentFile=/home/rsshub/app/.env 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /scripts/ansible/try.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | vagrant rsync 5 | vagrant ssh 6 | -------------------------------------------------------------------------------- /scripts/workflow/build-radar.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | const target = path.join(__dirname, '../../assets/build/radar-rules.js'); 4 | const radar = require(path.join(__dirname, '../../lib/radar.js')); 5 | 6 | fs.writeFileSync(target, radar.toSource()); 7 | -------------------------------------------------------------------------------- /test/.eslintrc: -------------------------------------------------------------------------------- 1 | env: 2 | jest: true 3 | -------------------------------------------------------------------------------- /test/utils/md5.js: -------------------------------------------------------------------------------- 1 | const md5 = require('../../lib/utils/md5'); 2 | 3 | describe('md5', () => { 4 | it('md5 RSSHub', () => { 5 | expect(md5('RSSHub')).toBe('3187d745ec5983413e4f0dce3900d92d'); 6 | }); 7 | }); 8 | --------------------------------------------------------------------------------