deemix-py/deemix/utils/misc.py

106 lines
2.9 KiB
Python
Raw Normal View History

2020-02-17 15:46:18 +00:00
#!/usr/bin/env python3
import re
2020-07-29 10:03:03 +00:00
import string
def getBitrateInt(txt):
txt = str(txt).lower()
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
2020-07-29 10:03:03 +00:00
def changeCase(str, type):
if type == "lower":
2020-07-29 10:03:03 +00:00
return str.lower()
elif type == "upper":
2020-07-29 10:03:03 +00:00
return str.upper()
elif type == "start":
2020-07-29 10:03:03 +00:00
return string.capwords(str)
elif type == "sentence":
2020-07-29 10:03:03 +00:00
return str.capitalize()
else:
2020-07-29 10:03:03 +00:00
return str
2020-02-17 15:46:18 +00:00
def getIDFromLink(link, type):
if '?' in link:
link = link[:link.find('?')]
if link.endswith("/"):
link = link[:-1]
2020-02-17 15:46:18 +00:00
if link.startswith("http") and 'open.spotify.com/' in link:
if type == "spotifyplaylist":
return link[link.find("/playlist/") + 10:]
if type == "spotifytrack":
return link[link.find("/track/") + 7:]
if type == "spotifyalbum":
return link[link.find("/album/") + 7:]
elif link.startswith("spotify:"):
if type == "spotifyplaylist":
return link[link.find("playlist:") + 9:]
if type == "spotifytrack":
return link[link.find("track:") + 6:]
if type == "spotifyalbum":
return link[link.find("album:") + 6:]
elif type == "artisttop":
return re.search(r"\/artist\/(\d+)\/top_track", link)[1]
elif type == "artistdiscography":
return re.search(r"\/artist\/(\d+)\/discography", link)[1]
else:
return link[link.rfind("/") + 1:]
2020-02-17 15:46:18 +00: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):
type = 'artisttop'
elif re.search("\/artist\/(\d+)\/discography", link):
type = 'artistdiscography'
elif '/artist' in link:
type = 'artist'
return type
2020-04-07 22:19:27 +00:00
2020-06-10 18:18:17 +00:00
def uniqueArray(arr):
for iPrinc, namePrinc in enumerate(arr):
for iRest, nRest in enumerate(arr):
if iPrinc!=iRest and namePrinc.lower() in nRest.lower():
del arr[iRest]
return arr
2020-04-07 22:19:27 +00:00
def isValidLink(text):
if text.lower().startswith("http"):
if "deezer.com" in text.lower() or "open.spotify.com" in text.lower():
return True
elif text.lower().startswith("spotify:"):
return True
return False