#!/usr/bin/env python3
import os.path as path
from os import mkdir, rmdir
import json

import deemix.utils.localpaths as localpaths

settings = {}
defaultSettings = {}

def initSettings():
	global settings
	global defaultSettings
	currentFolder = path.abspath(path.dirname(__file__))
	configFolder = localpaths.getConfigFolder()
	if not path.isdir(configFolder):
		mkdir(configFolder)
	with open(path.join(currentFolder, 'default.json'), 'r') as d:
		defaultSettings = json.load(d)
	if not path.isfile(path.join(configFolder, 'config.json')):
		with open(path.join(configFolder, 'config.json'), 'w') as f:
			json.dump(defaultSettings, f, indent=2)
	with open(path.join(configFolder, 'config.json'), 'r') as configFile:
		settings = json.load(configFile)
	settingsCheck()
	if settings['downloadLocation'] == "":
		settings['downloadLocation'] = path.join(localpaths.getHomeFolder(), 'deemix Music')
		saveSettings(settings)
	if not path.isdir(settings['downloadLocation']):
		mkdir(settings['downloadLocation'])
	return settings

def getSettings():
	global settings
	return settings

def saveSettings(newSettings):
	global settings
	settings = newSettings
	with open(path.join(localpaths.getConfigFolder(), 'config.json'), 'w') as configFile:
		json.dump(settings, configFile, indent=2)
	return True

def settingsCheck():
	global settings
	global defaultSettings
	changes = 0
	for x in defaultSettings:
		if not x in settings or type(settings[x]) != type(defaultSettings[x]):
			settings[x] = defaultSettings[x]
			changes+=1
	for x in defaultSettings['tags']:
		if not x in settings['tags'] or type(settings['tags'][x]) != type(defaultSettings['tags'][x]):
			settings['tags'][x] = defaultSettings['tags'][x]
			changes+=1
	if changes > 0:
		saveSettings(settings)