- Fixed an issue where some feeds would fail to merge files with an apostrophe in their paths.
- Fixed an issue where chapters taken from the beginning of a file accidentally cause the entire file to be merged into a segment.
- Fixed an issue on Python 3.9 where the app would crash because
audio_feeder.data.site.fonts
did not have an__init__.py
. - Version information is now stored in the git tag metadata (though hard-coded versions will be written to a file in all build artifacts).
- Adds a new
/version
endpoint, which displays the current version ofaudio-feeder
that is running.
Now available: rendered feeds! This adds alternate feeds for files generated from the files as they exist on disk using
ffmpeg
(the generated files go into a media cache on disk and are generated when the RSS feed is downloaded). The available types of feed are:- Single file: In single file mode, all input files are merged into one big file, with chapter information if it's available (defaulting to considering each separate file a chapter).
- Chapters: If chapter information is available, each chapter is a separate entry in the feed.
- Segmented: This assumes that you want files broken up into duration ~60 minutes, and tries to accommodate that as best as possible. The segmenting algorithm recombines the existing files along chapter or file boundaries in such a way as to minimize the overall deviation from "60 minutes per file". It is slightly biased towards longer files, so it will prefer to create 1 90 minute file rather than 2 45 minute files, etc.
A side-effect of this change is that file metadata is stored in the database now, which will take some time to add when first loading a large number of audiobooks. This also enables us to have chapter information in the RSS feeds.
Added a test server script for easy manual debugging and testing.
Changed config directory specification. You can now set the environment variable
AF_CONFIG_DIR
to specify exactly where your configuration comes from. Whether or not the current working directory is in the search path is also now context dependent.Removed
schema.yml
in favor of defining the schema types inobject_handler.py
Updated the
audio-feeder install
script to useimportlib.resources
and made sure that it can be run a second time to update the install base."Updating database" status now cleared if the database update fails.
Updated books pagination to consistently use a zero-based index.