Skip to content
elelay edited this page Apr 26, 2011 · 3 revisions

gPodderAsRSSReader

With a switch from OS X to Linux, I was missing my favourite RSS reader : Vienna RSS. On the other hand, gPodder had already proven invaluable to me, so I thought of reusing parts of it.

I turned out even better: gPodder does already all I need. Well, most of it ;-) :

  • displays HTML shownotes (basically the content of feed entries);
  • doesn't remove episodes once they disappear from the feed (downloaded episodes, at least);
  • is a well written and commented code base, suitable for a novice python programmer like me;
  • keeps episodes in a simple sqlite database, so that I can import my 3 years worth of feed entries from Vienna RSS.

So, let's hack it:

  1. the show notes should be embedded in the main window instead of being in a dialog; copy-paste a bit of code to implement this;
  2. gPodder doesn't like it when feed entries don't have an attachment; fixing this breaks assumptions here an then in the code, but it's not too bad;
  3. it also enforces an upper limit on the number of episodes kept in a feed. I fixed this (or was it already there ?) by not pruning locked channels and locking all channels.
  4. the list of new episodes for download may not display episodes without attachments ; deleting an episode without attachments shouldn't warn you about deleting files ;
  5. scalability : there are >5000 episodes in the database now, and counting; displaying the "All Episodes" channel is unfeasible and updating 70+ channels takes a lot of time (~5 minutes);
    • profiling didn't help (can't figure out where all the time is spent !);
    • recompiling python, gtk, pygtk with -O2 helped a lot;
    • updating feeds in parallel proves a huge time saver (~30s for 60 channels now). I was under the impression that sqlite won't support multithreading, but maybe thanks to the global interpreter lock in python, no problem.
  6. marking episodes as old when they have been for 2s in the shownotes is quite handy.
  7. adding a channel for unread (=new) episodes and adding the new episodes count to the pills in the channel list is quite confortable;

"You know what ? I'm happy !" Now I can read the news on linux...

Clone this wiki locally