Commit Graph
8370 Commits
Author SHA1 Message Date
sk22andSamuel Kaiser c78612645f feat(route/oevw): add route for oevw.at (#20595)
* feat(route/oevw): add route for oevw.at

* chore(route/oevw): improve parameter documentation

* fix(route/oevw): decode url-encoded param

---------

Co-authored-by: Samuel Kaiser <samuel.kaiser@timetoact.at>
2025-12-05 22:33:13 +08:00
fishyo a8b004eb64 feat(route): add supercell game blog routes (#20545)
* feat(route): add supercell game blog routes

- Add support for 5 supercell games (Clash Royale, Brawl Stars, Clash of Clans, Boom Beach, Hay Day)
- Support 12 languages (en, zh, zh-hans, fr, de, id, it, ja, ko, pt, ru, es)
- Extract blog posts from __NEXT_DATA__ JSON
- Cache full article content with fallback to summary

* feat: add Supercell game blog route

* fix(supercell): use regex to extract __NEXT_DATA__ JSON, remove cheerio dependency

* fix(supercell): use bodyCollection to render content, fix namespace capitalization

* fix: improve supercell blog route to extract full content from bodyCollection

- Implement renderRichText and renderNodeContent functions to properly parse rich text JSON format
- Handle both TextBlock and FeatureBlock types from bodyCollection
- Support text formatting marks (bold, italic, underline, code)
- Add proper type annotations to handler function and variables
- Use Next.js JSON endpoint instead of HTML parsing for better performance
- Add error handling with fallback to description if full content extraction fails

* feat(supercell): add ImageBlock and CarouselBlock support for multi-game content extraction

* fix(supercell): use else-if chain and for-of loop for block handling

* refactor(supercell): extract renderBlock function to reduce complexity

* fix(supercell): use switch statement for block type handling
2025-12-04 23:59:51 +08:00
sk22andSamuel Kaiser 75480d248e feat(route): Add route for BWSG.at (#20542)
* feat(category): add housing category

* feat(route): Add route for bwsg.at

* fix(route/bwsg): improve feed title

* Revert "feat(category): add housing category"

This reverts commit 953f59421717592dc5d8f2e0d8c42b5d54c77c72.

* fix(route/bwsg): change category

* fix(route/bwsg): fetch all pages

* fix(route/bwsg): fix eslint rules

* chore(route/bwsg): only fetch first page

---------

Co-authored-by: Samuel Kaiser <samuel.kaiser@timetoact.at>
2025-12-04 04:46:15 +08:00
Andvari 5ea6b7a724 fix(route/huxiu): Replace API endpoint for moment route (#20388) 2025-12-03 22:59:47 +08:00
千代有希=andFrozenStarrrr 81b0d3ef9d feat(route): add 12 more route of ECNU's insititutes (#20582)
* fix(route): fix wrong title of /ecnu/bksy

Co-authored-by: FrozenStarrrr <frozenstars@qq.com>

* feat(route): add ECNU Software Engineering Insitute notices route

* fix(route): modify wrong radar target

* add School of Computer Science and Technology ECNU notices route

* add School of data science and engineering notices route

* add School of Comm. & Elec. Engineering notices route

* add School of Geospace A.I. Engineering ECNU notices route

* add ECNU faculty of Edu. notices route

* add ECNU faculty of Earth Sci. notices route

* add ECNU Meng Xiancheng notices route

* add ECNU Guanghua notices route

* fix(route): add empty line at the end of files.

* add department of history ECNU notices route

* add department of Philo. ECNU notices route

* fix(route): add maintainer of /ecnu/bksy

* fix(route): delete unnecessary try-catch statment, modified incorrect url, fix image url.

* fix(route): fix unnecessary try-catch, description, condition and wrond url

* fix(route): fix image display

* fix(route): fix problems in bksy.ts

* feat(route): add ecnu/pharm

* feat(route): add art insititute of ECNU

* feat(route): add route of school of Stat. ECNU

* feat(route): add route of school of Phy. & Elec., ECNU

* feat(route): add route of school of Chem. & Mol., ECNU

* feat(route): add route of school of Eco. & Envir., ECNU

* feat(route): add route of school of Comm., ECNU

* feat(route): add route of school of International Chinese Studies, ECNU

* feat(route): add route of school of Psy. & cognitive Sci., ECNU

* feat(route): add route of college of Phy. Edu. & health , ECNU

* feat(route): add route of college of public management, ECNU

* feat(route): add route of college of Marxismus, ECNU

* fix(routes): fix incorrect time display and remove unnecessary codes

* fix(foute): format the code

---------

Co-authored-by: FrozenStarrrr <frozenstars@qq.com>
2025-12-03 21:37:24 +08:00
Tony be0b608d1b fix(route/springer): handle authz manually (#20629) 2025-12-03 16:38:14 +08:00
PolarisStarnorandTony 8fcbaac983 feat(route/tumblr): Add Tumblr tagged route (#20576)
* tumblr.com: Code to access tagged/ endpoint

* tumblr.com: Change processPost for tagged endpoint

* Tumblr.com: "Tagged" response is a list of posts

* tumblr.com: removed unnecessary link

* tumblr.com: fixing api key auth as per https://www.tumblr.com/docs/en/api/v2#authentication

* tumblr.com: user query params properly

* tumblr.com: compliance with Script Standard

* tumblr.com: ensuring `api_key` works for posts.ts

* tumblr: don't mess up the types this time

* tumblr/tagged/:tag Feed Description + Link

* /tumblr Can now parse blog answers

* /tumblr "answer" is the correct type

* /tumblr: Better format for blog answers

* /tumblr: fixed misplaced </p> tag

* lib/routes/tumblr/tagged.ts: Removed unnecessary template literals

Co-authored-by: Tony <TonyRL@users.noreply.github.com>

* /tumblr/tagged: Only one category

* /tumblr: Fixed how the asker's url is handled

* Ran ESLint

---------

Co-authored-by: Tony <TonyRL@users.noreply.github.com>
2025-12-03 13:13:09 +08:00
Tony e108a0772b fix(route/thepaper): add cookie (#20615)
* fix(route/thepaper): add cookie

* fix(route/thepaper): migrate from got to ofetch for API requests
2025-12-02 15:51:17 +08:00
Tony 15c703cafd fix(route/nhk): add manual authz (#20612) 2025-12-02 14:54:45 +08:00
Rongrong 3158a46956 fix(route/weibo/utils): tryWithCookies: Cookies expiration not detected (#20583)
* feat(route/weibo/utils): getCookies: Add cooldown time

Signed-off-by: Rongrong <i@rong.moe>

* fix(route/weibo/utils): tryWithCookies: Cookies expiration not detected

Signed-off-by: Rongrong <i@rong.moe>

---------

Signed-off-by: Rongrong <i@rong.moe>
2025-12-02 11:59:52 +08:00
Jinghao Tu d81a7b2b32 fix(route/huggingface): restore article list and author parsing (#20599)
* fix(route/huggingface): restore article list and author parsing

- lib/routes/huggingface/blog-zh.ts: Read articles from data.props.allBlogs and construct /blog/zh/:slug links; use authorsData (fullname or name) for author names.
- lib/routes/huggingface/blog.ts: Read articles from data.props.allBlogs and switch author parsing to authorsData (fullname or name); preserve upvotes and thumbnail handling.
- lib/routes/huggingface/daily-papers.ts: Relax selector to read data.props from div[data-target="DailyPapers"] so DailyPapers props can be retrieved.

* fix(route/huggingface): use api instead of http; title is at right property.
2025-12-01 23:57:43 +08:00
DIYgod 7f5ae64a2f feat(twitter): add UserMedia support and enhance pagination logic 2025-12-01 22:57:09 +08:00
Ethan Shen 295a4f845e feat(route): add Produce Report (#20596) 2025-12-01 21:54:05 +08:00
github-actions[bot] b6dbafe33e style: auto format 2025-11-28 16:22:58 +00:00
sk22andSamuel Kaiser a590f9a723 feat(route/wogem): Add route for WOGEM.at housing cooperative (#20555)
* feat(category): add housing category

* feat(route/wogem): add route for wogem.at

* Revert "feat(category): add housing category"

This reverts commit 953f59421717592dc5d8f2e0d8c42b5d54c77c72.

* feat(route/wogem): change category

* fix(route/wogem): remove redundant filter parameter

---------

Co-authored-by: Samuel Kaiser <samuel.kaiser@timetoact.at>
2025-11-28 00:15:13 +08:00
github-actions[bot] edfac9f24c style: auto format 2025-11-27 05:54:33 +00:00
github-actions[bot] 838eb3c7ff style: auto format 2025-11-27 05:49:33 +00:00
Ethan Shen 4e4c058ad6 feat(route): add 数字尾巴兴趣 (#20463)
* feat(route): add 数字尾巴兴趣

* fix typo

* Update lib/routes/dgtle/feed.ts

* style: reorder imports for better organization

---------
2025-11-27 11:39:44 +08:00
Tony 21984b58c6 style: fix import statement formatting 2025-11-27 11:29:49 +08:00
Tony bf9f4b5961 style: fix import 2025-11-27 11:22:19 +08:00
Stephen Zhou d5e4fba8b2 style: format 2025-11-27 11:04:48 +08:00
github-actions[bot] a28890a135 style: auto format 2025-11-27 02:55:46 +00:00
Stephen Zhou 411bf6e445 fix(package): no fallback serve for package mode 2025-11-27 03:33:44 +08:00
Stephen Zhou da5f5080fe fix(package): import namespaces dynamically 2025-11-27 03:18:35 +08:00
Stephen Zhou 399627cb65 feat(package): export utils 2025-11-27 02:18:00 +08:00
Stephen Zhou c83f27bd44 feat(package): register route 2025-11-27 02:06:18 +08:00
Stephen Zhou 69a859ca9d refactor(package): simple type solution 2025-11-27 01:21:20 +08:00
Stephen Zhou bc86bda10d fix(package): allow empty conf 2025-11-26 21:48:35 +08:00
Stephen Zhou b4a2aa5e70 fix(core): package mode (#20580) 2025-11-26 20:44:18 +08:00
Cason Kervis 87bb77ca4c fix(route/sspai/index): fix order (#20575) 2025-11-26 20:12:05 +08:00
Ethan Shen 68fdac3ea2 feat(route): add 中国百货商业协会 (#20571)
* feat(route): add 中国百货商业协会

* fix typo
2025-11-26 09:13:42 +08:00
Serhii Hospodarchuk 81b03f2d8a fix(route/substack): use ofetch directly to avoid xml parse errors (#20564)
* fix(route/substack): clean up xml before parsing

* fix(route/substack): use ofetch directly to avoid xml parse errors

* fix(route/substack): use isValidHost to validate the user
2025-11-26 04:54:21 +08:00
Tony fb3ae13f79 fix: update import statements to use local ofetch utility 2025-11-26 03:38:50 +08:00
Tony 87641236b8 fix(route/iwara): use ofetch (#20572) 2025-11-26 03:37:24 +08:00
sk22andSamuel Kaiser d8c2be5710 feat(route): Add route for wiensued.at cooperative housing (#20552)
* feat(category): add housing category

* feat(route/wiensued): add route for wiensued.at

* Revert "feat(category): add housing category"

This reverts commit 953f59421717592dc5d8f2e0d8c42b5d54c77c72.

* feat(route/wiensued): change category

---------

Co-authored-by: Samuel Kaiser <samuel.kaiser@timetoact.at>
2025-11-26 03:09:22 +08:00
sk22andSamuel Kaiser cbff05689a feat(route): Add WBV-GPA Austrian communal housing search (#20544)
* feat(category): add housing category

* feat(route): Add WBV-GPA housing search

* fix(route/wbv-gpa): fix import

* fix(route/wbv-gpa): fix feed title

* Revert "feat(category): add housing category"

This reverts commit 953f59421717592dc5d8f2e0d8c42b5d54c77c72.

* feat(route/wbv-gpa): change category

---------

Co-authored-by: Samuel Kaiser <samuel.kaiser@timetoact.at>
2025-11-26 01:53:31 +08:00
sk22andSamuel Kaiser 36b6b34ffc feat(route): Add route for gesiba.at (#20538)
* feat(category): add housing category

* feat(route): Add gesiba.at route

* fix(route/gesiba): improve feed, fix imports

* fix(route/gesiba): fix feed title

* Revert "feat(category): add housing category"

This reverts commit 953f59421717592dc5d8f2e0d8c42b5d54c77c72.

* fix(route/gesiba): change category

---------

Co-authored-by: Samuel Kaiser <samuel.kaiser@timetoact.at>
2025-11-25 23:36:44 +08:00
sk22andSamuel Kaiser 9946c99ff6 feat(route): Add route for oesw.at (#20537)
* feat(category): add housing category

* feat(route): add oesw.at housing search

* fix(route/oesw): append count to guid instead of link

* fix(route/oesw): fix feed title and imports

* Revert "feat(category): add housing category"

This reverts commit 953f59421717592dc5d8f2e0d8c42b5d54c77c72.

* feat(route/oesw): change category

---------

Co-authored-by: Samuel Kaiser <samuel.kaiser@timetoact.at>
2025-11-25 22:12:44 +08:00
Saif Azmi ad79cc6870 docs(route/linkedin/posts): update Puppeteer requirement to true (#20551) 2025-11-23 22:02:00 +08:00
AiraNadihandAiraNadih ea262406ac fix(route/kemono): fallback to added date if published date is missing (#20548)
Co-authored-by: AiraNadih <AiraNadih@users.noreply.github.com>
2025-11-23 21:48:24 +08:00
Tony 934d95a4ed fix(route/1point3acres): handle optional tags in category assignment (#20547) 2025-11-23 13:11:09 +08:00
Zhengyi 98014554ca fix(route/qidian/chapter): Add User Agent (#20513) 2025-11-23 04:44:10 +08:00
Ethan Shen 4caa9f65a3 feat(route): add 北青网 (#20539)
* feat(route): add 北青网

* fix typo
2025-11-22 22:19:15 +08:00
千代有希=andFrozenStarrrr e0aee671fb feat(route): add some insitutes' routes of ECNU (#20532)
* fix(route): fix wrong title of /ecnu/bksy

Co-authored-by: FrozenStarrrr <frozenstars@qq.com>

* feat(route): add ECNU Software Engineering Insitute notices route

* fix(route): modify wrong radar target

* add School of Computer Science and Technology ECNU notices route

* add School of data science and engineering notices route

* add School of Comm. & Elec. Engineering notices route

* add School of Geospace A.I. Engineering ECNU notices route

* add ECNU faculty of Edu. notices route

* add ECNU faculty of Earth Sci. notices route

* add ECNU Meng Xiancheng notices route

* add ECNU Guanghua notices route

* fix(route): add empty line at the end of files.

* add department of history ECNU notices route

* add department of Philo. ECNU notices route

* fix(route): add maintainer of /ecnu/bksy

* fix(route): delete unnecessary try-catch statment, modified incorrect url, fix image url.

* fix(route): fix unnecessary try-catch, description, condition and wrond url

* fix(route): fix image display

* fix(route): fix problems in bksy.ts

---------

Co-authored-by: FrozenStarrrr <frozenstars@qq.com>
2025-11-22 22:06:51 +08:00
Rongrong 6eb460c33b feat(route/weibo): Fetch visitor Cookies before accessing some APIs (#20534)
* feat(route/weibo): Fetch visitor Cookies before accessing some APIs

Signed-off-by: Rongrong <i@rong.moe>

* fix(route/weibo/utils): getCookies: return too early on slow connection

Signed-off-by: Rongrong <i@rong.moe>

* fix(route/weibo/utils): getCookies: Redirection assertion is too loose

Signed-off-by: Rongrong <i@rong.moe>

---------

Signed-off-by: Rongrong <i@rong.moe>
2025-11-22 06:04:14 +08:00
IChengHo 8c7cd6832e fix(route/phoronix): Use ofetch and parseString for reliable feed fetching (#20543)
The `rss-parser`'s internal `parseURL` method can fail with an "Error:
Non-whitespace before first tag" on feeds that are gzipped or contain a
Byte Order Mark (BOM), as it lacks robust decompression and encoding
handling.

This change switches the Phoronix route to:

Fetch the raw XML string using `ofetch`, which handles compression and
encoding correctly.

Pass the resulting clean string to `parser.parseString()`.

This resolves the parsing issue and ensures the route is reliable.
2025-11-22 04:33:29 +08:00
Rongrong 3ede128c55 fix(route/picnob): bring back support for diygod/rsshub:chromium-bundled (#20504)
* ci(docker-release): enable ZRAM to reduce memory pressure

This should hopefully help reduce stuck build jobs. Note that this can't
completely eliminate stuck builds since this is usually caused by
synchronization issues in QEMU.

Signed-off-by: Rongrong <i@rong.moe>

* build(Dockerfile): Add support for puppeteer-real-browser

Sets CHROMIUM_EXECUTABLE_PATH on AMD64 and installs essential
dependencies.

Signed-off-by: Rongrong <i@rong.moe>

* fix(route/picnob): bring back support for diygod/rsshub:chromium-bundled

The support for puppeteer-real-browser on diygod/rsshub:chromium-bundled
was improperly implemented in 400fb1fa49 ("fix(route/picnob): use
puppeteer-real-browser to pass cf check (#20478)") and was then removed
in 2cb11d7c7e ("fix(route/picnob): support img not in slide").

With proper support for puppeteer-real-browser added to Dockerfile, this
patch brings back the support for diygod/rsshub:chromium-bundled.

This partially reverts commit 2cb11d7c7e ("fix(route/picnob): support
img not in slide").

Signed-off-by: Rongrong <i@rong.moe>

* chore(route/picnob): add myself as maintainer

This route explicitly consult CHROMIUM_EXECUTABLE_PATH from the docker
image variant `diygod/rsshub:chromium-bundled`. Since I am the author of
the image variant, add myself as one of route maintainers so that I am
mentioned when the route is broken.

Signed-off-by: Rongrong <i@rong.moe>

# Conflicts:
#	lib/routes/picnob/user.ts

---------

Signed-off-by: Rongrong <i@rong.moe>
2025-11-21 01:23:22 +08:00
千代有希=andFrozenStarrrr 28bc65d0be feat(route): add ECNU Software Engineering Insitute notices route (#20531)
* fix(route): fix wrong title of /ecnu/bksy

Co-authored-by: FrozenStarrrr <frozenstars@qq.com>

* feat(route): add ECNU Software Engineering Insitute notices route

* fix(route): modify wrong radar target

---------

Co-authored-by: FrozenStarrrr <frozenstars@qq.com>
2025-11-21 00:32:29 +08:00
Ethan Shen d91d4681a0 feat(route): add Cloudflare Status (#20514)
* feat(route): add Cloudflare Status

* fix: missing type
2025-11-20 00:09:54 +08:00
FrozenStarandYuki Chiyo 46086571b9 feat(route): add East China Normal University Undergraduate Office notice (#20515)
* feat(route): add East China Normal University Undergraduate Office notices

Co-authored-by: Yuki Chiyo <chiyo.uk@outlook.com>

* fix(route): delete a useless option and modified outdated url

Co-authored-by: Yuki Chiyo <chiyo.uk@outlook.com>

---------

Co-authored-by: Yuki Chiyo <chiyo.uk@outlook.com>
2025-11-19 21:57:07 +08:00