TelegramMessageCounter/ArgumentReader.cs

44 lines
1.3 KiB
C#
Raw Normal View History

2025-02-11 22:37:33 +03:00
using System.Reflection;
namespace TelegramMessageCounter;
public static class ArgumentReader
{
public static DataRequest ReadArguments(string[] args)
2025-02-11 21:13:47 +03:00
{
string? login = null;
string? username = null;
if (args.Length > 0 && args.Any(x => x == "--help"))
{
2025-02-11 22:37:33 +03:00
var helpFile = Assembly.GetExecutingAssembly()
.GetManifestResourceStream("TelegramMessageCounter.help.txt");
Console.WriteLine(new StreamReader(helpFile ?? new MemoryStream()).ReadToEnd());
Environment.Exit(0);
}
2025-02-11 22:37:33 +03:00
if (args.Any(x => x == "--user"))
{
var userNameArgIndex = args.ToList().IndexOf("--user");
2025-02-11 21:13:47 +03:00
username = args[userNameArgIndex + 1];
}
2025-02-11 21:13:47 +03:00
if (args.Any(x => x == "--login" || x == "-L"))
{
var userNameArgIndex = args.ToList().IndexOf("--login");
if (userNameArgIndex == -1)
{
userNameArgIndex = args.ToList().IndexOf("-L");
}
2025-02-11 21:13:47 +03:00
login = args[userNameArgIndex + 1];
}
2025-02-11 21:13:47 +03:00
string?[] argValues = [login, username];
string? path = args.Length > 1 && argValues.All(x => x != args.Last()) ? args.Last() : null;
if (path == null)
return new(login, username);
2025-02-11 21:13:47 +03:00
return new(login, username, path);
}
}