Beispiel #1
0
 /// <summary>Use this method to delete a message, including service messages, with the following limitations: <br/>
 /// - A message can only be deleted if it was sent less than 48 hours ago.<br/>
 /// - Bots can delete outgoing messages in private chats, groups, and supergroups.<br/>
 /// - Bots can delete incoming messages in private chats.<br/>
 /// - Bots granted can_post_messages permissions can delete outgoing messages in channels.<br/>
 /// - If the bot is an administrator of a group, it can delete any message there.<br/>
 /// - If the bot has can_delete_messages permission in a supergroup or a channel, it can delete any message there.<br/></summary>
 /// <param name="api"><see cref="BotClient"/> instance.</param>
 /// <param name="message">Message to delete.</param>
 /// <returns>True on success.</returns>
 /// <exception cref="BotRequestException">Thrown when a request to Telegram Bot API got an error response.</exception>
 /// <exception cref="ArgumentNullException">Thrown when a required parameter is null.</exception>
 public static bool DeleteMessages(this BotClient api, Message message)
 {
     if (api == null)
     {
         throw new ArgumentNullException(nameof(api));
     }
     if (message == null)
     {
         throw new ArgumentNullException(nameof(message));
     }
     return(api.DeleteMessage(message.Chat.Id, message.MessageId));
 }
        private async void AsyncBotAnalize(System.Object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            DataBase db = Singleton.GetInstance().Context;

            //BotClient.SendPhotoAsync(e.Message.From.Id, e.Message.Photo[2].FileId);

            if (e.Message.From.Username != null)
            {
                SetUserName(e.Message, db);
            }


            if (IsSystemEvent(e.Message))
            {
                try
                {
                    await BotClient.DeleteMessageAsync(e.Message.Chat.Id, e.Message.MessageId);

                    return;
                }
                catch { }
            }
            if (e.Message.Chat.Type == Telegram.Bot.Types.Enums.ChatType.Supergroup)
            {
                if (e.Message.ReplyToMessage != null)
                {
                    if (e.Message.ReplyToMessage.MessageId != 0 && e.Message.Text != null)
                    {
                        if (IsUserAdmin(e.Message.From, e.Message.Chat))
                        {
                            if (SleshComands.Any(c => e.Message.Text.ToLower().Contains(c.Name)))
                            {
                                SleshComands.First(c => e.Message.Text.ToLower().Contains(c.Name)).Execute(BotClient, e.Message);
                                return;
                            }
                        }
                    }
                }
            }

            if (e.Message.Text != null && e.Message.Chat.Type == ChatType.Private)
            {
                User user = db.GetUser(e.Message.From.Id);

                if ((user == null || user.FIO == null || user.Number == "0") && e.Message.Text != "/start")
                {
                    try
                    {
                        new Start().Execute(BotClient, e.Message);
                        BotClient.DeleteMessage(user.ID, e.Message.MessageId, "Bot");
                    }
                    catch (Exception exception)
                    {
                        Log.Logging(exception);
                    }
                }
            }

            if (e.Message.Text != null || e.Message.Contact != null || e.Message.ForwardFromChat != null ||
                e.Message.NewChatMembers != null || e.Message.Sticker != null || e.Message.Photo != null || e.Message.MediaGroupId != null ||
                e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Voice || e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Video ||
                e.Message.Type == Telegram.Bot.Types.Enums.MessageType.VideoNote || e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Document ||
                e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Game || e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Location ||
                e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Contact || e.Message.Type == Telegram.Bot.Types.Enums.MessageType.MessagePinned)
            {
                if (commands.Any(c => c.Equals(e.Message.Text)))                 // проверка есть ли команда в списке
                {
                    try
                    {
                        commands.FirstOrDefault(c => c.Equals(e.Message.Text)).Execute(BotClient, e.Message);                         // вытягиваем класс
                    }
                    catch (System.Exception ex)
                    {
                        Log.Logging(ex);
                    }
                }
                else if (commandSlashes.Any(c => c.Equals(e.Message.Text)))
                {
                    try
                    {
                        commandSlashes.FirstOrDefault(c => c.Equals(e.Message.Text)).Execute(BotClient, e.Message);                         // вытягиваем класс
                    }
                    catch (System.Exception ex)
                    {
                        Log.Logging(ex);
                    }
                }
                else if (e.Message.Text == null || e.Message.Sticker != null || e.Message.Photo != null || e.Message.MediaGroupId != null)
                {
                    Analize t = new Analize();
                    t.ChekRegister(BotClient, e.Message);
                }
                else if (!e.Message.Text.Equals("/start"))
                {
                    Analize t = new Analize();
                    t.ChekRegister(BotClient, e.Message);
                }
            }
        }