47 lines
2.3 KiB
C#
47 lines
2.3 KiB
C#
using System.Runtime.InteropServices;
|
|
using Logging;
|
|
using Tranga;
|
|
|
|
namespace API;
|
|
|
|
public class Program
|
|
{
|
|
public static void Main(string[] args)
|
|
{
|
|
string applicationFolderPath = Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Tranga-API");
|
|
string downloadFolderPath = RuntimeInformation.IsOSPlatform(OSPlatform.Linux) ? "/Manga" : Path.Join(applicationFolderPath, "Manga");
|
|
string logsFolderPath = RuntimeInformation.IsOSPlatform(OSPlatform.Linux) ? "/var/logs/Tranga" : Path.Join(applicationFolderPath, "logs");
|
|
string logFilePath = Path.Join(logsFolderPath, $"log-{DateTime.Now:dd-M-yyyy-HH-mm-ss}.txt");
|
|
string settingsFilePath = Path.Join(applicationFolderPath, "settings.json");
|
|
|
|
Directory.CreateDirectory(logsFolderPath);
|
|
Logger logger = new(new[] { Logger.LoggerType.FileLogger, Logger.LoggerType.ConsoleLogger }, Console.Out, Console.Out.Encoding, logFilePath);
|
|
|
|
logger.WriteLine("Tranga", "Loading settings.");
|
|
|
|
TrangaSettings settings;
|
|
if (File.Exists(settingsFilePath))
|
|
settings = TrangaSettings.LoadSettings(settingsFilePath, logger);
|
|
else
|
|
settings = new TrangaSettings(downloadFolderPath, applicationFolderPath, new HashSet<LibraryManager>(), new HashSet<NotificationManager>());
|
|
|
|
Directory.CreateDirectory(settings.workingDirectory);
|
|
Directory.CreateDirectory(settings.downloadLocation);
|
|
Directory.CreateDirectory(settings.coverImageCache);
|
|
|
|
logger.WriteLine("Tranga",$"Application-Folder: {settings.workingDirectory}");
|
|
logger.WriteLine("Tranga",$"Settings-File-Path: {settings.settingsFilePath}");
|
|
logger.WriteLine("Tranga",$"Download-Folder-Path: {settings.downloadLocation}");
|
|
logger.WriteLine("Tranga",$"Logfile-Path: {logFilePath}");
|
|
logger.WriteLine("Tranga",$"Image-Cache-Path: {settings.coverImageCache}");
|
|
|
|
logger.WriteLine("Tranga", "Loading Taskmanager.");
|
|
TaskManager taskManager = new (settings, logger);
|
|
|
|
Server server = new (6531, taskManager, logger);
|
|
foreach(NotificationManager nm in taskManager.settings.notificationManagers)
|
|
nm.SendNotification("Tranga-API", "Started Tranga-API");
|
|
}
|
|
}
|
|
|