Telegram.Bot.Send/Program.cs

48 lines
1.1 KiB
C#

using Telegram.Bot;
using Telegram.Bot.Types.Enums;
var homeDir = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
var configFile = Path.Join(homeDir, ".telegram-send.conf");
string config;
if (args.Length == 0)
PrintSyntaxAndExit();
if (args[0] == "--config") {
if (args.Length != 3)
PrintSyntaxAndExit();
config = $"""
token={args[1]}
chatId={args[2]}
""";
File.WriteAllText(configFile, config);
Environment.Exit(0);
}
if (args.Length > 2)
PrintSyntaxAndExit();
config = File.ReadAllText(configFile);
var token = config.Split("\n")[0].Replace("token=", "");
var chatId = config.Split("\n")[1].Replace("chatId=", "");
var message = args[0] == "-" ? Console.In.ReadToEnd() : args[0];
var bot = new TelegramBotClient(token);
if (args.Contains("--pre"))
message = $"```\n{message}\n```";
await bot.SendTextMessageAsync(chatId, message, ParseMode.MarkdownV2);
void PrintSyntaxAndExit() {
Console.WriteLine("""
Syntax:
telegram-send --config <token> <chatid>
telegram-send <message> [--pre]
To read from stdin, pass '-' as message.
""");
Environment.Exit(1);
}