#Also, any time the existence of a song on a remote is proven (eg. the remote offers an album list for a band, which in turn offers a track list, and this needs to be parsed to get the correct URL), that will be indexed locally for future reference, in the indexcache config path.
#Runs through sources and tries to locate the song and fetch lyrics.
#Will search all local indices first, and offer which repository to fetch from if multiple found
#But will *not* poll all remote repositories; if not found in local indices, will begin polling sources in whatever order the underlying (他框)walk decides, and will stop as soon as an exact match is found.
#If a partial match is found, will offer to user whether it's close enough.
ifnotsources:
print('No sources configured! Failed to fetch lyrics from remote!')
#TODO
lyrics=''
forsourceinsources:
try:lyrics=source.lyrics(song,band)
exceptException:raise# This should actually catch errors later