Athou
da3977b0e2
fix error message not correctly returned
2026-04-20 08:39:24 +02:00
Athou
6d2fb5acc2
refactor
2026-04-10 15:17:27 +02:00
Athou
ec35d846cf
Merge branch 'perf/batch-guid-check-on-feed-refresh' of https://github.com/ingokegel/commafeed into ingokegel-perf/batch-guid-check-on-feed-refresh
2026-04-10 14:22:32 +02:00
Ingo Kegel
1d23907652
Use batched IN clause for GUID existence check during feed refresh
...
Instead of fetching all existing GUID hashes for a feed from the database only check the GUIDs present in the current feed XML using a SQL IN clause. GUIDs are partitioned into batches of 1000.
Also adds an integration test verifying that refreshing an up-to-date feed does not create duplicate entries.
2026-04-10 10:13:37 +02:00
Athou
3d5bc9ef0e
adapt to passay 2.0 api
2026-04-07 02:11:37 +02:00
Ingo Kegel
76dbbdfbf9
batch guid existence check on feed refresh
...
Instead of querying the database once per entry to check if it already
exists, fetch all existing guids for a feed in a single query upfront
and filter new entries in memory before the per-entry loop.
The per-entry findExisting call inside addEntry is kept as a safety net
for concurrent inserts, but is now only reached for new entries.
Profiling in real usage showed a ~50% reduction in guidHash queries,
with the check falling from the most expensive query to sixth in the ranking.
2026-03-18 18:56:40 +01:00
Athou
eaa5bc896e
stop the application between tests to make sure that there are no active transactions when we truncate the tables
2026-03-04 13:58:06 +01:00
Athou
78c017ddaf
wait for tasks to complete when shutting down
2026-03-04 12:49:06 +01:00
Athou
8fe2d0bc0e
fix typo
2026-02-21 23:58:49 +01:00
Athou
33a0568895
delay task so that it doesn't run at the same time at OrphanedContentsCleanupTask
2026-02-20 15:55:09 +01:00
Athou
721d728906
prevent SSRF by blocking redirects from public websites to local addresses
2026-02-20 15:07:11 +01:00
Athou
3fd5cfdecd
add a setting to mark entries of a feed as read after a number of days ( #2041 )
2026-02-20 13:24:40 +01:00
Athou
6fe326f052
cleanup
2026-02-19 23:21:09 +01:00
Athou
de7e4e9c69
add a button for testing push notification settings
2026-02-19 22:50:34 +01:00
Athou
ba3214bf10
remove the possibility to receive notifications when subscribing because that sends a lot of notifications, one for each entry in the feed
2026-02-19 16:08:54 +01:00
Athou
a81de48cfb
change the default value of blockLocalAddresses
2026-02-18 20:53:23 +01:00
Athou
2be61e8b1c
refactor
2026-02-18 20:37:11 +01:00
Louis POIROT--HATTERMANN
e54151d2eb
feat: send notification for new entries with Gotify, ntfy or Pushover, configurable per feed.
2026-02-15 18:45:28 +01:00
Athou
d444a7080d
migrate filtering expressions to safer CEL and add a query builder
2026-02-15 16:13:10 +01:00
Athou
6fa8d4be34
keep starred entries ( #1581 )
2026-02-09 06:59:41 +01:00
Athou
6c68fda572
make "disable pull to refresh" false by default ( #2030 )
2026-01-25 10:49:11 +01:00
Athou
a858380121
cleanup
2026-01-23 08:34:10 +01:00
Athou
afe957ba59
create a dedicated password reset page ( #2023 )
2026-01-19 20:55:26 +01:00
Athou
714681bc50
don't set "en" as the default language, use the preferred language of the browser ( #2018 )
2026-01-17 20:09:23 +01:00
Athou
5a95b95801
validate password in the frontend too ( #2017 )
2026-01-15 21:36:00 +01:00
Athou
d711cbab49
requiring an email address for users is now configurable ( #1914 )
2026-01-10 18:11:35 +01:00
Athou
2e8fd737af
remove complex password requirements ( #1916 )
2026-01-10 17:53:48 +01:00
Athou
a080ede15b
add a setup landing page instead of creating a default admin account
2026-01-10 17:30:22 +01:00
Athou
799e6c082c
cleanup
2026-01-06 22:53:37 +01:00
Athou
19663b0f38
Java 25+ is now required
2026-01-05 07:25:26 +01:00
Athou
3bf4a004d4
ReadKit sends the md5 hash of the password in uppercase ( #1602 )
2025-12-30 20:22:41 +01:00
Athou
1139df0637
use existing constants
2025-12-24 07:02:01 +01:00
Athou
c1810de316
use a brotli decoder that uses java and not native code
2025-12-23 17:01:19 +01:00
Athou
863ced57f8
specify explicitly what encoders we support, don't rely on httpclient5 autodetection
2025-12-23 16:21:10 +01:00
Athou
2147aeb4ae
some client seems to send an empty since_id param
2025-12-23 11:16:07 +01:00
Athou
ae78e4691d
make "disable pull to refresh" a setting ( #1168 )
2025-11-17 09:02:52 +01:00
Athou
9c058cf6d6
disable xml entity expansion limits enabled in JDK24+ ( #1961 )
2025-11-17 06:43:55 +01:00
Athou
e5c271ca1c
add support for more emojis ( #1955 )
2025-11-16 09:37:36 +01:00
Athou
7e825192d0
enforce user password validation when created in the admin view ( #1937 )
2025-10-17 10:19:02 +02:00
Athou
8871ae894f
handle invalid relative urls ( #1939 )
2025-10-17 09:04:38 +02:00
Athou
297c76006a
use more records
2025-10-02 21:54:40 +02:00
Athou
5bbe76d56e
remove log.trace calls
2025-09-28 07:36:12 +02:00
Athou
c548462eef
cleanup
2025-09-27 19:10:41 +02:00
AnasRazy /
65014d330a
Fix off-by-one bug in HttpGetter.toByteArray()
...
What this PR does:
Fixes an off-by-one error in HttpGetter.toByteArray where responses of exactly maxBytes were being rejected.
Now allows responses up to maxBytes, and only throws if the response is larger.
Why this change is needed:
Some feeds return responses exactly equal to the limit.
Current implementation incorrectly throws an exception, breaking parsing.
How it works:
Reads up to maxBytes + 1 bytes.
If actual size exceeds maxBytes, throws exception.
Otherwise returns full content.
Other notes:
No breaking API changes.
Safe for existing usage.
2025-09-27 15:32:31 +05:30
Athou
7f53531489
filter cannot be converted to lowercase ( #1899 )
2025-09-22 03:47:06 +02:00
Athou
ad388ae056
remove search limit ( #1887 )
2025-09-03 07:45:15 +02:00
Athou
58bf86d25d
remove warnings
2025-07-30 13:30:27 +02:00
Athou
a8c47d717c
remove unused google analytics support
2025-07-29 12:35:53 +02:00
Athou
ff7aa890a6
fix build warning
2025-07-28 19:55:36 +02:00
Athou
c49c31a44e
let quarkus generate the documentation
2025-07-28 08:33:34 +02:00