public override bool Equals(BotUserIdentifier other) { if (!(other is TelegramBotIdentifier)) { return(false); } return(user == (other as TelegramBotIdentifier).user); }
public abstract Task SendMessage(BotUserIdentifier user, string message);
public override Task SendMessage(BotUserIdentifier user, string message) { return(bot.SendTextMessageAsync((user as TelegramBotIdentifier).user, message)); }
public static Task ProcessMessage(BotModel bot, BotUserIdentifier user, string msg) { return(Task.Run(async() => { try { var command = msg.Split(' ')[0]; Log.Logs.Instance.Push("[Bot] Received Message - " + msg + "\r\n" + Log.Logs.SerializeObject(user)); switch (command.ToLower()) { case "/rap": // request access permission if (hh.Contains(user)) { await bot.SendMessage(user, "Already verified."); break; } var rp = msg.Split(' ')[1]; if (rp == Settings.Instance.Model.BotSettings.AccessIdentifierMessage) { hh.Add(user); await bot.SendMessage(user, "The new identity has been added to the list."); break; } await bot.SendMessage(user, "It does not match the identification message.\r\nPlease try again."); break; case "/time": // request server time await bot.SendMessage(user, DateTime.Now.ToString()); break; case "/condition": if (!hh.Contains(user)) { await bot.SendMessage(user, "You do not have permission to run this command."); break; } { var builder = new StringBuilder(); builder.Append($"Memory-Usage: {(Condition.Instance.GetMemoryUsage() / 1024).ToString("#,#")} KB\r\n"); builder.Append($"CPU-Usage per Min: {(Condition.Instance.GetLastMinuteCPUUsage() * 100.0).ToString("#.#")}%\r\n"); await bot.SendMessage(user, builder.ToString()); } break; case "/help": { var builder = new StringBuilder(); builder.Append("API for Custom Crawler Internal Server\r\n"); builder.Append("\r\n"); builder.Append("/rap <msg> => Request access permission\r\n"); builder.Append("/time => Request server time.\r\n"); builder.Append("/condition => Request server condition.\r\n"); await bot.SendMessage(user, builder.ToString()); } break; default: await bot.SendMessage(user, $"'{command}' is not proper command!\r\nEnter '/help' to get more informations."); break; } } catch (Exception e) { Log.Logs.Instance.PushError("[Bot] " + e.Message + "\r\n" + e.StackTrace); await bot.SendMessage(user, "Internal server error!\r\nIf the error persists, please report to [email protected]."); } })); }