dependabot[bot]
e6d01896e0
build(deps): bump github.com/tdewolff/minify/v2 from 2.23.10 to 2.23.11
...
Bumps [github.com/tdewolff/minify/v2](https://github.com/tdewolff/minify ) from 2.23.10 to 2.23.11.
- [Release notes](https://github.com/tdewolff/minify/releases )
- [Commits](https://github.com/tdewolff/minify/compare/v2.23.10...v2.23.11 )
---
updated-dependencies:
- dependency-name: github.com/tdewolff/minify/v2
dependency-version: 2.23.11
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 17:15:46 -07:00
dependabot[bot]
b4a814a5b2
build(deps): bump golang.org/x/term from 0.33.0 to 0.34.0
...
Bumps [golang.org/x/term](https://github.com/golang/term ) from 0.33.0 to 0.34.0.
- [Commits](https://github.com/golang/term/compare/v0.33.0...v0.34.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/term
dependency-version: 0.34.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 17:14:36 -07:00
dependabot[bot]
940d94e793
build(deps): bump golang.org/x/image from 0.29.0 to 0.30.0
...
Bumps [golang.org/x/image](https://github.com/golang/image ) from 0.29.0 to 0.30.0.
- [Commits](https://github.com/golang/image/compare/v0.29.0...v0.30.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/image
dependency-version: 0.30.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-07 17:04:43 -07:00
Frédéric Guillot
80f48c88c7
refactor: replace interface{}
with any
2025-08-05 20:26:07 -07:00
Frédéric Guillot
045f2f1747
chore(view): remove unused webauthn_js_checksum
key
2025-08-05 20:20:33 -07:00
Julien Voisin
2565ff930c
refactor(template): make use of template.ParseFS
2025-08-05 20:07:49 -07:00
Julien Voisin
b3fce752d2
refactor: replace Sprintf
with string concatenation
...
There is no need to have go parse the whole format string then introspect the
arguments when we an simply use string concatenation.
2025-08-05 19:47:26 -07:00
Julien Voisin
798bc4cd2d
refactor(static): use a simple struct instead of two slices to store assets data and checksums
...
- Use a simple struct instead of two slices to store the data and the checksums
of resources
- Remove a superfluous call to Sprintf
- Factorise presence check and data retrieval in some maps
- Size the maps when possible
2025-08-05 19:35:27 -07:00
Julien Voisin
b1cbaae71c
refactor(storage): simplify feed.go
by using min()
, inline errors, and use idiomatic conditions
...
- Use `min` instead of doing the comparison by hand.
- Inline error handling where it makes sense
- Invert a condition to make it more idiomatic
2025-08-05 19:25:50 -07:00
Julien Voisin
924293ee5c
perf(storage): avoid heavy-weight SQL when marking feed as read
...
There is no need to perform a heavy-weight SQL query gathering all the
information available on a feed when we're only interested in its last check
timestamp.
2025-08-05 18:01:58 -07:00
Julien Voisin
826977bc8c
perf(api): speed up markFeedAsRead
by avoiding a JOIN
operation
2025-08-05 17:55:15 -07:00
Julien Voisin
ed0e4a667d
refactor(template): reindent and merge tags in feed_list.html
...
- Fix some indentation
- Factorize/merge some <span>
- Remove superfluous spaces
- Reindent some nested tags
2025-08-05 17:50:09 -07:00
jvoisin
5affd78f4f
refactor(reader): move the fetcher outside of a loop
...
There is no need to rebuilt the fetcher for every item, creating it once is
enough.
2025-08-05 17:39:23 -07:00
Frédéric Guillot
d3ad460c9d
Revert "feat(cookie): use SameSiteStrictMode
when not using OAuth2/OIDC"
...
This reverts commit 135ce1d546
.
People using Miniflux as PWA on Android are constantly being logged out.
2025-08-05 17:32:20 -07:00
Frédéric Guillot
0f3c04a98a
test(rewrite): fix flaky test case by sorting query string keys
2025-08-05 17:31:43 -07:00
gudvinr
e8e3a600b4
refactor(googlereader): remove intermediate variable
2025-08-03 13:21:40 -07:00
Julien Voisin
a6ce5c92dc
perf(storage): minor optimization for FetchJobs
...
- Replace a call to fmt.Sprintf with a concatenation
- Explicit declaration of return values in FetchJobs
- Initialize the size of FetchJobs return value to b.limit: when b.limit is
used, which is most of the time, this avoid resizing the slice, and when it
isn't, the size of the map is set to 0, which is equivalent to the previous
situation anyway.
- Move a call to `request.UserID(r)` to a lower scope.
2025-08-03 13:19:14 -07:00
gudvinr
76ef8f3579
refactor(googlereader): replace Sprintf("%d")
with FormatInt
...
see https://medium.com/swlh/bad-go-frivolous-sprintf-2ad28fedf1a0
2025-08-03 13:15:49 -07:00
Julien Voisin
a43d150a27
refactor(parser): centralize seek logic and provide a hint for the compiler to eliminate a useless bound check
...
- Move the seeking inside of DetectFeedFormat instead of having it everywhere
in ParseFeed
- Provide a hint for the compiler to eliminate a useless bound check in
DetectJSONFormat, otherwise it'll check that buffer[i] is valid on every
iteration of the loop. This shouldn't make a big difference, but oh well.
2025-08-03 12:53:10 -07:00
Frédéric Guillot
3bb965913d
refactor(js): create utility functions to manage buttons state
2025-08-02 21:37:16 -07:00
Frédéric Guillot
b505a63f3b
refactor(js): rewrite toast notification implementation
2025-08-02 21:37:16 -07:00
Frédéric Guillot
e9d9256ae2
refactor(js): rename functions to include action suffix
2025-08-02 18:44:12 -07:00
Frédéric Guillot
391792a424
refactor(js): combine handleBookmark
and toggleBookmark
functions
2025-08-02 18:44:12 -07:00
Frédéric Guillot
d2cfca589b
refactor(js): combine handleSaveEntry()
and saveEntry()
functions
2025-08-02 18:44:12 -07:00
Frédéric Guillot
f2e34cf07f
refactor(js): split openOriginalLink()
into smaller functions
2025-08-02 18:44:12 -07:00
Frédéric Guillot
5c3be3e74f
refactor(js): combine handleShare()
and triggerWebShare()
functions
2025-08-02 18:44:12 -07:00
jvoisin
546fbcff8f
perf(storage): pair all SELECT true
with LIMIT 1
...
Apparently, postgresql isn't smart enough to realize that once a true value
value is found as part of a `SELECT true`, there is no need to scan the rest of
the table, so we have to make this explicit. We could also have used the
`SELECT EXISTS(…)` construct, but it's more verbose and I don't like it.
2025-08-02 16:13:55 -07:00
Frédéric Guillot
2e28bf78bd
refactor(js): improve item navigation logic in goToListItem function
2025-08-02 16:12:53 -07:00
Frédéric Guillot
52c1386450
refactor(js): enable touch handlers only on touch devices and fix various issues in WebAuthnHandler
2025-08-02 15:39:01 -07:00
Frédéric Guillot
4910f1f0f4
refactor(js): remove RequestBuilder
2025-08-02 15:14:35 -07:00
Frédéric Guillot
bbe3c2ea71
refactor(js): simplify some functions using modern JavaScript
2025-08-02 14:06:18 -07:00
Frédéric Guillot
b116da85a9
refactor(js): remove bootstrap.js
2025-08-02 13:41:40 -07:00
Frédéric Guillot
07246e2b59
refactor(js): improve menu handlers
2025-08-02 13:09:57 -07:00
Frédéric Guillot
62410659d5
refactor(js): code cleanup and add jshint comments
2025-08-02 12:38:29 -07:00
Frédéric Guillot
3e1a7e411c
feat(js): register the service worker as JavaScript module
2025-08-02 11:26:43 -07:00
Frédéric Guillot
bfbc1c88c3
feat(js): load app.js
using JavaScript module
...
- The JS bundle has its own isolated scope
- There is no need to use IIFEs anymore (Immediately Invoked Function Expressions)
- Modules are executed after the HTML document is fully parsed, similar to `defer` attribute
- There is no need to use `DOMContentLoaded` anymore
- Module scripts inherently run in strict mode (no need to define `use strict` anymore)
2025-08-02 11:07:27 -07:00
Frédéric Guillot
50197c2be3
refactor(js): reorder functions and add comments
2025-08-01 21:56:25 -07:00
Frédéric Guillot
7a25cf5037
fix(js): handle multiple buttons in a single form when showing loading state
2025-08-01 20:53:59 -07:00
Frédéric Guillot
1ec90e34f5
refactor(js): simplify CSRF token retrieval from the document
2025-08-01 20:44:40 -07:00
Frédéric Guillot
5e07278e87
feat(ui): refresh the page when marking as read the last visible entry
2025-08-01 20:16:45 -07:00
Julien Voisin
cce0e7bd29
refactor(rewrite): replaced regex-based YouTube and Invidious video ID extraction with URL parsing
2025-08-01 17:44:12 -07:00
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