Revision history for LyricFinder
1.00 2020/12/15
First version, released on an unsuspecting world.
(Converted from David Precious's Lyric::Fetcher and friends)
1.01 2021/01/15
- LyricFinder::Musixmatch - Handle non/high/wide/utf8 ascii characters
in artist and title fields, ie. accented characters - Musixmatch.com
allows these in searches and encodes them in the page URL.
- Add URI::Escape to prerequesites.
- Small Pod/doc. tweaks.
1.02 2021/05/11
- LyricFinder::Musixmatch - Fix bug that cut off first few lines
of lyrics (due to their site separating an abreviated version of the
first few lines from the rest of the lyrics). Also added a
"(Musixmatch status: ok|warning|error)" line at bottom indicating
what Musixmatch thinks of the state of the selected song's lyrics.
1.03 2021/05/13
- Added LyricFinder::Letras (https://www.letras.mus.br).
- Added optional integer 4th argument to LyricFinder->fetch() to
allow limiting # of sites tried (Default is to try all (currently
5 sites installed) until lyrics are found. Use this with the
'random' option to limit the time spent searching before giving up.
If zero or >= 5 (current # of sites), all 5 sites will be tried.
- LyricFinder::Genius: Add conversions of accented characters to
their unaccented equivalents to handle some non-English artist and
song names.
1.10 2021/05/26
- Refactor all modules to combine all common methods into a separate
internal module: LyricFinder::_Class (new) to greatly simplify and
eliminate redundant code. This should make creating new site modules
much simpler (now most if not all functions other than new(), fetch(),
and the internal function _parse() should not be required in site
modules unless it's necessary to override)!
This better follows proper object-oriented programming standards.
- LyricFinder::Genius - Fix failure to fetch lyrics due to changes in
their site (to increase obfuscation, I presume).
- LyricFinder::Musixmatch - Add "-nostatus" option to suppress the
additional "status" message appended to Musixmatch lyrics. NOTE: this
option will also be used in future to suppress any additional info.
that may be offered by other sites as well (only actual lyrics will
be returned, if specified).
- Upgrade default user-agent to Mozilla Firefox v84.
- Fixed bug preventing caching fetched lyrics if -cache directory had
the ">" (write-only) option prepended.
1.11 2021/05/26
- Doc fixes, namely "-nostatus" should be "-noextra" and the effect
(if specified) is to SUPPRESS the extra status message, if any!
Docs implied the opposite.
1.20 2021/05/29
- Added LyricFinder option "-omit" to specify submodules that you
have installed to NOT be used, ie. -omit => "AZLyrics,Genius".
This can limit which submodules will be used for "all" or "random"
searches.
- Added image_url() function to return the cover-art image on some
lyric sites (currently Genius and Musixmatch). For other sites and
songs that do not provide an image, an empty string is returned.
- LyricFinder::Letras - Verify that lyrics page returned matches the
artist / title being searched for and fail (return no lyrics) if not.
(Letras has been known to try to "guess" the song if they do not have
the exact one you're asking for)!
1.21 2021/12/01
LyricFinder::Letras - Fix - Was broken due to slight change in their
site (wasn't returning any lyrics due to "artist mismatch".
1.22 2022/07/29
LyricFinder::Genius - Remove spam from end of lyrics text recently
added by Genius. :/
1.23 2022/09/23
LyricFinder::Genius - It's Baaaaack! Remove more spam from end of
lyrics text added by Genius, so we had to rejigger our filter.
1.30 2024/01/25
- Added LyricFinder::ChartLyrics to fetch lyrics and album-covers from
api.chartlyrics.com.
- Update default user-agent to Firefox 112.0.
- LyricFinder::_Class: Allow http (in addition to https) - needed by
LyricFinder::ChartLyrics. Also pass the artist and song title
parameters back to _fetch() - also needed by LyricFinder::ChartLyrics.
1.31 2024/01/26
- LyricFinder::ChartLyrics - Polish off a cpl. rough edges.