Tony
5527d18de9
refactor: remove unnecessary trim/first/last ( #22837 )
...
* refactor: remove unnecessary trim/first/last
* refactor(types): allow null in DataItem.description
* refactor: remove unnecessary fallback
* refactor(types): allow null in Data.description
* refactor: remove unnecessary fallback
* refactor: remove .clone()
* refactor: refine json content text
* fIx: cognition
* fix: more fixes
* fix(route/jiemian): use api
* fix(route/jandan): housekeeping
add back maintainers from #8904
* fix(route/kcna/news): update source and target mappings
* fix(route/jandan): sanitize HTML content in titles
* refactor: remove unnecessary referer
* fix(route/jinse): regex
2026-07-27 22:23:57 +08:00
Serhii Hospodarchuk
abb7a21e28
feat(core): add summary field support for atom and json feed ( #22758 )
...
* fix(core): summary field in json feed
* feat(core): add summary field to atom
* test: update json view test to match the new summary field
2026-07-20 21:31:04 +08:00
TonyRL
0bc92d27e3
feat(index): adaptive theme & icons
2026-07-17 03:58:25 +08:00
Tony
0ab18ff80e
test: refactor tests ( #22677 )
...
* test: refactor tests
* test: run *.worker.ts unit tests inside workerd
2026-07-10 23:26:43 +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
DIYgod
4568a6a6ab
feat: add promotion
2026-03-17 15:59:10 +08:00
Yufan You
fb07a7f2e5
fix: add summary field in JSON output format ( #20778 )
...
* fix: add summary field in JSON output format
This fixes that the summary/description was not included in the feed.
As a side-note, we cannot remove the content_html field even if only the
summary/description is present.
> content_html and content_text are each optional strings — but one or
> both must be present.
* test: add JSON view tests
---------
2025-12-30 21:57:51 +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
0db4c9cef9
docs: update license
2025-12-28 18:39:22 +08:00
github-actions[bot]
a28890a135
style: auto format
2025-11-27 02:55:46 +00: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
DIYgod
5d9e0f557e
feat: add video preview url in attachments for bilibili and youtube
2025-01-21 18:32:09 +08:00
Tony
103ef92a78
fix(view/index): update logo image path to relative ( #17803 )
2024-12-05 03:30:07 +08:00
pseudoyu
bcc2a05e0b
feat(api/rss3): change platform to RSSHub
2024-11-28 17:13:56 +08:00
pseudoyu
d042b63ca8
fix(api): rss3 network format
2024-11-26 23:20:38 +08:00
Tsuyumi
40bab08529
feat: better error message display ( #17477 )
2024-11-07 01:55:12 +08:00
github-actions[bot]
859247d138
style: auto format
2024-09-18 22:27:13 +00:00
ixff
84209f7c15
fix: 部分Telegram频道的文章在inoreader中显示一个巨大的logo ( #16799 )
2024-09-19 06:25:07 +08:00
Songkeys
c183692522
docs: rewording instance homepage ( #16720 )
2024-09-12 16:34:43 +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
Innei
4591929760
fix: error page layout ( #16310 )
...
Signed-off-by: Innei <i@innei.in>
2024-07-31 11:38:27 +00:00
DIYgod
59e19001e6
feat: update descriptions
2024-07-23 16:30:41 +08:00
ei-sugimoto
ed3b079575
test: add test for rss3 ( #15927 )
...
* test: add test for rss3
* modify: timestamp pass eslint
2024-06-20 01:18:16 +08:00
DIYgod
c64e6e34cf
feat: render item image as rss enclosure
2024-06-05 19:10:34 +08:00
Wei Zhu
f5dbf697ee
fix(template): X (twitter) icon ( #15750 )
2024-05-29 02:55:38 +08:00
DIYgod
78f3cb3f75
feat: twitter.com -> x.com
2024-05-18 23:57:25 +08:00
DIYgod
7e87a4823e
feat: add layout and use sn pro font
2024-04-26 08:59:44 +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
Bin Wang
54cc62baa4
fix(core): add icon and logo back to atom feed ( #15132 )
...
icon and logo field are missing from atom feed after it's migrated to
tsx template. This PR adds them back.
2024-04-06 06:30:36 +00:00
Bin Wang
90e2e0263d
fix(core): fix interaction fields in atom feeds ( #15121 )
...
In #9355 , interaction fields are introduced to atom feeds to give RSS
readers more information. But it has been removed after the code is
refactored to use tsx templates. This PR adds them back.
2024-04-05 22:56:26 +08:00
github-actions[bot]
ad93d75ce7
style: auto format
2024-04-04 12:30:18 +00:00
wudifeixue
c086c62acd
fix(core): fix documentation link path and error message links ( #15023 )
...
* fix: all broken sponsor links
* fix: all broken deployment links
* fix: other broken links
2024-03-30 08:12:12 +00:00
Tony
847fdaba1d
chore: fix route test github actions ( #14923 )
...
* chore: fix route test actions
* chore: bump unified
2024-03-23 08:19:05 +08:00
DIYgod
40350abcbb
feat: use jsx ( #14863 )
...
* feat: render rss using jsx
* fix: error page response header
* feat: render atom using jsx
* feat: export art
* feat: use jsxRenderer
* chore: upgrade hono
2024-03-21 00:28:11 +08:00
DIYgod
94cf0742af
feat: new error page
2024-03-06 02:33:28 +08:00
Tony
6f8a898363
fix(index): wrong error routes count
2024-03-05 15:09:38 +08:00
Tony
d17ebe81d0
feat(index): add back hot stats ( #14664 )
2024-03-05 13:55:39 +08:00
DIYgod
1811dc7043
docs: add twitter
2024-03-04 04:25:52 +08:00
DIYgod
3bfdf9427c
feat: new home page
2024-03-03 17:36:08 +08:00
DIYgod
ba1bdf9bdc
feat: use hono context json and text
2024-03-01 20:50:17 +08:00
DIYgod
829b5f0e52
feat: assets routes
2024-02-22 01:38:16 +08:00
DIYgod
174752fef5
refactor: format
2024-01-29 23:28:17 +08:00
DIYgod
4591116733
fix: middleware errors
2024-01-21 18:35:11 +08:00
DIYgod
e7e3f689bd
fix: error handler and debug info
2024-01-21 15:41:42 +08:00
DIYgod
8e0154552c
feat: welcome page
2024-01-21 15:18:42 +08:00
DIYgod
847724cad1
feat: work with hono and typescript
2024-01-21 11:55:18 +08:00
Tony
6d901cb7dc
style(eslint): add eslint-unicorn ( #14257 )
...
* style: add eslint-unicorn
* style: fix unicorn/no-useless-spread
* style: fix unicorn/no-useless-promise-resolve-reject
* style: fix unicorn/no-for-loop
* fix: codeql bad HTML filtering regexp
* fix: codeql incomplete replace
* fix: unicorn/no-abusive-eslint-disable
* style: fix unicorn/no-new-array
* style: fix unicorn/no-typeof-undefined
* style: fix unicorn/no-zero-fractions
* style: fix unicorn/no-empty-file
* style: fix unicorn/prefer-date-now
* revert: auto fix unicorn/prefer-switch on lib/v2/kuaidi100/utils.js
* style: fix unicorn/prefer-array-find
* style: fix unicorn/prefer-array-flat
* style: fix unicorn/prefer-array-flat-map
* style: fix unicorn/prefer-at
* style: fix unicorn/prefer-string-starts-ends-with
* style: fix unicorn/prefer-includes
* fix: codeql URL substring sanitization
* style: fix unicorn/prefer-optional-catch-binding
* style: fix unicorn/catch-error-name
* style: fix unicorn/escape-case
* style: fix unicorn/prefer-native-coercion-functions
* style: fix unicorn/prefer-regexp-test
* style: fix unicorn/require-array-join-separator
* style: fix unicorn/prefer-math-trunc
* style: fix unicorn/prefer-negative-index
* style: fix unicorn/prefer-dom-node-dataset
* style: fix unicorn/prefer-dom-node-text-content
* style: fix unicorn/prefer-query-selector
* style: fix unicorn/no-array-for-each
* style: fix unicorn/no-negated-condition
* style: fix unicorn/prefer-add-event-listener
* style: fix unicorn/import-style
* style: fix prefer-regex-literals
* style: disable unicorn/no-useless-switch-case
* style: disable unicorn/text-encoding-identifier-case
* style: fix unicorn/prefer-set-has
* style: fix unicorn/prefer-spread
* revert: auto fix on lib/routes/universities/ynnu/edu/base64.js
* style: fix unicorn/no-useless-undefined
* style: fix unicorn/no-array-push-push
* style: fix unicorn/no-useless-undefined again
* style: fix unicorn/no-lonely-if
* style: fix unicorn/prefer-reflect-apply
* style: fix unicorn/switch-case-braces
* style: fix unicorn/prefer-switch
* style: fix unicorn/prefer-array-some
* fix: deepscan UNUSED_VAR_ASSIGN
* style: fix unicorn/prefer-ternary
* fix: follow-up of unicorn/prefer-ternary
* revert: auto fix of unicorn/prefer-string-slice for substring()
* style: disable unicorn/prefer-string-slice
fix: auto fix slice over deprecated substr
* style: fix unicorn/throw-new-error
* style: fix unicorn/filename-case
* test: fix dateParser renaming
* style: fix unicorn/better-regex
* style: fix unicorn/prefer-string-replace-all
* fix(deps): add sanitize-html
* style: fix no-prototype-builtins
* style: fix unicorn/consistent-destructuring
* style: fix unicorn/consistent-function-scoping
* style: fix unicorn/prefer-regexp-test
* style: fix unicorn/prefer-logical-operator-over-ternary
* style: fix unicorn/no-array-callback-reference
* style: add prefer-object-has-own
* style: warn unicorn/no-empty-file
* style: fix unicorn/prefer-number-properties
* style: fix no-useless-undefined again
* style: fix unicorn/numeric-separators-style
* style: disable unicorn/no-array-callback-reference
false postive with cheerio
2024-01-18 20:43:40 +08:00
DIYgod
4cde3afc68
feat: set default itunes_explicit to false, close #14093
2023-12-27 14:24:15 +08:00
Henry Wang
bea92ae289
fix: incorrect field name in UMS ( #14073 )
2023-12-18 22:18:22 +08:00
Tony
cc27156311
fix: logo loading lazy
2023-12-05 01:41:08 +08:00