Skip to content

Fix future-dated items and feed dedupe; add card and YouTube improvements - #247

Closed
David7ce wants to merge 3 commits into
FluentFlame:masterfrom
MediaHub-Org:main
Closed

David7ce wants to merge 3 commits into
FluentFlame:masterfrom
MediaHub-Org:main

Conversation

@David7ce

Copy link
Copy Markdown

Summary

This PR contains a few independent improvements developed while using the reader with a large feed collection (337 feeds):

  1. Future-dated feed items

    • Items with a publication date in the future are stored using their fetch date instead of staying pinned to the top forever.
    • The time formatter never renders a future date as now; it shows the actual date instead.
    • A DB migration (v11) repairs already-stored future-dated items.
    • Fixes the case where Visual Studio Code 1.144 (Insiders) (feed date 2026-10-28) was always shown first as now.
  2. Deduplication by link

    • Adds a [source+link] compound index (DB v10) and uses it for item deduplication.
    • Prevents feeds without a stable date from inserting a fresh copy on every refresh (podcasts, YouTube feeds, some blogs).
  3. Fetch concurrency limit

    • At most 24 feeds are fetched at the same time instead of launching every source at once.
    • Avoids saturating the network and lets one slow feed finish without blocking the whole refresh.
  4. Card view CSS refresh

    • 264×280 cards, 14px radius, subtle border/shadow, 16:9 cover, gradient, hover lift/zoom, visible snippet, read state, and a text-card layout for items without thumbnails.
  5. YouTube

    • Uses the predictable i.ytimg.com thumbnail when a YouTube feed does not provide one.
    • Adds a play badge on the card.
    • Opens YouTube videos in an embedded iframe inside the article panel instead of loading the full YouTube page.
    • Uses a tiny localhost HTTP server (127.0.0.1:39217) to give YouTube a valid HTTP origin; the file:// origin otherwise fails with error 153.
    • Sets consent cookies so the embed does not show the cookie wall.

Testing

  • npx tsc --noEmit -p tsconfig.json --skipLibCheck ✅
  • npm run build ✅
  • Packaged Windows build tested with a 337-feed profile:
    • DB upgrade to v11 ✅
    • 337 sources, 0 untitled items ✅
    • Future-dated VS Code item repaired ✅
    • Card CSS applied ✅
    • YouTube thumbnail/badge and iframe player working ✅

Notes

The card UI and YouTube changes are visual/product changes and can be split into separate PRs if you prefer to review the behavioural fixes (future dates, deduplication, concurrency) independently.

This is a draft for feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants