diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-04-27 21:20:10 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-04-27 21:20:10 +0900 |
| commit | cb00405041ee4714b6e817e9570cfa10ae972840 (patch) | |
| tree | ff98728b3e5e099eb9ac5556eeb407c68e0fc208 /backend/db/queries | |
| parent | 938863425bf8ad6c17e43b3da128f92cf6d6ab63 (diff) | |
| download | feedaka-cb00405041ee4714b6e817e9570cfa10ae972840.tar.gz feedaka-cb00405041ee4714b6e817e9570cfa10ae972840.tar.zst feedaka-cb00405041ee4714b6e817e9570cfa10ae972840.zip | |
Add per-feed fetch_interval_seconds (clamped to [1h, 24h]) that halves
on new articles and grows 1.5x when a fetch yields nothing, replacing
the fixed 1h schedule with the 10min cooldown filter. Scheduler tick
shortened to 30min so the 1h floor is honored with reasonable precision.
Diffstat (limited to 'backend/db/queries')
| -rw-r--r-- | backend/db/queries/feeds.sql | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/backend/db/queries/feeds.sql b/backend/db/queries/feeds.sql index 094a0f8..678f7cc 100644 --- a/backend/db/queries/feeds.sql +++ b/backend/db/queries/feeds.sql @@ -1,10 +1,10 @@ -- name: GetFeed :one -SELECT id, url, title, fetched_at, is_subscribed, user_id +SELECT id, url, title, fetched_at, is_subscribed, user_id, fetch_interval_seconds FROM feeds WHERE id = ?; -- name: GetFeeds :many -SELECT id, url, title, fetched_at, is_subscribed, user_id +SELECT id, url, title, fetched_at, is_subscribed, user_id, fetch_interval_seconds FROM feeds WHERE is_subscribed = 1 AND user_id = ? ORDER BY id; @@ -24,14 +24,20 @@ DELETE FROM feeds WHERE id = ?; -- name: GetFeedByURL :one -SELECT id, url, title, fetched_at, is_subscribed, user_id +SELECT id, url, title, fetched_at, is_subscribed, user_id, fetch_interval_seconds FROM feeds WHERE url = ? AND user_id = ?; -- name: GetFeedsToFetch :many -SELECT id, url, fetched_at, user_id +SELECT id, url, fetched_at, user_id, fetch_interval_seconds FROM feeds -WHERE is_subscribed = 1; +WHERE is_subscribed = 1 + AND datetime(fetched_at, '+' || fetch_interval_seconds || ' seconds') <= datetime('now'); + +-- name: UpdateFeedFetchInterval :exec +UPDATE feeds +SET fetch_interval_seconds = ? +WHERE id = ?; -- name: UnsubscribeFeed :exec UPDATE feeds |
