Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def dwCover(SONG_INFO, index):
"""Download the song cover img from itunes."""
# Try to download the cover art as cover.jpg in temp
try:
imgURL = SONG_INFO[index].artwork_url_100
try:
# Try to get 512 cover art
imgURL = imgURL.replace('100x100', '2048x2048')
except Exception:
pass
r = requests.get(imgURL)
with open(defaults.DEFAULT.COVER_IMG, 'wb') as f:
f.write(r.content)
return True
except TimeoutError:
prepend.PREPEND(2)
print('Could not get album cover. Are you connected to internet?\a')
return False
else:
return False
def cleanup(TRACK_INFO, index):
"""Move the song from temp to $HOME/Music dir."""
try:
SONG = glob.glob(os.path.join(defaults.DEFAULT.SONG_TEMP_DIR, '*mp3'))
SONG = SONG[0]
SONG_NAME = os.path.basename(SONG)
DIR = defaults.DEFAULT.SONG_DIR
# Check if DIR has $ in its path
# If it does then make those folders accordingly
if '$' in DIR:
DIR, name = make_custom_dir(DIR, TRACK_INFO[index])
if name is not None:
os.rename(SONG, name + '.mp3')
SONG_NAME = name + '.mp3'
SONG = SONG_NAME
shutil.move(SONG, os.path.join(DIR, SONG_NAME))
return DIR
except Exception as e:
return e
def setData(SONG_INFO, is_quiet, song_path, choice=None):
"""Add the metadata to the song."""
# A variable to see if cover image was added.
IS_IMG_ADDED = False
try:
# If more than one choice then call getChoice
if len(SONG_INFO) > 1:
if not is_quiet:
option = getChoice(SONG_INFO, 'metadata')
elif choice is not None and choice in range(1,len(SONG_INFO)):
option = choice
else:
option = 0
SONG_PATH = os.path.join(defaults.DEFAULT.SONG_TEMP_DIR,
song_path)
audio = MP3(SONG_PATH, ID3=ID3)
data = ID3(SONG_PATH)
# Download the cover image, if failed, pass
if dwCover(SONG_INFO, option):
imagedata = open(defaults.DEFAULT.COVER_IMG, 'rb').read()
data.add(APIC(3, 'image/jpeg', 3, 'Front cover', imagedata))
# REmove the image
os.remove(defaults.DEFAULT.COVER_IMG)
IS_IMG_ADDED = True
# If tags are not present then add them
try:
audio.add_tags()