/// <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); } }
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); }
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; }
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 { }); }
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); } }
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); } }
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); } }
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(); } }
/// <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("")); }
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); } }