Review of "RSS Feed" version 8

Details Page Preview

A modern GNOME Shell RSS reader for the top bar. Follow news from your favorite RSS, Atom, and RDF feeds directly from the panel. Featuring two layout modes, starred articles, configurable article actions, desktop notifications, an unread badge, and a fully editable feed list. Features: - OPML import and export, so you can bring your subscriptions over from another reader - Classic and Minimal layout - Desktop notifications for new articles (lock screen optional, grouped by source on GNOME 48+) - Starred articles in their own group, kept even when they drop out of the feed or the feed is removed - Configurable article actions: up to three hover buttons and separate actions for the left, middle and right mouse button (open, mark as read or unread, star, dismiss, mark older as read, copy link) - Panel unread badge, with mark as read function - Feed management with drag-n-drop, custom feed title and avatar - Dismiss articles you do not want to see, and restore them later - Article history: articles stay stored after they drop out of the feed, up to a per-feed limit - Notifications Only/Widget Only/Both mode select - Per-feed mute notifications - Automatic retries for feeds that fail, with a failed counter in the menu header - Full keyboard navigation of the panel menu, including the article buttons - Copy link action on articles and in notifications - Light and Dark themes support, with system accent color (GNOME 47+) - Configurable refresh and article limit - Feed aggregator for RSS, Atom, RDF and FeedBurner format, with multi-charset support - Persistent read, starred and dismissed state across shell restarts Extension writes to clipboard only when the user explicitly requests to copy a feed article URL (the Copy link action on an article or in a notification).

Extension Homepage
https://github.com/todevelopers/gnome-shell-extension-rss-feed

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) manual_review 1

Shexli found 1 issue that may need reviewer attention.

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • ui/classic/articleItem.js:62
    St.Clipboard.get_default()
  • ui/minimal/articleItem.js:54
    St.Clipboard.get_default()
  • ui/notificationManager.js:149
    St.Clipboard.get_default()

All Versions

Version Status
10.0 (11) Active
9.0 (10) Inactive
8.1 (9) Inactive
8 Rejected
7 Inactive
6 Active
5 Inactive
4 Inactive
3 Inactive
2 Inactive
1 Inactive

Previous Reviews on this Version

todevelopers posted a review
Hi this release is a larger internal rework, so I write you a short overview of the new structure: - extension.js is now a thin entry point that wires the components together. - data/ contains the model layer: feed store, sources and items, polling, merge logic, persistence of read state and notification policy, all UI-independent. - parsers/ holds the feed format parsers (RSS, Atom, RDF, Feedburner) built on top of the bundled tXml. Mostly unchanged. - lib/ contains one third-party file, tXml (fast XML parser), a replacement for the old REXML parser. - ui/ is the view layer: panel indicator, Classic and Minimal menu layouts and the notification manager, it only renders what the data layer provides. - prefs/ is the preferences window split into one file per page. - icons/ and schemas/ hold the symbolic icons and the GSettings schema. Root files are small shared helpers: http.js (Soup 3 wrapper), encoder.js, misc.js, gskeys.js. User-visible behavior is mostly unchanged, the rework targets performance (parsing and rendering should no longer block the main loop) and data/UI separation.
JustPerfection rejected
1. While `Gio.app_info_launch_default_for_uri()` throws, you don't need to wrap it with try-catch. Even GNOME Shell doesn't use try-catch for that. 2. Timeout should be removed on destroy (line 120 `data/feedRepository.js`): [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources)