summaryrefslogtreecommitdiff
path: root/ConfigService.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-08-15 15:49:14 +1000
committerJake Mannens <jake@asger.xyz>2025-08-18 10:59:32 +1000
commit38c60cee378b9c2ad42fc9dc79bc492b919a68f5 (patch)
tree6b62f84aab4b7866432e5da8ae8fcb889795d58b /ConfigService.cs
parent07a4c7ead01514bd3f304f00abc38140a1d73634 (diff)
Convert Razor pages to Blazor
Diffstat (limited to 'ConfigService.cs')
-rw-r--r--ConfigService.cs80
1 files changed, 0 insertions, 80 deletions
diff --git a/ConfigService.cs b/ConfigService.cs
deleted file mode 100644
index 0ee4113..0000000
--- a/ConfigService.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-namespace HyperBooru;
-
-public interface IConfigService {
- public string DataPath { get; }
- public string DbPath { get; }
- public string MediaBasePath { get; }
- public string GetPath(DbMedia media);
- public string GetPath(DbMedia media, int width, int height);
-}
-
-public class ConfigService : IConfigService {
- private IConfiguration config;
-
- private const string AppName = "HyperBooru";
-
- public string DataPath {
- get {
- #if DEBUG
- return "Data";
- #else
- string? path = config["DataPath"];
- if(path is not null)
- return path;
-
- switch(Environment.OSVersion.Platform) {
- case PlatformID.Win32NT:
- return Path.Join(
- Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
- AppName);
- case PlatformID.Unix:
- return $"/var/lib/{AppName.ToLower()}";
- default:
- throw new NotImplementedException(
- $"Unknown Operating System: {Environment.OSVersion.Platform}");
- }
- #endif
- }
- }
-
- public string DbPath =>
- Path.Join(DataPath, $"{AppName}.db");
-
- public string MediaBasePath =>
- Path.Join(DataPath, "media");
-
- public string ThumbnailBasePath =>
- Path.Join(DataPath, "thumb");
-
- public ConfigService(IConfiguration config) {
- this.config = config;
- InitDirectoryStructure();
- }
-
- public string GetPath(DbMedia media) {
- var fileInfo = new FileInfo(Path.Join(
- MediaBasePath,
- media.Guid.ToString().Substring(0, 2),
- media.Guid.ToString().Substring(2, 2),
- media.Guid.ToString()));
-
- Directory.CreateDirectory(fileInfo.Directory.FullName);
- return fileInfo.FullName;
- }
-
- public string GetPath(DbMedia media, int width, int height) {
- var fileInfo = new FileInfo(Path.Join(
- ThumbnailBasePath,
- media.Guid.ToString().Substring(0, 2),
- media.Guid.ToString().Substring(2, 2),
- $"{media.Guid.ToString()}-{width}-{height}"));
-
- Directory.CreateDirectory(fileInfo.Directory.FullName);
- return fileInfo.FullName;
- }
-
- private void InitDirectoryStructure() {
- Directory.CreateDirectory(DataPath);
- Directory.CreateDirectory(MediaBasePath);
- }
-} \ No newline at end of file