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
jvoisin
13ef89f785
fix(storage): don't truncate title/content fields
...
As found out by @fguillot in https://github.com/miniflux/v2/pull/3461#issuecomment-3047204354
2025-07-08 19:36:18 -07:00
jvoisin
32fbb4e882
fix(ui): improve margins consistency wrt. header/footer
2025-07-08 19:30:13 -07:00
Julien Voisin
135ce1d546
feat(cookie): use SameSiteStrictMode
when not using OAuth2/OIDC
2025-07-08 19:20:24 -07:00
Cthulhux
abed7b11ce
feat(locale): update German translation
...
Missed two weird translations and one typo
2025-07-08 19:17:28 -07:00
Frédéric Guillot
2e26f5ca75
test(reader): ensure consistent tags parsing across feed formats
2025-07-07 20:07:35 -07:00
jvoisin
d6d18a2d61
perf(reader): shrink the json detection buffer
...
There is no need to allocate half a kilobyte of memory only check that a buffer
starts with a bunch of spaces and a `{`, 32b should be more than enough. Also,
no need to allocate it on the heap, having it on the stack works perfectly.
2025-07-07 19:21:59 -07:00
Frédéric Guillot
63891501e5
refactor(model): add test coverage and simplify ProxifyEnclosureURL
2025-07-07 18:41:44 -07:00
dependabot[bot]
7107ff985f
build(deps): bump github.com/go-webauthn/webauthn from 0.13.0 to 0.13.1
...
Bumps [github.com/go-webauthn/webauthn](https://github.com/go-webauthn/webauthn ) from 0.13.0 to 0.13.1.
- [Release notes](https://github.com/go-webauthn/webauthn/releases )
- [Commits](https://github.com/go-webauthn/webauthn/compare/v0.13.0...v0.13.1 )
---
updated-dependencies:
- dependency-name: github.com/go-webauthn/webauthn
dependency-version: 0.13.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-07 18:39:51 -07:00
jvoisin
50d5cb96c8
refactor(enclosure): simplify model/enclosure.go
...
- Reuse isAudio and isVideo instead of re-implementing them
- In IsImage, return early is the mimetype is enough, instead of systematically
lowercasing the url as well.
- Extract the common parts of the two ProxifyAbsoluteURL implementations into a
private function, make the code smaller and clearer.
- Fix a logic error where `A && B || C` was used instead of `A && (B || C)
2025-07-07 17:42:44 -07:00
Frédéric Guillot
f860daef7f
test(locale): increase test coverage to 100%
2025-07-07 17:39:56 -07:00
Frédéric Guillot
e7b98afdbe
refactor(subscription): avoid using Sprintf to construct Youtube playlist feed URL
2025-07-07 17:08:47 -07:00
Frédéric Guillot
2cfeefc8d2
test(processor): increase test coverage for parseISO8601Duration
2025-07-07 17:01:10 -07:00
jvoisin
b48e6472f5
refactor(processor): parse ~ISO8601 in a proper way
...
Instead of using an ugly (and incomplete) regex, let's use a simple for-loop to
parse ISO8601 dates, and make it explicit that we're only supporting a subset
of the spec, as we only care about youtube video durations.
2025-07-07 16:28:58 -07:00
jvoisin
24043ece07
refactor(config): unexport some symbols
2025-07-07 16:01:21 -07:00
jvoisin
a09129d220
refactor(proxyrotator): simplify mutex handling
...
There is no need to use a mutex to check the length of the proxies list,
as it's read-only during the whole lifetime of a ProxyRotator structure.
Moreover, it's a bit clearer to explicitly wrap the 2 lines of mutex-needing
operations between a Lock/Unlock instead of using a defer.
2025-07-07 15:52:16 -07:00
jvoisin
f864a2ed70
refactor(mediaproxy): simplify shouldProxy
...
The original function was non-trivial to understand, as `!A && (B || !C)` isn't
easily grokable by humans.
2025-07-07 15:50:13 -07:00
jvoisin
052e8dd0aa
refactor(config): remove two unused constants
2025-07-07 15:45:20 -07:00
jvoisin
7a394b0bf8
refactor(subscription): replace a regex with strings.CutPrefix
2025-07-07 15:44:45 -07:00