Started working on the UI
This commit is contained in:
parent
e0cc901a9d
commit
6daf0f1a1c
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import click
|
import click
|
||||||
import deemix.app.main as app
|
import deemix.app.cli as app
|
||||||
from deemix.app.settings import initSettings
|
from deemix.app.settings import initSettings
|
||||||
|
|
||||||
@click.command()
|
@click.command()
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
from deemix.api.deezer import Deezer
|
||||||
|
import deemix.utils.localpaths as localpaths
|
||||||
|
from deemix.utils.misc import getIDFromLink, getTypeFromLink, getBitrateInt
|
||||||
|
from deemix.app.downloader import download_track, download_album, download_playlist, download_artist, download_spotifytrack, download_spotifyalbum
|
||||||
|
from os import system as execute
|
||||||
|
import os.path as path
|
||||||
|
from os import mkdir
|
||||||
|
|
||||||
|
dz = Deezer()
|
||||||
|
|
||||||
|
def requestValidArl():
|
||||||
|
while True:
|
||||||
|
arl = input("Paste here your arl:")
|
||||||
|
if dz.login_via_arl(arl):
|
||||||
|
break
|
||||||
|
return arl
|
||||||
|
|
||||||
|
def login():
|
||||||
|
configFolder = localpaths.getConfigFolder()
|
||||||
|
if not path.isdir(configFolder):
|
||||||
|
mkdir(configFolder)
|
||||||
|
if path.isfile(path.join(configFolder, '.arl')):
|
||||||
|
with open(path.join(configFolder, '.arl'), 'r') as f:
|
||||||
|
arl = f.read()
|
||||||
|
if not dz.login_via_arl(arl):
|
||||||
|
arl = requestValidArl()
|
||||||
|
else:
|
||||||
|
arl = requestValidArl()
|
||||||
|
with open(path.join(configFolder, '.arl'), 'w') as f:
|
||||||
|
f.write(arl)
|
||||||
|
|
||||||
|
def downloadLink(url, settings, bitrate=None):
|
||||||
|
forcedBitrate = getBitrateInt(bitrate)
|
||||||
|
type = getTypeFromLink(url)
|
||||||
|
id = getIDFromLink(url, type)
|
||||||
|
folder = settings['downloadLocation']
|
||||||
|
if type == None or id == None:
|
||||||
|
print("URL not recognized")
|
||||||
|
if type == "track":
|
||||||
|
folder = download_track(dz, id, settings, forcedBitrate)
|
||||||
|
elif type == "album":
|
||||||
|
folder = download_album(dz, id, settings, forcedBitrate)
|
||||||
|
elif type == "playlist":
|
||||||
|
folder = download_playlist(dz, id, settings, forcedBitrate)
|
||||||
|
elif type == "artist":
|
||||||
|
download_artist(dz, id, settings, forcedBitrate)
|
||||||
|
elif type == "spotifytrack":
|
||||||
|
folder = download_spotifytrack(dz, id, settings, forcedBitrate)
|
||||||
|
elif type == "spotifyalbum":
|
||||||
|
folder = download_spotifyalbum(dz, id, settings, forcedBitrate)
|
||||||
|
else:
|
||||||
|
print("URL not supported yet")
|
||||||
|
return None
|
||||||
|
if settings['executeCommand'] != "":
|
||||||
|
execute(settings['executeCommand'].replace("%folder%", folder))
|
|
@ -1,13 +1,14 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
from deemix.api.deezer import Deezer
|
from deemix.api.deezer import Deezer
|
||||||
import deemix.utils.localpaths as localpaths
|
import deemix.utils.localpaths as localpaths
|
||||||
from deemix.utils.misc import getIDFromLink, getTypeFromLink, getBitrateInt
|
from deemix.utils.misc import getIDFromLink, getTypeFromLink, getBitrateInt, isValidLink
|
||||||
from deemix.app.downloader import download_track, download_album, download_playlist, download_artist, download_spotifytrack, download_spotifyalbum
|
from deemix.app.downloader import download_track, download_album, download_playlist, download_artist, download_spotifytrack, download_spotifyalbum
|
||||||
|
from deemix.app.settings import initSettings
|
||||||
from os import system as execute
|
from os import system as execute
|
||||||
import os.path as path
|
import os.path as path
|
||||||
from os import mkdir, rmdir
|
from os import mkdir, rmdir
|
||||||
|
|
||||||
dz = Deezer()
|
dz = Deezer()
|
||||||
|
settings = {}
|
||||||
|
|
||||||
def requestValidArl():
|
def requestValidArl():
|
||||||
while True:
|
while True:
|
||||||
|
@ -30,8 +31,22 @@ def login():
|
||||||
with open(path.join(configFolder, '.arl'), 'w') as f:
|
with open(path.join(configFolder, '.arl'), 'w') as f:
|
||||||
f.write(arl)
|
f.write(arl)
|
||||||
|
|
||||||
|
def initialize():
|
||||||
|
global settings
|
||||||
|
settings = initSettings()
|
||||||
|
login()
|
||||||
|
return True
|
||||||
|
|
||||||
def downloadLink(url, settings, bitrate=None):
|
def search(term):
|
||||||
|
if isValidLink(term):
|
||||||
|
downloadLink(term)
|
||||||
|
return {"message": "Downloaded!"}
|
||||||
|
result = dz.search(term, "track")
|
||||||
|
print(result)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def downloadLink(url, bitrate=None):
|
||||||
|
global settings
|
||||||
forcedBitrate = getBitrateInt(bitrate)
|
forcedBitrate = getBitrateInt(bitrate)
|
||||||
type = getTypeFromLink(url)
|
type = getTypeFromLink(url)
|
||||||
id = getIDFromLink(url, type)
|
id = getIDFromLink(url, type)
|
||||||
|
|
|
@ -84,3 +84,11 @@ def getTypeFromLink(link):
|
||||||
elif '/artist' in link:
|
elif '/artist' in link:
|
||||||
type = 'artist'
|
type = 'artist'
|
||||||
return type
|
return type
|
||||||
|
|
||||||
|
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
|
||||||
|
|
Loading…
Reference in New Issue