From 518ac74dc761d1ca08b6a3195ace6e705084df88 Mon Sep 17 00:00:00 2001 From: timerix Date: Fri, 17 Nov 2023 17:58:27 +0600 Subject: [PATCH] DTLib added as nuget packages --- .../GUI/LauncherWindow.axaml.cs | 19 ++-- .../GUI/ProgramLabel.axaml.cs | 2 +- .../Launcher.Client.Avalonia.csproj | 5 +- Launcher.Client.Avalonia/LauncherMain.cs | 6 +- Launcher.Client.Avalonia/Program.cs | 4 +- .../GUI/LauncherWindow.xaml.cs | 17 ++-- Launcher.Client.WPF/GUI/ProgramLabel.xaml.cs | 2 +- .../Launcher.Client.WPF.csproj | 5 +- Launcher.Client.WPF/LauncherMain.cs | 8 +- Launcher.Client.WPF/Program.cs | 4 +- Launcher.Client/BufferedLogger.cs | 38 ++++++++ Launcher.Client/Launcher.Client.csproj | 14 +-- Launcher.Client/LauncherClient.cs | 9 +- Launcher.Client/LauncherLogger.cs | 34 +++---- Launcher.Server/Launcher.Server.csproj | 14 +-- Launcher.Server/Server.cs | 93 ++++++++++--------- dtlauncher.sln | 18 ---- 17 files changed, 155 insertions(+), 137 deletions(-) create mode 100644 Launcher.Client/BufferedLogger.cs diff --git a/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml.cs b/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml.cs index e7ecf07..0ff5ce4 100644 --- a/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml.cs +++ b/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml.cs @@ -1,5 +1,6 @@ using Avalonia.Interactivity; using Avalonia.Threading; +using DTLib.Logging; namespace Launcher.Client.Avalonia.GUI; @@ -10,9 +11,9 @@ public partial class LauncherWindow : Window InitializeComponent(); LogBox.Text = Logger.Buffer; Logger.MessageSent += LogHandler; - LogfileLabel.Content = Logger.LogfileName.Remove(0,Logger.LogfileName.LastIndexOf(Путь.Разд)+1); + LogfileLabel.Content = Logger.LogfileName.Remove(0,Logger.LogfileName.LastIndexOf(Path.Sep)+1); LogfileLabel.PointerPressed += (_,_)=> - Process.Start("explorer.exe", LauncherLogger.LogfileDir); + Process.Start("explorer.exe", LauncherLogger.LogfileDir.ToString()!); LogfileLabel.PointerEnter += (_,_)=>LogfileLabel.Foreground=App.MySelectionColor; LogfileLabel.PointerLeave += (_,_)=>LogfileLabel.Foreground=App.MyWhite; LibraryButton.TabGrid = LibraryGrid; @@ -26,14 +27,14 @@ public partial class LauncherWindow : Window ProgramGrid.IsVisible = false; SelectTab(LibraryButton, null); FillProgramsPanel(); - Logger.Log("launcher started"); + Logger.LogInfo(nameof(LauncherWindow),"launcher started"); try { throw new Exception("aaa"); } catch (Exception ex) { - LogError("main window", ex); + LogError(nameof(LauncherWindow), ex); } } @@ -58,15 +59,15 @@ public partial class LauncherWindow : Window private void FillProgramsPanel() { - Logger.Log("reading descriptors..."); - string[] descriptors = Directory.GetFiles("descriptors"); + Logger.LogInfo(nameof(LauncherWindow),"reading descriptors..."); + var descriptors = Directory.GetFiles("descriptors"); Programs = new Program[descriptors.Length]; for (ushort i = 0; i < descriptors.Length; i++) { - string descriptor = descriptors[i]; + var descriptor = descriptors[i]; if(descriptor.EndsWith(".descriptor")) { - Logger.Log('\t'+descriptor); + Logger.LogInfo(nameof(LauncherWindow), descriptor.ToString()); Programs[i] = new Program(descriptors[i]); ProgramsPanel.Children.Add(Programs[i].ProgramLabel); Programs[i].ProgramSelectedEvent += SelectProgram; @@ -92,7 +93,7 @@ public partial class LauncherWindow : Window NameLabel.Content = selectedProg.Name; DescriptionBox.Text = selectedProg.Description; BackgroundImage.Source = new Bitmap( - $"{Directory.GetCurrent()}{Путь.Разд}backgrounds{Путь.Разд}{selectedProg.BackgroundFile}"); + $"{Directory.GetCurrent()}{Path.Sep}backgrounds{Path.Sep}{selectedProg.BackgroundFile}"); ProgramSettingsViever.Content = selectedProg.SettingsPanel; DisplayingProgram = selectedProg; } diff --git a/Launcher.Client.Avalonia/GUI/ProgramLabel.axaml.cs b/Launcher.Client.Avalonia/GUI/ProgramLabel.axaml.cs index 8c8bb55..3d4c28f 100644 --- a/Launcher.Client.Avalonia/GUI/ProgramLabel.axaml.cs +++ b/Launcher.Client.Avalonia/GUI/ProgramLabel.axaml.cs @@ -9,6 +9,6 @@ public partial class ProgramLabel : UserControl InitializeComponent(); NameLabel.Content = label; IconImage.Source = new Bitmap( - $"{Directory.GetCurrent()}{Путь.Разд}icons{Путь.Разд}{icon}"); + $"{Directory.GetCurrent()}{Path.Sep}icons{Path.Sep}{icon}"); } } \ No newline at end of file diff --git a/Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj b/Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj index f947b86..dc6301d 100644 --- a/Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj +++ b/Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj @@ -2,7 +2,7 @@ WinExe Launcher.Client.Avalonia - net6.0 + net7.0 disable disable full @@ -24,9 +24,6 @@ - - - diff --git a/Launcher.Client.Avalonia/LauncherMain.cs b/Launcher.Client.Avalonia/LauncherMain.cs index 6ac9f3b..834fb6a 100644 --- a/Launcher.Client.Avalonia/LauncherMain.cs +++ b/Launcher.Client.Avalonia/LauncherMain.cs @@ -11,6 +11,8 @@ global using DTLib.Extensions; global using Launcher.Client; global using static Launcher.Client.LauncherClient; global using static Launcher.Client.Avalonia.LauncherMain; +using DTLib.Ben.Demystifier; +using DTLib.Logging; using Launcher.Client.Avalonia.GUI; namespace Launcher.Client.Avalonia; @@ -43,8 +45,8 @@ public static class LauncherMain public static void LogError(string context, Exception ex) { - string errmsg = $"{ex.Message}\n{ex.StackTrace}"; + string errmsg = ex.ToStringDemystified(); MessageBox.Show($"{context} ERROR", errmsg); - Logger.Log(errmsg); + Logger.LogError("Main", errmsg); } } \ No newline at end of file diff --git a/Launcher.Client.Avalonia/Program.cs b/Launcher.Client.Avalonia/Program.cs index 4f85a59..f180c5b 100644 --- a/Launcher.Client.Avalonia/Program.cs +++ b/Launcher.Client.Avalonia/Program.cs @@ -23,7 +23,7 @@ public class Program public event Action ProgramSelectedEvent; - public Program(string descriptorFile) + public Program(IOPath descriptorFile) { DtsodV23 descriptor= new(File.ReadAllText(descriptorFile)); Name = descriptor["name"]; @@ -38,7 +38,7 @@ public class Program ProgramLabel = new ProgramLabel(Name, IconFile); ProgramLabel.PointerPressed += (_, _) => ProgramSelectedEvent?.Invoke(this); - SettingsFile = $"settings{Путь.Разд}{Directory}.settings"; + SettingsFile = $"settings{Path.Sep}{Directory}.settings"; Settings = File.Exists(SettingsFile) ? DtsodConverter.UpdateByDefault( new DtsodV23(File.ReadAllText(SettingsFile)), diff --git a/Launcher.Client.WPF/GUI/LauncherWindow.xaml.cs b/Launcher.Client.WPF/GUI/LauncherWindow.xaml.cs index 870c24e..59d6bcf 100644 --- a/Launcher.Client.WPF/GUI/LauncherWindow.xaml.cs +++ b/Launcher.Client.WPF/GUI/LauncherWindow.xaml.cs @@ -1,4 +1,5 @@ using System.Windows.Media.Imaging; +using DTLib.Logging; namespace Launcher.Client.WPF.GUI; @@ -9,9 +10,9 @@ public partial class LauncherWindow : Window InitializeComponent(); LogBox.Text = Logger.Buffer; Logger.MessageSent += LogHandler; - LogfileLabel.Content = Logger.LogfileName.Remove(0,Logger.LogfileName.LastIndexOf(Путь.Разд)+1); + LogfileLabel.Content = Logger.LogfileName.Remove(0,Logger.LogfileName.LastIndexOf(Path.Sep)+1); LogfileLabel.MouseLeftButtonDown += (_,_)=> - Process.Start("explorer.exe", LauncherLogger.LogfileDir); + Process.Start("explorer.exe", LauncherLogger.LogfileDir.ToString()!); LogfileLabel.MouseEnter += (_,_)=>LogfileLabel.Foreground=App.MySelectionColor; LogfileLabel.MouseLeave += (_,_)=>LogfileLabel.Foreground=App.MyWhite; LibraryButton.TabGrid = LibraryGrid; @@ -25,7 +26,7 @@ public partial class LauncherWindow : Window ProgramGrid.Visibility = Visibility.Hidden; SelectTab(LibraryButton, null); FillProgramsPanel(); - Logger.Log("launcher started"); + Logger.LogInfo(nameof(LauncherWindow),"launcher started"); } void LogHandler(string m) => Dispatcher.Invoke(()=>LogBox.Text += m); @@ -49,15 +50,15 @@ public partial class LauncherWindow : Window private void FillProgramsPanel() { - Logger.Log("reading descriptors..."); - string[] descriptors = Directory.GetFiles("descriptors"); + Logger.LogInfo(nameof(LauncherWindow),"reading descriptors..."); + var descriptors = Directory.GetFiles("descriptors"); Programs = new Program[descriptors.Length]; for (ushort i = 0; i < descriptors.Length; i++) { - string descriptor = descriptors[i]; + var descriptor = descriptors[i]; if(descriptor.EndsWith(".descriptor")) { - Logger.Log('\t'+descriptor); + Logger.LogInfo(nameof(LauncherWindow),descriptor.ToString()); Programs[i] = new Program(descriptors[i]); ProgramsPanel.Children.Add(Programs[i].ProgramLabel); Programs[i].ProgramSelectedEvent += SelectProgram; @@ -84,7 +85,7 @@ public partial class LauncherWindow : Window DescriptionBox.Text = selectedProg.Description; BackgroundImage.Source = new BitmapImage(new Uri( - $"{Directory.GetCurrent()}{Путь.Разд}backgrounds{Путь.Разд}{selectedProg.BackgroundFile}", + $"{Directory.GetCurrent()}{Path.Sep}backgrounds{Path.Sep}{selectedProg.BackgroundFile}", UriKind.Absolute)); ProgramSettingsViever.Content = selectedProg.SettingsPanel; DisplayingProgram = selectedProg; diff --git a/Launcher.Client.WPF/GUI/ProgramLabel.xaml.cs b/Launcher.Client.WPF/GUI/ProgramLabel.xaml.cs index 59e3206..5203f0d 100644 --- a/Launcher.Client.WPF/GUI/ProgramLabel.xaml.cs +++ b/Launcher.Client.WPF/GUI/ProgramLabel.xaml.cs @@ -10,7 +10,7 @@ public partial class ProgramLabel : UserControl InitializeComponent(); NameLabel.Content = label; IconImage.Source = new BitmapImage(new Uri( - $"{Directory.GetCurrent()}{Путь.Разд}icons{Путь.Разд}{icon}", + $"{Directory.GetCurrent()}{Path.Sep}icons{Path.Sep}{icon}", UriKind.Absolute)); } } \ No newline at end of file diff --git a/Launcher.Client.WPF/Launcher.Client.WPF.csproj b/Launcher.Client.WPF/Launcher.Client.WPF.csproj index 4a429a2..24633a2 100644 --- a/Launcher.Client.WPF/Launcher.Client.WPF.csproj +++ b/Launcher.Client.WPF/Launcher.Client.WPF.csproj @@ -3,7 +3,7 @@ WinExe true - net6.0-windows + net7.0-windows Launcher.Client.WPF disable disable @@ -22,9 +22,6 @@ - - - diff --git a/Launcher.Client.WPF/LauncherMain.cs b/Launcher.Client.WPF/LauncherMain.cs index 5bfd066..1de5644 100644 --- a/Launcher.Client.WPF/LauncherMain.cs +++ b/Launcher.Client.WPF/LauncherMain.cs @@ -12,6 +12,8 @@ global using System.Windows; global using Launcher.Client; global using static Launcher.Client.LauncherClient; global using static Launcher.Client.WPF.LauncherMain; +using DTLib.Ben.Demystifier; +using DTLib.Logging; using Launcher.Client.WPF.GUI; namespace Launcher.Client.WPF; @@ -22,6 +24,8 @@ public static class LauncherMain public static void _Main(string[] args) { + Console.WriteLine("aaa\nbbb\nccc"); + return; LauncherClient.Init(); CurrentLauncherWindow = new LauncherWindow(); CurrentLauncherWindow.Show(); @@ -29,8 +33,8 @@ public static class LauncherMain public static void LogError(string context, Exception ex) { - string errmsg = $"{context} ERROR:\n{ex}"; + string errmsg = ex.ToStringDemystified(); MessageBox.Show(errmsg); - Logger.Log(errmsg); + Logger.LogError(context, errmsg); } } \ No newline at end of file diff --git a/Launcher.Client.WPF/Program.cs b/Launcher.Client.WPF/Program.cs index ee289a4..968fefa 100644 --- a/Launcher.Client.WPF/Program.cs +++ b/Launcher.Client.WPF/Program.cs @@ -24,7 +24,7 @@ public class Program public event Action ProgramSelectedEvent; - public Program(string descriptorFile) + public Program(IOPath descriptorFile) { DtsodV23 descriptor= new(File.ReadAllText(descriptorFile)); Name = descriptor["name"]; @@ -39,7 +39,7 @@ public class Program ProgramLabel = new ProgramLabel(Name, IconFile); ProgramLabel.MouseLeftButtonDown += (_, _) => ProgramSelectedEvent?.Invoke(this); - SettingsFile = $"settings{Путь.Разд}{Directory}.settings"; + SettingsFile = $"settings{Path.Sep}{Directory}.settings"; Settings = File.Exists(SettingsFile) ? DtsodConverter.UpdateByDefault( new DtsodV23(File.ReadAllText(SettingsFile)), diff --git a/Launcher.Client/BufferedLogger.cs b/Launcher.Client/BufferedLogger.cs new file mode 100644 index 0000000..1dc8106 --- /dev/null +++ b/Launcher.Client/BufferedLogger.cs @@ -0,0 +1,38 @@ +using DTLib.Logging; + +namespace Launcher.Client; + +public class BufferedLogger : ILogger +{ + public bool DebugLogEnabled { get; set; } = +#if DEBUG + true; +#else + false; +#endif + public bool InfoLogEnabled { get; set; } = true; + public bool WarnLogEnabled { get; set; } = true; + public bool ErrorLogEnabled { get; set; } = true; + + public ILogFormat Format { get; set; } = new DefaultLogFormat(); + + private readonly StringBuilder _buffer = new(); + public string Buffer + { + get { lock (_buffer) return _buffer.ToString(); } + } + + public event Action MessageSent; + + + public void Log(string context, LogSeverity severity, object message, ILogFormat format) + { + string msgConnected = Format.CreateMessage(context, severity, message); + MessageSent?.Invoke(msgConnected); + lock (_buffer) _buffer.Append(msgConnected); + } + + public void Dispose() + { + } +} \ No newline at end of file diff --git a/Launcher.Client/Launcher.Client.csproj b/Launcher.Client/Launcher.Client.csproj index 29ddf27..d99e3ca 100644 --- a/Launcher.Client/Launcher.Client.csproj +++ b/Launcher.Client/Launcher.Client.csproj @@ -1,7 +1,7 @@ - net6.0 + net7.0 disable disable Launcher.Client @@ -9,12 +9,6 @@ Debug;Release AnyCPU - - - - - - @@ -23,4 +17,10 @@ + + + + + + diff --git a/Launcher.Client/LauncherClient.cs b/Launcher.Client/LauncherClient.cs index 6515387..8235812 100644 --- a/Launcher.Client/LauncherClient.cs +++ b/Launcher.Client/LauncherClient.cs @@ -8,6 +8,7 @@ global using DTLib; global using DTLib.Dtsod; global using DTLib.Filesystem; global using DTLib.Extensions; +using DTLib.Logging; namespace Launcher.Client; @@ -18,14 +19,14 @@ public static class LauncherClient public static void Init() { - Logger.Log("launcher starting..."); + Logger.LogInfo(nameof(LauncherClient),"launcher starting..."); Config = new LauncherConfig(); #if DEBUG const string debug_assets = "debug_assets"; foreach (string file in Directory.GetFiles(debug_assets)) - File.Copy(file, file.Remove(0, file.LastIndexOf(Путь.Разд) + 1), true); + File.Copy(file, file.Remove(0, file.LastIndexOf(Path.Sep) + 1), true); foreach (string subdir in Directory.GetDirectories(debug_assets)) - Directory.Copy(subdir, subdir.Remove(0, subdir.LastIndexOf(Путь.Разд) + 1), true); + Directory.Copy(subdir, subdir.Remove(0, subdir.LastIndexOf(Path.Sep) + 1), true); Directory.Delete(debug_assets); #endif Directory.Create("descriptors"); @@ -33,7 +34,7 @@ public static class LauncherClient Directory.Create("backgrounds"); Directory.Create("installed"); Directory.Create("settings"); - File.WriteAllText($"descriptors{Путь.Разд}default.descriptor.template", + File.WriteAllText($"descriptors{Path.Sep}default.descriptor.template", EmbeddedResources.ReadText("Launcher.Client.Resources.default.descriptor.template")); } } \ No newline at end of file diff --git a/Launcher.Client/LauncherLogger.cs b/Launcher.Client/LauncherLogger.cs index da26876..0cbce41 100644 --- a/Launcher.Client/LauncherLogger.cs +++ b/Launcher.Client/LauncherLogger.cs @@ -2,30 +2,22 @@ namespace Launcher.Client; -public class LauncherLogger : FileLogger +public class LauncherLogger : CompositeLogger { - public const string LogfileDir = "launcher-logs"; - public LauncherLogger() : base(LogfileDir,"launcher-client") {} - - private readonly StringBuilder _buffer = new(); - public string Buffer - { - get { lock (_buffer) return _buffer.ToString(); } - } - + public static readonly IOPath LogfileDir = "launcher-logs"; + public readonly string LogfileName; public event Action MessageSent; + public string Buffer => _bufferedLogger.Buffer; + + + FileLogger _fileLogger = new(LogfileDir,"launcher-client"); + ConsoleLogger _consoleLogger = new(); + BufferedLogger _bufferedLogger = new BufferedLogger(); - public override void Log(params string[] msg) + public LauncherLogger() { - base.Log(msg); - StringBuilder strb = new(); - strb.Append('[').Append(LastLogMessageTime).Append("]: "); - if (msg.Length == 1) strb.Append(msg[0]); - else for (int i = 1; i < msg.Length; i += 2) - strb.Append(msg[i]); - strb.Append('\n'); - string msgConnected = strb.ToString(); - MessageSent?.Invoke(msgConnected); - lock (_buffer) _buffer.Append(msgConnected); + _loggers = new ILogger[] { _fileLogger, _consoleLogger, _bufferedLogger }; + LogfileName = _fileLogger.LogfileName.Str; + _bufferedLogger.MessageSent += s => MessageSent?.Invoke(s); } } \ No newline at end of file diff --git a/Launcher.Server/Launcher.Server.csproj b/Launcher.Server/Launcher.Server.csproj index 80c9fea..06a858d 100644 --- a/Launcher.Server/Launcher.Server.csproj +++ b/Launcher.Server/Launcher.Server.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net7.0 Launcher.Server disable disable @@ -11,16 +11,16 @@ AnyCPU - - - - - - Always + + + + + + diff --git a/Launcher.Server/Server.cs b/Launcher.Server/Server.cs index 3d00c06..f0ba3c5 100644 --- a/Launcher.Server/Server.cs +++ b/Launcher.Server/Server.cs @@ -9,8 +9,7 @@ global using System.Net.Sockets; global using System.Text; global using System.Threading; global using System.Linq; -using System.Globalization; -using DTLib.Logging; +using DTLib.Logging; namespace Launcher.Server; @@ -18,7 +17,9 @@ static class Server { static readonly Socket mainSocket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); static DtsodV23 config; - private static readonly ConsoleLogger Logger = new("logs", "launcher-server"); + private static readonly CompositeLogger Logger = new( + new ConsoleLogger(), + new FileLogger("logs", "launcher-server")); static readonly object manifestLocker = new(); @@ -29,40 +30,42 @@ static class Server Console.Title = "Launcher.Server"; Console.InputEncoding = Encoding.Unicode; Console.OutputEncoding = Encoding.Unicode; - PublicLog.LogEvent += Logger.Log; + DTLibInternalLogging.SetLogger(Logger); config = new DtsodV23(File.ReadAllText("launcher-server.dtsod")); - Logger.Log("b", "local address: <", "c", config["local_ip"], "b", - ">\npublic address: <", "c", OldNetwork.GetPublicIP(), "b", - ">\nport: <", "c", config["local_port"].ToString(), "b", ">"); + Logger.LogInfo("Main", $""" + local address: {config["local_ip"]} + public address: {OldNetwork.GetPublicIP()} + port: {config["local_port"]} + """); mainSocket.Bind(new IPEndPoint(IPAddress.Parse(config["local_ip"]), config["local_port"])); mainSocket.Listen(1000); CreateManifests(); - Logger.Log("g", "server started succesfully"); + Logger.LogInfo("Main", "server started succesfully"); // запуск отдельного потока для каждого юзера - Logger.Log("b", "waiting for users"); + Logger.LogInfo("Main", "waiting for users"); while (true) { var userSocket = mainSocket.Accept(); - var userThread = new Thread((obj) => UserHandle((Socket)obj)); + var userThread = new Thread((obj) => HandleUser((Socket)obj)); userThread.Start(userSocket); } } catch (Exception ex) { - Logger.Log("r", ex.ToString()); + Logger.LogError("Main", ex); if (mainSocket.Connected) { mainSocket.Shutdown(SocketShutdown.Both); mainSocket.Close(); } } - Logger.Log("gray", ""); + Console.ResetColor(); } // запускается для каждого юзера в отдельном потоке - static void UserHandle(Socket handlerSocket) + static void HandleUser(Socket handlerSocket) { - Logger.Log("b", "user connecting... "); + Logger.LogInfo("HandleUser", "user connecting..."); try { // запрос хеша пароля и логина @@ -73,7 +76,7 @@ static class Server // запрос от апдейтера if (hash == hasher.HashCycled("updater".ToBytes(),64)) { - Logger.Log("b", "user is ", "c", "updater"); + Logger.LogInfo("HandleUser", "user is updater"); handlerSocket.SendPackage("updater".ToBytes()); // обработка запросов while (true) @@ -84,19 +87,19 @@ static class Server switch (request) { case "requesting launcher update": - Logger.Log("b", "updater requested client.exe"); + Logger.LogInfo("HandleUser", "updater requested client.exe"); fsp.UploadFile("share\\launcher.exe"); break; case "register new user": - Logger.Log("b", "new user registration requested"); + Logger.LogInfo("HandleUser", "new user registration requested"); handlerSocket.SendPackage("ready".ToBytes()); string req = StringConverter.MergeToString( hasher.HashCycled(handlerSocket.GetPackage(), 64).HashToString(), ":\n{\n\tusername: \"", handlerSocket.GetPackage().ToString(), "\";\n\tuuid: \"null\";\n};"); - string filepath = $"registration_requests\\{DateTime.Now.ToString(CultureInfo.InvariantCulture).НормализоватьДляПути()}.req"; + var filepath = Path.Concat("registration_requests", DateTime.Now.ToString(MyTimeFormat.ForFileNames), ".req"); File.WriteAllText(filepath, req); - Logger.Log("b", $"text wrote to file <", "c", $"registration_requests\\{filepath}", "b", ">"); + Logger.LogInfo("HandleUser", $"text wrote to file <{filepath}>"); break; default: throw new Exception("unknown request: " + request); @@ -108,7 +111,7 @@ static class Server // запрос от юзера else if (FindUser(hash, out var user)) { - Logger.Log("b", $"user is ", "c", user.name); + Logger.LogInfo("HandleUser", "user is " + user.name); handlerSocket.SendPackage("launcher".ToBytes()); // обработка запросов while (true) @@ -119,27 +122,26 @@ static class Server switch (request) { case "requesting file download": - var file = handlerSocket.GetPackage().ToString(); - Logger.Log("b", $"user ", "c", user.name, "b", " requested file ", "c", file); - if (file == "manifest.dtsod") - { - lock (manifestLocker) fsp.UploadFile("share\\manifest.dtsod"); - } - else fsp.UploadFile($"share\\{file}"); + var requestedFile = Path.Concat("share",handlerSocket.GetPackage().ToString()); + Logger.LogInfo("HandleUser", $"user {user.name} requested file {requestedFile}"); + if (requestedFile == "share/manifest.dtsod") + lock (manifestLocker) + fsp.UploadFile(requestedFile.ToString()); + else fsp.UploadFile(requestedFile.ToString()); break; case "requesting uuid": - Logger.Log("b", $"user ", "c", user.name, "b", " requested uuid"); + Logger.LogInfo("HandleUser", "user " + user.name + " requested uuid"); handlerSocket.SendPackage(user.uuid.ToBytes()); break; case "excess files found": - Logger.Log("b", $"user ", "c", user.name, "b", " sent excess files list"); - fsp.DownloadFile($"excesses\\{user.name}-" + - $"{DateTime.Now.ToString(CultureInfo.InvariantCulture).НормализоватьДляПути()}.txt"); + Logger.LogInfo("HandleUser", "user " + user.name + " sent excess files list"); + fsp.DownloadFile(Path.Concat( + "excesses",user.name, DateTime.Now.ToString(MyTimeFormat.ForFileNames),".txt") + .ToString()); break; case "sending launcher error": - Logger.Log("y", "user ", "c", user.name, "y", "is sending error:"); string error = handlerSocket.GetPackage().ToString(); - Logger.Log("y", error + '\n'); + Logger.LogWarn("HandleUser", "user "+ user.name + "is sending error:\n"+error); break; default: throw new Exception("unknown request: " + request); @@ -151,13 +153,13 @@ static class Server // неизвестный юзер else { - Logger.Log("y", $"user with hash <{hash.HashToString()}> not found"); + Logger.LogWarn("HandleUser", $"user with hash {hash.HashToString()} not found"); handlerSocket.SendPackage("user not found".ToBytes()); } } catch (Exception ex) { - Logger.Log("y", $"UserStart() error:\n message:\n {ex}"); + Logger.LogWarn("HandleUser", ex); if (mainSocket.Connected) { mainSocket.Shutdown(SocketShutdown.Both); @@ -166,9 +168,10 @@ static class Server } finally { - if (handlerSocket.Connected) handlerSocket.Shutdown(SocketShutdown.Both); + if (handlerSocket.Connected) + handlerSocket.Shutdown(SocketShutdown.Both); handlerSocket.Close(); - Logger.Log("g", "user disconnected"); + Logger.LogInfo("HandleUser", "user disconnected"); } } @@ -176,19 +179,19 @@ static class Server { lock (manifestLocker) { - Directory.Create($"share\\download_if_not_exist"); - Directory.Create($"share\\sync_always"); - Directory.Create($"share\\sync_and_remove"); + Directory.Create("share\\download_if_not_exist"); + Directory.Create("share\\sync_always"); + Directory.Create("share\\sync_and_remove"); - FSP.CreateManifest($"share\\download_if_not_exist"); - FSP.CreateManifest($"share\\sync_always"); + FSP.CreateManifest("share\\download_if_not_exist"); + FSP.CreateManifest("share\\sync_always"); foreach (string dir in Directory.GetDirectories("share\\sync_and_remove")) FSP.CreateManifest(dir); - File.WriteAllText($"share\\sync_and_remove\\dirlist.dtsod", - $"dirs: [\""+ + File.WriteAllText("share\\sync_and_remove\\dirlist.dtsod", + "dirs: [\""+ Directory.GetDirectories("share\\sync_and_remove") .MergeToString("\",\"") - .Replace($"share\\sync_and_remove\\", "")+ + .Replace("share\\sync_and_remove\\", "")+ "\"];"); } } diff --git a/dtlauncher.sln b/dtlauncher.sln index 790d434..6b5e35f 100644 --- a/dtlauncher.sln +++ b/dtlauncher.sln @@ -17,12 +17,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcher.Client.Avalonia", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcher.Client", "Launcher.Client\Launcher.Client.csproj", "{87427137-840D-4D09-A101-9481110682BD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTLib", "..\DTLib\DTLib\DTLib.csproj", "{E27F82A6-B58F-4C07-8DAB-F1556F24F5E0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTLib.Dtsod", "..\DTLib\DTLib.Dtsod\DTLib.Dtsod.csproj", "{507C97A8-47ED-4271-952F-49883E508EA7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTLib.Network", "..\DTLib\DTLib.Network\DTLib.Network.csproj", "{5F53F49F-FFEA-4C2E-B21D-8E11363EA969}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -45,18 +39,6 @@ Global {87427137-840D-4D09-A101-9481110682BD}.Debug|Any CPU.Build.0 = Debug|Any CPU {87427137-840D-4D09-A101-9481110682BD}.Release|Any CPU.ActiveCfg = Release|Any CPU {87427137-840D-4D09-A101-9481110682BD}.Release|Any CPU.Build.0 = Release|Any CPU - {E27F82A6-B58F-4C07-8DAB-F1556F24F5E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E27F82A6-B58F-4C07-8DAB-F1556F24F5E0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E27F82A6-B58F-4C07-8DAB-F1556F24F5E0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E27F82A6-B58F-4C07-8DAB-F1556F24F5E0}.Release|Any CPU.Build.0 = Release|Any CPU - {507C97A8-47ED-4271-952F-49883E508EA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {507C97A8-47ED-4271-952F-49883E508EA7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {507C97A8-47ED-4271-952F-49883E508EA7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {507C97A8-47ED-4271-952F-49883E508EA7}.Release|Any CPU.Build.0 = Release|Any CPU - {5F53F49F-FFEA-4C2E-B21D-8E11363EA969}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5F53F49F-FFEA-4C2E-B21D-8E11363EA969}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5F53F49F-FFEA-4C2E-B21D-8E11363EA969}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5F53F49F-FFEA-4C2E-B21D-8E11363EA969}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE