Example #1
0
        /// <summary>
        /// get telegram file id from url (send to moderator)
        /// </summary>
        /// <param name="url"></param>
        internal async Task <string> getFileIdFromUrl(string url)
        {
            string fileid = "";

            try
            {
                using (var client = new HttpClient())
                {
                    Stream imageBytes = await client.GetStreamAsync(url);

                    Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend();
                    fs.Content = imageBytes;
                    Uri uri = new Uri(url);
                    fs.Filename = Path.GetFileName(uri.AbsolutePath);
                    var mesToModerator = await MainParams.TGBot.SendPhotoAsync(MainParams.moderator_id, fs, "cat from url #" + MainParams.catFromUrl);

                    fileid = mesToModerator.Photo.Last().FileId;
                    MainParams.nlog.Trace("getFileIdFromUrl Mess to Moderator sent; url=" + url);
                }
            }
            catch (Exception e)
            {
                MainParams.nlog.Debug("***NewLogs; getFileIdFromUrl!!! ;EX=;" + e.Message + ";Source=" + e.Source + ";stack=" + e.StackTrace + ";e.inner=" + e.InnerException);
                MainParams.nlog.Debug(e);
            }
            return(fileid);
        }
        private async Task <bool> SetWebhookAsync(string token, string url, Telegram.Bot.Types.FileToSend fileToSend)
        {
            try
            {
                TelegramBot = new TelegramBotClient(token);

                if (fileToSend.Content == null)
                {
                    await TelegramBot.SetWebhookAsync(url + "/bot/", null);
                }

                if (fileToSend.Content != null)
                {
                    await TelegramBot.SetWebhookAsync(url + "/bot/", fileToSend);
                }


                return(true);
            }

            catch
            {
                return(false);
            }
        }
Example #3
0
 public async Task SendPhotoMessageAsync(BotChat chat, Stream fileStream, string caption = null)
 {
     if (!_active)
     {
         return;
     }
     Ensure.ArgumentNotNull(fileStream, "The fileStream can't be null");
     var fileToSend = new TBot.Types.FileToSend(caption ?? Core.Now.Ticks.ToString(), fileStream);
     await _bot.SendPhotoAsync(chat.Id.ParseTo <long>(-1), fileToSend, caption).ConfigureAwait(false);
 }
Example #4
0
        private async void SendAudioFile(string url, long chatId, string title)
        {
            Telegram.Bot.Types.FileToSend audioFile = new Telegram.Bot.Types.FileToSend();

            using (var stream = System.IO.File.Open(url, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read))
            {
                audioFile.Content  = stream;
                audioFile.Filename = url;
                Telegram.Bot.Types.Message message = await tbc.SendAudioAsync(chatId, audioFile, 10, "performer", title);
            }
        }
        async private void btnSendFile_Click(object sender, EventArgs e)
        {
            try
            {
                Api Bot = new Api(txtBotToken.Text);
                if (rdoSendFile.Checked)
                {
                    Telegram.Bot.Types.FileToSend _FileToSend = new Telegram.Bot.Types.FileToSend();
                    _FileToSend.Content  = new FileStream(path, FileMode.Open);
                    _FileToSend.Filename = Path.GetFileName(path);
                    pbSendFile.Visible   = true;
                    var r = await
                            Bot.SendDocument(txtChannelId.Text, _FileToSend,
                                             txtCaption.Text, chSendFileIsSilent.Checked);
                }
                else if (rdoSendPhoto.Checked)
                {
                    Telegram.Bot.Types.FileToSend _FileToSend = new Telegram.Bot.Types.FileToSend();
                    _FileToSend.Content  = new FileStream(path, FileMode.Open);
                    _FileToSend.Filename = Path.GetFileName(path);
                    pbSendFile.Visible   = true;
                    var r = await Bot.SendPhoto(txtChannelId.Text, _FileToSend,
                                                txtCaption.Text, chSendFileIsSilent.Checked);
                }
                else if (rdoSendVideo.Checked)
                {
                    Telegram.Bot.Types.FileToSend _FileToSend = new Telegram.Bot.Types.FileToSend();
                    _FileToSend.Content  = new FileStream(path, FileMode.Open);
                    _FileToSend.Filename = Path.GetFileName(path);
                    pbSendFile.Visible   = true;
                    var r =
                        await Bot.SendVideo(txtChannelId.Text, _FileToSend, 0, txtCaption.Text, chSendFileIsSilent.Checked);
                }
                else if (rdoSendAudio.Checked)
                {
                    Telegram.Bot.Types.FileToSend _FileToSend = new Telegram.Bot.Types.FileToSend();
                    _FileToSend.Content  = new FileStream(path, FileMode.Open);
                    _FileToSend.Filename = Path.GetFileName(path);
                    pbSendFile.Visible   = true;
                    var r = await
                            Bot.SendAudio(txtChannelId.Text, _FileToSend, 0,
                                          txtAudioPerformer.Text, txtAudioTitle.Text, chSendFileIsSilent.Checked);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            pbSendFile.Visible = false;
        }
Example #6
0
        private Telegram.Bot.Types.FileToSend ConvertToFileToSend(IFormFile file)
        {
            if (file != null)
            {
                System.IO.MemoryStream memory = new System.IO.MemoryStream();
                file.CopyTo(memory);
                Telegram.Bot.Types.FileToSend toSend = new Telegram.Bot.Types.FileToSend
                {
                    Content  = memory,
                    Filename = "@" + file.FileName
                };

                return(toSend);
            }

            return(new Telegram.Bot.Types.FileToSend {
            });
        }
Example #7
0
        public async Task SendPhotoMessageAsync(BotChat chat, string fileName, string caption = null)
        {
            if (!_active)
            {
                return;
            }
            if (!File.Exists(fileName))
            {
                throw new FileNotFoundException("The filename doesn't exist", fileName);
            }

            using (var ms = new MemoryStream())
            {
                using (var fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
                    await fs.CopyToAsync(ms).ConfigureAwait(false);
                ms.Position = 0;
                var fileToSend = new TBot.Types.FileToSend(Path.GetFileName(fileName), ms);

                await _bot.SendPhotoAsync(chat.Id.ParseTo <long>(-1), fileToSend, caption).ConfigureAwait(false);
            }
        }
Example #8
0
        private async Task <string> SendPhotoAndSaveFileId(AttachmentFs attachmentFs)
        {
            if (BotInfo == null)
            {
                BotInfo = Bot.GeneralFunction.GetBotInfo();
            }


            try
            {
                string token = BotInfo.Token;

                TelegramBotClient = new Telegram.Bot.TelegramBotClient(token);

                System.IO.Stream stream = new MemoryStream(attachmentFs.Fs);

                Telegram.Bot.Types.FileToSend fileToSend = new Telegram.Bot.Types.FileToSend
                {
                    Content  = stream,
                    Filename = "Photo.jpg"
                };

                var Message = await TelegramBotClient.SendPhotoAsync(BotInfo.OwnerChatId, fileToSend);

                string Fileid = Message.Photo[Message.Photo.Length - 1].FileId;

                AttachmentTelegramFunction.AddAttachmentTelegram(attachmentFs.Id, BotInfo.Id, Fileid);

                return(Fileid);
            }

            catch
            {
                return(null);
            }
        }
Example #9
0
        public void SendAudio(int chatId, FileToSend audio, int replyToMessageId = 0, ReplyKeyboardMarkup ReplyKeyboardMarkup = null)
        {
            try
            {
                Telegram.Bot.Types.FileToSend File = new Telegram.Bot.Types.FileToSend();
                File.Content = audio.Content;
                File.Filename = audio.Filename;

                OnTaskDone(api.SendAudio(chatId, File, replyToMessageId, parser.ParseReplyKeyboardMarkup(ReplyKeyboardMarkup)));

            }
            catch (Exception ex)
            {
                OnError(this, ex);
            }
        }
Example #10
0
        async void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            bool answer    = false;
            var  translate = new Translate();
            var  worker    = sender as BackgroundWorker;

            Telegram.Bot.Types.User u = new Telegram.Bot.Types.User();
            var key = e.Argument as String;

            try
            {
                var Bot = new Telegram.Bot.TelegramBotClient(key);
                await Bot.SetWebhookAsync("");

                int offset = 0;
                while (true)
                {
                    var updates = await Bot.GetUpdatesAsync(offset);

                    foreach (var update in updates)
                    {
                        var message = update.Message;
                        if (message == null)
                        {
                            continue;
                        }/*
                          * if ((message.Type == Telegram.Bot.Types.Enums.MessageType.StickerMessage)&&(message.From.FirstName=="Infinity"))
                          * await Bot.DeleteMessageAsync(message.Chat.Id, message.MessageId);*/
                        if (message.Type == Telegram.Bot.Types.Enums.MessageType.TextMessage)
                        {
                            //music

                            /*if(message.Text.Contains("/music"))
                             * {
                             *  Telegram.Bot.Types.FileToSend f = new Telegram.Bot.Types.FileToSend("https://www.dropbox.com/s/1nwbwwe8d4m58uk/Death%20Note%20-%20L%27s%20Theme%20%28full%29.mp3");
                             *  await Bot.SendDocumentAsync(message.Chat.Id, f, "here it`s");
                             * }*/
                            //crypt
                            DateTime d = DateTime.Now;
                            if (d.Minute % 15 == 0)
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "vote for AA!");
                            }
                            if (message.Text.Contains("/encrypt"))
                            {
                                EnCrypt crypt = new EnCrypt();

                                try
                                {
                                    string[] s   = message.Text.Split(' ').ToArray();
                                    string   res = crypt.EncryptOrDecrypt(message.Text.Substring(message.Text.IndexOf("t") + 2), "1234");
                                    await Bot.SendTextMessageAsync(message.Chat.Id, res, replyToMessageId : message.MessageId);
                                }
                                catch (Exception)
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "error", replyToMessageId : message.MessageId);
                                }
                                try
                                {
                                    await Bot.DeleteMessageAsync(message.Chat.Id, message.MessageId);
                                }
                                catch (Exception)
                                {
                                }
                            }

                            //rev
                            if (message.Text.ToLower().Contains("/realrevolution"))
                            {
                                try
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "It`s a revolution.", replyToMessageId : message.MessageId);

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "В основном(5 человек) поддержали идею свержения Дани за:");

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "•	Смену названия группы");

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "•	Ненависть к аниме");

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "•	Нечестные глосования(накрутка)");

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Итак, мы свергаем его, и всеми банами/нарушениями будет заниматся БОТ. Только система будет определять меру присечения человека.");

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Админами будут я Бот, и тот, кого выберут на новом голо-и.");

                                    await Bot.SetChatTitleAsync(message.Chat.Id, "AAA club oficial");
                                }
                                catch (Exception)
                                {
                                }
                            }
                            //ban

                            if (message.Text.ToLower().Contains("/ban"))
                            {
                                var ban = new Ban();
                                try
                                {
                                    ban.GetMessage(message.Text);
                                }
                                catch (Exception)
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, message.From.FirstName + " " + message.From.LastName + "(" + message.From.Username + " pidor ne lamay bota");
                                }

                                if (ban.NeedToBan())
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Sviatoslav(@pauchok1love) ban please " + ban.Name(), replyToMessageId : message.MessageId);
                                }
                                else
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "system don`t need to ban " + ban.Name(), replyToMessageId : message.MessageId);
                                }
                            }
                            //counter
                            if (message.Text.ToLower().Contains("/counter"))
                            {
                                if (message.Text.Substring(message.Text.IndexOf("r") + 2).Length > 5)
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "error");

                                    continue;
                                }
                                Mamkate mamkate = new Mamkate();
                                mamkate.GetTime(Convert.ToInt32(message.Text.Substring(message.Text.IndexOf("r") + 2)));

                                try
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, mamkate.Timer());
                                }
                                catch (Exception)
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "error");
                                }
                            }
                            //trigger
                            if (message.Text.Contains("/trigger"))
                            {
                                if (message.Text.ToLower().Contains("dania") || message.Text.ToLower().Contains("даня"))
                                {
                                    Telegram.Bot.Types.FileToSend f  = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/ee1rvx/image.png");
                                    Telegram.Bot.Types.FileToSend f2 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/mR9Gfx/20180228_073506_1.jpg");
                                    Telegram.Bot.Types.FileToSend f1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/janjhc/image.png");
                                    await Bot.SendPhotoAsync(message.Chat.Id, f, "trigger #1");

                                    await Bot.SendPhotoAsync(message.Chat.Id, f1, "trigger #2");

                                    await Bot.SendPhotoAsync(message.Chat.Id, f2, "trigger #3");
                                }
                                if (message.Text.ToLower().Contains("mark") || message.Text.ToLower().Contains("марк"))
                                {
                                    Telegram.Bot.Types.FileToSend f = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/nMRLOH/image.png");

                                    Telegram.Bot.Types.FileToSend f1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/dOnMVx/image.png");
                                    await Bot.SendPhotoAsync(message.Chat.Id, f, "trigger #1");

                                    await Bot.SendPhotoAsync(message.Chat.Id, f1, "trigger #2");
                                }
                                if (message.Text.ToLower().Contains("slavka") || message.Text.ToLower().Contains("славка"))
                                {
                                    Telegram.Bot.Types.FileToSend f  = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/gjhzHc/image.png");
                                    Telegram.Bot.Types.FileToSend f2 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/jsLiCn/image.png");
                                    Telegram.Bot.Types.FileToSend f1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/cJvEiH/image.png");
                                    await Bot.SendPhotoAsync(message.Chat.Id, f, "trigger #1");

                                    await Bot.SendPhotoAsync(message.Chat.Id, f1, "trigger #2");

                                    await Bot.SendPhotoAsync(message.Chat.Id, f2, "trigger #3");
                                }
                                if (message.Text.ToLower().Contains("artur") || message.Text.ToLower().Contains("arturik") || message.Text.ToLower().Contains("артур") || message.Text.ToLower().Contains("артурик"))
                                {
                                    Telegram.Bot.Types.FileToSend f  = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/cC4tAx/image.png");
                                    Telegram.Bot.Types.FileToSend f1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/e3PRVx/image.png");
                                    Telegram.Bot.Types.FileToSend f2 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/bMt8Sc/image.png");
                                    await Bot.SendPhotoAsync(message.Chat.Id, f, "trigger #1");

                                    await Bot.SendPhotoAsync(message.Chat.Id, f1, "trigger #2");

                                    await Bot.SendPhotoAsync(message.Chat.Id, f2, "trigger #3");
                                }
                                if (message.Text.ToLower().Contains("paliy") || message.Text.ToLower().Contains("палий"))
                                {
                                    Telegram.Bot.Types.FileToSend f  = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/mYqBxc/image.png");
                                    Telegram.Bot.Types.FileToSend f1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/ddXmfx/image.png");
                                    await Bot.SendPhotoAsync(message.Chat.Id, f, "trigger #1");

                                    await Bot.SendPhotoAsync(message.Chat.Id, f1, "trigger #2");
                                }
                            }
                            //fox
                            if (message.Text.ToLower().Contains("fox"))
                            {
                                Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/cfkqJS/image.png");
                                await Bot.SendPhotoAsync(message.Chat.Id, fs, "here is a fox #1");

                                Telegram.Bot.Types.FileToSend fs1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/h0hqk7/image.png");
                                await Bot.SendPhotoAsync(message.Chat.Id, fs1, "here is a fox #2");
                            }
                            //say(need to upgrate)

                            if (message.Text == "/say" || message.Text == "/say@aaaclub_bot")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "slavka", replyToMessageId : message.MessageId);
                            }
                            //anime need to upgrate
                            if (message.Text == "/anime" || message.Text == "/anime@aaaclub_bot")
                            {
                                //await Bot.SendTextMessageAsync(message.Chat.Id, "Chose ganre", replyToMessageId: message.MessageId);
                                var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                {
                                    Keyboard = new[]
                                    {
                                        new[]
                                        {
                                            new Telegram.Bot.Types.KeyboardButton("for paliy"),
                                            new Telegram.Bot.Types.KeyboardButton("for normal people"),
                                            new Telegram.Bot.Types.KeyboardButton("for artuturik")
                                        },
                                    },
                                    ResizeKeyboard = true
                                };
                                keyboard.OneTimeKeyboard = true;
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Chose ganre?", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboard);
                            }
                            //monday
                            if (message.Text == "/monday" || message.Text == "/monday@aaaclub_bot")
                            {
                                var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                {
                                    Keyboard = new[]
                                    {
                                        new[]
                                        {
                                            new Telegram.Bot.Types.KeyboardButton("yes, i`m ready"),
                                            new Telegram.Bot.Types.KeyboardButton("no, i`m not ready")
                                        },
                                    },
                                    ResizeKeyboard = true
                                };
                                keyboard.OneTimeKeyboard = true;

                                await Bot.SendTextMessageAsync(message.Chat.Id, "are u ready to zalupa?", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboard);
                            }
                            //answer to sqr
                            if (answer)
                            {
                                try
                                {
                                    string s = message.Text.ToLower();
                                    if (math_1.input_message(s) == "error")
                                    {
                                        await Bot.SendTextMessageAsync(message.Chat.Id, "error", replyToMessageId : message.MessageId);
                                    }
                                    else
                                    {
                                        double x1 = 0, x2 = 0;
                                        math_1.x1x2(ref x1, ref x2);
                                        if (x1 == 2.228 && x2 == 2.228)
                                        {
                                            await Bot.SendTextMessageAsync(message.Chat.Id, "there are no roots", replyToMessageId : message.MessageId);
                                        }
                                        if (x2 == 2.228 && x1 != 2.228)
                                        {
                                            await Bot.SendTextMessageAsync(message.Chat.Id, "there is one root: " + Convert.ToString(x1), replyToMessageId : message.MessageId);
                                        }
                                        if (x1 != 2.228 && x2 != 2.228)
                                        {
                                            await Bot.SendTextMessageAsync(message.Chat.Id, "thereare two roots: " + Convert.ToString(x1) + " " + Convert.ToString(x2), replyToMessageId : message.MessageId);
                                        }
                                    }
                                    answer = false;
                                }
                                catch (Telegram.Bot.Exceptions.ApiRequestException ex)
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "error", replyToMessageId : message.MessageId);
                                }
                            }
                            //sqr
                            if (message.Text == "/sqr" || message.Text == "/sqr@aaaclub_bot")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "send me numbers", replyToMessageId : message.MessageId);

                                answer = true;
                            }
                            //zinia answer
                            if ((message.Text.ToLower().Contains("zinia") || message.Text.ToLower().Contains("зиня")) && !message.Text.ToLower().Contains("/zinia"))
                            {
                                Zinia zinia = new Zinia();

                                await Bot.SendTextMessageAsync(message.Chat.Id, zinia.res(message), replyToMessageId : message.MessageId);
                            }
                            //photo #1
                            if (message.Text == "/mamka" || message.Text == "/mamka@aaaclub_bot")
                            {
                                Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/joBJ7c/image.png");
                                await Bot.SendPhotoAsync(message.Chat.Id, fs, "mamka");
                            }
                            //photo #2
                            if (message.Text == "/doge" || message.Text == "/doge@aaaclub_bot")
                            {
                                Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/dHKuxc/image.png");
                                await Bot.SendPhotoAsync(message.Chat.Id, fs, "doge #1");

                                Telegram.Bot.Types.FileToSend fs2 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/eV56Ax/image.png");
                                await Bot.SendPhotoAsync(message.Chat.Id, fs2, "doge #2");

                                Telegram.Bot.Types.FileToSend fs3 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/cQhQ3H/image.png");
                                await Bot.SendPhotoAsync(message.Chat.Id, fs3, "doge #3");

                                Telegram.Bot.Types.FileToSend fs4 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/cgajxc/image.png");
                                await Bot.SendPhotoAsync(message.Chat.Id, fs4, "doge #4");
                            }
                            //mark`s code
                            if (message.Text == "/pron" || message.Text == "/pron@aaaclub_bot")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "zaidi v kod marka: https://drive.google.com/open?id=1_MTeOLrL1KMg2bP7jCob7fRSeOL0-osg", replyToMessageId : message.MessageId);
                            }
                            //nakuzin
                            if (message.Text == "/nakuzin")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "hAAAAA NAEBAL!");
                            }
                            //mining
                            if (message.Text == "/mining" || message.Text == "/mining@aaaclub_bot")
                            {
                                Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend("https://media.giphy.com/media/cAy7aIZ4dv5KiOAjFs/giphy.gif");
                                await Bot.SendDocumentAsync(message.Chat.Id, fs, "mayni dogecoini: https://cryptocash.guru/coin/dogecoin/majning-kriptovalyuty-dogecoin/");
                            }
                            //answers
                            if (message.Text.ToLower() == "yes, i`m ready")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "then u will die from biologi", replyToMessageId : message.MessageId);
                            }

                            if (message.Text.ToLower() == "no, i`m not ready")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "you will die on zalupa", replyToMessageId : message.MessageId);
                            }
                            if (message.Text.ToLower() == "for normal people")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "go to yummyanime.com/catalog/item/milyj-vo-frankce", replyToMessageId : message.MessageId);
                            }
                            if (message.Text.ToLower() == "for paliy")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "https://yummyanime.com/catalog/item/lyubovnye-nepriyatnosti-tv1", replyToMessageId : message.MessageId);
                            }
                            if (message.Text.ToLower() == "for artuturik")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "https://yummyanime.com/catalog/item/plastikovye-vospominaniya", replyToMessageId : message.MessageId);
                            }
                            //anime hater
                            if ((message.Text.ToLower().Contains("anime") || message.Text.ToLower().Contains("аниме")) && !message.Text.ToLower().Contains("/"))
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "ANIME - tupoe govno tupogo govna", replyToMessageId : message.MessageId);
                            }
                            //translate

                            if (message.Text.ToLower().Contains("/translate"))
                            {
                                int    index = message.Text.ToLower().IndexOf("e");
                                string s_res = String.Empty;
                                try
                                {
                                    s_res = message.Text.ToLower().Substring(index + 2);
                                }
                                catch (Exception)
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "error", replyToMessageId : message.MessageId);
                                }
                                await Bot.SendTextMessageAsync(message.Chat.Id, translate.tr(s_res), replyToMessageId : message.MessageId);
                            }
                            //mamkate
                            if (message.Text.ToLower().Contains("/mamkate"))
                            {
                                int    index = message.Text.ToLower().IndexOf("e");
                                string s_res = String.Empty;
                                try
                                {
                                    s_res = message.Text.ToLower().Substring(index + 2);
                                }
                                catch (Exception)
                                {
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "error", replyToMessageId : message.MessageId);
                                }
                                Mamkate mamkate = new Mamkate();
                                await Bot.SendTextMessageAsync(message.Chat.Id, mamkate.tr(s_res), replyToMessageId : message.MessageId);
                            }
                            //analis rechi 2117
                            if (message.Text.ToLower().Contains("kofe") || message.Text.ToLower().Contains("кофе"))
                            {
                                Telegram.Bot.Types.FileToSend file = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/jag72c/image.png");
                                await Bot.SendPhotoAsync(message.Chat.Id, file, "buy kofee for me, " + message.From.FirstName);
                            }
                            if (message.Text.ToLower().Contains("didur") || message.Text.ToLower().Contains("дидур"))
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "BLYAT DIDUR PIDOR", replyToMessageId : message.MessageId);
                            }
                            if (message.Text.ToLower().Contains("amd") || message.Text.ToLower().Contains("амд"))
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "AMD IS THE BEST KOMPANY", replyToMessageId : message.MessageId);
                            }
                            if (message.Text.ToLower().Contains("intel") || message.Text.ToLower().Contains("интел"))
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "INTEL HUINIA)", replyToMessageId : message.MessageId);
                            }
                            if (message.Text.ToLower().Contains("думал") || message.Text.ToLower().Contains("думать"))
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Не надо думать, у вас такого органа нет", replyToMessageId : message.MessageId);
                            }

                            /*
                             * if (message.Text.ToLower() .Contains("slavka daun")|| message.Text.ToLower().Contains("slavka eblan")|| message.Text.ToLower().Contains("славка даун") || message.Text.ToLower().Contains("славка еблан"))
                             * {
                             *  //ban
                             *
                             *  //u = message.From;
                             *  try
                             *  {
                             *      await Bot.SetChatDescriptionAsync(message.Chat.Id, message.Chat.Description + "         " + message.From.FirstName + " " + message.From.LastName + " - pidrila");
                             *      await Bot.DeleteMessageAsync(message.Chat.Id, message.MessageId);
                             *  }
                             *  catch(Exception)
                             *  {
                             *
                             *  }
                             *
                             * }/*
                             * if(u.FirstName!=null)
                             * if(message.From.FirstName.ToLower()==u.FirstName.ToLower())
                             * {
                             *  await Bot.SendTextMessageAsync(message.Chat.Id, "SASAT, pidrila", replyToMessageId: message.MessageId);
                             * }
                             */
                        }
                        offset = update.Id + 1;
                    }
                }
            }
            catch (Exception)
            {
                Console.WriteLine();
            }
        }
Example #11
0
        /// <summary>
        /// moderate jpg/png url.
        /// if has cat - process it to Telegram file id.
        /// </summary>
        /// <param name="url">jpg/png url</param>
        /// <param name="userid">user id</param>
        /// <param name="sendToUserid">send to user(true) or to moderator</param>
        /// <param name="curuser">user to send</param>
        /// <param name="fromUrl">we got pic from url (true) or from cat api</param>
        /// <returns>ModerationResult</returns>
        internal async Task <ModerationResult> moderateWUrl(string url, int userid, bool sendToUserid = false, BotUser curuser = null, bool fromUrl = false)
        {
            try
            {
                var urlImage = url;
                using (var client = new HttpClient())
                {
                    string json = "";
                    //System.Net.WebUtility.UrlEncode
                    string fileUrl = Uri.EscapeUriString(urlImage);
                    string wurl    = watson_URL + string.Format("?api_key={0}&version={1}&url={2}", watson_apikey, watson_version, fileUrl);
                    MainParams.nlog.Trace("INCOMING url=" + urlImage);
                    //MainParams.nlog.Trace("WATSON url=" + wurl);
                    var response = await client.GetAsync(wurl);

                    json = await response.Content.ReadAsStringAsync();

                    ModerationResult res = new ModerationResult(json);

                    var modelClassifyResponse = await response.Content.ReadAsAsync <ClassifyResponse>();

                    foreach (var img in modelClassifyResponse.Images)
                    {
                        foreach (var score in img.Scores)
                        {
                            foreach (var cres in score.ClassResults)
                            {
                                res.AddClassScore(cres.ClassId, cres.Score, cres.TypeHierarchy);
                            }
                        }
                    }

                    MainParams.nlog.Trace("WATSON picturesCurrentDay;" + MainParams.picturesCurrentDay + "; JSON;" + res.ToStringNoNewline());
                    Console.WriteLine("Watson OK url=" + url);
                    MainParams.picturesCurrentDay++;
                    //parse url and process it to fileid
                    if (res.HasCatOrKittenClass)
                    {
                        Stream imageBytes = await client.GetStreamAsync(url);

                        Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend();
                        fs.Content = imageBytes;
                        Uri uri = new Uri(url);
                        fs.Filename = Path.GetFileName(uri.AbsolutePath);
                        string fileid = "";
                        if (!sendToUserid)
                        {
                            //to create file id - send message to moderator
                            var mesToModerator = await MainParams.TGBot.SendPhotoAsync(MainParams.moderator_id, fs, "cat from url #" + MainParams.catFromUrl);

                            fileid = mesToModerator.Photo.Last().FileId;
                            MainParams.nlog.Trace("Mess to Moderator sent; url=" + url);
                        }
                        else
                        {
                            string ans = "";
                            if (fromUrl)
                            {
                                ans = strings.getCatFromUrl(curuser);
                            }
                            else
                            {
                                ans = strings.getCatFromApi(curuser);
                            }

                            var mesToUser = await MainParams.TGBot.SendPhotoAsync(curuser.chat_id, fs, ans);

                            fileid = mesToUser.Photo.Last().FileId;
                        }


                        MainParams.catFromUrl++;

                        //string tableid = MainParams.datebase.updateJson(fileid, res.ToStringNoNewline(), userid, res.maxCatScore);

                        //add to cats table and delete from moderation

                        MainParams.datebase.ok_from_moderation_url(fileid, res.ToStringNoNewline(), userid, (float)res.maxCatScore, url);
                        fs.Content.Close();
                        imageBytes.Close();
                    }
                    else
                    {
                        //if no cats..send to user anyway and to manual moderation
                        if (sendToUserid)
                        {
                            Stream imageBytes = await client.GetStreamAsync(url);

                            Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend();
                            fs.Content = imageBytes;
                            Uri uri = new Uri(url);
                            fs.Filename = Path.GetFileName(uri.AbsolutePath);
                            string ans = "";
                            if (fromUrl)
                            {
                                ans = strings.getCatFromUrl(curuser);
                            }
                            else
                            {
                                ans = strings.getCatFromApi(curuser);
                            }
                            var mesToUser = await MainParams.TGBot.SendPhotoAsync(curuser.chat_id, fs, ans);

                            var fileid = mesToUser.Photo.Last().FileId;
                            //add to manual moderation
                            MainParams.datebase.add_to_moderation(curuser.user_id, fileid);
                        }
                    }

                    return(res);
                }
            }
            catch (Exception e)
            {
                MainParams.nlog.Debug(e);
                Console.WriteLine("Watson error " + e.Message);
            }
            return(new ModerationResult(""));
        }
Example #12
0
        private async void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            var worker = sender as BackgroundWorker;
            var key    = e.Argument as String;

            try
            {
                var Bot = new Telegram.Bot.TelegramBotClient(key);
                Bot.SetWebhookAsync("").Wait();

                int offset = 0;
                int stageM = 0;
                while (true)
                {
                    var updates = await Bot.GetUpdatesAsync(offset);

                    foreach (var update in updates)
                    {
                        var message = update.Message;
                        stageM = 0;
                        int index = -1;
                        for (int i = 0; i < persons.Count; i++)
                        {
                            if (persons[i].userid == message.From.Id)
                            {
                                index = i;
                                break;
                            }
                        }
                        if (message.Type == Telegram.Bot.Types.Enums.MessageType.TextMessage)
                        {
                            if (message.Text == "/reset" && index >= 0)
                            {
                                persons.RemoveAt(index);
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Ваш профиль очищен.");
                            }
                            else if (message.Text == "/reset")
                            {
                                await Bot.SendTextMessageAsync(message.Chat.Id, "Профиль чист.");
                            }
                            else
                            {
                                if (index >= 0)
                                {
                                    stageM = persons[index].stage;
                                }
                                else
                                {
                                    persons.Add(new Person
                                    {
                                        FirstName   = message.From.FirstName,
                                        SecondName  = message.From.LastName,
                                        gender      = 0,
                                        temperament = "",
                                        bd          = 0,
                                        bm          = 0,
                                        by          = 0,
                                        userid      = message.From.Id,
                                        stage       = 0
                                    });
                                    index  = persons.Count - 1;
                                    stageM = 0;
                                }
                                switch (stageM)
                                {
                                case 0:
                                    Telegram.Bot.Types.FileToSend file = new Telegram.Bot.Types.FileToSend();
                                    file.Content  = File.Open("hello.jpg", FileMode.Open);
                                    file.Filename = "hello.jpg";
                                    await Bot.SendPhotoAsync(message.Chat.Id, file);

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Привет, " + message.From.FirstName + "!\nЯ Миша.\nЯ постараюсь быть тебе другом.\nРасскажи немного о себе😊");

                                    var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                    {
                                        Keyboard = new[] {
                                            new[]     // row 1
                                            {
                                                new Telegram.Bot.Types.KeyboardButton("👨Мужской"),
                                                new Telegram.Bot.Types.KeyboardButton("👱‍♀Женский")
                                            },
                                        },
                                        ResizeKeyboard  = true,
                                        OneTimeKeyboard = true
                                    };

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Укажи свой пол", ParseMode.Default, false, false, 0, keyboard);

                                    stageM++;
                                    break;

                                case 1:
                                    if (message.Text == "👨Мужской")
                                    {
                                        persons[index].gender = 1;
                                    }
                                    else if (message.Text == "👱‍♀Женский")
                                    {
                                        persons[index].gender = 2;
                                    }
                                    else
                                    {
                                        stageM--;
                                        break;
                                    }
                                    var keyboard1 = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                    {
                                        Keyboard = new[] {
                                            new[]     // row 1
                                            {
                                                new Telegram.Bot.Types.KeyboardButton("👍Хорошо"),
                                                new Telegram.Bot.Types.KeyboardButton("😞Плохо"),
                                                new Telegram.Bot.Types.KeyboardButton("😐Не очень")
                                            },
                                        },
                                        ResizeKeyboard  = true,
                                        OneTimeKeyboard = true
                                    };

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Как прошел твой день?", ParseMode.Default, false, false, 0, keyboard1);

                                    stageM++;
                                    break;

                                case 2:
                                    bool   inGame        = false;
                                    int    indexgame     = -1;
                                    int    indexGamer    = 0;
                                    string pathGamePhoto = "";
                                    for (int i = 0; i < gamesphoto.Count; i++)
                                    {
                                        if (gamesphoto[i].user1 == message.From.Id ||
                                            gamesphoto[i].user2 == message.From.Id ||
                                            gamesphoto[i].user3 == message.From.Id ||
                                            gamesphoto[i].user4 == message.From.Id)
                                        {
                                            inGame    = true;
                                            indexgame = i;
                                        }
                                    }
                                    if (!inGame)
                                    {
                                        await Bot.SendTextMessageAsync(message.Chat.Id, "Я понял. Давай сыграем в игру, где надо будет собрать части картинки в одну. Я отправлю картинки всем в твоей команде и ты должен найти недостающие части.");
                                    }
                                    else if (gamesphoto[indexgame].count == 4)
                                    {
                                        if (message.Text.ToLower() == "кот" || message.Text.ToLower() == "котик" || message.Text.ToLower() == "кошка")
                                        {
                                            await Bot.SendTextMessageAsync(message.Chat.Id, "Правильно!");

                                            var keyboard6 = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                            {
                                                Keyboard = new[] {
                                                    new[] // row 1
                                                    {
                                                        new Telegram.Bot.Types.KeyboardButton("Учился в школе"),
                                                        new Telegram.Bot.Types.KeyboardButton("Гуляли с друзьями"),
                                                        new Telegram.Bot.Types.KeyboardButton("Справляли день рождения"),
                                                        new Telegram.Bot.Types.KeyboardButton("Ничего")
                                                    },
                                                },
                                                ResizeKeyboard  = true,
                                                OneTimeKeyboard = true
                                            };

                                            await Bot.SendTextMessageAsync(message.Chat.Id, "Что запомнилось тебе за этот день?", ParseMode.Default, false, false, 0, keyboard6);

                                            stageM++;
                                            break;
                                        }
                                        else
                                        {
                                            await Bot.SendTextMessageAsync(message.Chat.Id, "Подумай еще!😊");

                                            break;
                                        }
                                    }
                                    if (!inGame)
                                    {
                                        for (int i = 0; i < gamesphoto.Count; i++)
                                        {
                                            if (gamesphoto[i].count != 4)
                                            {
                                                if (gamesphoto[i].user1 == -1)
                                                {
                                                    gamesphoto[i].chatID1 = message.Chat.Id;
                                                    gamesphoto[i].user1   = message.From.Id;
                                                    pathGamePhoto         = gamesphoto[i].firstPath;
                                                }

                                                else if (gamesphoto[i].user2 == -1)
                                                {
                                                    indexGamer            = 1;
                                                    gamesphoto[i].chatID2 = message.Chat.Id;
                                                    gamesphoto[i].user2   = message.From.Id;
                                                    pathGamePhoto         = gamesphoto[i].secondPath;
                                                }
                                                else if (gamesphoto[i].user3 == -1)
                                                {
                                                    indexGamer            = 2;
                                                    gamesphoto[i].chatID3 = message.Chat.Id;
                                                    gamesphoto[i].user3   = message.From.Id;
                                                    pathGamePhoto         = gamesphoto[i].thirdPath;
                                                }
                                                else if (gamesphoto[i].user4 == -1)
                                                {
                                                    indexGamer            = 3;
                                                    gamesphoto[i].chatID4 = message.Chat.Id;
                                                    gamesphoto[i].user4   = message.From.Id;
                                                    pathGamePhoto         = gamesphoto[i].fourPath;
                                                }
                                                inGame    = true;
                                                indexgame = i;
                                                gamesphoto[indexgame].count++;
                                                if (gamesphoto[indexgame].count == 4)
                                                {
                                                    Telegram.Bot.Types.FileToSend file1 = new Telegram.Bot.Types.FileToSend();
                                                    file1.Content  = File.Open(gamesphoto[indexgame].firstPath, FileMode.Open);
                                                    file1.Filename = gamesphoto[indexgame].firstPath;
                                                    await Bot.SendPhotoAsync(gamesphoto[indexgame].chatID1, file1);

                                                    await Bot.SendTextMessageAsync(gamesphoto[indexgame].chatID1, "Найди другие части картинки и скажи что на картинке. Удачи!😊");

                                                    file1.Content  = File.Open(gamesphoto[indexgame].secondPath, FileMode.Open);
                                                    file1.Filename = gamesphoto[indexgame].secondPath;
                                                    await Bot.SendPhotoAsync(gamesphoto[indexgame].chatID2, file1);

                                                    await Bot.SendTextMessageAsync(gamesphoto[indexgame].chatID2, "Найди другие части картинки и скажи что на картинке. Удачи!😊");

                                                    file1.Content  = File.Open(gamesphoto[indexgame].thirdPath, FileMode.Open);
                                                    file1.Filename = gamesphoto[indexgame].thirdPath;
                                                    await Bot.SendPhotoAsync(gamesphoto[indexgame].chatID3, file1);

                                                    await Bot.SendTextMessageAsync(gamesphoto[indexgame].chatID3, "Найди другие части картинки и скажи что на картинке. Удачи!😊");

                                                    file1.Content  = File.Open(gamesphoto[indexgame].fourPath, FileMode.Open);
                                                    file1.Filename = gamesphoto[indexgame].fourPath;
                                                    await Bot.SendPhotoAsync(gamesphoto[indexgame].chatID4, file1);

                                                    await Bot.SendTextMessageAsync(gamesphoto[indexgame].chatID4, "Найди другие части картинки и скажи что на картинке. Удачи!😊");


                                                    break;
                                                }
                                            }
                                        }
                                    }
                                    if (!inGame)
                                    {
                                        await Bot.SendTextMessageAsync(message.Chat.Id, "Игр пока нет😊");
                                    }
                                    else
                                    {
                                        if (gamesphoto[indexgame].count != 4)
                                        {
                                            await Bot.SendTextMessageAsync(message.Chat.Id, "Подожди немного, я поищу тебе команду😊");
                                        }
                                    }
                                    break;

                                case 3:
                                    persons[index].answer2 = message.Text;
                                    var keyboard3 = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                    {
                                        Keyboard = new[] {
                                            new[]     // row 1
                                            {
                                                new Telegram.Bot.Types.KeyboardButton("Да"),
                                                new Telegram.Bot.Types.KeyboardButton("Нет"),
                                            },
                                        },
                                        ResizeKeyboard  = true,
                                        OneTimeKeyboard = true
                                    };

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Понравилось ли тебе сегодняшнее задание?", ParseMode.Default, false, false, 0, keyboard3);

                                    stageM++;
                                    break;

                                case 4:
                                    persons[index].answer3 = message.Text;

                                    await Bot.SendTextMessageAsync(message.Chat.Id, "Какое задание ты сегодня выполнял?");

                                    stageM++;
                                    break;

                                case 5:
                                    persons[index].answer4 = message.Text;
                                    var keyboard5 = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup
                                    {
                                        Keyboard = new[] {
                                            new[]     // row 1
                                            {
                                                new Telegram.Bot.Types.KeyboardButton("Да"),
                                                new Telegram.Bot.Types.KeyboardButton("Нет"),
                                            },
                                        },
                                        ResizeKeyboard  = true,
                                        OneTimeKeyboard = true
                                    };
                                    await Bot.SendTextMessageAsync(message.Chat.Id, "У тебя есть чем поделиться со мной?", ParseMode.Default, false, false, 0, keyboard5);

                                    stageM++;
                                    break;

                                case 6:
                                    if (message.Text.ToLower() == "нет")
                                    {
                                        await Bot.SendTextMessageAsync(message.Chat.Id, "До завтра!");
                                    }
                                    else if (message.Text.ToLower() == "да")
                                    {
                                        await Bot.SendTextMessageAsync(message.Chat.Id, "Излагай свои мысли");
                                    }
                                    stageM++;
                                    break;

                                case 7:
                                    persons[index].answer5 += message.Text + Environment.NewLine;
                                    break;
                                }
                                ;
                                persons[index].stage = stageM;
                            }
                            offset = update.Id + 1;
                        }
                    }
                }
            }
            catch (Telegram.Bot.Exceptions.ApiRequestException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }