Skip to content

v4.0: New Cache System, Resume Timecodes and Performance

Latest

Choose a tag to compare

@ejv2 ejv2 released this 14 Aug 22:13
· 1 commit to master since this release
23d47c8

Podbit v4.0

Podbit v4.0 contains a major revamp to the cache system, the addition of resume timecodes and a complete rework to the internal bookkeeping system which should improve lookup performance significantly.

There have been a couple of fairly major changes (technically breaking, although the program will automatically upgrade your files for you) which were sitting for a while on Git without a new release being drafted. I thought it was about time that they get pushed, despite a couple of work-in-progress features originally scheduled for the v4.0 tag not yet being ready.

Changelog

  1. Podbit's downloaded media cache now has its internal bookkeeping done in a separate file to the newsboat queue file. This change restores full inter-operability with Podboat and allows their use in tandem. This is technically a breaking change but Podbit will perform a migration on first startup after the upgrade.
  2. Resume timecodes are now stored in the cache database (detailed in [1]). This allows Podbit to resume playing of a podcast which was stopped part way where it was left off!
  3. When re-opening a podcast marked as "played", Podbit will automatically seek to the saved resume timestamp
  4. Podbit no longer guesses nor walks a specific download directory. Instead, files passed as part of the queue file are used exclusively.
  5. Major improvement to the performance of podcast matching. A map (hash table) structure is now used internally to avoid having to re-search every single episode each time. This also means that episodes are now strongly tied to their podcast.
  6. Podcast matching regex is now pre-compiled at startup time giving significant performance improvements on matching - although (due to [5]), this is now only done once per episode!
  7. Podbit will now exit if mpv crashes, rather than hanging
  8. Episodes which are not matched to any podcast will now be placed under a dummy podcast called "Unorganised" - rather than simply shown under their own URL.
  9. The DB file (containing podcast regex patterns) will no longer be overwritten by Podbit upon exit, allowing live edits. It should be noted that Podbit still does not reload this file dynamically.
  10. Added a "contrib" directory for user-submitted (or my own) patches. The first few things are in there already!
  11. Fixed a couple of race conditions
  12. Removed a couple of deprecated function calls (ioutil mostly)