deemix-py/deemix/utils/misc.py

87 lines
2.0 KiB
Python
Raw Normal View History

2020-02-17 16:46:18 +01:00
#!/usr/bin/env python3
import re
def getBitrateInt(txt):
txt = str(txt)
if txt in ['flac', 'lossless', '9']:
return 9
elif txt in ['mp3', '320', '3']:
return 3
elif txt in ['128', '1']:
return 1
elif txt in ['360', '360_hq', '15']:
return 15
elif txt in ['360_mq', '14']:
return 14
elif txt in ['360_lq', '13']:
return 13
else:
return None
def changeCase(string, type):
if type == "lower":
return string.lower()
elif type == "upper":
return string.upper()
elif type == "start":
string = string.split(" ")
res = []
for index, value in enumerate(string):
res.append(value[0].upper() + value[0:].lower())
res = " ".join(res)
return res
elif type == "sentence":
res = string[0].upper() + string[0:].lower()
return res
else:
return string
2020-02-17 16:46:18 +01:00
def getIDFromLink(link, type):
if '?' in link:
link = link[:link.find('?')]
2020-03-22 13:57:31 +01:00
if link.endswith("/"):
link = link[:-1]
2020-02-17 16:46:18 +01:00
if link.startswith("http") and 'open.spotify.com/' in link:
if type == "spotifyplaylist":
return link[link.find("/playlist/") + 10]
2020-02-17 16:46:18 +01:00
if type == "spotifytrack":
return link[link.find("/track/") + 7]
2020-02-17 16:46:18 +01:00
if type == "spotifyalbum":
return link[link.find("/album/") + 7]
2020-02-17 16:46:18 +01:00
elif link.startswith("spotify:"):
if type == "spotifyplaylist":
return link[link.find("playlist:") + 9]
2020-02-17 16:46:18 +01:00
if type == "spotifytrack":
return link[link.find("track:") + 6]
2020-02-17 16:46:18 +01:00
if type == "spotifyalbum":
return link[link.find("album:") + 6]
2020-02-17 16:46:18 +01:00
elif type == "artisttop":
return re.search(r"\/artist\/(\d+)\/top_track", link)[1]
2020-02-17 16:46:18 +01:00
else:
return link[link.rfind("/") + 1:]
2020-02-17 16:46:18 +01:00
def getTypeFromLink(link):
type = ''
if 'spotify' in link:
type = 'spotify'
if 'playlist' in link:
type += 'playlist'
elif 'track' in link:
type += 'track'
elif 'album' in link:
type += 'album'
elif 'deezer' in link:
if '/track' in link:
type = 'track'
elif '/playlist' in link:
type = 'playlist'
elif '/album' in link:
type = 'album'
elif re.search("\/artist\/(\d+)\/top_track", link):
2020-02-17 16:46:18 +01:00
type = 'artisttop'
elif '/artist' in link:
type = 'artist'
return type