Beispiel #1
0
        /// <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;
            }
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        /// <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,
                                                               "Нет документа с таким номером");
                            }
                        }
                    }
                }
            }
        }