All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Logging is very chatty.
- Caching is hardwired, everything and doesn't update. Currently only
Metalove.purge/0
as stopgap measure - API is preliminary and missing any sort of meaningful error handling.
- ID3 tag parsing is best effort and just based on the specs and a few sample files. Needs hardening.
-
replace HTTPoison with Req
-
add application option to override req options
config :metalove, :req_options, [ plug: {Req.Test, Metalove} ]
- update dependencies
- code cleanup (adjustments to modern Elixir/Erlang)
0.3.0 - 2019-07-05
- improved
ml.chapters
: safe cover image, add option to outputmp4chaps
andjson
as well.
- depending on
chapters ~> 1.0
for chapter generation. - use
chapters
functions to parse and format normal playtime. ml.chapters
now writes to a tmp location and reports it if no output path is given. Previously the files were written next to the source file, and failed when a URL was given.
- trim whitespace around URLs in ID3 parsing, properly recognise an empty string as
nil
.
0.2.3 - 2019-06-21
- add
.iex.exs
file with convenience aliases and fancy prompt for quicker turnaround.
- do not crash due to debug string generation when encountering flags in ID3 headers (e.g.
:unsync
). - properly handle unsynchronization in ID3 tags.
- properly handle utf16 strings in ID3 tag text content. (incorrectly accidentially split utf16 characters if two zero bytes where encountered)
- translate
image/jpg
toimage/jpeg
so mimerl properly returns an extension. - make
ml.chapter
task not crash on empty chapters.
- update dependencies.
0.2.2 - 2019-05-30
- properly recognize
application/x-rss+xml
as allowed feed content-type.
0.2.1 - 2019-02-27
Metalove.version/0
to use inFetcher
headers and users of the library.
- remove use MixProject.project() so the library can be used by other projects.
- make functions properly private and clean up the generated docs.
- casing of readme in docs so the hexdoc link works.
0.2.0 - 2019-02-26
- Core functionality, find, parse and ingest podcasts from website URLs and feed URLs
ml.chapter
mix task to parse ID3 headers from mp3 files, extract the chapter information and images.ml.podcast
mix task to discover and parse a feed to display a nice human readable terminal version.