Cthulhux
854a78a7d1
feat(locale): update German translation
2025-09-14 10:51:32 -07:00
Frédéric Guillot
5e607be86a
refactor(config): rewrite config parser
...
This PR refactors the configuration parser, replacing the old parser implementation with a new, more structured approach that includes validation and improved organization.
Key changes:
- Complete rewrite of the configuration parser using a map-based structure with built-in validation
- Addition of comprehensive validator functions for configuration values
- Renamed numerous configuration getter methods for better consistency
2025-09-14 10:51:04 -07:00
Matthaiks
502e7108dd
feat(locale): update Polish translation
2025-09-12 18:00:58 -07:00
Julien Voisin
0b93d8abcc
refactor(subscription): combine findSubscriptionsFromYouTubeChannelPage
and findSubscriptionsFromYouTubePlaylistPage
functions
2025-09-12 17:59:41 -07:00
Julien Voisin
93a8629910
refactor(js): simplify modal_handler.js
2025-09-12 17:24:51 -07:00
Frédéric Guillot
b1742168e1
fix(timezone): make sure legacy time zones are no longer used
...
Debian Trixie has removed several time zones. This change makes sure only the current IANA time zones are in use.
2025-09-12 16:20:27 -07:00
Steven vanZyl
4eff9129ab
feat(ui): add "back to top" link
2025-09-12 13:41:39 -07:00
Cthulhux
eb22d90b56
feat(locale): update German translation
2025-09-10 18:26:23 -07:00
Julien Voisin
8f2dd02f3f
refactor(subscription): combine all JSON feed mime types in one query
...
- Look for JSON feeds in one pass instead of two
- Move conditions around to reduce the amount of comparisons
- Edit an existing test to exercise this commit's changes
2025-09-10 16:50:40 -07:00
Matthaiks
da8d4d86c3
feat(locale): update Polish translation
2025-09-10 16:28:21 -07:00
Frédéric Guillot
7ada5d54be
fix(icon): implement better handling of relative icon URLs within a subfolder
2025-09-09 20:18:50 -07:00
Kevin Sicong Jiang
8129500296
feat(integration): add support for Wallabag tags
2025-09-09 17:47:51 -07:00
dependabot[bot]
f1143151c5
build(deps): bump golang.org/x/net from 0.43.0 to 0.44.0
...
Bumps [golang.org/x/net](https://github.com/golang/net ) from 0.43.0 to 0.44.0.
- [Commits](https://github.com/golang/net/compare/v0.43.0...v0.44.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/net
dependency-version: 0.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-09 16:16:09 -07:00
dependabot[bot]
baf8e40152
build(deps): bump golang.org/x/image from 0.30.0 to 0.31.0
...
Bumps [golang.org/x/image](https://github.com/golang/image ) from 0.30.0 to 0.31.0.
- [Commits](https://github.com/golang/image/compare/v0.30.0...v0.31.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/image
dependency-version: 0.31.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 15:59:40 -07:00
dependabot[bot]
a98374b81f
build(deps): bump golang.org/x/crypto from 0.41.0 to 0.42.0
...
Bumps [golang.org/x/crypto](https://github.com/golang/crypto ) from 0.41.0 to 0.42.0.
- [Commits](https://github.com/golang/crypto/compare/v0.41.0...v0.42.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.42.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 15:50:16 -07:00
dependabot[bot]
77e0b07f9f
build(deps): bump golang.org/x/term from 0.34.0 to 0.35.0
...
Bumps [golang.org/x/term](https://github.com/golang/term ) from 0.34.0 to 0.35.0.
- [Commits](https://github.com/golang/term/compare/v0.34.0...v0.35.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/term
dependency-version: 0.35.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 15:42:29 -07:00
Julien Voisin
645800ce3c
refactor(js): remove isTouchSupported()
static function
2025-09-08 15:41:50 -07:00
dependabot[bot]
a60a153003
build(deps): bump github.com/tdewolff/minify/v2 from 2.24.0 to 2.24.3
...
Bumps [github.com/tdewolff/minify/v2](https://github.com/tdewolff/minify ) from 2.24.0 to 2.24.3.
- [Release notes](https://github.com/tdewolff/minify/releases )
- [Commits](https://github.com/tdewolff/minify/compare/v2.24.0...v2.24.3 )
---
updated-dependencies:
- dependency-name: github.com/tdewolff/minify/v2
dependency-version: 2.24.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 15:36:47 -07:00
dependabot[bot]
7d40e2993b
build(deps): bump golang.org/x/oauth2 from 0.30.0 to 0.31.0
...
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2 ) from 0.30.0 to 0.31.0.
- [Commits](https://github.com/golang/oauth2/compare/v0.30.0...v0.31.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
dependency-version: 0.31.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 15:36:03 -07:00
dependabot[bot]
91a625c559
build(deps): bump actions/setup-python from 5 to 6
...
Bumps [actions/setup-python](https://github.com/actions/setup-python ) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases )
- [Commits](https://github.com/actions/setup-python/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: actions/setup-python
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 15:35:34 -07:00
dependabot[bot]
dbb3855901
build(deps): bump actions/setup-go from 5 to 6
...
Bumps [actions/setup-go](https://github.com/actions/setup-go ) from 5 to 6.
- [Release notes](https://github.com/actions/setup-go/releases )
- [Commits](https://github.com/actions/setup-go/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: actions/setup-go
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 15:35:06 -07:00
Julien Voisin
3051acf369
perf(xml): eliminate bound checks in filterValidXMLChars
...
Optimizes the filterValidXMLChars function by changing the loop variable type from int to uint to eliminate bound checks during compilation, resulting in a ~4% performance improvement.
- Changes loop variable i from int to uint to remove compiler-generated bound checks
- Adjusts type conversions accordingly to maintain correctness
```
goos: linux
goarch: arm64
pkg: miniflux.app/v2/internal/reader/parser
│ old.txt │ new.txt │
│ sec/op │ sec/op vs base │
Parse-8 40.91m ± 3% 39.30m ± 2% -3.94% (p=0.000 n=50)
```
2025-09-08 15:33:55 -07:00
Frédéric Guillot
5f38054965
fix(ui): incorrect force refresh interval unit used in messages
...
Regression introduced in commit c6536e8
2025-09-08 12:12:11 -07:00
Julien Voisin
fa361ab1ce
perf: convert some slices to array
2025-09-08 12:11:18 -07:00
jvoisin
afe80e6bae
refactor(proxy): remove usage of fmt
...
There is no need to use the heavy machinery (fmt) when we can simply use
string concatenation instead.
2025-09-08 12:00:59 -07:00
Julien Voisin
f2976bff5d
refactor: remove model.UserSessions
struct
2025-09-08 11:56:43 -07:00
Julien Voisin
84078c7c20
refactor: avoid unnecessary usage of Printf
2025-09-08 11:54:16 -07:00
dependabot[bot]
d70817e441
build(deps): bump github.com/prometheus/client_golang
...
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang ) from 1.23.0 to 1.23.2.
- [Release notes](https://github.com/prometheus/client_golang/releases )
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prometheus/client_golang/compare/v1.23.0...v1.23.2 )
---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
dependency-version: 1.23.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 11:42:23 -07:00
Frédéric Guillot
e8f5c2446c
fix(config): FORCE_REFRESH_INTERVAL duration should be in minutes
...
Regression introduced in commit c6536e8
2025-08-25 15:46:10 -07:00
Matthaiks
737f25f441
feat(locale): update Polish translation
2025-08-24 13:04:25 -07:00
Frédéric Guillot
f83d66769d
fix(api): do not return removed entries
...
Since Miniflux 2.2.12, the content of removed entries is cleared.
2025-08-23 15:17:37 -07:00
jvoisin
af149e46df
Revert "refactor(storage): simplify feed.go
by using min()
, inline errors, and use idiomatic conditions"
...
This reverts commit b1cbaae71c
.
2025-08-22 12:51:54 -07:00
jvoisin
4f252b33c9
refactor(template): rename noescape to safeHTML
...
This makes the code more consistent, since all the other escaping escape
hatches have a `safe` prefix.
2025-08-22 12:51:21 -07:00
jvoisin
da9c3a4032
feat(js): tighten the trusted types policy
...
- Implement a better/simpler polyfill for web browsers that don't supported
trusted types yet
- Use two separate policies: one to create HTML, another to create/use script
urls
- Instead of having the policy live in the top-level scope, they're now
declared at the lowest possible scope, right before they're used, making them
inaccessible outside of it. This puts their usage completely out of reach of
an attacker unable to gain some control outside of those two (small) scopes,
and thus removes the need to tighten the policies.
- Remove the now-unused tt.js file
This has been tested on Firefox (doesn't support trusted types) and on Chromium
(does support trusted types).
2025-08-21 19:41:45 -07:00
Benedikt Hopmann
8e1d0bb693
fix(locale): Update de_DE
translation to match changes from 'bookmark' to 'starred'
...
Updated strings to match changes from 'bookmark' to 'starred'. Also renamed some strings from 'Einträge' to 'Artikel' for more consistency.
2025-08-21 16:59:54 -07:00
Steven vanZyl
60cd7ffe88
refactor: Replace "Bookmarks" with "Starred"
...
Replaces usage of the word "bookmark" with "star"/"starred" in order to be more
consistent with the UI and database models, and to reduce confusion with
"bookmarklet" and integration features.
This is in preparation of future work on read-it-later features.
Which are also not called "bookmarks" to prevent any further confusion.
https://github.com/orgs/miniflux/discussions/3719
Related-to: https://github.com/miniflux/v2/pull/2219
2025-08-20 20:49:45 -07:00
Peter Sanchez
4d656d2739
feat(integration): add LinkTaco service for saving articles
2025-08-20 20:35:33 -07:00
gudvinr
983291c78b
refactor(cli): use time.Duration for cleanup tasks
2025-08-20 19:45:24 -07:00
gudvinr
7060ecc163
refactor(cli): use time.Duration for scheduler frequency
...
Polling frequency is undocumented so it's not exacly clear what units were.
2025-08-20 19:45:24 -07:00
gudvinr
4af12a4129
refactor(metric): use time.Duration for refresh duration
2025-08-20 19:45:24 -07:00
gudvinr
c6536e8d90
refactor(http): use time.Duration for refresh interval
...
It's not clear which units of time used for refresh interval.
Convert to time.Duration for clarity.
2025-08-20 19:45:24 -07:00
gudvinr
30453ad7ec
refactor(fetcher): use time.Duration for client timeout values
...
All functions use time.Duration, so instead of converting everywhere, do it once.
2025-08-20 19:45:24 -07:00
gudvinr
71af68becd
refactor(server): use time.Duration for timeout values
...
Instead of converting at the very last moment,
it's simpler and more readable to use time.Duration ASAP.
2025-08-20 19:45:24 -07:00
gudvinr
ed3bf59356
refactor(reader): use time.Duration instead of minutes count
...
In general, duration is used as time unit representation.
At some places when int is returned, there's no documentation which unit is used.
So just convert to time.Duration ASAP.
2025-08-20 19:45:24 -07:00
gudvinr
03021af53c
feat(config): time interval parser
...
Simplifies handling of time intervals in config values.
2025-08-20 19:45:24 -07:00
gudvinr
83254a1f26
refactor(model): replace Sprintf("%d") in tests
...
This is just Itoa but weird.
2025-08-20 19:45:24 -07:00
Julien Voisin
3acb888309
refactor(response): simplify switch-case and remove unnecessary defer
...
- b.body can never be of type error, so let's remove it from the switch-case
construct.
- there is no need to use defer when the only return statement is two lines
after.
2025-08-20 19:31:28 -07:00
Julien Voisin
7c29166ef9
refactor(ui): move inline SVG to sprite.svg
...
There is no need to have an inline svg when we can have it in the sprite.svg
file.
2025-08-20 19:26:47 -07:00
Julien Voisin
71105bec56
refactor(template): improve consistency in layout.html
(meta tags, whitespace, comments)
...
- Group the `<meta>` tags together
- Trim some superfluous whitespace
- Remove an obvious and thus useless comment
2025-08-20 19:24:13 -07:00
Julien Voisin
2a372674a2
refactor(icon): avoid calling AbsoluteURL
twice for the feed icon URL
...
The url of a feed's icon is always absolute.
2025-08-20 19:01:59 -07:00