jonbrett / cinnamon-feeds-applet

Cinnamon applet for fetching and displaying RSS feeds
https://jonbrettdev.wordpress.com
20 stars 10 forks source link

Preserve feed order #10

Closed jonbrett closed 11 years ago

jonbrett commented 11 years ago

Currently (version 0.3) feed item are ordered by when the FeedReader first saw the item in the feed.

This is correct for most feeds, which only ever add items to the beginning of the feed. However some feeds add items in the middle of the feed (post-dated), which leads to some odd updates.

The FeedrReader should instead order the items as they appear in the feed (at least by default).

To do this it makes sense to rework the stored feed data: 1.) On refresh we should update the feed items exactly as they appear from the feed 2.) We store the ids of read items in the backing file 3.) When we refresh the feed we compare the ids of the downloaded items with those in the backing file to mark them as read. We also drop any ids which are no longer in the feed from the backing file.

This makes the backing file much simpler and so less likely to break between updates. The downside is that we no longer will maintain a "cache" of feed items that are no longer in the feed, but this was of questionable use anyway.