add the ability to pre-process audio playlists
* this is actually a really good feature
* it's also designed in a way that's very easy to extend,
which would enable pre-processing more URL patterns
- for each URL pattern interceptor:
* asked whether it should apply to a requested URL
* if so, it implements a line parser that extracts URLs from text
* currently, two URL pattern interceptors are implemented
- .m3u audio playlists
- .html files
* this includes URLs that imply a directory index
will be returned from the web server in .html format
* current implementation only parses audio files from <a> tags
- includes logic to dedupe duplicate audio files
* when the same audio file is available in multiple formats,
applies a ranking of format preference and only returns
one URL for the audio file in the most favorable format
notes:
======
* this feature had previously been implemented in the javascript SPA
- depended upon a CORS proxy to bypass browser security rules
to be able to download the playlist URL (ex: m3u, html)
* now this feature is available to all clients automagically,
and there are no cross-origin concerns
* I left the javascript implementation in the SPA for reference sake,
but all relevent code has been commented out