Tony
7c229947f7
perf: lazyload sentry ( #22249 )
2026-06-12 12:01:11 +08:00
dependabot[bot]
07834413f5
chore(deps-dev): bump eslint-plugin-unicorn from 64.0.0 to 65.0.0 ( #22219 )
...
* chore(deps-dev): bump eslint-plugin-unicorn from 64.0.0 to 65.0.0
Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn ) from 64.0.0 to 65.0.0.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases )
- [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v64.0.0...v65.0.0 )
---
updated-dependencies:
- dependency-name: eslint-plugin-unicorn
dependency-version: 65.0.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix: no-array-from-fill
* fix: unicorn-js/no-duplicate-set-values
* fix: no-this-outside-of-class
* fix: no-unnecessary-nested-ternary
* fix: prefer-array-last-methods
* fix: prefer-queue-microtask
* fix: prefer-split-limit
* fix: no-array-from-fill
* fix: no-unused-array-method-return
* fix: prefer-single-call
* fix: prefer-includes-over-repeated-comparisons
* fix: consistent-compound-words
* fix: prefer-includes-over-repeated-comparisons
* chore: add eslint-plugin-unicorn v65 recommended preset
* fix: correct duration parsing logic in parseDuration function
* fix: update oxlint-disable
---------
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-09 00:08:15 +08:00
Tony
75d43dd086
chore: add eslint-plugin-regexp ( #22189 )
...
* chore: add eslint-plugin-regexp
* chore: autofix
* chore: fix no-useless-flag
* chore: fix optimal-lookaround-quantifier
* chore: fix no-lazy-ends
* chore: fix no-contradiction-with-assertion
* chore: fix no-useless-assertions
* chore: fix no-useless-quantifier
* chore: fix remaining regexp issues
* fix: regex for WFU news link validation
2026-06-05 20:04:39 +08:00
Tony
a98de2effd
refactor: use arrow function
2026-05-11 02:16:04 +08:00
github-actions[bot]
ebfe021b50
style: auto format
2026-04-14 15:15:05 +00:00
Tony
1fe4e8a4ae
feat(core): add honeybadger support ( #21574 )
...
* feat(core): add honeybadger support
* feat(honeybadger): configure Honeybadger to disable uncaught error tracking
* feat(tests): add info logger mock to app-bootstrap tests
* test: fix mock value
* test: mock honeybadger as well
2026-04-01 01:10:12 +08:00
Tony
8043a5a819
style: update oxlint to use simple-import-sort
2026-03-04 03:13:57 +08:00
Tony
1acb805799
style: migrate eslint to oxlint ( #21224 )
...
* chore: add oxlint support
* style: apply autofix
* style: apply autofix for toSorted
* style: use alternative api for nsfw-flag jsPlugins
* fix: git diff
* fix: codeql
* test: console.log
* style: update lint workflow to use Checkstyle SARIF converter
* style: remove debug log from extractDateFromURL function
* chore: use oxlint-json-to-sarif
* test: console.log
* test: remove console.log
* test: update cookie data expectation in getCookies test
https://github.com/mccutchen/go-httpbin/pull/235 breaks this
* style: type-aware linting
* style: enable type-aware linting for oxlint
2026-02-28 21:23:11 +08:00
Tony
da15d11d1d
chore: replace postlight/parser with jocmp/mercury-parser ( #21152 )
2026-02-15 01:27:25 +08:00
DIYgod
81ff849337
feat(tests): add comprehensive unit tests for various utility functions and views ( #20779 )
...
* feat(tests): add comprehensive unit tests for various utility functions and views
- Implement tests for cache utility to ensure proper behavior with no cache and TTL keys.
- Add tests for common utilities including string manipulation and path handling.
- Introduce tests for directory import functionality to validate file imports and pattern matching.
- Create tests for git hash retrieval to handle fallback scenarios.
- Develop tests for deprecated got utility to verify response handling and retry logic.
- Enhance got utility tests to include request hooks and search parameter handling.
- Mock header generator tests to validate user agent handling.
- Expand helpers tests to cover current path retrieval and duration parsing.
- Implement tests for ofetch utility to ensure proper proxy handling and logging.
- Add OpenTelemetry metric tests to validate metric serialization.
- Create proxy tests to verify multi-proxy selection and failure handling.
- Introduce request rewriter tests to validate fetch and get wrapper functionality.
- Add timezone utility tests to handle various input types.
- Implement view tests for Atom and RSS rendering to ensure correct output.
- Create index view tests to validate debug information display based on configuration.
* refactor: remove deprecated got implementation and associated tests
* test: expand coverage for api, middleware, and utils
2025-12-29 17:34:48 +08:00
DIYgod
cf4e772de8
refactor: replace art template with jsx ( #20777 )
...
* refactor: replace art template with jsx
* fix: tsx files
* fix: renderToString import
* fix: hono html raw import
* feat: remove art
2025-12-29 12:27:32 +08:00
Tony
14757b8d5e
test(header): add wait after each test to prevent race conditions
2025-12-20 23:54:41 +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
github-actions[bot]
a28890a135
style: auto format
2025-11-27 02:55:46 +00:00
Tony
e6cef5ad4c
fix(middleware): ensure referrerpolicy is set only if not already defined ( #20394 )
2025-10-30 04:40:05 +08:00
Stephen Zhou
a0c5b08936
fix(route/bilibili): only get subtitle for jsonfeed ( #20377 )
...
* fix(route/bilibili): only get subtitle for jsonfeed
* Update lib/middleware/cache.ts
Co-authored-by: Tony <TonyRL@users.noreply.github.com>
* Update lib/middleware/cache.ts
Co-authored-by: Tony <TonyRL@users.noreply.github.com>
---------
2025-10-29 15:32:20 +08:00
Aleksandr Bogdanov
9d2fc7a676
feat(route/telegram): Fix tglib ( #18268 )
...
* refactor telegram/tglib for Hono
* linter fix
* add CSP for channel media
* don't cut feed item title prematurely
* implement shared Geo position attachment
* don't start TG client unless routes are requested
* resolve typescript; fix private chats and groups; fix stickers and no-thumbnail document attachments; fix media-by-link attachments
* fix empty text and message grouping; add GeoLive media type; add Poll/Quiz media type
* add script-src none to CSP
Co-authored-by: Tony <TonyRL@users.noreply.github.com>
* add unwrap media for stories support
* fix fwdFrom access
* remove unnecessary core patches, add media route docs
* remove tglib fallback, as it's already preferred if configured
* implement stories endpoint
* improve text representation of channel content
* serve channel media under /channel/entityName/msgId
* improve stories endpoint
* restore original post links to avoid feed duplicates on upgrade
* appease eslint
* fix lint
* improve stories config route definition
* fix poll handling
* lint fix
* format poll results nicely
* fix node compat
* remove duplicate ignore
---------
2025-09-16 21:41:05 +08:00
dependabot[bot]
802cbf95d2
chore(deps-dev): bump eslint-plugin-unicorn from 60.0.0 to 61.0.2 ( #19998 )
...
* chore(deps-dev): bump eslint-plugin-unicorn from 60.0.0 to 61.0.1
Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn ) from 60.0.0 to 61.0.1.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases )
- [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v60.0.0...v61.0.1 )
---
updated-dependencies:
- dependency-name: eslint-plugin-unicorn
dependency-version: 61.0.1
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* refactor: replace `replace(/regex/g)` with replaceAll
* refactor: replace sort() with toSorted() for immutability in various routes and utilities
* refactor: fix unicorn/prefer-array-find
* refactor: fix unicorn/prefer-at
* refactor: add unicorn/no-array-sort rule to ESLint configuration
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 23:03:48 +08:00
dependabot[bot]
72466f0ea7
chore(deps): bump hono from 4.7.11 to 4.8.0 ( #19404 )
2025-06-19 11:28:16 +08:00
DIYgod
8520db3e13
feat: api route ( #19209 )
...
* feat: api route
* test: api route
2025-05-27 13:21:27 +08:00
DIYgod
68aed429c5
feat(core): filter out null route
2025-05-14 20:25:45 +08:00
DIYgod
d2743c9d4f
feat(core): add routePath in response header
2025-05-14 17:21:22 +08:00
Tony
8faec7fbfd
refactor: fix Element type import
2025-05-07 04:18:23 +08:00
Tony
03969f3867
refactor: fix lint issue ( #18963 )
...
* fix: unicorn/no-empty-file
* fix: unicorn/prefer-node-protocol
* fix: unicorn/prefer-number-properties
* fix: unicorn/consistent-destructuring
* fix: unicorn/no-array-callback-reference
* fix: unicorn/new-for-builtins
* fix: set checkNaN to false in unicorn/prefer-number-properties
* fix: unicorn/prefer-string-slice
* fix: update eslint ignore
2025-04-29 03:00:16 +08:00
Tony
d78a47ec7b
fix(core/cache): update cache key generation to include query limit ( #17674 )
2024-11-22 01:41:11 +08:00
DIYgod
91d9acc68b
fix: redirection in router handler
2024-11-12 20:14:04 +08:00
Tsuyumi
40bab08529
feat: better error message display ( #17477 )
2024-11-07 01:55:12 +08:00
Tsuyumi
abed9a058c
fix(middleware): use URL pathname to maintain exact user access path for access control ( #17327 )
2024-10-27 23:06:44 +08:00
lzk
7a74a131d5
feat: HOTLINK_TEMPLATE environment variable applied to audio and video link ( #17287 )
...
Co-authored-by: linzhikang <linzhikang@bytedance.com>
2024-10-25 02:01:02 +08:00
Stephen Zhou
a4daf28ca5
fix: catch Invalid Date ( #17081 )
2024-10-10 21:21:35 -07:00
Tony
25d53e8053
chore: fix typo
2024-09-24 23:56:06 +08:00
incubator4
be3ba61788
chore: otel fix and enhancement ( #16754 )
...
* feat(otel): use routePath insteadof path
* feat(otel): add otel bucket boundary env
* chore: move otel to debug block with alphabetical sort
2024-09-15 19:42:21 +08:00
Tony
9d7e1943f0
test: fix tests ( #16697 )
...
* test: fix tests
* revert "fix: fill image from itunes_item_image (#16694 )"
This reverts commit 879772a97f .
* fix: fill image from jsonfeed template
* chore: bump msw to 2.4.3
2024-09-11 01:05:37 +08:00
Stephen Zhou
879772a97f
fix: fill image from itunes_item_image ( #16694 )
2024-09-10 23:24:43 +08:00
CaoMeiYouRen
ed8b868432
feat(middleware): 优化 多媒体处理增加 data.image/item.enclosure_url/item.image… ( #16610 )
...
* feat(middleware): 优化 多媒体处理增加 data.image/item.enclosure_url/item.image/item.itunes_item_image 等字段
* test(middleware): 补充 anti-hotlink 缺失的测试用例
2024-09-05 20:47:53 +08:00
COxDE
2962c6f64f
feat(middleware): process feed title and description using LLM ( #16464 )
...
* feat(middleware): add title translation using LLM
* refactor: combine title and description
* fix: camelCase for variables
* refactor: try to update the test case
---------
2024-08-22 02:15:00 +08:00
DIYgod
59e19001e6
feat: update descriptions
2024-07-23 16:30:41 +08:00
DIYgod
55c6f859a5
fix: 304 response error
2024-07-14 15:37:45 +08:00
Nya Candy
68c7430fbb
feat(core): opentelementry support (update of #14668 ) ( #16087 )
...
* chore: squash commit
* fix: tweak some mentioned issues
---------
Co-authored-by: incubator4 <aries0robin@gmail.com>
2024-07-05 19:22:33 +08:00
DIYgod
d1dd8a53ca
feat: retry requesting control ( #15717 )
...
* feat: retry requesting control
* test: fix error handling test
2024-05-26 21:48:29 +08:00
DIYgod
0839e555bb
feat: bypass cache for non rss routes
2024-05-26 20:46:12 +08:00
TonyRL
3a58d90698
fix(template): remove undefined character and 0 width space
...
fix #8760
2024-05-24 08:12:02 +00:00
Tony
b0b7adf382
fix(template): redis-backed instances always show ttl 1 ( #15536 )
2024-05-10 03:47:21 +08:00
Henry Wang
5c3711cbcc
feat: support .rss3 output type ( #15258 )
...
Co-authored-by: pull[bot] <39814207+pull[bot]@users.noreply.github.com>
2024-04-18 02:10:33 +08:00
Tony
0456ca9541
fix(core): remove unicode control characters in item description ( #15263 )
2024-04-17 02:51:05 +08:00
DIYgod
cef1ed1eb6
refactor: error types
2024-04-07 16:37:54 +08:00
DIYgod
efc2b2f5a4
test: fix parameter test text
2024-04-07 14:06:32 +08:00
Tony
0893debb07
style(eslint): lint tsx ( #15098 )
2024-04-04 20:28:45 +08:00
Rongrong
045eaf664c
fix(core): misc fixes of disabling cache ( #15036 )
...
* fix(core): CACHE_TYPE='' does not disable cache
The documentation of config always states that CACHE_TYPE being empty
will disable the cache.
The regression was introduced in 847724ca . The corresponding test case
was mistakenly "fixed" in 719af907 .
Signed-off-by: Rongrong <i@rong.moe>
* fix(core): false RSS <ttl> when cache unavailable
Some RSS readers may probe <ttl> to determine the minimum interval of
polling. However, it is always set to `config.cache.routeExpire / 60`
even when cache is unavailable. This may not be expected when the cache
is explicitly disabled.
Set it to 1 (minute) under such a circumstance. The minimum <ttl> (when
cache is available) is also limited to 1 to avoid potential misuse.
The Cache-Control header remains untouched as caching can be done by a
reverse proxy.
Signed-off-by: Rongrong <i@rong.moe>
---------
Signed-off-by: Rongrong <i@rong.moe>
2024-04-02 01:21:38 +08:00