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); } }
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(); }
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; }
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 });
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); } }
/// <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; } }
/// <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)); } } }