Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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}");
                    }
                }
            }
        }