This commit is contained in:
RemixDev 2020-03-30 11:59:19 +02:00
commit 2ddc8e42eb
3 changed files with 23 additions and 39 deletions

View File

@ -1,9 +1,8 @@
#!/usr/bin/env python3
import binascii
import hashlib
from Cryptodome.Hash import MD5
from Crypto.Cipher import Blowfish
import pyaes
from Cryptodome.Cipher import Blowfish, AES
import requests
import time
@ -169,8 +168,7 @@ class Deezer:
return tracks_array
def get_album_gw(self, alb_id):
body = self.gw_api_call('album.getData', {'alb_id': alb_id})
return body['results']
return self.gw_api_call('album.getData', {'alb_id': alb_id})['results']
def get_album_tracks_gw(self, alb_id):
tracks_array = []
@ -182,12 +180,10 @@ class Deezer:
return tracks_array
def get_artist_gw(self, art_id):
body = self.gw_api_call('deezer.pageArtist', {'art_id': art_id})
return body
return self.gw_api_call('deezer.pageArtist', {'art_id': art_id})
def get_playlist_gw(self, playlist_id):
body = self.gw_api_call('deezer.pagePlaylist', {'playlist_id': playlist_id})
return body
return self.gw_api_call('deezer.pagePlaylist', {'playlist_id': playlist_id})
def get_playlist_tracks_gw(self, playlist_id):
tracks_array = []
@ -206,54 +202,43 @@ class Deezer:
return tracks_array
def get_lyrics_gw(self, sng_id):
body = self.gw_api_call('song.getLyrics', {'sng_id': sng_id})
return body["results"]
return self.gw_api_call('song.getLyrics', {'sng_id': sng_id})["results"]
def get_user_playlist(self, user_id):
body = self.api_call('user/' + str(user_id) + '/playlists', {'limit': -1})
return body
return self.api_call('user/' + str(user_id) + '/playlists', {'limit': -1})
def get_track(self, user_id):
body = self.api_call('track/' + str(user_id))
return body
return self.api_call('track/' + str(user_id))
def get_track_by_ISRC(self, isrc):
body = self.api_call('track/isrc:' + isrc)
return body
return self.api_call('track/isrc:' + isrc)
def get_charts_top_country(self):
return self.get_user_playlist('637006841')
def get_playlist(self, playlist_id):
body = self.api_call('playlist/' + str(playlist_id))
return body
return self.api_call('playlist/' + str(playlist_id))
def get_playlist_tracks(self, playlist_id):
body = self.api_call('playlist/' + str(playlist_id) + '/tracks', {'limit': -1})
return body
return self.api_call('playlist/' + str(playlist_id) + '/tracks', {'limit': -1})
def get_album(self, album_id):
body = self.api_call('album/' + str(album_id))
return body
return self.api_call('album/' + str(album_id))
def get_album_by_UPC(self, upc):
body = self.api_call('album/upc:' + str(upc))
return self.api_call('album/upc:' + str(upc))
def get_album_tracks(self, album_id):
body = self.api_call('album/' + str(album_id) + '/tracks', {'limit': -1})
return body
return self.api_call('album/' + str(album_id) + '/tracks', {'limit': -1})
def get_artist(self, artist_id):
body = self.api_call('artist/' + str(artist_id))
return body
return self.api_call('artist/' + str(artist_id))
def get_artist_albums(self, artist_id):
body = self.api_call('artist/' + str(artist_id) + '/albums', {'limit': -1})
return body
return self.api_call('artist/' + str(artist_id) + '/albums', {'limit': -1})
def search(self, term, search_type, limit=30):
body = self.api_call('search/' + search_type, {'q': term, 'limit': limit})
return body
return self.api_call('search/' + search_type, {'q': term, 'limit': limit})
def decrypt_track(self, track_id, input, output):
response = open(input, 'rb')
@ -281,14 +266,14 @@ class Deezer:
i += 1
def _md5(self, data):
h = hashlib.new("md5")
h = MD5.new()
h.update(str.encode(data) if isinstance(data, str) else data)
return h.hexdigest()
def _ecb_crypt(self, key, data):
res = b''
for x in range(int(len(data) / 16)):
res += binascii.hexlify(pyaes.AESModeOfOperationECB(key).encrypt(data[:16]))
for _ in range(int(len(data) / 16)):
res += binascii.hexlify(AES.new(key, AES.MODE_ECB).encrypt(data[:16]))
data = data[16:]
return res

View File

@ -90,7 +90,7 @@ def generateFilepath(track, trackAPI, settings):
(not 'SINGLE_TRACK' in trackAPI or ('SINGLE_TRACK' in trackAPI and settings['createSingleFolder'])) and
(not '_EXTRA_PLAYLIST' in trackAPI or ('_EXTRA_PLAYLIST' in trackAPI and settings['savePlaylistAsCompilation']) or ('_EXTRA_PLAYLIST' in trackAPI and settings['createStructurePlaylist']))
)):
filepath += 'CD'+str(track['discNumber']) + pathSep
filepath += 'CD' + str(track['discNumber']) + pathSep
return (filepath, artistPath, coverPath, extrasPath)
@ -137,7 +137,7 @@ def settingsRegexAlbum(foldername, album, settings):
foldername = foldername.replace("%type%", fixName(album['recordType'], settings['illegalCharacterReplacer']))
foldername = foldername.replace("%upc%", album['barcode'])
foldername = foldername.replace("%label%", fixName(album['label'], settings['illegalCharacterReplacer']))
if len(album['genre'])>0:
if len(album['genre']) > 0:
foldername = foldername.replace("%genre%", fixName(album['genre'][0], settings['illegalCharacterReplacer']))
else:
foldername = foldername.replace("%genre%", "Unknown")

View File

@ -1,5 +1,4 @@
pyaes
pycryptodome
pycryptodomex
mutagen
click
requests