Commit Graph
8823 Commits
Author SHA1 Message Date
HiandClaude 6d77bd84c0 feat(route): add 中国地质大学(北京) (#22352)
* route: add 中国地质大学(北京)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat(route): add channel icon for 中国地质大学(北京)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(route): use official crest favicon as 中国地质大学(北京)feed icon

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(route): use official high-res crest for 中国地质大学(北京)feed icon

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-09 23:28:13 +08:00
Jiamin 42b7ee9b7c feat(route): add Liaoning Musuem route (#22338)
* feat(route): add Liaoning Musuem route

* fix(route): update radar

* fix(route): remove hash for radar
2026-07-09 23:01:22 +08:00
TonyRL 334b663855 chore: remove unused deps 2026-07-09 22:14:32 +08:00
Tony 5a50c8fa0e fix(route/rfa): use embedded data (#22479) 2026-07-09 04:00:41 +08:00
Tony cb0791cb41 perf: dx (#22478)
* perf: use only one WASM alloc for xxhash

* perf(deps): lazy load mercury-parser and use googleapis/youtube instead of heavy googleapis

* perf(dx): lazy load dev registry

speed up npm dev script

* perf: close playwright browser on destroy

* fix: show exception msg in prod

* revert: "perf: use only one WASM alloc for xxhash"

This reverts commit 01ecdd48d0.

* perf: use only one WASM alloc for xxhash

* test: add claim for worker

* fix: missing piece from 8dd9c9a

* feat: add namespace to the chunkfilename

* fix: keep var naming
2026-07-09 02:37:41 +08:00
Yufan You 12a75059dd fix(core): make the atom format spec-compliant (#20723)
* fix: remove the src attribute of atom:content

The src attribute is to replace the inner content, not to mark its source.

RFC4287:

> 4.1.3.2.  The "src" Attribute
>
>  atom:content MAY have a "src" attribute, whose value MUST be an IRI
>  reference [RFC3987].  If the "src" attribute is present, atom:content
>  MUST be empty.  Atom Processors MAY use the IRI to retrieve the
>  content and MAY choose to ignore remote content or to present it in a
>  different manner than local content.
>
>  If the "src" attribute is present, the "type" attribute SHOULD be
>  provided and MUST be a MIME media type [MIMEREG], rather than "text",
>  "html", or "xhtml".  The value is advisory; that is to say, when the
>  corresponding URI (mapped from an IRI, if necessary) is dereferenced,
>  if the server providing that content also provides a media type, the
>  server-provided media type is authoritative.

* fix: move <language> to xml:lang

* fix: remove <webMaster> in atom

* fix: use ISO format to display date in atom & always have <updated>

* fix: use ISO date for feed <updated> in atom

* fix: add <link rel=self> for atom
2026-07-08 21:37:45 +08:00
Tony ee32cffa05 refactor: named import cheerio.load (#22477) 2026-07-08 19:47:09 +08:00
Dick Tang 604b8773d5 feat(route): fix Airtable embed link for Layoffs.fyi (#22467)
* Update Airtable embed link for Layoffs.fyi

* docs: fix title

---------
2026-07-08 09:48:24 +00:00
TonyRL 2dbc2eadfe style: fix eslint/no-constant-binary-expression 2026-07-07 20:49:57 +08:00
1200522928andgithub-actions[bot] 8908a70b6c feat(route): fix route qstheory (#22434)
* your message

* style: auto format

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-07 10:27:19 +08:00
chesha1 f8d0a1438c fix(openai): avoid Cloudflare 403 on article pages (#22276) 2026-07-06 15:10:19 +08:00
Jiamin 719cc1994b fix: fix timezone for GMT+8 (#22270)
* fix: fix timezone for GMT+8

* fix: update +8 to 8
2026-07-05 18:03:12 +00:00
Jiamin bb722f74be feat(route): add Zhejiang Museum temporary exhibition route (#22269)
* feat(route): add Zhejiang Museum temporary exhibition route

* fix: fix the radar source and target

* fix:fix location with null

* fix: only remove the faulty x448
2026-07-06 01:04:37 +08:00
Jiamin 74cb1fa495 feat(route): add Nanjing Museum exhibition route (#22261)
* feat(route): add Nanjing Museum exhibition route

* fix: update the startDate and endDate

* fix: remove redundant fetchTitle

* Update lib/routes/njmuseum/exhibitionindex.tsx
2026-07-06 00:00:38 +08:00
jack2game e171994187 fix(route): chinaventure route (#22433) 2026-07-05 04:42:32 +00:00
Jiamin 099d51b6a8 feat(route): add Shaanxi History Museum news and temporary exhib route (#22260)
* feat(route): add Shaanxi History Museum news and temporary exhib route

* fix:unify await got function
2026-07-05 03:06:56 +08:00
Tony 282ea912cf fix(route/asus): update API address (#22424) 2026-07-03 20:18:58 +08:00
dependabot[bot]andTonyRL a4002fa587 chore(deps): bump docker/build-push-action from 7.2.0 to 7.3.0 (#22403)
* chore(deps): bump docker/build-push-action from 7.2.0 to 7.3.0

Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 7.2.0 to 7.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/f9f3042f7e2789586610d6e8b85c8f03e5195baf...53b7df96c91f9c12dcc8a07bcb9ccacbed38856a)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 7.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* style: fix prefer-object-iterable-methods

* chore: update unicorn-js/isolated-functions rule to include global overrides

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: TonyRL <TonyRL@users.noreply.github.com>
2026-07-02 20:10:27 +08:00
dependabot[bot]andTonyRL f17e026de6 chore(deps-dev): bump eslint-plugin-unicorn from 69.0.0 to 70.0.0 (#22405)
* chore(deps-dev): bump eslint-plugin-unicorn from 69.0.0 to 70.0.0

Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 69.0.0 to 70.0.0.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v69.0.0...v70.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-unicorn
  dependency-version: 70.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* style: fix prefer-simplified-conditions

* style: fix prefer-block-statement-over-iife

* style: fix no-unsafe-promise-all-settled-values

* style: add unicorn v70 recommded preset

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: TonyRL <TonyRL@users.noreply.github.com>
2026-07-02 18:48:44 +08:00
Tony 00eb86272e fix(route/kadokawa): fix image attr (#22394) 2026-06-30 21:00:37 +08:00
github-actions[bot] 659e76c802 style: auto format 2026-06-29 11:55:02 +00:00
Tony dd92228476 fix(route/uestc): fix selector (#22349)
* feat(route): add pawchive

* fix(route/uestc): fix url
2026-06-28 20:13:56 +08:00
github-actions[bot] 17e7c16139 style: auto format 2026-06-27 16:09:22 +00:00
sirius60111andClaude Opus 4.8 a510ea3f24 fix(route/xueqiu): fix stock_info failure caused by WAF challenge (#22346)
The /xueqiu/stock_info route was broken by Alibaba Cloud WAF: the cookie
acquisition could not pass the challenge, and the data request was sent
to xueqiu.com which the WAF blocks for these endpoints.

- cookies.ts: allow the `script` resource type in the page.route filter
  so the WAF challenge scripts can execute, enabling cookie extraction
  via Patchright
- stock-info.ts: request data from api.xueqiu.com instead of xueqiu.com
  to bypass the WAF
- stock-info.ts: align the supported types with the tabs on the stock
  page (all / discuss / trans / news / announcement). all / discuss /
  trans use the symbol search endpoint; news / announcement use the
  stock timeline endpoint. The previously broken research type is removed
- stock-info.ts: fetch the stock name from the lightweight quote API
  since it is rendered client-side and cannot be scraped from the HTML
- stock-info.ts: throw InvalidParameterError for unsupported types

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 00:07:48 +08:00
Tony aa46e600e1 feat(route): add pawchive (#22340) 2026-06-26 19:48:11 +08:00
Tony c70d087a9a feat(route): nppa (#22335) 2026-06-25 01:34:49 +08:00
Tony 6355b9b597 feat(route): cefco (#22333) 2026-06-24 09:03:51 +08:00
Tony b1ac83372c feat(route): add zfcg (#22320) 2026-06-22 14:10:26 +08:00
DIYgod 00c2fe9b26 test(route/weibo): keep utils test out of routes tree 2026-06-22 11:26:04 +08:00
DIYgod 452558d096 fix(route/weibo): share visitor cookie fetches 2026-06-22 10:44:13 +08:00
Tony 9807609a4d refactor: use cache utils directly (#22316) 2026-06-20 23:36:02 +08:00
github-actions[bot] b24e8736b5 style: auto format 2026-06-20 15:12:58 +00:00
dependabot[bot]andTony 417ab04f06 chore(deps-dev): bump eslint-plugin-unicorn from 66.0.0 to 68.0.0 (#22310)
* chore(deps-dev): bump eslint-plugin-unicorn from 66.0.0 to 68.0.0

Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 66.0.0 to 68.0.0.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v66.0.0...v68.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-unicorn
  dependency-version: 68.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* style: fix no-useless-coercion

* style: fix prefer-boolean-return

* style: fix no-useless-logical-operand

* style: fix prefer-single-replace

* style: fix consistent-conditional-object-spread

* style: fix no-useless-else

* style: fix prefer-unicode-code-point-escapes

* style: fix operator-assignment

* style: fix prefer-continue

* style: fix prefer-math-constants

* style: fix prefer-hoisting-branch-code

* style: fix prefer-array-slice

* style: fix consistent-class-member-order

* style: fix no-return-array-push

* style: fix prefer-promise-with-resolvers

* style: fix no-array-concat-in-loop

* style: fix no-loop-iterable-mutation

* style: fix no-invalid-argument-count

* style: fix no-duplicate-if-branches

* style: fix prefer-else-if

* style: fix no-unreadable-for-of-expression

* style: fix logical-assignment-operators

* style: fix default-export-style

* style: revert false positve in prefer-type-literal-last in #22274

* style: fix arrow-body-style

* style: add v68 recommended preset

* style: refactor GraphQL queries to use template literals for better readability

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tony <TonyRL@users.noreply.github.com>
2026-06-20 23:11:27 +08:00
Tony 2fb207b58b fix(route/bluestack): proper cache saving 2026-06-18 06:45:57 +08:00
Tony 140734a680 fix(route/youtube): filter deleted channel
fix #14805
2026-06-18 05:36:28 +08:00
Tony b70b4b83b2 refactor: remove aes-js 2026-06-17 01:04:54 +08:00
github-actions[bot] ce4ffa75b0 style: auto format 2026-06-16 12:14:09 +00:00
dependabot[bot] f4a49d429e chore(deps-dev): bump the oxc group across 1 directory with 4 updates (#22282)
* chore(deps-dev): bump the oxc group across 1 directory with 4 updates

Bumps the oxc group with 4 updates in the / directory: [@oxlint/plugins](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugins), [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt), [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) and [oxlint-plugin-eslint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint-plugin-eslint).


Updates `@oxlint/plugins` from 1.69.0 to 1.70.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.70.0/npm/oxlint-plugins)

Updates `oxfmt` from 0.54.0 to 0.55.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.55.0/npm/oxfmt)

Updates `oxlint` from 1.69.0 to 1.70.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.70.0/npm/oxlint)

Updates `oxlint-plugin-eslint` from 1.69.0 to 1.70.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint-plugin-eslint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/apps_v1.70.0/npm/oxlint-plugin-eslint)

---
updated-dependencies:
- dependency-name: "@oxlint/plugins"
  dependency-version: 1.70.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: oxc
- dependency-name: oxfmt
  dependency-version: 0.55.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: oxc
- dependency-name: oxlint
  dependency-version: 1.70.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: oxc
- dependency-name: oxlint-plugin-eslint
  dependency-version: 1.70.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: oxc
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: update oxlint-plugin-eslint js plugin name

https://github.com/oxc-project/oxc/pull/23495
https://github.com/oxc-project/oxc/pull/23335

* chore: use native no-array-fill-with-reference-type, prefer-export-from, prefer-single-call

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-16 20:12:39 +08:00
Tony ff27ed8ab6 refactor: remove dead code 2026-06-16 19:10:47 +08:00
github-actions[bot] 9f37d05ab6 style: auto format 2026-06-16 06:45:07 +00:00
dependabot[bot]andTony 873618e99d chore(deps-dev): bump eslint-plugin-unicorn from 65.0.1 to 66.0.0 (#22274)
* chore(deps-dev): bump eslint-plugin-unicorn from 65.0.1 to 66.0.0

Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 65.0.1 to 66.0.0.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v65.0.1...v66.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-unicorn
  dependency-version: 66.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* style: fix unicorn-js/prefer-url-href

* style: oxlint disable

* style: fix unicorn-js/no-useless-else

* style: no-unsafe-string-replacement

* style: fix no-duplicate-loops

* style: fix prefer-number-is-safe-integer

* style: fix prefer-single-array-predicate

* style: fix no-object-methods-with-collections

* style: fix no-useless-boolean-cast

* style: fix no-useless-template-literals

* style: fix no-negated-array-predicate

* style: fix prefer-direct-iteration

* style: fix consistent-optional-chaining

* style: fix prefer-simple-sort-comparator

* style: fix prefer-global-number-constants

* style: fix prefer-type-literal-last

* style: fix require-array-sort-compare.

* style: fix prefer-early-return

* style: fix prefer-short-arrow-method

* style: fix prefer-array-from-map

* style: fix prefer-scoped-selector

* style: fix no-global-object-property-assignment

* style: fix no-unnecessary-global-this

* style: fix no-unreadable-object-destructuring

* style: fix no-invalid-argument-count

* style: fix prefer-smaller-scope

* style: fix prefer-iterator-to-array.

* style: fix prefer-object-iterable-methods

* style: fix typo

* style: fix max-nested-calls

* style: fix no-incorrect-template-string-interpolation

* style: fix no-break-in-nested-loop

* style: fix prefer-await

* style: fix no-computed-property-existence-check

* style: fix prefer-number-coercion

* style: fix no-empty-file

* style: update eslint unicorn v66 recommended preset

* style: add unicorn/prefer-spread to oxlint-disable comments

* style: fix no-array-reduce

* style: delete github/no-then as it's covered by unicorn/prefer-await

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tony <TonyRL@users.noreply.github.com>
2026-06-16 14:43:42 +08:00
github-actions[bot] 4d2e5fe799 style: auto format 2026-06-16 04:08:27 +00:00
Jagger.H b10a33b191 fix(route): repair u3c3 search and drop sticky promo rows (#22268)
* fix(route): repair u3c3 search and drop sticky promo rows

The handler destructured `keywoard` (typo for `keyword`), so the search
branch never ran and every query fell through to the homepage listing.
u3c3 has also added an anti-scrape token (`search2=<token>`, rotated and
embedded in the homepage `search21()` JS) — `?search=<kw>` alone silently
returns the homepage, so scrape the token live with a graceful fallback.

Also skip the sticky promo rows (category-nav and external-ad rows, e.g.
the "國產原创" entries) shown on every page including search; real torrent
rows always link to /view.

* refactor(route): use filter+map instead of flatMap in u3c3

Address review feedback: the flatMap returning []/[obj] was just a
filter+map in disguise. Skip non-/view rows up front, then map.
2026-06-16 12:07:12 +08:00
Tony adbe1b59bb docs: fix example namespace 2026-06-15 04:27:54 +08:00
Tony 0f8f12a891 docs: fix table 2026-06-15 03:09:40 +08:00
Tony 3f9eb757b5 fix(route): update route path syntax 2026-06-15 00:53:33 +08:00
Tony a1946363f5 fix: correct GUID generation for routes 2026-06-13 03:11:03 +08:00
Jiamin c453c3323f fix: modify list for now/future to get the right data (#22256) 2026-06-12 22:48:42 +08:00
JiaminandBian Jiamin d3086acfe0 feat(route): add Shan Dong Museum exhibition and news route (#22187)
* feat(route): add Shan Dong Museum exhibition and news route

* fix: replaceAll to replace

* fix: replace for fullDurationDate

* fix: change xmlmode to xml

* fix: oxlint warning

---------

Co-authored-by: Bian Jiamin <jiamin@BiandeMac-mini.local>
2026-06-12 12:20:38 +08:00
cdf95e67fe feat(route): add Hebei Museum Exhibition route (#22185)
* WIP: transfer

* feat(route): add Hebei Museum Exhibition route

* fix: Apply suggestions from code review

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

* fix: oxlint warning

---------

Co-authored-by: Bian Jiamin <jiamin@BiandeMac-mini.local>
2026-06-12 12:09:50 +08:00