static string GetFiles(string path) { poz = 0; string str_return = ""; d_files.Clear(); int photo = 0; int audio = 0; TypeMessage typeMessage; foreach (var aph in d_audioPhoto) { d_files.Add(poz, aph); typeMessage = aph; if (typeMessage.type == Type.Photo) { str_return += String.Format($"{poz} - (photo) Картинка №{photo}\n"); photo++; } if (typeMessage.type == Type.Audio) { str_return += String.Format($"{poz} - (audio) Запись №{audio}\n"); audio++; } poz++; } string[] files = Directory.GetFiles(path); TypeMessage fileName = new TypeMessage(); foreach (var file in files) { fileName.fileName = Path.GetFileName(file); fileName.type = Type.Document; d_files.Add(poz, fileName); str_return += String.Format($"{poz} - (document) {fileName.fileName}\n"); poz++; } return(str_return); }
private static async void MessageListener(object sender, Telegram.Bot.Args.MessageEventArgs e) { var message = e.Message; if (message == null || message.Type != MessageType.Text) { return; } string text = $"{DateTime.Now.ToLongTimeString()}: {e.Message.Chat.FirstName} {e.Message.Chat.Id} {e.Message.Text}"; Console.WriteLine($"{text} TypeMessage: {e.Message.Type.ToString()}"); int userId = e.Message.From.Id; string l_path = path + "\\" + userId.ToString(); string l_fileName; if (!Directory.Exists(l_path)) { Directory.CreateDirectory(l_path); } Directory.SetCurrentDirectory(l_path); TypeMessage fileName = new TypeMessage(); if (e.Message.Type == Telegram.Bot.Types.Enums.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); } if (e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Photo) { fileName.type = Type.Photo; Telegram.Bot.Types.PhotoSize[] photoSizes = e.Message.Photo; fileName.fileName = photoSizes[0].FileId; d_audioPhoto.Add(fileName); Console.WriteLine(photoSizes[0].FileId); //Console.WriteLine(e.Message.Document.FileName); //Console.WriteLine(e.Message.Document.FileSize); //DownLoad(e.Message.Document.FileId, e.Message.Document.FileName); } if (e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Audio) { fileName.type = Type.Audio; fileName.fileName = e.Message.Audio.FileId; d_audioPhoto.Add(fileName); Console.WriteLine(e.Message.Audio.FileId); //Console.WriteLine(e.Message.Document.FileName); //Console.WriteLine(e.Message.Document.FileSize); //DownLoad(e.Message.Document.FileId, e.Message.Document.FileName); } var messageText = e.Message.Text; if (e.Message.Text == null) { return; } if (e.Message.Text == "/start") { messageText = "Вас приветствует бот 'test20210404_bot'\n" + "Вы можете управлять мной, отправляя эти команды: \n" + "/list - просмотреть список загруженных файлов\n" + "/load_n - скачать выбранный файл, где n - число\n" + "/help - справка по поддерживаемым коммандам\n"; await bot.SendTextMessageAsync(e.Message.Chat.Id, $"{messageText}"); } if (e.Message.Text == "/help") { messageText = "Вы можете управлять мной, отправляя эти команды: \n" + "/list - просмотреть список загруженных файлов\n" + "/load_n - скачать выбранный файл, где n - число\n" + "/help - справка по поддерживаемым коммандам\n"; await bot.SendTextMessageAsync(e.Message.Chat.Id, $"{messageText}"); } if (e.Message.Text == "/list") { messageText = GetFiles(l_path); await bot.SendTextMessageAsync(e.Message.Chat.Id, $"{messageText}"); } 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; string url; TypeMessage name = null; if (int.TryParse(str_nomer, out nomer)) { try { name = d_files[nomer]; switch (name.type) { case Type.Document: ////l_fileName = string.Format($"attach://")+l_path+"\\"+name.fileName; //l_fileName = l_path + "\\" + name.fileName; //using (FileStream stream = System.IO.File.OpenRead(l_fileName)) //{ // string ssf = l_fileName; // //Path.GetFileName(l_fileName); // Получаем имя файла из потока // var Iof = new InputOnlineFile(stream, ssf); // Входные данные для отправки // string fromsend = $"Файл отправлен от: {Environment.UserName}"; // Имя пользователя // //Message ss = // bot.SendDocumentAsync(e.Message.Chat.Id, Iof, fromsend); // Отправка файла с параметрами. //} //url = UpLoad(token,e.Message.Chat.Id, l_fileName); //bot.SendDocumentAsync(e.Message.Chat.Id, url); await SendDocument(message); break; case Type.Audio: await bot.SendAudioAsync(e.Message.Chat.Id, name.fileName); break; case Type.Photo: await bot.SendPhotoAsync(e.Message.Chat.Id, name.fileName); break; } } catch (ArgumentException) { Console.WriteLine("An element with Key = \"txt\" already exists."); } catch (KeyNotFoundException) { Console.WriteLine("Key Not Found Exception"); } } //messageText = ""; //bot //await bot.SendTextMessageAsync(e.Message.Chat.Id, // $"{messageText}"); } } } }