flushed download method down from GTKUI to GenericUI
Lastfm API timeout is now optionally specified in the Lastfm constructor, and can also be specified per api call.
It turns out BeautifulSoup uses lxml when available automatically, so removing helper function bs.
Lyrics fetching timeout is now optionally specified in the Lyrics constructor, and can also be specified per fetch (of the Lyrics class).
Fixed late soup assignment in LyricsCom.
Made LyricsVIP engine slightly more robust.
Lyrics VIP has apparently hybrid-ized itself with gugalyrics, so the engine now handles that as well.
Set Lyrics timeout from GTKUI.
Improved handling of station combobox population.
Shifted fetching of album art urls into background tasks.
Shifted saving of small art custom size from update_small_art to set_small_art.
Added basic handling of apparent bugs in GObject Introspection. As a result of these bugs, album art will not always be set even though it is downloaded. Hopefully the bugs will be resolved, and I have begun investigation.
Rearranged set_*_art methods for personal preference, and fixed a failure to assign the icon when external bugs prevented assignment of the jpg.
Shifted futures work into the GenericUI class.
Improved handling of ConnectionErrors when downloading objects.
Improved translations between user-syntax stations and last.fm URIs.
Updated GLib/GError/timeout_add imports to match pygobject development (currently running with pygobject 3.7.91.1) and tidied GTKUI __init__, adding restore_settings and start_monitors.
Attempt to launch player (shell-fm) on start.
Added a minumum art size preference, and removed error handling for a pygobject bug that is fixed in pygobject 3.7.91.1.
Replaced album art togglebutton with a switch.