Ejemplo n.º 1
0
        protected async Task <Message> SendMessage(long ChatId, BotMessage botMessage, bool DisableNotifi = false)
        {
            try
            {
                if (botMessage != null && this.Update.CallbackQuery != null && this.CallBackQueryId != null)
                {
                    await AnswerCallback(botMessage.CallBackTitleText);
                }

                if (botMessage != null && botMessage.TextMessage != null)
                {
                    return(await TelegramClient.SendTextMessageAsync(ChatId, botMessage.TextMessage, ParseMode.Html, false, DisableNotifi, 0, botMessage.MessageReplyMarkup));
                }

                else
                {
                    return(null);
                }
            }

            catch (Exception exp)
            {
                return(null);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Изменить сообщение
        /// </summary>
        /// <param name="botMessage"></param>
        /// <returns></returns>
        protected async Task <Message> EditMessage(BotMessage botMessage)
        {
            try
            {
                if (botMessage != null && this.Update.CallbackQuery != null && this.CallBackQueryId != null)
                {
                    await AnswerCallback(botMessage.CallBackTitleText);
                }

                if (botMessage != null && botMessage.TextMessage != null)
                {
                    return(await TelegramClient.EditMessageTextAsync(this.ChatId, this.MessageId, botMessage.TextMessage, ParseMode.Html, true, botMessage.MessageReplyMarkup));
                }



                else
                {
                    return(null);
                }
            }

            catch
            {
                return(null);
                // return await TelegramClient.SendTextMessageAsync(this.ChatId, botMessage.TextMessage, ParseMode.Html, false, false, 0, botMessage.MessageReplyMarkup);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Отправить сообщение
        /// </summary>
        /// <param name="botMessage"></param>
        /// <param name="EditMessageId"></param>
        /// <param name="ReplyToMessageId"></param>
        /// <returns></returns>
        protected async Task <Message> SendMessage(BotMessage botMessage, int EditMessageId = 0, int ReplyToMessageId = 0, bool DisableWeb = true)
        {
            try
            {
                if (botMessage != null && this.Update.CallbackQuery != null && this.CallBackQueryId != null)
                {
                    await AnswerCallback(botMessage.CallBackTitleText);
                }

                if (botMessage != null && EditMessageId != 0)
                {
                    return(await TelegramClient.EditMessageTextAsync(this.ChatId, EditMessageId, botMessage.TextMessage, ParseMode.Html, true, botMessage.MessageReplyMarkup));
                }

                if (botMessage != null && botMessage.TextMessage != null)
                {
                    return(await TelegramClient.SendTextMessageAsync(this.ChatId, botMessage.TextMessage, ParseMode.Html, DisableWeb, false, ReplyToMessageId, botMessage.MessageReplyMarkup));
                }

                else
                {
                    return(null);
                }
            }

            catch (Exception e)
            {
                // await TelegramClient.SendTextMessageAsync(this.ChatId, botMessage.TextMessage, ParseMode.Html, false, false, ReplyToMessageId, botMessage.MessageReplyMarkup);

                return(null);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// отправить фото
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        protected async Task <Message> SendPhoto(BotMessage message)
        {
            Message mess = new Message();

            try
            {
                if (this.Update.CallbackQuery != null && this.CallBackQueryId != null)
                {
                    await AnswerCallback(message.CallBackTitleText);
                }

                //максимальная длина подписи для фотографии 200 символов
                if (message.MediaFile != null && message.MediaFile.Caption != null && message.MediaFile.Caption.Length < 200)
                {
                    mess = await TelegramClient.SendPhotoAsync(ChatId, message.MediaFile.FileTo, message.MediaFile.Caption, false, 0, message.MessageReplyMarkup);
                }

                if (message.MediaFile != null && message.MediaFile.Caption == null)
                {
                    mess = await TelegramClient.SendPhotoAsync(ChatId, message.MediaFile.FileTo, "", false, 0, message.MessageReplyMarkup);
                }

                //если подпись для фотографии больше 200 символом, то разибваем на два сообщения 1) Фото 2) Текст
                if (message.MediaFile != null && message.MediaFile.Caption != null && message.MediaFile.Caption != "" && message.MediaFile.Caption.Length >= 200)
                {
                    mess = await TelegramClient.SendPhotoAsync(this.ChatId, message.MediaFile.FileTo, "");
                    await SendMessage(this.ChatId, new BotMessage { TextMessage = message.MediaFile.Caption, MessageReplyMarkup = message.MessageReplyMarkup });
                }

                // если фотки нет
                if (message.MediaFile != null && message.MediaFile.Caption != null && message.MediaFile.Caption != "" && message.MediaFile.FileTo.Content == null &&
                    message.MediaFile.FileTo.FileId == null)
                {
                    mess = await TelegramClient.SendTextMessageAsync(ChatId, message.TextMessage, ParseMode.Html, false, false, 0, message.MessageReplyMarkup);
                }

                if (message.MediaFile == null && message.TextMessage != null)
                {
                    mess = await TelegramClient.SendTextMessageAsync(ChatId, message.TextMessage, ParseMode.Html, false, false, 0, message.MessageReplyMarkup);
                }

                //Если мы отрпавляем файл для этого бота первый раз, то Записываем FileId в базу для этог бота, что бы в следующий раз не отслылать целый файл
                //а только FileId на сервере телеграм
                if (mess != null && mess.Photo != null && message.MediaFile.AttachmentFsId > 0 && message.MediaFile.FileTo.FileId == null)
                {
                    InsertToAttachmentTelegram(message.MediaFile, mess.Photo[mess.Photo.Length - 1].FileId);
                }

                return(mess);
            }

            catch (Exception exp)
            {
                return(null);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Отправить сообщение в групповой чат в котором находятся все операторы
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        private async Task <Message> SendMessageToGroupChat(BotMessage message)
        {
            try
            {
                return(await SendMessage(Convert.ToInt64(BotInfo.Configuration.PrivateGroupChatId), new BotMessage { TextMessage = BotBlockedMsg }));
            }

            catch
            {
                return(null);
            }
        }
Ejemplo n.º 6
0
        private async Task <Message> SendAudio(BotMessage message)
        {
            try
            {
                if (message.MediaFile.AttachmentFsId > 0 && message.MediaFile.FileTo.FileId != null)
                {
                    InsertToAttachmentTelegram(message.MediaFile, this.AudioId);
                }

                return(await TelegramClient.SendAudioAsync(this.ChatId, message.MediaFile.FileTo, message.MediaFile.Caption, 100, "audio.mp3", "help", replyMarkup : message.MessageReplyMarkup));
            }

            catch
            {
                return(null);
            }
        }
Ejemplo n.º 7
0
        private async Task <Message> SendVoice(BotMessage message)
        {
            try
            {
                if (message.MediaFile.AttachmentFsId > 0 && message.MediaFile.FileTo.FileId != null)
                {
                    InsertToAttachmentTelegram(message.MediaFile, this.VoiceId);
                }

                return(await TelegramClient.SendVoiceAsync(this.ChatId, message.MediaFile.FileTo, message.MediaFile.Caption, 0, false, 0, message.MessageReplyMarkup));
            }

            catch
            {
                return(null);
            }
        }
Ejemplo n.º 8
0
        protected async Task <Message> SendDocument(BotMessage message)
        {
            try
            {
                if (this.Update.CallbackQuery != null && this.CallBackQueryId != null)
                {
                    await AnswerCallback();
                }

                return(await TelegramClient.SendDocumentAsync(this.ChatId, message.MediaFile.FileTo, message.MediaFile.Caption));
            }

            catch (Exception exp)
            {
                return(null);
            }
        }
Ejemplo n.º 9
0
        protected async Task <Message> SendMediaMessage(BotMessage message)
        {
            try
            {
                if (message.MediaFile.FileTypeId == Core.ConstantVariable.MediaTypeVariable.Audio)
                {
                    return(await SendAudio(message));
                }

                if (message.MediaFile.FileTypeId == Core.ConstantVariable.MediaTypeVariable.Video)
                {
                    return(await SendVideo(message));
                }

                if (message.MediaFile.FileTypeId == Core.ConstantVariable.MediaTypeVariable.Voice)
                {
                    return(await SendVoice(message));
                }

                if (message.MediaFile.FileTypeId == Core.ConstantVariable.MediaTypeVariable.VideoNote)
                {
                    return(await SendVideoNote(message));
                }

                if (message.MediaFile.FileTypeId == Core.ConstantVariable.MediaTypeVariable.Photo)
                {
                    return(await SendPhoto(message));
                }

                else
                {
                    return(null);
                }
            }

            catch
            {
                return(null);
            }
        }
Ejemplo n.º 10
0
 /// <summary>
 /// Рассылка сообщений всем сотудникам в лс + в чат
 /// </summary>
 /// <param name="message"></param>
 /// <returns></returns>
 protected async Task <bool> SendMessageAllBotEmployeess(BotMessage message)
 {
     return(true);
 }