Ejemplo n.º 1
0
 public override bool Equals(BotUserIdentifier other)
 {
     if (!(other is TelegramBotIdentifier))
     {
         return(false);
     }
     return(user == (other as TelegramBotIdentifier).user);
 }
Ejemplo n.º 2
0
 public abstract Task SendMessage(BotUserIdentifier user, string message);
Ejemplo n.º 3
0
 public override Task SendMessage(BotUserIdentifier user, string message)
 {
     return(bot.SendTextMessageAsync((user as TelegramBotIdentifier).user, message));
 }
Ejemplo n.º 4
0
        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].");
                }
            }));
        }