From 0818dccac44529aa7fee465704e4cb2ecb276a99 Mon Sep 17 00:00:00 2001 From: Krateng Date: Fri, 25 Dec 2020 04:52:05 +0100 Subject: [PATCH] Fixed most references to user files --- maloja/apis/native_v1.py | 6 +++--- maloja/cleanup.py | 6 +++--- maloja/database.py | 20 ++++++++++---------- maloja/globalconf.py | 10 +++++----- maloja/proccontrol/setup.py | 6 +++--- maloja/proccontrol/tasks/__init__.py | 7 +++---- maloja/proccontrol/tasks/backup.py | 2 +- maloja/proccontrol/tasks/fixexisting.py | 17 ++++++++--------- maloja/server.py | 8 ++++---- maloja/utilities/images.py | 2 +- 10 files changed, 41 insertions(+), 43 deletions(-) diff --git a/maloja/apis/native_v1.py b/maloja/apis/native_v1.py index 35c7915..95350e9 100644 --- a/maloja/apis/native_v1.py +++ b/maloja/apis/native_v1.py @@ -246,10 +246,10 @@ def import_rulemodule(**keys): if remove: log("Deactivating predefined rulefile " + filename) - os.remove(datadir("rules/" + filename + ".tsv")) + os.remove(data_dir['rules'](filename + ".tsv")) else: log("Importing predefined rulefile " + filename) - os.symlink(datadir("rules/predefined/" + filename + ".tsv"),datadir("rules/" + filename + ".tsv")) + os.symlink(data_dir['rules']("predefined/" + filename + ".tsv"),data_dir['rules'](filename + ".tsv")) @@ -320,5 +320,5 @@ def add_picture(b64,artist:Multi=[],title=None): @api.post("newrule") @authenticated_api def newrule(**keys): - tsv.add_entry(datadir("rules/webmade.tsv"),[k for k in keys]) + tsv.add_entry(data_dir['rules']("webmade.tsv"),[k for k in keys]) #addEntry("rules/webmade.tsv",[k for k in keys]) diff --git a/maloja/cleanup.py b/maloja/cleanup.py index 72fef65..aa146f1 100644 --- a/maloja/cleanup.py +++ b/maloja/cleanup.py @@ -1,7 +1,7 @@ import re #from . import utilities from doreah import tsv, settings -from .globalconf import datadir +from .globalconf import data_dir import pkg_resources # need to do this as a class so it can retain loaded settings from file @@ -13,7 +13,7 @@ class CleanerAgent: self.updateRules() def updateRules(self): - raw = tsv.parse_all(datadir("rules"),"string","string","string","string") + raw = tsv.parse_all(data_dir["rules"](),"string","string","string","string") self.rules_belongtogether = [b for [a,b,c,d] in raw if a=="belongtogether"] self.rules_notanartist = [b for [a,b,c,d] in raw if a=="notanartist"] self.rules_replacetitle = {b.lower():c for [a,b,c,d] in raw if a=="replacetitle"} @@ -175,7 +175,7 @@ class CollectorAgent: # rules_include dict: credited artist -> all real artists def updateRules(self): - raw = tsv.parse_all(datadir("rules"),"string","string","string") + raw = tsv.parse_all(data_dir["rules"](),"string","string","string") self.rules_countas = {b:c for [a,b,c] in raw if a=="countas"} self.rules_countas_id = {} self.rules_include = {} #Twice the memory, double the performance! diff --git a/maloja/database.py b/maloja/database.py index c6fa22b..84758c6 100644 --- a/maloja/database.py +++ b/maloja/database.py @@ -10,7 +10,7 @@ from .malojauri import uri_to_internal, internal_to_uri, compose_querystring from .thirdparty import proxy_scrobble_all from .__pkginfo__ import version -from .globalconf import datadir +from .globalconf import data_dir # doreah toolkit from doreah.logging import log @@ -83,7 +83,7 @@ lastsync = 0 try: - with open(datadir("known_servers.yml"),"r") as f: + with open(data_dir['state']("known_servers.yml"),"r") as f: KNOWN_SERVERS = set(yaml.safe_load(f)) except: KNOWN_SERVERS = set() @@ -91,7 +91,7 @@ except: def add_known_server(url): KNOWN_SERVERS.add(url) - with open(datadir("known_servers.yml"),"w") as f: + with open(data_dir['state']("known_servers.yml"),"w") as f: f.write(yaml.dump(list(KNOWN_SERVERS))) @@ -99,9 +99,9 @@ def add_known_server(url): ### symmetric keys are fine for now since we hopefully use HTTPS def loadAPIkeys(): global clients - tsv.create(datadir("clients/authenticated_machines.tsv")) + tsv.create(data_dir['clients']("authenticated_machines.tsv")) #createTSV("clients/authenticated_machines.tsv") - clients = tsv.parse(datadir("clients/authenticated_machines.tsv"),"string","string") + clients = tsv.parse(data_dir['clients']("authenticated_machines.tsv"),"string","string") #clients = parseTSV("clients/authenticated_machines.tsv","string","string") log("Authenticated Machines: " + ", ".join([m[1] for m in clients])) @@ -690,7 +690,7 @@ def get_predefined_rulesets(): rulesets = [] - for f in os.listdir(datadir("rules/predefined")): + for f in os.listdir(data_dir['rules']("predefined")): if f.endswith(".tsv"): rawf = f.replace(".tsv","") @@ -704,7 +704,7 @@ def get_predefined_rulesets(): if not "_" in rawf: continue try: - with open(datadir("rules/predefined",f)) as tsvfile: + with open(data_dir['rules']("predefined",f)) as tsvfile: line1 = tsvfile.readline() line2 = tsvfile.readline() @@ -721,7 +721,7 @@ def get_predefined_rulesets(): ruleset = {"file":rawf} rulesets.append(ruleset) - if os.path.exists(datadir("rules",f)): + if os.path.exists(data_dir['rules'](f)): ruleset["active"] = True else: ruleset["active"] = False @@ -774,7 +774,7 @@ def build_db(): # parse files - db = tsv.parse_all(datadir("scrobbles"),"int","string","string",comments=False) + db = tsv.parse_all(data_dir['scrobbles'](),"int","string","string",comments=False) scrobblenum = len(db) log(f"Found {scrobblenum} scrobbles...") @@ -864,7 +864,7 @@ def sync(): #log("Sorted into months",module="debug") for e in entries: - tsv.add_entries(datadir("scrobbles/" + e + ".tsv"),entries[e],comments=False) + tsv.add_entries(data_dir['scrobbles'](e + ".tsv"),entries[e],comments=False) #addEntries("scrobbles/" + e + ".tsv",entries[e],escape=False) #log("Written files",module="debug") diff --git a/maloja/globalconf.py b/maloja/globalconf.py index ffa0def..8e15918 100644 --- a/maloja/globalconf.py +++ b/maloja/globalconf.py @@ -152,19 +152,19 @@ from doreah import config config( settings={ "files":[ - datadir("settings/default.ini"), - datadir("settings/settings.ini") + data_dir['settings']("default.ini"), + data_dir['settings']("settings.ini") ], "environ_prefix":"MALOJA_" }, caching={ - "folder": datadir("cache") + "folder": data_dir['cache']() }, auth={ "multiuser":False, "cookieprefix":"maloja", "stylesheets":["/style.css"], - "dbfile":datadir("auth/auth.ddb") + "dbfile":data_dir['auth']("auth.ddb") } ) @@ -173,7 +173,7 @@ settingsconfig._readpreconfig() config( logging={ - "logfolder": datadir("logs") if get_settings("LOGGING") else None + "logfolder": data_dir['logs']() if get_settings("LOGGING") else None }, regular={ "autostart": False, diff --git a/maloja/proccontrol/setup.py b/maloja/proccontrol/setup.py index 7f1343c..5cf223e 100644 --- a/maloja/proccontrol/setup.py +++ b/maloja/proccontrol/setup.py @@ -5,7 +5,7 @@ from doreah.io import col, ask, prompt from doreah import auth import os -from ..globalconf import datadir +from ..globalconf import data_dir # EXTERNAL API KEYS @@ -50,14 +50,14 @@ def setup(): # OWN API KEY - if os.path.exists(datadir("clients/authenticated_machines.tsv")): + if os.path.exists(data_dir['clients']("authenticated_machines.tsv")): pass else: answer = ask("Do you want to set up a key to enable scrobbling? Your scrobble extension needs that key so that only you can scrobble tracks to your database.",default=True,skip=SKIP) if answer: key = randomstring(64) print("Your API Key: " + col["yellow"](key)) - with open(datadir("clients/authenticated_machines.tsv"),"w") as keyfile: + with open(data_dir['clients']("authenticated_machines.tsv"),"w") as keyfile: keyfile.write(key + "\t" + "Default Generated Key") else: pass diff --git a/maloja/proccontrol/tasks/__init__.py b/maloja/proccontrol/tasks/__init__.py index cc37761..37dd85a 100644 --- a/maloja/proccontrol/tasks/__init__.py +++ b/maloja/proccontrol/tasks/__init__.py @@ -1,7 +1,7 @@ import os from doreah.io import ask -from ...globalconf import datadir +from ...globalconf import data_dir @@ -11,14 +11,13 @@ def loadlastfm(filename): print("File could not be found.") return - if os.path.exists(datadir("scrobbles/lastfmimport.tsv")): + if os.path.exists(data_dir['scrobbles']("lastfmimport.tsv")): overwrite = ask("Already imported Last.FM data. Overwrite?",default=False) if not overwrite: return print("Please wait...") from .lastfmconverter import convert - convert(filename,datadir("scrobbles/lastfmimport.tsv")) - #os.system("python3 -m maloja.lastfmconverter " + filename + " " + datadir("scrobbles/lastfmimport.tsv")) + convert(filename,data_dir['scrobbles']("lastfmimport.tsv")) print("Successfully imported your Last.FM scrobbles!") diff --git a/maloja/proccontrol/tasks/backup.py b/maloja/proccontrol/tasks/backup.py index d3aefce..9bd1c45 100644 --- a/maloja/proccontrol/tasks/backup.py +++ b/maloja/proccontrol/tasks/backup.py @@ -2,7 +2,7 @@ import tarfile from datetime import datetime import glob import os -from ...globalconf import datadir +from ...globalconf import data_dir from pathlib import PurePath from doreah.logging import log diff --git a/maloja/proccontrol/tasks/fixexisting.py b/maloja/proccontrol/tasks/fixexisting.py index e1016d0..b7f56f6 100644 --- a/maloja/proccontrol/tasks/fixexisting.py +++ b/maloja/proccontrol/tasks/fixexisting.py @@ -1,5 +1,5 @@ import os -from ...globalconf import datadir +from ...globalconf import data_dir import re from ...cleanup import CleanerAgent from doreah.logging import log @@ -23,26 +23,25 @@ exp = r"([0-9]*)(\t+)([^\t]+?)(\t+)([^\t]+)([^\n]*)\n" def fix(): - backup(level="minimal",folder=datadir("backups")) + backup(level="minimal",folder=data_dir['backups']()) now = datetime.datetime.utcnow() nowstr = now.strftime("%Y_%m_%d_%H_%M_%S") datestr = now.strftime("%Y/%m/%d") timestr = now.strftime("%H:%M:%S") - patchfolder = datadir("logs","dbfix",nowstr) + patchfolder = data_dir['logs']("dbfix",nowstr) os.makedirs(patchfolder) - #with open(datadir("logs","dbfix",nowstr + ".log"),"a") as logfile: log("Fixing database...") - for filename in os.listdir(datadir("scrobbles")): + for filename in os.listdir(data_dir['scrobbles']()): if filename.endswith(".tsv"): log("Fix file " + filename) filename_new = filename + "_new" - with open(datadir("scrobbles",filename_new),"w") as newfile: - with open(datadir("scrobbles",filename),"r") as oldfile: + with open(data_dir['scrobbles'](filename_new),"w") as newfile: + with open(data_dir['scrobbles'](filename),"r") as oldfile: for l in oldfile: @@ -57,7 +56,7 @@ def fix(): #os.system("diff " + "scrobbles/" + fn + "_new" + " " + "scrobbles/" + fn) - with open(datadir("scrobbles",filename_new),"r") as newfile, open(datadir("scrobbles",filename),"r") as oldfile: + with open(data_dir['scrobbles'](filename_new),"r") as newfile, open(data_dir['scrobbles'](filename),"r") as oldfile: diff = difflib.unified_diff(oldfile.read().split("\n"),newfile.read().split("\n"),lineterm="",n=0) diff = list(diff) @@ -65,7 +64,7 @@ def fix(): with open(os.path.join(patchfolder,filename + ".diff"),"w") as patchfile: patchfile.write("\n".join(diff)) - os.replace(datadir("scrobbles",filename_new),datadir("scrobbles",filename)) + os.replace(data_dir['scrobbles'](filename_new),data_dir['scrobbles'](filename)) log("Database fixed!") diff --git a/maloja/server.py b/maloja/server.py index 30711d7..95db671 100644 --- a/maloja/server.py +++ b/maloja/server.py @@ -1,6 +1,6 @@ #!/usr/bin/env python import os -from .globalconf import datadir, DATA_DIR +from .globalconf import data_dir, DATA_DIR # server stuff @@ -154,18 +154,18 @@ def static_image(pth): type = pth.split(".")[-1] small_pth = pth + "-small" - if os.path.exists(datadir("images",small_pth)): + if os.path.exists(data_dir['images'](small_pth)): response = static_file(pthjoin("images",small_pth),root=DATAFOLDER) else: try: from wand.image import Image - img = Image(filename=datadir("images",pth)) + img = Image(filename=data_dir['images'](pth)) x,y = img.size[0], img.size[1] smaller = min(x,y) if smaller > 300: ratio = 300/smaller img.resize(int(ratio*x),int(ratio*y)) - img.save(filename=datadir("images",small_pth)) + img.save(filename=data_dir['images'](small_pth)) response = static_file(pthjoin("images",small_pth),root=DATAFOLDER) else: response = static_file(pthjoin("images",pth),root=DATAFOLDER) diff --git a/maloja/utilities/images.py b/maloja/utilities/images.py index 9543710..bcf2a94 100644 --- a/maloja/utilities/images.py +++ b/maloja/utilities/images.py @@ -1,5 +1,5 @@ from .. import globalconf -from ..globalconf import datadir +from ..globalconf import data_dir from .. import thirdparty from doreah import settings, caching