* feat: denonbu
* chore: UPPER_SNAKE_CASE for constants
* fix: timezone
* fix: extract a title if none is given
* fix: typo
* fix: handle special media fields
testcase: /denonbu/news/daiba
* fix: naming
* feat: cache token
* chore: remove manual `...` (RSSHub will add it)
* chore: simplify checks
shall be safe to guess the site won't have sid === 0
* Apply suggestion from TonyRL
---------
* feat(route): add tag
* fix: replace 'referrer' with 'referer' in http header
* fix(route): update tag path
* fix(utils): update pubDate parsing to include timezone
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: update image source to use favicon.ico for foodtalks routes
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* 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
* add cxcy
* feat(routes): add ecnu/jiaoliu
* feat(route): add two new routes of ECNU
* feat(route): add info of /ecnu/cxcy
* fix(route): replace links with baseUrl and update the method to query dom element
* Update lib/routes/ecnu/cxcy.ts
Co-authored-by: Tony <TonyRL@users.noreply.github.com>
---------
Co-authored-by: FrozenStarrrr <frozenstars@qq.com>
* Revert "fix(routes/mercari): set cache max age to routeExpire (#20653)"
This reverts commit 7fc7a62a25.
* fix(routes/mercari): use item updated time in cache key
* feat(route): add anthropic research
* feat(route): simplify code
* feat: add route for Read Something Wonderful articles
* refactor: remove ID-based sorting from results.
* refactor(routes/readsomethingwonderful): simplify API request
Simplify the API request by removing unnecessary headers and adding format parameter.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
* feat(routes/techflowpost): add featured featured route
* fix: use path parameter instead of query parameter
* fix(routes/techflowpost): update featured title for clarity
* fix(routes/techflowpost): enhance featured route with category mapping
Item description and price may change, and it can be critical to get the
latest price, otherwise the item may be bought by others.
However, it's still useful to cache the result, as it might be used by
other routes (e.g. different keywords or sorting parameters).
* feat(nix): add flake module and offline-friendly build
* chore(nix): upgrade to Node.js 24 and pnpm 10
Update devenv.nix to match project dependencies:
- Upgrade Node.js from 22 to 24 (aligns with Dockerfile node:24-bookworm)
- Upgrade pnpm from 9 to 10 (aligns with package.json pnpm@10.22.0)
* test: fix buffer-get test timeout
Replace external URL with mock server endpoint to prevent test timeout.
The test was trying to fetch from http://example.com which is not mocked,
causing it to timeout. Now uses http://rsshub.test/headers which is
properly mocked in the test setup.
* Adding Huggingface Model details
* more robust
* fix deepscan's problem, shall not be a problem !!!!! 404 should be a proper state !!!!!
* md2html and image url fix
* 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
* 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>
* 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>