Made -p cli argument create only that folder and not the default one
Moved default download folder inside music Check XDG first, then fallback to untranslated 'Music' folder This fixes #82
This commit is contained in:
parent
97f9258de9
commit
7fd0bfaa07
|
@ -4,8 +4,8 @@ from deemix.app.queuemanager import QueueManager
|
|||
from deemix.app.spotifyhelper import SpotifyHelper
|
||||
|
||||
class deemix:
|
||||
def __init__(self, configFolder=None):
|
||||
self.set = Settings(configFolder)
|
||||
def __init__(self, configFolder=None, overwriteDownloadFolder=None):
|
||||
self.set = Settings(configFolder, overwriteDownloadFolder=overwriteDownloadFolder)
|
||||
self.dz = Deezer()
|
||||
self.dz.set_accept_language(self.set.settings.get('tagsLanguage'))
|
||||
self.sp = SpotifyHelper(configFolder)
|
||||
|
|
|
@ -6,10 +6,8 @@ from deemix.utils import checkFolder
|
|||
|
||||
class cli(deemix):
|
||||
def __init__(self, downloadpath, configFolder=None):
|
||||
super().__init__(configFolder)
|
||||
super().__init__(configFolder, overwriteDownloadFolder=downloadpath)
|
||||
if downloadpath:
|
||||
if checkFolder(downloadpath):
|
||||
self.set.settings['downloadLocation'] = str(downloadpath)
|
||||
print("Using folder: "+self.set.settings['downloadLocation'])
|
||||
|
||||
def downloadLink(self, url, bitrate=None):
|
||||
|
|
|
@ -47,7 +47,7 @@ class FeaturesOption():
|
|||
"""Move to track title"""
|
||||
|
||||
DEFAULT_SETTINGS = {
|
||||
"downloadLocation": str(localpaths.getHomeFolder() / 'deemix Music'),
|
||||
"downloadLocation": str(localpaths.getMusicFolder()),
|
||||
"tracknameTemplate": "%artist% - %title%",
|
||||
"albumTracknameTemplate": "%tracknumber% - %title%",
|
||||
"playlistTracknameTemplate": "%position% - %artist% - %title%",
|
||||
|
@ -128,7 +128,7 @@ DEFAULT_SETTINGS = {
|
|||
}
|
||||
|
||||
class Settings:
|
||||
def __init__(self, configFolder=None):
|
||||
def __init__(self, configFolder=None, overwriteDownloadFolder=None):
|
||||
self.settings = {}
|
||||
self.configFolder = Path(configFolder or localpaths.getConfigFolder())
|
||||
|
||||
|
@ -144,11 +144,27 @@ class Settings:
|
|||
with open(self.configFolder / 'config.json', 'r') as configFile:
|
||||
self.settings = json.load(configFile)
|
||||
|
||||
# Make sure the download path exsits
|
||||
if not checkFolder(self.settings['downloadLocation']) and self.settings['downloadLocation'] != "":
|
||||
self.settings['downloadLocation'] = ""
|
||||
# Check for overwriteDownloadFolder
|
||||
# This prevents the creation of the original download folder when
|
||||
# using overwriteDownloadFolder
|
||||
originalDownloadFolder = self.settings['downloadLocation']
|
||||
if overwriteDownloadFolder:
|
||||
overwriteDownloadFolder = str(overwriteDownloadFolder)
|
||||
self.settings['downloadLocation'] = overwriteDownloadFolder
|
||||
|
||||
self.settingsCheck()
|
||||
# Make sure the download path exsits, fallback to default
|
||||
invalidDownloadFolder = False
|
||||
if self.settings['downloadLocation'] == "" or not checkFolder(self.settings['downloadLocation']):
|
||||
self.settings['downloadLocation'] = DEFAULT_SETTINGS['downloadLocation']
|
||||
originalDownloadFolder = self.settings['downloadLocation']
|
||||
invalidDownloadFolder = True
|
||||
|
||||
# Check the settings and save them if something changed
|
||||
if self.settingsCheck() > 0 or invalidDownloadFolder:
|
||||
makedirs(self.settings['downloadLocation'], exist_ok=True)
|
||||
self.settings['downloadLocation'] = originalDownloadFolder # Prevents the saving of the overwritten path
|
||||
self.saveSettings()
|
||||
self.settings['downloadLocation'] = overwriteDownloadFolder or originalDownloadFolder # Restores the correct path
|
||||
|
||||
# LOGFILES
|
||||
|
||||
|
@ -196,11 +212,9 @@ class Settings:
|
|||
changes += 1
|
||||
if self.settings['downloadLocation'] == "":
|
||||
self.settings['downloadLocation'] = DEFAULT_SETTINGS['downloadLocation']
|
||||
makedirs(self.settings['downloadLocation'], exist_ok=True)
|
||||
changes += 1
|
||||
for template in ['tracknameTemplate', 'albumTracknameTemplate', 'playlistTracknameTemplate', 'playlistNameTemplate', 'artistNameTemplate', 'albumNameTemplate', 'playlistFilenameTemplate', 'coverImageTemplate', 'artistImageTemplate', 'paddingSize']:
|
||||
if self.settings[template] == "":
|
||||
self.settings[template] = DEFAULT_SETTINGS[template]
|
||||
changes += 1
|
||||
if changes > 0:
|
||||
self.saveSettings()
|
||||
return changes
|
||||
|
|
|
@ -1,21 +1,38 @@
|
|||
from pathlib import Path
|
||||
import sys
|
||||
from os import getenv
|
||||
import os
|
||||
|
||||
userdata = ""
|
||||
homedata = Path.home()
|
||||
userdata = ""
|
||||
musicdata = ""
|
||||
|
||||
if getenv("APPDATA"):
|
||||
userdata = Path(getenv("APPDATA")) / "deemix"
|
||||
|
||||
if os.getenv("XDG_CONFIG_HOME"):
|
||||
userdata = Path(os.getenv("XDG_CONFIG_HOME")) / 'deemix'
|
||||
elif os.getenv("APPDATA"):
|
||||
userdata = Path(os.getenv("APPDATA")) / "deemix"
|
||||
elif sys.platform.startswith('darwin'):
|
||||
userdata = homedata / 'Library' / 'Application Support' / 'deemix'
|
||||
elif getenv("XDG_CONFIG_HOME"):
|
||||
userdata = Path(getenv("XDG_CONFIG_HOME")) / 'deemix'
|
||||
else:
|
||||
userdata = homedata / '.config' / 'deemix'
|
||||
|
||||
if os.getenv("XDG_MUSIC_DIR"):
|
||||
musicdata = Path(os.getenv("XDG_MUSIC_DIR")) / "deemix Music"
|
||||
elif os.name == 'nt':
|
||||
import winreg
|
||||
sub_key = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders'
|
||||
music_guid = '{4BD8D571-6D19-48D3-BE97-422220080E43}'
|
||||
with winreg.OpenKey(winreg.HKEY_CURRENT_USER, sub_key) as key:
|
||||
location = winreg.QueryValueEx(key, music_guid)[0]
|
||||
musicdata = Path(location) / "deemix Music"
|
||||
else:
|
||||
musicdata = homedata / "Music" / "deemix Music"
|
||||
|
||||
def getHomeFolder():
|
||||
return homedata
|
||||
|
||||
def getConfigFolder():
|
||||
return userdata
|
||||
|
||||
def getMusicFolder():
|
||||
return musicdata
|
||||
|
|
Loading…
Reference in New Issue