mirror of
https://github.com/C9Glax/tranga.git
synced 2025-09-11 04:18:18 +02:00
Add LibraryBuffer, so Libraries are not spammed with scans on every download.
This commit is contained in:
@@ -15,6 +15,7 @@ public static class TrangaSettings
|
||||
public static string workingDirectory { get; private set; } = Path.Join(RuntimeInformation.IsOSPlatform(OSPlatform.Linux) ? "/usr/share" : Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "tranga-api");
|
||||
public static int apiPortNumber { get; private set; } = 6531;
|
||||
public static string userAgent { get; private set; } = DefaultUserAgent;
|
||||
public static bool bufferLibraryUpdates { get; private set; } = false;
|
||||
[JsonIgnore] public static string settingsFilePath => Path.Join(workingDirectory, "settings.json");
|
||||
[JsonIgnore] public static string libraryConnectorsFilePath => Path.Join(workingDirectory, "libraryConnectors.json");
|
||||
[JsonIgnore] public static string notificationConnectorsFilePath => Path.Join(workingDirectory, "notificationConnectors.json");
|
||||
@@ -46,15 +47,16 @@ public static class TrangaSettings
|
||||
ExportSettings();
|
||||
}
|
||||
|
||||
public static void CreateOrUpdate(string? downloadDirectory = null, string? pWorkingDirectory = null, int? pApiPortNumber = null, string? pUserAgent = null, bool? pAprilFoolsMode = null)
|
||||
public static void CreateOrUpdate(string? downloadDirectory = null, string? pWorkingDirectory = null, int? pApiPortNumber = null, string? pUserAgent = null, bool? pAprilFoolsMode = null, bool? pBufferLibraryUpdates = null)
|
||||
{
|
||||
if(pWorkingDirectory is null && File.Exists(settingsFilePath))
|
||||
LoadFromWorkingDirectory(workingDirectory);
|
||||
TrangaSettings.downloadLocation = downloadDirectory ?? TrangaSettings.downloadLocation;
|
||||
TrangaSettings.workingDirectory = pWorkingDirectory ?? TrangaSettings.workingDirectory;
|
||||
TrangaSettings.apiPortNumber = pApiPortNumber ?? TrangaSettings.apiPortNumber;
|
||||
TrangaSettings.userAgent = pUserAgent ?? TrangaSettings.userAgent;
|
||||
TrangaSettings.aprilFoolsMode = pAprilFoolsMode ?? TrangaSettings.aprilFoolsMode;
|
||||
downloadLocation = downloadDirectory ?? downloadLocation;
|
||||
workingDirectory = pWorkingDirectory ?? workingDirectory;
|
||||
apiPortNumber = pApiPortNumber ?? apiPortNumber;
|
||||
userAgent = pUserAgent ?? userAgent;
|
||||
aprilFoolsMode = pAprilFoolsMode ?? aprilFoolsMode;
|
||||
bufferLibraryUpdates = pBufferLibraryUpdates ?? bufferLibraryUpdates;
|
||||
Directory.CreateDirectory(downloadLocation);
|
||||
Directory.CreateDirectory(workingDirectory);
|
||||
ExportSettings();
|
||||
@@ -90,7 +92,7 @@ public static class TrangaSettings
|
||||
|
||||
public static void UpdateAprilFoolsMode(bool enabled)
|
||||
{
|
||||
TrangaSettings.aprilFoolsMode = enabled;
|
||||
aprilFoolsMode = enabled;
|
||||
ExportSettings();
|
||||
}
|
||||
|
||||
@@ -102,10 +104,10 @@ public static class TrangaSettings
|
||||
else
|
||||
Directory.CreateDirectory(newPath);
|
||||
|
||||
if (moveFiles && Directory.Exists(TrangaSettings.downloadLocation))
|
||||
Directory.Move(TrangaSettings.downloadLocation, newPath);
|
||||
if (moveFiles && Directory.Exists(downloadLocation))
|
||||
Directory.Move(downloadLocation, newPath);
|
||||
|
||||
TrangaSettings.downloadLocation = newPath;
|
||||
downloadLocation = newPath;
|
||||
ExportSettings();
|
||||
}
|
||||
|
||||
@@ -116,26 +118,26 @@ public static class TrangaSettings
|
||||
GroupRead | GroupWrite | None | OtherRead | OtherWrite | UserRead | UserWrite);
|
||||
else
|
||||
Directory.CreateDirectory(newPath);
|
||||
Directory.Move(TrangaSettings.workingDirectory, newPath);
|
||||
TrangaSettings.workingDirectory = newPath;
|
||||
Directory.Move(workingDirectory, newPath);
|
||||
workingDirectory = newPath;
|
||||
ExportSettings();
|
||||
}
|
||||
|
||||
public static void UpdateUserAgent(string? customUserAgent)
|
||||
{
|
||||
TrangaSettings.userAgent = customUserAgent ?? DefaultUserAgent;
|
||||
userAgent = customUserAgent ?? DefaultUserAgent;
|
||||
ExportSettings();
|
||||
}
|
||||
|
||||
public static void UpdateRateLimit(RequestType requestType, int newLimit)
|
||||
{
|
||||
TrangaSettings.requestLimits[requestType] = newLimit;
|
||||
requestLimits[requestType] = newLimit;
|
||||
ExportSettings();
|
||||
}
|
||||
|
||||
public static void ResetRateLimits()
|
||||
{
|
||||
TrangaSettings.requestLimits = DefaultRequestLimits;
|
||||
requestLimits = DefaultRequestLimits;
|
||||
ExportSettings();
|
||||
}
|
||||
|
||||
@@ -154,13 +156,14 @@ public static class TrangaSettings
|
||||
public static JObject AsJObject()
|
||||
{
|
||||
JObject jobj = new JObject();
|
||||
jobj.Add("downloadLocation", JToken.FromObject(TrangaSettings.downloadLocation));
|
||||
jobj.Add("workingDirectory", JToken.FromObject(TrangaSettings.workingDirectory));
|
||||
jobj.Add("apiPortNumber", JToken.FromObject(TrangaSettings.apiPortNumber));
|
||||
jobj.Add("userAgent", JToken.FromObject(TrangaSettings.userAgent));
|
||||
jobj.Add("aprilFoolsMode", JToken.FromObject(TrangaSettings.aprilFoolsMode));
|
||||
jobj.Add("version", JToken.FromObject(TrangaSettings.version));
|
||||
jobj.Add("requestLimits", JToken.FromObject(TrangaSettings.requestLimits));
|
||||
jobj.Add("downloadLocation", JToken.FromObject(downloadLocation));
|
||||
jobj.Add("workingDirectory", JToken.FromObject(workingDirectory));
|
||||
jobj.Add("apiPortNumber", JToken.FromObject(apiPortNumber));
|
||||
jobj.Add("userAgent", JToken.FromObject(userAgent));
|
||||
jobj.Add("aprilFoolsMode", JToken.FromObject(aprilFoolsMode));
|
||||
jobj.Add("version", JToken.FromObject(version));
|
||||
jobj.Add("requestLimits", JToken.FromObject(requestLimits));
|
||||
jobj.Add("bufferLibraryUpdates", JToken.FromObject(bufferLibraryUpdates));
|
||||
return jobj;
|
||||
}
|
||||
|
||||
@@ -170,16 +173,18 @@ public static class TrangaSettings
|
||||
{
|
||||
JObject jobj = JObject.Parse(serialized);
|
||||
if (jobj.TryGetValue("downloadLocation", out JToken? dl))
|
||||
TrangaSettings.downloadLocation = dl.Value<string>()!;
|
||||
downloadLocation = dl.Value<string>()!;
|
||||
if (jobj.TryGetValue("workingDirectory", out JToken? wd))
|
||||
TrangaSettings.workingDirectory = wd.Value<string>()!;
|
||||
workingDirectory = wd.Value<string>()!;
|
||||
if (jobj.TryGetValue("apiPortNumber", out JToken? apn))
|
||||
TrangaSettings.apiPortNumber = apn.Value<int>();
|
||||
apiPortNumber = apn.Value<int>();
|
||||
if (jobj.TryGetValue("userAgent", out JToken? ua))
|
||||
TrangaSettings.userAgent = ua.Value<string>()!;
|
||||
userAgent = ua.Value<string>()!;
|
||||
if (jobj.TryGetValue("aprilFoolsMode", out JToken? afm))
|
||||
TrangaSettings.aprilFoolsMode = afm.Value<bool>()!;
|
||||
aprilFoolsMode = afm.Value<bool>()!;
|
||||
if (jobj.TryGetValue("requestLimits", out JToken? rl))
|
||||
TrangaSettings.requestLimits = rl.ToObject<Dictionary<RequestType, int>>()!;
|
||||
requestLimits = rl.ToObject<Dictionary<RequestType, int>>()!;
|
||||
if (jobj.TryGetValue("bufferLibraryUpdates", out JToken? blu))
|
||||
bufferLibraryUpdates = blu.Value<bool>()!;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user