Releases: johnwmillr/LyricsGenius
Releases · johnwmillr/LyricsGenius
3.0.0 - Albums, searching tags, new names, ...
LyricsGenius 3.0.0 is now available.
New
- All requests now go through the
Sender
object. This provides features such as retriesgenius.retries
and handling HTTP and timeout errors. For more info have a look at the guide about request error handling. - Added
OAuth2
class to help with OAuth2 authentication. - Added
PublicAPI
class to allow accessing methods of the public API (genius.com/api). Check this page for a list of available methods. - Added the
Album
type and thegenius.search_album()
method. - Added the
genius.tag()
method to get songs by tag. - All API endpoints are now supported (e.g.
upvote_annotation
). - New additions to the docs.
Changed
GENIUS_CLIENT_ACCESS_TOKEN
env var has been renamed toGENIUS_ACCESS_TOKEN
.genius.client_access_token
has been renamed togenius.access_token
.genius.search_song()
will also acceptsong_id
.- Lyrics won't be fetched for instrumental songs and their lyrics will be set to
""
. You can check to see if a song is instrumental usingSong.instrumental
. - Renamed all interface methods to remove redundant
get_
(genius.get_song
is nowgenius.song
). - Renamed the lyrics method to
genius.lyrics()
to allow use by users. It accepts song URLs and song IDs. - Reformatted the types. Some attributes won't be available anymore. More info on the types page.
save_lyrics()
will save songs withutf8
encoding whenextension='txt'
.- Using
Genius()
will check for the env varGENIUS_ACCESS_TOKEN
.
Other (CI, etc)
- Bumped
Sphinx
to 3.3.0
2.0.1 - Improvement in finding the lyrics
- Switched to using a regular expression instead of iterating BeautifulSoup's tags manually. The regular expression has better performance.
- Moved getting
new_div
insideelse
body to avoid gettingnew_div
ifold_div
is present.
PR: #154
2.0.0 - Online docs, tests for code styling and a fix for getting lyrics
- Added online docs available on Read the Docs
- Added tests for code styling which use
tox
andflake8
. The docs codes also have their own tests. - Fixed finding instances where the lyrics section on the new song page wasn't found (the
new_div
).
PR: #153
v1.0.0 release after major cleanup and refactoring
This release is a result of the substantial cleanup work in PR #69.
Improvements:
- Makes substantial clean-ups to API and Genius classes within the
api.py
- Uses the proper exception for catching Timeouts
- Removes drifting code blocks from
search_song
- Adds support for
search_genius_web
, the search endpoint used on Genius.com - Overhauls
search_artist
to use thesearch_genius_web
endpoint, improving reliability and robustness of search results - Improves the while loop criteria for
search_artist
- Updates README style
- Minor clean-ups to the
song.py
andartist.py
files (additional work needed)
Additionally, PR #70 introduced the correct Python approach for handling input from the command line.
Have at it!
Clean-ups and updates to lyrics searching
Changes:
- User-Agent is now "LyricsGenius"
- Removing section headers in lyrics is optional now
- Add option to heuristically remove non-songs (tracklists, credits, etc.)
- Add the _clean_str() method
- Add a couple tests
- General bug fixes and clean-ups
Make search case-insensitive
At some point I must have re-introduced a bug that made searching for songs case sensitive. This release fixes that bug. This release also switches the PyPI README file from markdown
to RST
because PyPI requires RST
for proper formatting.
Fixe Unicode bugs (and remove Python 2.x support)
First tag for distribution to PyPI
Following Peter Downs's tutorial for publishing a project on PyPI. So this tag gets the package ready for that process.