Changelog
0.84a 2020-06-14
Fixed fix from 0.82 quoting breaking redir (caused a 404 because
?file= was escaped)
0.83a 2020-04-17
PHDirChannel checks for .header file corresponding to every mp3 file
and includes those under the episode's <item>.
generate_feed() now doesn't export <podhoarder:local_path> to prevent
cross-contamination
0.82a 2020-04-10
Bugfix special! Because I'm actually using features I had implemented
on a new machine for the first time and it's crawling.
First-run problems fixed, graceful handling of empty cache.
Permissions fixed.
Folder album art correctly located if it's within the cache-dir.
Cache is not used if PHDirChannel is within cache.
Finally encodes URLs with %-quotes
0.80a 2020-04-05
Default cover image added, and PHDirChannel now uses folder.jpg/png
automatically as cover art.
PHDirChannel gets channel <description> from .description file
PHDirChannel uses header.xml to inject additional header tags into
feed.
So you can now host podcasts automatically from a directory!
0.70a 2019-09-01
Podcast cover images are now cached as well (why is it not working on
Podkicker?)
PHDirChannel feed generation changed
podhoarder:preprocess config option added to integrate better with
youtube-dl
Hoarded paths are now titled only using feed_url (since titles can
change)
0.66a 2019-08-29
PHDirChannel now checks for .description files (generated by
youtube-dl)
0.65a 2019-08-25
Can now add directories using file:///path/to/whatever!
Added PHDirChannel and libph/chandler.py, changed some stuff around
Bug fix: Feed URLs in ui.py were wrong (now use clean_path)
0.60a 2019-08-12
ui.py added to configure podhoarder interactively
pause per-channel flag added, to pause malformed podcasts temporarily
postprocess_async_time is now 25 by default, because PHP-FPM's is 30
by default
ph_redir now refreshes with HTTP 302 instead of 503 if post-processing
is incomplete.
0.55a 2019-08-03
Handles RSS feed errors gracefully, etree.ParseError added in sync.py
0.54a 2019-07-28
Bug-fix in generate_feed() trying to use hdr before it was assigned
0.53a 2019-07-25
Bug fix in sync.py where post-process map was generated only for
updated feeds
Tweaked agc to be a bit more aggressive (TCGTE was still sounding too
soft in the car)
0.52a 2019-07-24
Setting postprocess_cache_size implemented, ph_redir.php now keeps the
cache directory below this size in bytes (default -1 means ignore)
fixed init_config not overwriting ph_redir.php because of ownership
generate_feed() doesn't copy over <itunes:new-feed-url> because
Podcast Addict was redirecting to that feed instead. Also skipping
<atom:link rel="self"> for the same reason
0.50a 2019-07-22
On-demand post-processing implemented! Format of postprocess tag has
changed.
Added ph_redir.php to handle server-side cache management.
init_config now sets permissions too
agc post-process added
0.45a 2019-07-21
Fixed feed showing remote URL. Other bug fixes and tests with
podcatcher.
0.44.1a 2019-07-21
Radiolab null enclosure fix while generating feed
0.44a 2019-07-21
Failed downloads are flagged as such now, and can be retried at any
time with the retry_failed_downloads per-channel or global option.
Fixed add.py bug for multiple files (doh)
Fixed feed_cache saving local paths instead of remote URL to
enclosure.
0.43a 2019-07-20
Yah same day, sue me. Added 'title_postfix' option for regenerated
feeds.
Added regenerate_feeds.py
0.42a 2019-07-20
Radiolab 'Truth Tolls' fix - failed episode download will be handled
gracefully.
save_cache() now creates parent directory
strips() episode titles while displaying and processing, fixes some visual bugs
0.40a 2019-07-18
Added remove.py, progress-bar now checks console width (minimum 57
cols)
0.37a 2019-07-16
Added timestamp update, and update_timestamps.py
0.35a 2019-07-09
Realized I have no idea how I'm numbering versions
Changed config file to be ~/.podhoarder.xml
init_config.py now allows you to enter '~' filenames
0.31a 2019-07-05
Implemented add.py
In the course of which fixed a bunch of bugs on channel.py and config.py
(mainly unhandled situations when config is not inited, or file doesn't exist)
0.3a 2019-07-04
Post-processing implemeneted (postprocess tag)
PHConfig.get() now returns None on not found
PHLogger.progress_bar functions made (a bit?) more elegant
0.2a 2019-07-02
Core functionality works
- Downloading
- Feed generation
- De-duplication of existing files in case of interruption
- Cache loading, saving
Moved to fossil, project wiki has TODOs and info
0.1a 2019-06-2?
Initial version, faffing around doing the thangs
podhoarder-0.84a.tgz (latest)
Download (62.09 KiB)
Updated 2020-06-14
S 0480badec49b594c460a887f9e14b93cee89280c3fbb37f6ae2bb4d1877ce46e
M 6a25dcc6ba5c5f93dbbbe42f3bbcd4e3
podhoarder-0.83a.tgz
Download (62.08 KiB)
Updated 2020-04-17
S 56d8e61353f75367ee54611187537c6202b8c73f3083e80dc7df7d5c5a7ce38a
M 887887549c6becad826132e5c42ab8ca
podhoarder-0.82a.tgz
Download (62.05 KiB)
Updated 2020-04-10
S e14ad9138563fcfa4afd6b6b8783e8ff01b321594969c1a7648d7898855d83f5
M a62fe00c0ab5c05a87813ca4068ef6a7
podhoarder-0.80a.tgz
Download (62.00 KiB)
Updated 2020-04-09
S fe3b1a883fba2114ad0a3da0ebb09a896add743880e99b2dcbc597ff31d741c8
M 6028848532ea238b485b58e2e4d9e05d
podhoarder-0.70a.tgz
Download (25.02 KiB)
Updated 2019-09-01
S 942dfb0e01f0aca1610667c684710abef50a634e6e45e4d9d03ebf5ce1c2230c
M a194e23635ba9203aa3bb962465cfa7b
podhoarder-0.60a.tgz
Download (22.08 KiB)
Updated 2019-08-12
S db1c9681a9d07f56c7d7eba1363e87849b732ff97bdee521ac5c838b60b9a11a
M 6160c7692d0d80feaaa3aecde33eaf8f
podhoarder-0.55a.tgz
Download (20.00 KiB)
Updated 2019-08-04
S f29cfb8e1082d1938bc31ea453b2d78f97307f76993ceecf8d3406689ba8fe5a
M 9959628e31bc0bbd46b0c94fab6acd4b
podhoarder-0.54a.tgz
Download (19.09 KiB)
Updated 2019-07-28
S 0c8c8810c5583cf9ed78f3773f45d381eadd1a90cbb2dd2b7b124c0432e8483a
M 1dee3783d83266525439306d8a87d0fe
podhoarder-0.53a.tgz
Download (19.09 KiB)
Updated 2019-07-25
S 7f2be35a865bbe7b84f798157e25bfcdaa1359812687e96ae2ad40c249db078d
M d67086fd51f403946a14dfdd9eba4d15
podhoarder-0.52a.tgz
Download (19.08 KiB)
Updated 2019-07-24
S c8f508d070a5064cb4395d48885a09684f1682e88d937a5cf783cf5d9291265c
M 1b553bdc53bdbb9216b8f5c9d8c59a86
podhoarder-0.45a.tgz
Download (14.05 KiB)
Updated 2019-07-21
S 8465f4a40fd431f097e0ff79499ae2de7ab6f5b98bdaecba9cbe02d8ea187f38
M 5ee87ba28299434b3dc77eb4d1662098
podhoarder-0.44a.tgz
Download (14.04 KiB)
Updated 2019-07-21
S 93220d031995db6e620d6331ed2614a19bb5b43af27ff785ab24eb64b10c3f85
M 38be26388f2fa35e4ebf964f124717f6
podhoarder-0.43a.tgz
Download (14.00 KiB)
Updated 2019-07-20
S f22ae6f09c5ffb94ac99011af6d9a04d051c79e747f175ddf18384a98e2ecf94
M 83607b7730f5651a226e513f2a2d733c
podhoarder-0.42a.tgz
Download (13.08 KiB)
Updated 2019-07-20
S 82746c42650515e99cc61d308064f10f37dc540dbe0c66e4053e874c7b4f2b8f
M c5028fcc480f261fda1cb71d0b33a92f
podhoarder-0.40a.tgz
Download (13.05 KiB)
Updated 2019-07-18
S 545b8f610f7f2b67ae72813e6d025164638767c6500da03a7c48e79d74b2c6de
M 3a94503a18a113520294b1abeda32220