Subject: | PATCH to merge working fetcher modules + numerous fixes/updates |
Greetings again, David,
Since you merged my new/updated Lyrics::Fetcher modules (it looks like you forgot to add Musixmatch to CPAN, btw), I've had a chance to do a ton of real-world testing (by merging them into my Fauxdacious media player's lyrics plugins and streaming radio stations through it). Anyway, I've found and fixed several issues, mostly involving correctly formatting exceptional artist and song titles. One issue that you might notice is that I modified it to keep single blank lines (for paragraphs) between lyrics text (but still merge multiple ones into a single one), and also use "\r\n" for M$-Windows systems and "\n" for Linux/Unix, etc.
I've also taken the liberty to merge the 3 known-working modules together into Lyrics::Fetcher and Cache, added an agent() method, and cleaned up / unified the code, particularly the POD documentation (I didn't change the content, just added the new stuff & mostly formatting and trying to make the three modules look and read as similar as possible and follow your coding conventions). I've created a single tarball for Lyrics::Fetcher which will install it and the three working modules together in a single install for the user, and assigns the same version# to each (in this case v1.00), and updated the README & CHANGES files to reflect this. Users should still be able to install and / or use the submodules independently, and you or I can add / merge new ones. This is how my "StreamFinder" module works - it has a "fetcher" submodule for each currently supported streaming site bundled in and I have added and removed sites/submodules regularly as needed, but one can install it as one bundle, but can either use the main module or any one of the submodules as desired (you can view / get it on CPAN).
The reason for all this is is that I've found it challenging to go search CPAN to locate & determine which additional Lyrics::Fetcher-ish modules I need to install to get lyrics working, so in my instructions for installing and using Fauxdacious media player, I want to be able to tell my users that they simply need to install Lyrics::Fetcher in order for the Lyrics plugins to work for them without having to figure out which sites still work and which to install. In my "helper" script that the plugins use, I have it seemlessly try each of the "available" fetchers in random order until lyrics are found or all (currently 3) fetchers are exhausted. Also, if a user finds they need to change the user agent later on, either they (or I - in my helper script) can change it and it will apply to all the fetchers.
Anyway, please review what I've done and let me know what you think, any other ideas, suggestions, or fixes, or just want to use it for your next version. ;)
Also, you can close out the prev. bug#
If you're interested in how I'm using this now in Fauxdacous, please see: https://github.com/wildstar84/fauxdacious-plugins/commit/f33d6b88ed52b302921d6ba6df4ff88a443ce3db where I mentioned you and Lyrics::Fetcher, https://wildstar84.github.io/fauxdacious/FAQ.htm#37 or the main site: https://wildstar84.wordpress.com/fauxdacious/ Also see what led to this here!: https://redmine.audacious-media-player.org/boards/1/topics/2389 Oh, and here's my "helper" script that calls your modules from within the media player: https://github.com/wildstar84/fauxdacious/blob/master/contrib/FauxdaciousLyricsHelper.pl
Thanks again for doing the heavy lifting creating this handy set of modules!
Jim Turner
Subject: | Lyrics-Fetcher-1.00.tar.gz |
Message body not shown because it is not plain text.