/// <summary> /// Сохраняет фото и аудио в список, документы в папку /// </summary> /// <param name="e"></param> private void SaveToList(MessageEventArgs e) { string text = $"{DateTime.Now.ToLongTimeString()}: {e.Message.Chat.FirstName} {e.Message.Chat.Id} {e.Message.Text}"; SetDirectory(e.Message.From.Id); //Console.WriteLine($"{text} TypeMessage: {e.Message.Type}"); //Dispatcher.BeginInvoke( new Action(() => listMessages.Add($"{text} TypeMessage: {e.Message.Type}"))); Dispatcher.BeginInvoke(new Action(() => lMessages.Add(new Messages(DateTime.Now, e.Message.Chat.FirstName, e.Message.Chat.Id, e.Message.Text, e.Message.Type)))); TypeMessage fileName = new TypeMessage(); switch (e.Message.Type) { case MessageType.Document: //Console.WriteLine(e.Message.Document.FileId); //Console.WriteLine(e.Message.Document.FileName); //Console.WriteLine(e.Message.Document.FileSize); DownLoad(e.Message.Document.FileId, e.Message.Document.FileName); break; case MessageType.Photo: fileName.type = Type.Photo; PhotoSize[] photoSizes = e.Message.Photo; fileName.fileName = photoSizes[0].FileId; DownLoad(photoSizes[0].FileId, "photo_" + photo.ToString()); photo++; break; case MessageType.Audio: fileName.type = Type.Audio; fileName.fileName = e.Message.Audio.FileId; DownLoad(e.Message.Audio.FileId, "audio_" + audio.ToString()); audio++; break; case MessageType.Voice: fileName.type = Type.Voice; fileName.fileName = e.Message.Voice.FileId; DownLoad(e.Message.Voice.FileId, "voice_" + voice.ToString()); voice++; break; case MessageType.Video: fileName.type = Type.Video; fileName.fileName = e.Message.Video.FileId; DownLoad(e.Message.Video.FileId, "video_" + video.ToString()); video++; break; } }
/// <summary> /// Создаёт список документов, аудио, фото и т.д /// </summary> /// <param name="path"></param> /// <returns>Возвращяет список документов, аудио, фото и т.д типа string</returns> string GetFiles(string path) { poz = 0; string str_return = ""; d_files.Clear(); string[] files = Directory.GetFiles(path); foreach (var file in files) { TypeMessage fileName = new TypeMessage(); fileName.fileName = Path.GetFileName(file); string[] words = fileName.fileName.Split('_'); switch (words[0]) { case "photo": fileName.type = Type.Photo; d_files.Add(poz, fileName); str_return += String.Format($"{poz} - (photo) {fileName.fileName}\n"); break; case "audio": fileName.type = Type.Audio; d_files.Add(poz, fileName); str_return += String.Format($"{poz} - (audio) {fileName.fileName}\n"); break; case "voice": fileName.type = Type.Voice; d_files.Add(poz, fileName); str_return += String.Format($"{poz} - (voice) {fileName.fileName}\n"); break; case "video": fileName.type = Type.Video; d_files.Add(poz, fileName); str_return += String.Format($"{poz} - (video) {fileName.fileName}\n"); break; default: fileName.type = Type.Document; d_files.Add(poz, fileName); str_return += String.Format($"{poz} - (document) {fileName.fileName}\n"); break; } poz++; } return(str_return); }
/// <summary> /// Обработка сообщений по умолчания (всё кроме команд /start /help /list) /// </summary> /// <param name="e"></param> private async void MessageDefault(MessageEventArgs e) { string str_load = e.Message.Text.Substring(0, 1); if (str_load == "/") { if (e.Message.Text.Length >= 6) { int i = e.Message.Text.CompareTo("/load_"); if (i >= 0) { string[] subString = e.Message.Text.Split('_'); string str_nomer = subString[1]; int nomer; TypeMessage name = null; if (int.TryParse(str_nomer, out nomer)) { try { name = d_files[nomer]; switch (name.type) { case Type.Document: await SendDocument(e.Message, name.fileName); break; case Type.Audio: await SendAudioMy(e.Message, name.fileName); //await bot.SendAudioAsync(e.Message.Chat.Id, name.fileName); break; case Type.Photo: await SendPhoto(e.Message, name.fileName); //await bot.SendPhotoAsync(e.Message.Chat.Id, name.fileName); break; case Type.Voice: await SendVoice(e.Message, name.fileName); //await bot.SendVoiceAsync(e.Message.Chat.Id, name.fileName); break; case Type.Video: await SendVideo(e.Message, name.fileName); //await bot.SendVideoAsync(e.Message.Chat.Id, name.fileName); break; } } catch (ArgumentException) { //Console.WriteLine("Ошибка ArgumentException"); MessageBox.Show("Ошибка ArgumentException"); } catch (KeyNotFoundException) { //Console.WriteLine("Ошибка KeyNotFoundException"); await bot.SendTextMessageAsync(e.Message.Chat.Id, "Нет документа с таким номером"); } } } } } }