Frédéric Guillot
1f7843e313
feat(integration): prioritize feed-level webhook URL when available when saving entries
2025-07-31 19:56:44 -07:00
Julien Voisin
181e1341e1
refactor(locale): introspect the translation files at load time
...
Since Go doesn't support unions, and because the translation format is a bit
wacky with the same field having multiple types, we must resort to
introspection to switch between single-item translation (for singular), and
multi-items ones (for plurals).
Previously, introspection was done at runtime, which is not only slow, but will
also only catch typing errors while trying to use the translations. The current
approach is to use a struct with a different field per possible type, and
implement a custom unmarshaller to dispatch the translations to the right one.
This should marginally reduce the memory consumption since interface-boxing
doesn't happen anymore, speed up the translations matching, and enforce proper
typing earlier. This also allows us to remove a bunch of now-useless tests.
2025-07-31 19:10:14 -07:00
jvoisin
f3052eb8ed
refactor(misc): make use of type constraints where possible
2025-07-31 18:59:55 -07:00
Julien Voisin
078eb39db9
refactor(config): don't check random.Read's return value
...
As stated in the documentation:
> Read calls io.ReadFull on Reader and crashes the program irrecoverably if an
error is returned. The default Reader uses operating system APIs that are
documented to never return an error on all but legacy Linux systems.
2025-07-31 18:03:53 -07:00
dependabot[bot]
6aeb565edc
build(deps): bump github.com/prometheus/client_golang
...
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang ) from 1.22.0 to 1.23.0.
- [Release notes](https://github.com/prometheus/client_golang/releases )
- [Changelog](https://github.com/prometheus/client_golang/blob/v1.23.0/CHANGELOG.md )
- [Commits](https://github.com/prometheus/client_golang/compare/v1.22.0...v1.23.0 )
---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
dependency-version: 1.23.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-31 16:51:21 -07:00
Frédéric Guillot
0c3e251884
refactor(filter): parse and merge filters only once per refresh
2025-07-30 21:34:03 -07:00
Frédéric Guillot
bfd8cb3d22
feat(ui): add icons to main menu
2025-07-30 19:12:50 -07:00
jvoisin
9eea9873b5
feat(rewrite): add a rule to remove useless heading images on phoronix
2025-07-30 18:53:04 -07:00
dependabot[bot]
240ec8bd0a
build(deps): bump github.com/coreos/go-oidc/v3 from 3.14.1 to 3.15.0
...
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc ) from 3.14.1 to 3.15.0.
- [Release notes](https://github.com/coreos/go-oidc/releases )
- [Commits](https://github.com/coreos/go-oidc/compare/v3.14.1...v3.15.0 )
---
updated-dependencies:
- dependency-name: github.com/coreos/go-oidc/v3
dependency-version: 3.15.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 18:05:45 -07:00
Frédéric Guillot
f3ac4dacf6
test(rewrite): add unit tests for addYoutubeVideoFromId
and addInvidiousVideo
functions
2025-07-29 21:51:15 -07:00
Frédéric Guillot
13986e9cc0
docs: remove ChangeLog
file
...
Maintaining a separate ChangeLog file is redundant and error-prone,
as it largely duplicated the Git commit history without adding meaningful context.
Release notes are still available on GitHub Releases and the Miniflux website.
2025-07-26 15:24:00 -07:00
Frédéric Guillot
4d7d554df8
docs: update release notes for version 2.2.11
2025-07-26 13:13:53 -07:00
Frédéric Guillot
66b269e6cd
feat(readability): avoid removing elements with content
class
2025-07-25 19:59:47 -07:00
Frédéric Guillot
54abd0a736
fix(parser): handle feeds with leading whitespace that exceeds buffer size
2025-07-23 21:06:15 -07:00
Frédéric Guillot
5eab4753e8
refactor(googlereader): rename/unexport response types and functions
2025-07-23 20:36:04 -07:00
Frédéric Guillot
bf466425db
ci: update commit linter to allow default Git revert message
2025-07-23 20:03:04 -07:00
jvoisin
a62b97bddd
refactor(readability): get rid of getClassWeight
...
Its naming was confusing, and its code simple enough that it could be inlined.
2025-07-23 19:55:47 -07:00
jvoisin
1de9cf4241
perf(readability): simplify removeUnlikelyCandidates
...
- Use an iterator instead of generating a whole slice when iterating on the selection.
- Using an iterator allows to use a for-loop construct, instead of a lambda,
which is a bit clearer
- Do the filtering Find()'s selector, instead of in the loop, which doesn't
matter much now that we're using an iterator, but it makes the code a bit
more obvious/simpler, and likely reduces a bit the number of iterations.
2025-07-23 19:55:47 -07:00
jvoisin
7912b9b8fb
perf(readability): avoid materializing text to count commas
...
There is no need to materialize the whole text content of the selection only to
count its number of commas. As we already have a getLengthOfTextContent
function that is pretty similar, this commit refactors it to make it more
generic, in the form of a map/fold(+).
2025-07-23 19:55:47 -07:00
jvoisin
2d24f5d04e
refactor(readability): minor code folding
2025-07-23 19:55:47 -07:00
Frédéric Guillot
20825a92c5
Revert "perf(template): use ParseFS
to directly parse the embedded template data"
...
This reverts commit 4336a0bd85
.
2025-07-22 21:31:34 -07:00
Frédéric Guillot
1d1162327e
feat(integration): use Bearer token authorization instead of cookie for Linkwarden client
2025-07-22 21:13:48 -07:00
Frédéric Guillot
202de7c787
fix(integration): rename Linkwarden endpoint label to base URL ( #3568 )
2025-07-22 20:49:54 -07:00
Frédéric Guillot
b470b186b3
feat(makefile)!: remove unsupported platforms and stop distributing Windows binary
...
There is no installation wizard for Windows and running the
command line binary as-is could lead to confusion for some users.
Unit tests still run on Windows, and people can still compile from
source if interested.
2025-07-22 20:24:39 -07:00
dependabot[bot]
5877cf340a
build(deps): bump github.com/go-webauthn/webauthn from 0.13.3 to 0.13.4
...
Bumps [github.com/go-webauthn/webauthn](https://github.com/go-webauthn/webauthn ) from 0.13.3 to 0.13.4.
- [Release notes](https://github.com/go-webauthn/webauthn/releases )
- [Commits](https://github.com/go-webauthn/webauthn/compare/v0.13.3...v0.13.4 )
---
updated-dependencies:
- dependency-name: github.com/go-webauthn/webauthn
dependency-version: 0.13.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-22 17:31:06 -07:00
dependabot[bot]
d417b0ff12
build(deps): bump github.com/tdewolff/minify/v2 from 2.23.9 to 2.23.10
...
Bumps [github.com/tdewolff/minify/v2](https://github.com/tdewolff/minify ) from 2.23.9 to 2.23.10.
- [Release notes](https://github.com/tdewolff/minify/releases )
- [Commits](https://github.com/tdewolff/minify/compare/v2.23.9...v2.23.10 )
---
updated-dependencies:
- dependency-name: github.com/tdewolff/minify/v2
dependency-version: 2.23.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-22 17:27:56 -07:00
Frédéric Guillot
703f113fbd
fix(storage): ensure strings are truncated to fit tsvector size limit and remain valid UTF-8
2025-07-20 13:42:58 -07:00
Frédéric Guillot
f02213a168
refactor(readability): use String
explicitly in debug log instead of Any
2025-07-19 10:58:49 -07:00
Frédéric Guillot
410b43a787
chore(contrib): update PostgreSQL image from 15 to latest in docker-compose examples
2025-07-19 10:51:00 -07:00
Frédéric Guillot
d9de9d1852
feat(rss): fallback to enclosure URL when entry URL is missing
2025-07-19 10:46:43 -07:00
dependabot[bot]
33d55cc4e9
build(deps): bump github.com/tdewolff/minify/v2 from 2.23.8 to 2.23.9
...
Bumps [github.com/tdewolff/minify/v2](https://github.com/tdewolff/minify ) from 2.23.8 to 2.23.9.
- [Release notes](https://github.com/tdewolff/minify/releases )
- [Commits](https://github.com/tdewolff/minify/compare/v2.23.8...v2.23.9 )
---
updated-dependencies:
- dependency-name: github.com/tdewolff/minify/v2
dependency-version: 2.23.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-18 17:35:03 -07:00
Julien Voisin
1825320369
refactor(template): remove unused functions and reduce the complexity of truncate
function
...
- Remove unused functions like hasKey, domain, hasPrefix and contains.
- Lower the complexity of truncate from O(n) to O(1).
2025-07-17 20:53:41 -07:00
jvoisin
d80fb242db
refactor(template): reduce translation-related introspection
...
Keys in translation maps are always strings, never anything else, so there is
no need to introspect them.
2025-07-17 20:48:36 -07:00
Julien Voisin
4336a0bd85
perf(template): use ParseFS
to directly parse the embedded template data
...
Use ParseFS to directly parse the embedded template data, instead of manually
reading it and then using Parse.
2025-07-17 20:46:33 -07:00
Frédéric Guillot
dc81725788
fix(filter): remove \r\n
in rule parsing
2025-07-16 21:03:53 -07:00
Julien Voisin
86e2ce6d0b
perf(readability): move transformMisusedDivsIntoParagraphs
call after removeUnlikelyCandidates
2025-07-13 14:34:14 -07:00
Frédéric Guillot
4679691c94
refactor(googlereader): rename stream suffix constants for clarity
2025-07-13 14:28:25 -07:00
Julien Voisin
0d5f4a710f
refactor(googlereader): unexport a lot of symbols
2025-07-13 14:16:08 -07:00
dependabot[bot]
92d2ac4f58
build(deps): bump github.com/go-webauthn/webauthn from 0.13.1 to 0.13.3
...
Bumps [github.com/go-webauthn/webauthn](https://github.com/go-webauthn/webauthn ) from 0.13.1 to 0.13.3.
- [Release notes](https://github.com/go-webauthn/webauthn/releases )
- [Commits](https://github.com/go-webauthn/webauthn/compare/v0.13.1...v0.13.3 )
---
updated-dependencies:
- dependency-name: github.com/go-webauthn/webauthn
dependency-version: 0.13.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-11 17:09:37 -07:00
dependabot[bot]
1cfee27a50
build(deps): bump golang.org/x/image from 0.28.0 to 0.29.0
...
Bumps [golang.org/x/image](https://github.com/golang/image ) from 0.28.0 to 0.29.0.
- [Commits](https://github.com/golang/image/compare/v0.28.0...v0.29.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/image
dependency-version: 0.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-10 19:32:49 -07:00
jvoisin
0e9da3a090
refactor(icon): simplify findIconURLsFromHTMLDocument
...
- Don't define the queries before possible early returns
- Check for the presence of the href attribute in the queries, instead of later
on iterating on the selection
- Add two edge-cases to the tests
- Use EachIter instead of Each, if only to avoid the lambda
2025-07-10 19:32:29 -07:00
jvoisin
57bd384951
refactor(icon): unexport a bunch of symbols
2025-07-10 19:32:29 -07:00
dependabot[bot]
fdbd5b08a1
build(deps): bump golang.org/x/net from 0.41.0 to 0.42.0
...
Bumps [golang.org/x/net](https://github.com/golang/net ) from 0.41.0 to 0.42.0.
- [Commits](https://github.com/golang/net/compare/v0.41.0...v0.42.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/net
dependency-version: 0.42.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-10 19:24:08 -07:00
jvoisin
f455c18c66
perf(rewrite): anchor the rewrite regex
...
There is no need to try to match the regexp over the whole input, having it
anchored is enough. If we feel extra-lenient, we might strip spaces in
front/tail, but I don't think it's necessary.
This commit also invert a condition to reduce the level of nested indentation,
and make a condition stricter.
2025-07-10 19:23:54 -07:00
dependabot[bot]
9dea26c923
build(deps): bump golang.org/x/crypto from 0.39.0 to 0.40.0
...
Bumps [golang.org/x/crypto](https://github.com/golang/crypto ) from 0.39.0 to 0.40.0.
- [Commits](https://github.com/golang/crypto/compare/v0.39.0...v0.40.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.40.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-10 17:33:04 -07:00
jvoisin
46adb0ffad
refactor(fetcher): simplification of ExecuteRequest
...
Instead of doing some ciphers manipulation before instantiating the http.Transport
and then assigning them, instantiate http.Transport, and then in an if do the
manipulation. This makes the code a bit clearer, which is always nice when it
comes to cryptographic shenanigans.
2025-07-09 19:36:36 -07:00
jvoisin
61583d53d5
refactor(config): simplify SortedOptions
...
Make use of the slices and maps packages instead of doing things by hand,
and pre-allocated sortedOptions.
2025-07-09 19:29:53 -07:00
jvoisin
7c42e777ec
refactor(config): minor improvements of the config parser
...
- Surface the faulty line number when trying to parse it
- Use strings.Cut instead of strings.SplitN
- Use strings.TrimSuffix instead of an if
- Simplify parseStringList and make its code more compact
2025-07-09 19:28:02 -07:00
dependabot[bot]
335dffbb75
build(deps): bump golang.org/x/term from 0.32.0 to 0.33.0
...
Bumps [golang.org/x/term](https://github.com/golang/term ) from 0.32.0 to 0.33.0.
- [Commits](https://github.com/golang/term/compare/v0.32.0...v0.33.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/term
dependency-version: 0.33.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 19:18:08 -07:00
Qeynos
f0cdfb33dd
feat(locale): update Chinese translations
2025-07-09 19:14:40 -07:00