コード例 #1
0
        public static MessageType FromTelegramMessageType(Telegram.Bot.Types.Enums.MessageType type)
        {
            switch (type)
            {
            case Telegram.Bot.Types.Enums.MessageType.AudioMessage:
                return(MessageType.AudioMessage);

            case Telegram.Bot.Types.Enums.MessageType.ContactMessage:
                return(MessageType.ContactMessage);

            case Telegram.Bot.Types.Enums.MessageType.DocumentMessage:
                return(MessageType.DocumentMessage);

            case Telegram.Bot.Types.Enums.MessageType.LocationMessage:
                return(MessageType.LocationMessage);

            case Telegram.Bot.Types.Enums.MessageType.PhotoMessage:
                return(MessageType.PhotoMessage);

            case Telegram.Bot.Types.Enums.MessageType.StickerMessage:
                return(MessageType.StickerMessage);

            case Telegram.Bot.Types.Enums.MessageType.TextMessage:
                return(MessageType.TextMessage);

            case Telegram.Bot.Types.Enums.MessageType.VoiceMessage:
                return(MessageType.VoiceMessage);

            default:
                return(MessageType.Unknown);
            }
        }
コード例 #2
0
 public Messages(DateTime p_dt, string p_fName, long p_id, string p_text, Telegram.Bot.Types.Enums.MessageType p_type)
 {
     dt        = p_dt.ToString() + "  ";
     firstName = p_fName + "  ";
     id        = p_id;
     text      = "  " + p_text + "  ";
     type      = p_type.ToString();
 }
コード例 #3
0
 public Message(Telegram.Bot.Types.Enums.MessageType type, string fileid, int userid, string text, string date, bool download, string filename)
 {
     this.Type         = type;
     this.FileName     = filename;
     this.ChatID       = userid;
     this.Text         = text;
     this.FileId       = fileid;
     this.Date         = date;
     this.Downloadable = download;
 }
コード例 #4
0
ファイル: Extensions.cs プロジェクト: stanriders/den0bot
 public static MessageType ToDbType(this Telegram.Bot.Types.Enums.MessageType msg)
 {
     return(msg switch
     {
         Telegram.Bot.Types.Enums.MessageType.Text => MessageType.Text,
         Telegram.Bot.Types.Enums.MessageType.Photo => MessageType.Photo,
         Telegram.Bot.Types.Enums.MessageType.Sticker => MessageType.Sticker,
         Telegram.Bot.Types.Enums.MessageType.Voice => MessageType.Voice,
         Telegram.Bot.Types.Enums.MessageType.VideoNote => MessageType.Voice,
         Telegram.Bot.Types.Enums.MessageType.Video => MessageType.Video,
         _ => MessageType.Other
     });
コード例 #5
0
        public static tgMessageType totgMessageType(this Telegram.Bot.Types.Enums.MessageType messageType)
        {
            switch (messageType)
            {
            case Telegram.Bot.Types.Enums.MessageType.Text: return(tgMessageType.text);

            case Telegram.Bot.Types.Enums.MessageType.Photo: return(tgMessageType.foto);

            case Telegram.Bot.Types.Enums.MessageType.Sticker: return(tgMessageType.foto);

            default: return(tgMessageType.other);
            }
        }
コード例 #6
0
        /// <summary>
        /// Скачивание файла
        /// </summary>
        /// <param name="filename">Имя файла</param>
        /// <param name="fileid">Уник. номер файла</param>
        /// <param name="type">Тип файла</param>
        public async void Download(string filename, string fileid, Telegram.Bot.Types.Enums.MessageType type)
        {
            // вспомогательные переменные, чтобы сделать названия файлов уникальными
            int photo   = 0;
            int video   = 0;
            int voice   = 0;
            int sticker = 0;
            var file    = await bot.GetFileAsync(fileid); // получаем информацию о файле в file

            switch (type)                                 // в зависимости от типа сообщения, сохраняем на рабочий стол
            {
            case Telegram.Bot.Types.Enums.MessageType.Photo:
                while (FileExists($"photo{photo}.png"))
                {
                    photo++;
                }
                FileStream photoStream = new FileStream($@"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\photo{photo}.png",
                                                        FileMode.Create);
                await bot.DownloadFileAsync(file.FilePath, photoStream);

                photoStream.Close();
                photoStream.Dispose();
                break;

            case Telegram.Bot.Types.Enums.MessageType.Video:
                while (FileExists($"photo{video}.png"))
                {
                    video++;
                }
                FileStream videoStream = new FileStream($@"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\video{video}.mp4",
                                                        FileMode.Create);
                await bot.DownloadFileAsync(file.FilePath, videoStream);

                videoStream.Close();
                videoStream.Dispose();
                break;

            case Telegram.Bot.Types.Enums.MessageType.Voice:
                while (FileExists($"voice{voice}.mp3"))
                {
                    voice++;
                }
                FileStream voiceStream = new FileStream($@"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\voice{voice}.mp3",
                                                        FileMode.Create);
                await bot.DownloadFileAsync(file.FilePath, voiceStream);

                voiceStream.Close();
                voiceStream.Dispose();
                break;

            case Telegram.Bot.Types.Enums.MessageType.Document:
                FileStream documentStream = new FileStream($@"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\1_{filename}",
                                                           FileMode.Create);
                await bot.DownloadFileAsync(file.FilePath, documentStream);

                documentStream.Close();
                documentStream.Dispose();
                break;

            case Telegram.Bot.Types.Enums.MessageType.Sticker:
                while (FileExists($"sticker{sticker}.gif"))
                {
                    sticker++;
                }
                FileStream stickerStream = new FileStream($@"{Environment.GetFolderPath(Environment.SpecialFolder.Desktop)}\sticker{sticker}.gif",
                                                          FileMode.Create);
                await bot.DownloadFileAsync(file.FilePath, stickerStream);

                stickerStream.Close();
                stickerStream.Dispose();
                break;

            default:
                break;
            }
        }
コード例 #7
0
 /// <summary>
 /// Добавление сообщений в коллекцию Messages пользователя, который отправил сообщение
 /// </summary>
 /// <param name="fileid">Уникальный номер файла</param>
 /// <param name="chatId">Номер чата</param>
 /// <param name="message">Текст сообщения</param>
 /// <param name="IsDownloadable">Возможно ли скачать</param>
 /// <param name="filename">Имя файла(если это документ) у остальных null</param>
 /// <param name="type">Тип сообщения</param>
 public void MessageAdd(string fileid, int chatId, string message, bool IsDownloadable, string filename, Telegram.Bot.Types.Enums.MessageType type)
 {
     foreach (var item in Clients)  // ищем клиента с указанным ChatId
     {
         if (item.ChatId == chatId) // если находим добавляем в коллекцию клиента сообщение
         {
             item.Messages.Add(new Message(type, fileid, chatId, message, DateTime.Now.ToLongTimeString(), IsDownloadable, filename));
         }
     }
 }