Added folderCheck for download folder
folderCheck checks if the folder exsists and it's writable
This commit is contained in:
		@ -1,3 +1,3 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
__version__ = "1.5.12"
 | 
			
		||||
__version__ = "1.5.13"
 | 
			
		||||
 | 
			
		||||
@ -2,13 +2,14 @@ from pathlib import Path
 | 
			
		||||
from os import makedirs
 | 
			
		||||
 | 
			
		||||
from deemix.app import deemix
 | 
			
		||||
from deemix.utils import checkFolder
 | 
			
		||||
 | 
			
		||||
class cli(deemix):
 | 
			
		||||
    def __init__(self, downloadpath, configFolder=None):
 | 
			
		||||
        super().__init__(configFolder)
 | 
			
		||||
        if downloadpath:
 | 
			
		||||
            if checkFolder(downloadpath):
 | 
			
		||||
                self.set.settings['downloadLocation'] = str(downloadpath)
 | 
			
		||||
            makedirs(downloadpath, exist_ok=True)
 | 
			
		||||
            print("Using folder: "+self.set.settings['downloadLocation'])
 | 
			
		||||
 | 
			
		||||
    def downloadLink(self, url, bitrate=None):
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,7 @@ from pathlib import Path
 | 
			
		||||
from os import makedirs, listdir
 | 
			
		||||
from deemix import __version__ as deemixVersion
 | 
			
		||||
from deemix.api.deezer import TrackFormats
 | 
			
		||||
from deemix.utils import checkFolder
 | 
			
		||||
import logging
 | 
			
		||||
import datetime
 | 
			
		||||
import platform
 | 
			
		||||
@ -142,10 +143,11 @@ class Settings:
 | 
			
		||||
        with open(self.configFolder / 'config.json', 'r') as configFile:
 | 
			
		||||
            self.settings = json.load(configFile)
 | 
			
		||||
 | 
			
		||||
        self.settingsCheck()
 | 
			
		||||
 | 
			
		||||
        # Make sure the download path exsits
 | 
			
		||||
        makedirs(self.settings['downloadLocation'], exist_ok=True)
 | 
			
		||||
        if not checkFolder(self.settings['downloadLocation']) and self.settings['downloadLocation'] != "":
 | 
			
		||||
            self.settings['downloadLocation'] = ""
 | 
			
		||||
 | 
			
		||||
        self.settingsCheck()
 | 
			
		||||
 | 
			
		||||
        # LOGFILES
 | 
			
		||||
 | 
			
		||||
@ -173,6 +175,9 @@ class Settings:
 | 
			
		||||
    def saveSettings(self, newSettings=None, dz=None):
 | 
			
		||||
        if newSettings:
 | 
			
		||||
            if dz and newSettings.get('tagsLanguage') != self.settings.get('tagsLanguage'): dz.set_accept_language(newSettings.get('tagsLanguage'))
 | 
			
		||||
            if newSettings.get('downloadLocation') != self.settings.get('downloadLocation') and not checkFolder(newSettings.get('downloadLocation')):
 | 
			
		||||
                    newSettings['downloadLocation'] = DEFAULT_SETTINGS['downloadLocation']
 | 
			
		||||
                    makedirs(newSettings['downloadLocation'], exist_ok=True)
 | 
			
		||||
            self.settings = newSettings
 | 
			
		||||
        with open(self.configFolder / 'config.json', 'w') as configFile:
 | 
			
		||||
            json.dump(self.settings, configFile, indent=2)
 | 
			
		||||
@ -189,7 +194,8 @@ class Settings:
 | 
			
		||||
                self.settings['tags'][set] = DEFAULT_SETTINGS['tags'][set]
 | 
			
		||||
                changes += 1
 | 
			
		||||
        if self.settings['downloadLocation'] == "":
 | 
			
		||||
            self.settings['downloadLocation'] = str(localpaths.getHomeFolder() / 'deemix Music')
 | 
			
		||||
            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] == "":
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
import re
 | 
			
		||||
import string
 | 
			
		||||
from deemix.api.deezer import TrackFormats
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
def generateReplayGainString(trackGain):
 | 
			
		||||
    return "{0:.2f} dB".format((float(trackGain) + 18.4) * -1)
 | 
			
		||||
@ -120,3 +121,11 @@ def uniqueArray(arr):
 | 
			
		||||
            if iPrinc!=iRest and namePrinc.lower() in nRest.lower():
 | 
			
		||||
                del arr[iRest]
 | 
			
		||||
    return arr
 | 
			
		||||
 | 
			
		||||
def checkFolder(folder):
 | 
			
		||||
    try:
 | 
			
		||||
        os.makedirs(folder, exist_ok=True)
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(str(e))
 | 
			
		||||
        return False
 | 
			
		||||
    return os.access(folder, os.W_OK)
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user