mirror of
https://git.srhtnin.garden/sarah/SaraSortd.git
synced 2026-10-13 18:38:11 +02:00
Removed and commented some Parameters in Config, and added much more to SaraSortd.py
This commit is contained in:
1 parent
ee8c83039c
commit
eb4ca3264b
2 files changed
+118
-16
No files matched your search
+17
-9
@@ -1,5 +1,8 @@
|
||||
Title = "SaraSortd Config"
|
||||
|
||||
SafeMode = 1 # If SaraSortd should stop if an error with the config appears. 1 is stop, 0 is continue.
|
||||
SilentMode = 0 # If SaraSortd should write stuff to the terminal as well.
|
||||
|
||||
[Variables] # Only use these in config files, not the actual file names themselves..
|
||||
NextNum = "*" # The next available number. If 1 already exists, 2 will be used. Starts at 1.
|
||||
NextChar = "&" # The next available character. If A already exists, B will be used.
|
||||
@@ -10,10 +13,6 @@ OrgFileName = "~" # The original name of the sorted file. If "blahblah.txt" gets
|
||||
OrgFileType = "^" # The original file type of the sorted file. If "example.png" gets sorted, "^" would be equal to ".png".
|
||||
|
||||
Year = "[y]" # The current year, E.G. "2026".
|
||||
|
||||
MonthName = "[M]" # The name of the current month, E.G. "March".
|
||||
DayName = "[D]" # The name of the current day, E.G. "Friday".
|
||||
|
||||
Month = "[m]" # The date of the current month, E.G. "03".
|
||||
Day = "[d]" # The date of the current day, E.G. "27".
|
||||
|
||||
@@ -22,12 +21,13 @@ Minute = "[n]" # The current minute, E.G. "44".
|
||||
Second = "[s]" # The current second, E.G. "11".
|
||||
|
||||
VarCall = "%%" # The characters used at the start and end of variable calls. The first character is to the left; second is to the right.
|
||||
# NOTE: If any parameters in the config uses just "%%", it gets a variable from the program itself, not from the config.
|
||||
|
||||
[DirectoryPaths]
|
||||
RootDir = "Unset"
|
||||
InputDir = "%RootDir%"
|
||||
OutputDir = "%RootDir%"
|
||||
LogDir = ".%RootDir%/Logs"
|
||||
RootDir = "Unset" # Parent directory. Folder where all SaraSortd folders live.
|
||||
InputDir = ["%RootDir%"] # If files get put here, they'll be sorted.
|
||||
OutputDir = ["%RootDir%"] # Where sortted files go.
|
||||
LogDir = ".%RootDir%/Logs" # Where log files from SaraSortd go.
|
||||
FailedDir =".%RootDir%/Failed" # For files that failed to be sorted.
|
||||
|
||||
[Names]
|
||||
@@ -36,4 +36,12 @@ LogFileName = "[y].[m].[d]_*" # Name of log files.
|
||||
ConfFileName = ".@Config" # Name of config files for directories.
|
||||
|
||||
[Log]
|
||||
Sorted = "Sorted ~^ to %SortDir%"
|
||||
All = "[h]:[n]:[s] | " # What to put at the start of all lines in Log file.
|
||||
|
||||
Start = "Started: SaraSortd" # When SaraSortd starts.
|
||||
NotStart = "Start Failed: SaraSortd." # When SaraSortd fails to start for some reason.
|
||||
|
||||
Sorted = "Sorted: ~^ to %SortDir%." # When a file gets sorted.
|
||||
|
||||
Unset = "Error: %% is not set." # When a parameter in the config is not set. %% is the parameter that wasn't set.
|
||||
Set = "Set: %% to %%." # When a previously unset parameter in the config is set. %% is the parameter that got set.
|
||||
+101
-7
@@ -1,6 +1,12 @@
|
||||
import toml, os
|
||||
import toml, os, datetime
|
||||
|
||||
Conf = None
|
||||
ConfVars = None
|
||||
ConfDirs = None
|
||||
ConfNames = None
|
||||
ConfLog = None
|
||||
|
||||
Start = True
|
||||
|
||||
def Clear():
|
||||
if os.name == 'nt':
|
||||
@@ -10,25 +16,113 @@ def Clear():
|
||||
|
||||
|
||||
def LoadConf():
|
||||
global Conf
|
||||
global Conf, ConfVars, ConfDirs, ConfNames, ConfLog
|
||||
|
||||
LocalConf = toml.load("Config.toml")
|
||||
Conf = LocalConf
|
||||
ConfVars = Conf["Variables"]
|
||||
ConfDirs = Conf["DirectoryPaths"]
|
||||
ConfNames = Conf["Names"]
|
||||
ConfLog = Conf["Log"]
|
||||
|
||||
|
||||
def Error():
|
||||
global Start
|
||||
if (Conf["SafeMode"] == 1):
|
||||
Start = False
|
||||
|
||||
|
||||
def Speak(Text):
|
||||
if (Conf["SilentMode"] != 1):
|
||||
print(Text)
|
||||
|
||||
|
||||
def Parse(String = None, Var = None, OrgFile = None, OutputDir = None):
|
||||
Now = datetime.datetime.now()
|
||||
|
||||
ParseBook = {
|
||||
ConfVars["Year"]: str(Now.year),
|
||||
ConfVars["Month"]: str(Now.month),
|
||||
ConfVars["Day"]: str(Now.day),
|
||||
ConfVars["Hour"]: str(Now.hour),
|
||||
ConfVars["Minute"]: str(Now.minute),
|
||||
ConfVars["Second"]: str(Now.second),
|
||||
ConfVars["VarCall"]: Var,
|
||||
ConfVars["NextNum"]: "NOT ADDED",
|
||||
ConfVars["NextChar"]: "NOT ADDED",
|
||||
ConfVars["Parent"]: "NOT ADDED",
|
||||
ConfVars["OrgFileName"]: "NOT ADDED",
|
||||
ConfVars["OrgFileType"]: "NOT ADDED",
|
||||
}
|
||||
|
||||
for Key, Value in ParseBook.items():
|
||||
if Key in String and Value is not None:
|
||||
String = String.replace(Key, Value)
|
||||
|
||||
return String
|
||||
|
||||
|
||||
def Dir(Name):
|
||||
os.makedirs(Name, exist_ok=True)
|
||||
|
||||
|
||||
def LogWrite(Text):
|
||||
if (ConfDirs["LogDir"] != None and ConfNames != "Unset"):
|
||||
if (ConfNames["LogFileName"] != None and ConfNames["LogFileName"] != "Unset"):
|
||||
Dir(Parse(ConfDirs["LogDir"]))
|
||||
LogFile = f"{Parse(ConfDirs["LogDir"])}/{Parse(ConfNames["LogFileName"])}.log"
|
||||
with open(LogFile, "w", encoding="utf-8") as File:
|
||||
File.write(f"{Parse(ConfLog["All"])}{Text}\n")
|
||||
|
||||
|
||||
def ConfCheck():
|
||||
for Item in ConfVars:
|
||||
if (Item == None or Item == "Unset"):
|
||||
TextOutput = Parse(ConfLog["Unset"], Item)
|
||||
LogWrite(TextOutput)
|
||||
Speak(TextOutput)
|
||||
Error()
|
||||
|
||||
for Item in ConfDirs:
|
||||
if (Item == None or Item == "Unset"):
|
||||
TextOutput = Parse(ConfLog["Unset"], Item)
|
||||
LogWrite(TextOutput)
|
||||
Speak(TextOutput)
|
||||
Error()
|
||||
|
||||
for Item in ConfLog:
|
||||
if (Item == None or Item == "Unset"):
|
||||
TextOutput = Parse(ConfLog["Unset"], Item)
|
||||
LogWrite(TextOutput)
|
||||
Speak(TextOutput)
|
||||
Error()
|
||||
|
||||
|
||||
def Init():
|
||||
global Conf
|
||||
global Conf, ConfVars, ConfDirs, ConfNames, ConfLog
|
||||
|
||||
LoadConf()
|
||||
if (Conf != None):
|
||||
ConfCheck()
|
||||
|
||||
TextOutput = Parse(ConfLog["Start"])
|
||||
LogWrite(TextOutput)
|
||||
Speak(TextOutput)
|
||||
|
||||
if (Start):
|
||||
Main()
|
||||
else:
|
||||
TextOutput = Parse(ConfLog["NotStart"])
|
||||
LogWrite(TextOutput)
|
||||
Speak(TextOutput)
|
||||
|
||||
else:
|
||||
print("NO CONFIG FOUND! Make sure the 'Config.toml' is in the same directory as 'SaraSortd.py'")
|
||||
|
||||
|
||||
def Main():
|
||||
global Conf
|
||||
|
||||
Clear()
|
||||
print(Conf)
|
||||
while True:
|
||||
pass
|
||||
|
||||
|
||||
Init()
|
||||
Reference in new issue
Block a user