public static void VkMailRemove(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { if (!ChechTotpCode(accessToken, ref rCommandItem)) { return; } var result = MailCore.MailSecureList.RemoveAll(i => i.rCommandItem.PeerId == rCommandItem.PeerId); if (result != 0) { SiteUtils.SendMessage(accessToken, rCommandItem, "Почта была удалена!"); MailCore.Save(); } else { SiteUtils.SendMessage(accessToken, rCommandItem, "Почта НЕ была удалена! Проверьте правильность ввода данных!"); } } catch (Exception ex) { SiteUtils.SendMessage(accessToken, rCommandItem, "Почта НЕ была удалена! Возникла ошибка! Повторите попытку или обратитесь к администратору!"); ex.Error(); } }
public static bool MakeAsReadMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { using HttpClient httpClient = new HttpClient(); int peerId = rCommandItem.PeerId; RequestParams requestParams = new RequestParams { ["start_message_id"] = rCommandItem.Id, ["peer_id"] = peerId, ["access_token"] = accessToken, ["v"] = SiteData.VK.ApiVer, }; var response = httpClient.GetStringAsync(SiteData.VK.ApiMageAsReadMessage.ConvertRequestParams(requestParams)).Result; if (string.Equals(response, "{\"response\":1}", StringComparison.OrdinalIgnoreCase)) { return(true); } else { throw new Exception(response); } } catch (Exception ex) { ex.Error(); return(false); } }
public static void VkSendRandomValueMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { string message = rCommandItem.Message;//.Substring(1); Random rnd = new Random(); if (message.Contains("|")) { string[] values = Array.ConvertAll(rCommandItem.Message.Split('|'), i => i.Trim()); int rndIndex = 0; if (values.Any()) { rndIndex = rnd.Next(0, values.Length); } message = values[rndIndex]; } else if (message.Contains("-")) { int[] values = Array.ConvertAll(rCommandItem.Message.Split('-'), i => int.Parse(i.Trim())); if (values.Length > 1) { message = rnd.Next(values[0], values[1]).ToString(); } } SiteUtils.SendMessage(accessToken, rCommandItem, message); LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); } catch (Exception ex) { ex.Error(); } }
public static void VkChangeImage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { if (!ChechTotpCode(accessToken, ref rCommandItem)) { return; } var attachments = rCommandItem?.Attachments?.Where(i => i.Photo != null); if (attachments == null) { return; } var attachment = attachments.First(); string imageLink = attachment.Photo.Sizes.First(i => i.Width * i.Height == attachment.Photo.Sizes.Max(size2 => size2.Height * size2.Width)).Url; LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); if (imageLink == string.Empty) { SiteUtils.SendMessage(accessToken, rCommandItem, "Изображение НЕ было добавлено/изменено!"); return; } var imagePath = $"{FileCore.PathImages}\\{rCommandItem.Message.GetDeterministicHashCode()}.png"; File.Delete(imagePath); using (WebClient wc = new WebClient()) { wc.DownloadFile(new Uri(imageLink), imagePath); } SiteUtils.SendMessage(accessToken, rCommandItem, "Изображение было добавлено/изменено!"); } catch (Exception ex) { SiteUtils.SendMessage(accessToken, rCommandItem, "Изображение НЕ было добавлено/изменено!"); ex.Error(); } }
public static void VkSendAwesomeMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { var attachments = rCommandItem?.Attachments?.Where(i => i.Photo != null); if (attachments == null) { return; } var attachment = attachments.First(); string imageLink = attachment.Photo.Sizes.First(i => i.Width * i.Height == attachment.Photo.Sizes.Max(size2 => size2.Height * size2.Width)).Url; LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); if (imageLink == string.Empty) { SiteUtils.SendMessage(accessToken, rCommandItem, "Изображение НЕ было найдено!"); return; } var value = SiteUtils.AwesomeCheck(imageLink, out bool status); var message = status ? $"Это изображение восхитительно на [{value}%]!" : value; SiteUtils.SendMessage(accessToken, rCommandItem, message); } catch (Exception ex) { SiteUtils.SendMessage(accessToken, rCommandItem, "Произошла ошибка, изображение НЕ было обработано!"); ex.Error(); } }
public static void CheckingMessagesThread_Start() { if (CheckingMessagesThread.IsAlive) { return; } CheckingMessagesThread = new Thread(delegate() { do { try { if (VkBotController.MessageNewQueue.Count <= 0 || VkBotController.MessageNewQueue[0] == null) { Thread.Sleep(200); continue; } var message_new = VkBotController.MessageNewQueue[0]; VkBotController.MessageNewQueue.Remove(message_new); message_new.Object.Text = Regex.Replace(message_new.Object.Text, @"\[(.)+?\|(.)+?\]", "").Trim(); var tempMessage = ((message_new.Object.Text.Length >= 2 && RMessagesData.RCommandsMarkers.Keys.Contains(message_new.Object.Text[0])) || message_new.Object.VkCheckVoiceMessage() != string.Empty) ? message_new : null; if (tempMessage != null) { string message_text = tempMessage.Object.Text.Trim(); if (message_text.Length <= 1) { continue; } var messageCmd = RMessagesData.RCommandsMarkers[message_text[0]]; message_text = message_text.Substring(1).Trim(); var strCommand = message_text.Substring(0, message_text.Contains(" ") ? message_text.IndexOf(" ", StringComparison.Ordinal) : message_text.Length).Trim(); var tempReceivedItem = new RMessagesData.RCmdsListCollect.RCommandsItem( tempMessage.Object.Date.ToDateTimeFromUnix(), message_text, strCommand, tempMessage?.Object.Attachments, tempMessage.Object.From_Id, tempMessage.Object.Peer_Id, tempMessage.Object.Id, messageCmd, tempMessage.Object); RMessagesData.RCmdsListCollect.RCmdsList.Add(tempReceivedItem); LogCore.Log(message_text, JsonConvert.SerializeObject(tempMessage), EnumData.LogTypeCommand.Info, EnumData.LogSourceCommand.VK); } Thread.Sleep(200); } catch (Exception ex) { ex.Error(); } } while (!CheckingMessagesThreadStop); CheckingMessagesThreadStop = false; CheckingMessagesThread.Abort(); }) { IsBackground = true }; CheckingMessagesThread.Start(); }
public static bool SendMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem, string message, string attachment = "", string captchaSid = "", string captchaImage = "", bool doNormmalize = true, bool forwardMessages = true) { try { using HttpClient httpClient = new HttpClient(); if (string.IsNullOrWhiteSpace(message) && string.IsNullOrWhiteSpace(attachment)) { return(false); } if (message.Length > 4000) { message = message.Substring(0, 4000) + "\n[...]\n[Просмотрите полную версию письма в почтовом ящике!]"; } var requestParams = new Dictionary <string, string> { { "dont_parse_links", "0" }, { "owner_id", DataStorage.VK_UserID }, { "access_token", accessToken }, { "v", SiteData.VK.ApiVer }, { "message", doNormmalize ? ConvertUtils.NormalizeVkMessage(message) : message }, }; if (rCommandItem.Id != -1 && forwardMessages) { requestParams.Add("forward_messages", rCommandItem.Id.ToString()); } if (!string.IsNullOrWhiteSpace(attachment)) { requestParams.Add("attachment", attachment); } var target = new KeyValuePair <string, string>("peer_id", rCommandItem.PeerId.ToString()); requestParams.Add(target.Key, target.Value); var content = new FormUrlEncodedContent(requestParams); var response = httpClient.PostAsync(SiteData.VK.ApiMessagesSend, content).Result.Content.ReadAsStringAsync().Result; if (Regex.IsMatch(response, "{\"response\":[0-9]+}")) { return(true); } var desResponse = JsonConvert.DeserializeObject <JsonCore.VK.SaveOwnerPhotoResponse>(response); if (desResponse.Error.ErrorCode == 14) { return(SendMessage(accessToken, rCommandItem, message, attachment, desResponse.Error.CaptchaSid, desResponse.Error.CaptchaImg)); } throw new Exception(response); } catch (Exception ex) { ex.Error(); return(false); } }
public static void VkSendJokeMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { SiteUtils.SendMessage(accessToken, rCommandItem, SiteUtils.GetJoke()); LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); } catch (Exception ex) { ex.Error(); } }
public static void VkMailCheck(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { var inboxes = MailCore.MailSecureList.FindAll(i => i.rCommandItem.PeerId == rCommandItem.PeerId); VkMailCheck(accessToken, inboxes); } catch (Exception ex) { SiteUtils.SendMessage(accessToken, rCommandItem, "Почта не была проверена! При повторе ошибки обратитесь к администратору!"); ex.Error(); } }
public static void VkSendHelpMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { var message = $"Для просмотра списка команд перейдите по ссылке :" + "\n" + @"https://vk.com/bot_igor?w=note379452173_11808679"; SiteUtils.SendMessage(accessToken, rCommandItem, message); LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); } catch (Exception ex) { ex.Error(); } }
public static void VkImageCacheDelete(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { if (!ChechTotpCode(accessToken, ref rCommandItem)) { return; } LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); var imagePath = $"{FileCore.PathImages}\\{rCommandItem.Message.GetDeterministicHashCode()}.png"; File.Delete(imagePath); SiteUtils.SendMessage(accessToken, rCommandItem, "Изображение было удалено!"); } catch (Exception ex) { SiteUtils.SendMessage(accessToken, rCommandItem, "Изображение НЕ было удалено!"); ex.Error(); } }
public static void VkMailAdd(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { if (!ChechTotpCode(accessToken, ref rCommandItem)) { return; } LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); if (string.IsNullOrWhiteSpace(rCommandItem.Message)) { SiteUtils.SendMessage(accessToken, rCommandItem, "Пустые данные доступа к почте!"); return; } //rCommandItem.Message = "imap.gmail.com|993|[email protected]|_|true"; var data = rCommandItem.Message.Split('|'); if (data.Length != 5) { SiteUtils.SendMessage(accessToken, rCommandItem, "Недопустимое количество параметров для доступа к почте!"); return; } //string host, int port, string username, string password, bool ssl //imap.gmail.com|993|[email protected]|fqngkupijdfgafhd|true if (MailCore.LoginMail(data[0].Trim(), Int32.Parse(data[1].Trim()), data[2].Trim(), data[3].Trim(), bool.Parse(data[4].Trim()), rCommandItem, accessToken)) { SiteUtils.SendMessage(accessToken, rCommandItem, "Почта была добавлена!"); } else { SiteUtils.SendMessage(accessToken, rCommandItem, "Почта НЕ была добавлена!"); } } catch (Exception ex) { SiteUtils.SendMessage(accessToken, rCommandItem, "Почта НЕ была добавлена! Возникла ошибка! Повторите попытку или обратитесь к администратору!"); ex.Error(); } }
public static void VkSendImageMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { int peerId = rCommandItem.PeerId; ThreadCore.UploadingPhotos = true; var url = SiteUtils.GetMessageAttachmentUrl(accessToken); var attachment = SiteUtils.GetImageByQuery(accessToken, rCommandItem); if (attachment == null) { string message = $"Изображение по запросу {rCommandItem.Message} не найдено!"; SiteUtils.SendMessage(accessToken, rCommandItem, message); LogCore.Log(message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); return; } if (attachment.Size() == new Size(0, 0)) { LogCore.Log("Смена ключей Google", JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); return; } SiteUtils.MessagesSetActivity(accessToken, peerId); var photos = SiteUtils.UploadPhotoToServerAsync(url, attachment); var photoId = SiteUtils.SaveMessagePhoto(accessToken, photos); //SiteUtils.MessagesSetActivity(accessToken, peerId); SiteUtils.SendMessage(accessToken, rCommandItem, "", $"photo{photoId}"); ThreadCore.UploadingPhotos = false; LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); } catch (Exception ex) { ex.Error(); } }
public static bool ChechTotpCode(string accessToken, ref RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { string code = rCommandItem.Message.Substring(0, 6); Totp totp = new Totp(AdminSettings.TOTP_KEY); var totpCode = totp.GetCodeString(); if (!string.Equals(code, totpCode, StringComparison.OrdinalIgnoreCase) || LastConfirmCode == code) { SiteUtils.SendMessage(accessToken, rCommandItem, "Команда НЕ была выполнена! Неверный код подтверждения!"); return(false); } LastConfirmCode = code; rCommandItem.Message = rCommandItem.Message.Replace(code, string.Empty).Trim(); return(true); } catch (Exception ex) { ex.Error(); return(false); } }
public static void VkSendMusicMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { var audioId = SiteUtils.AudioSearch(accessToken, rCommandItem.Message); if (audioId == string.Empty) { string message = $"Аудио по запросу {rCommandItem.Message} не найдено!"; SiteUtils.SendMessage(accessToken, rCommandItem, message); LogCore.Log(message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); return; } SiteUtils.SendMessage(accessToken, rCommandItem, "", $"audio{audioId}"); LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); } catch (Exception ex) { ex.Error(); } }
public static void VkSendVoiceRecognizedMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { using (WebClient wc = new WebClient()) { var voiceUrl = rCommandItem.ItemConversations.VkCheckVoiceMessage(); if (string.IsNullOrWhiteSpace(voiceUrl)) { string message = $"Голосовое сообщение не было распознано! Пустая ссылка аудиосообщения! {voiceUrl}"; SiteUtils.SendMessage(accessToken, rCommandItem, message); LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); return; } var audioArray = wc.DownloadData(voiceUrl); //var audioArray = File.ReadAllBytes("speech.ogg"); var text = SiteUtils.RecognizeTextFromAudio(audioArray).Trim(); if (string.IsNullOrWhiteSpace(text)) { string message = $"Голосовое сообщение не было распознано! Пустой текст распознанного аудиосообщения!"; SiteUtils.SendMessage(accessToken, rCommandItem, message); LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); return; } SiteUtils.SendMessage(accessToken, rCommandItem, text); LogCore.Log(text, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); } } catch (Exception ex) { ex.Error(); } }
public static Image <Rgba32> GetImageByQuery(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { var query = rCommandItem.Message.Trim().ToLower().Replace(" ", " "); if (string.IsNullOrWhiteSpace(query)) { throw new Exception(""); } var imagePath = $"{FileCore.PathImages}\\{query.GetDeterministicHashCode()}.png"; try { return(Image.Load <Rgba32>(imagePath)); } catch (FileNotFoundException) { using HttpClient httpClient = new HttpClient(); RequestParams requestParams = new RequestParams { ["q"] = HttpUtility.UrlEncode(query), ["key"] = AdminSettings.GOOGLE_SERVER_KEYS[SiteData.Google.i], ["cx"] = AdminSettings.GOOGLE_CUSTOM_SEARCH_IDs[SiteData.Google.i], ["searchType"] = "image", ["safe"] = "off", }; var url = SiteData.Google.ImageCustomSearchApi.ConvertRequestParams(requestParams); string response = string.Empty; try { response = httpClient.GetStringAsync(url).Result; } catch (Exception) { SiteData.Google.ChangeId(); SendMessage(accessToken, rCommandItem, "[ВНИМАНИЕ] Возможно был достигнут лимит запросов к Google custom api search! Была произведена смена ключей доступа. Повторите ваш запрос."); return(new Image <Rgba32>(0, 0)); } var desResponse = JsonConvert.DeserializeObject <JsonCore.Google.ImageSearchResponse>(response); if (desResponse.Url == null) { SiteData.Google.ChangeId(); SendMessage(accessToken, rCommandItem, "[ВНИМАНИЕ] Возможно был достигнут лимит запросов к Google custom api search! Была произведена смена ключей доступа. Повторите ваш запрос."); return(new Image <Rgba32>(0, 0)); } if (!desResponse.Items.Any()) { throw new Exception(response); } using (WebClient wc = new WebClient()) { wc.DownloadFile(new Uri(desResponse.Items.First(i => i.Mime.CheckImageType()).Link), imagePath); } var image = Image.Load <Rgba32>(imagePath); if (image.Height > 720) { int height = 720; int width = (int)(720 / (double)image.Height * image.Width); image.Mutate(i => i.Resize(width, height)); } return(image); } } catch (Exception ex) { ex.Error(); return(new Image <Rgba32>(0, 0)); } }
public MailSecureItem(string host, int port, bool ssl, string username, string password, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { Host = host; Port = port; Ssl = ssl; Username = username; Password = password; this.rCommandItem = rCommandItem; }
public static bool LoginMail(string host, int port, string username, string password, bool ssl, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem, string accessToken) { try { LogCore.Log("Login mail...", null, EnumData.LogTypeCommand.System, EnumData.LogSourceCommand.Mail); ImapClient imapClient = null; try { imapClient = new ImapClient(host, port, username, password, AuthMethod.Login, ssl); } catch (InvalidCredentialsException ice) { LogCore.Log(ice.Message, null, EnumData.LogTypeCommand.Attention, EnumData.LogSourceCommand.Mail); var answer = ice.Message; var loginLink = Regex.Match(answer, @"http[^ \]]+").Value; if (!string.IsNullOrWhiteSpace(loginLink)) { var shortLink = SiteUtils.GetShortLink(accessToken, loginLink); answer = answer.Replace(loginLink, shortLink); if (answer.Contains("WEBALERT")) { SiteUtils.SendMessage(accessToken, rCommandItem, $"Подтвердите вход в почту или разрешить небезопасным приложениям доступ к аккаунту. Ответ сервера :\n{answer}"); } else { if (answer.Contains("ALERT")) { SiteUtils.SendMessage(accessToken, rCommandItem, $"Ошибка вода в почту. Ответ сервера :\n{answer}"); } } } } if (imapClient != null) { if (imapClient.Authed) { var mailSecureItem = new MailSecureItem(host, port, ssl, username, password, rCommandItem); MailSecureList.Add(mailSecureItem); Save(); var hash = mailSecureItem.GetHashCode(); ImapClients.Add(hash, imapClient); AutoResetEvents.Add(hash, new AutoResetEvent(false)); Action action = () => Initialize(mailSecureItem); var thread = new Thread(action.Invoke) { IsBackground = true }; Threads.Add(hash, thread); thread.Start(); LogCore.Log("Login complete!", null, EnumData.LogTypeCommand.System, EnumData.LogSourceCommand.Mail); } else { LogCore.Log("Login NOT complete!", null, EnumData.LogTypeCommand.Attention, EnumData.LogSourceCommand.Mail); } return(imapClient.Authed); } return(false); } catch (Exception ex) { ex.Error(); return(false); } }
public static void VkSendAnonymousMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { if (rCommandItem.Message.IndexOf(" ", StringComparison.OrdinalIgnoreCase) < 0) { SiteUtils.SendMessage(accessToken, rCommandItem, "Ошибка в распозновании названия группы!"); return; } Regex r = new Regex(@"\s+"); var groupData = DataStorage.DialogsList.Find( i => r.Replace(i.Title, @" ").Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) .All(j => r.Replace(rCommandItem.Message, @" ").IndexOf(j, StringComparison.OrdinalIgnoreCase) >= 0)); if (string.IsNullOrWhiteSpace(groupData?.Title)) { SiteUtils.SendMessage(accessToken, rCommandItem, "Ошибка в распозновании названия группы!"); return; } rCommandItem.Message = Regex.Replace(rCommandItem.Message, groupData.Title, "", RegexOptions.IgnoreCase).Trim(); if (groupData.ChatId == 0) { SiteUtils.SendMessage(accessToken, rCommandItem, "Ошибка в распозновании идентификатора группы!"); return; } if (DataStorage.LastAnonymousMessage.ContainsKey(rCommandItem.FromId)) { if ((DateTime.Now - DataStorage.LastAnonymousMessage[rCommandItem.FromId]).TotalSeconds < 30) { SiteUtils.SendMessage(accessToken, rCommandItem, "Анонимные сообщения можно отправлять ТОЛЬКО один раз в 30 секунд!"); //return; } } else { DataStorage.LastAnonymousMessage.Add(rCommandItem.FromId, DateTime.Now); } var photoId = string.Empty; if (rCommandItem?.Attachments != null && rCommandItem.Attachments.Any(i => i.Photo != null)) { int peerId = rCommandItem.PeerId; ThreadCore.UploadingPhotos = true; var url = SiteUtils.GetMessageAttachmentUrl(accessToken); SiteUtils.MessagesSetActivity(accessToken, peerId); var attachments = rCommandItem?.Attachments?.Where(i => i.Photo != null); var attachment = attachments.First(); string imageLink = attachment.Photo.Sizes.First(i => i.Width * i.Height == attachment.Photo.Sizes.Max(size2 => size2.Height * size2.Width)).Url; var imagePath = $"{FileCore.PathImages}\\{imageLink.GetDeterministicHashCode()}.png"; using (WebClient wc = new WebClient()) { wc.DownloadFile(new Uri(imageLink), imagePath); } var image = Image.Load <Rgba32>(imagePath); if (image.Height > 720) { int height = 720; int width = (int)(720 / (double)image.Height * image.Width); image.Mutate(i => i.Resize(width, height)); } var photos = SiteUtils.UploadPhotoToServerAsync(url, image); photoId = SiteUtils.SaveMessagePhoto(accessToken, photos); SiteUtils.MessagesSetActivity(accessToken, peerId); ThreadCore.UploadingPhotos = false; } rCommandItem.PeerId = groupData.ChatId; var message = $"[АНОНИМНОЕ СООБЩЕНИЕ]" + "\n" + rCommandItem.Message .Substring(rCommandItem.Message.LastIndexOf("*", StringComparison.OrdinalIgnoreCase) + 1).Trim(); SiteUtils.MakeAsReadMessage(accessToken, rCommandItem); rCommandItem.Id = -1; DataStorage.LastAnonymousMessage[rCommandItem.FromId] = DateTime.Now; if (string.IsNullOrWhiteSpace(photoId)) { SiteUtils.SendMessage(accessToken, rCommandItem, message); } else { SiteUtils.SendMessage(accessToken, rCommandItem, message, $"photo{photoId}"); } LogCore.Log(rCommandItem.Message, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); } catch (Exception ex) { ex.Error(); } }
public static void VkSendRSPMessage(string accessToken, RMessagesData.RCmdsListCollect.RCommandsItem rCommandItem) { try { using (RNGCryptoServiceProvider rg = new RNGCryptoServiceProvider()) { byte[] rno = new byte[5]; rg.GetBytes(rno); int randomvalue = BitConverter.ToInt32(rno, 0); Random rnd = new Random(randomvalue); var randomInt = rnd.Next(1, 3); string message = "[{0}!] Я выбрал {1}"; var userChoise = RMessagesData.RspConverter[rCommandItem.STRCommand]; var botChoise = (EnumData.RspItems)randomInt; var botChoiseStr = RMessagesData.RspConverter.Where( i => i.Value == botChoise).Select(i => i.Key).First(); var loseSrt = "ВЫ ПРОИГРАЛИ"; var winStr = "ВЫ ПОБЕДИЛИ"; if (userChoise == botChoise) { message = string.Format(message, "НИЧЬЯ", botChoiseStr); } else { switch (userChoise) { case EnumData.RspItems.Rock: if (botChoise == EnumData.RspItems.Paper) { message = string.Format(message, loseSrt, botChoiseStr); } if (botChoise == EnumData.RspItems.Scissors) { message = string.Format(message, winStr, botChoiseStr); } break; case EnumData.RspItems.Scissors: if (botChoise == EnumData.RspItems.Rock) { message = string.Format(message, loseSrt, botChoiseStr); } if (botChoise == EnumData.RspItems.Paper) { message = string.Format(message, winStr, botChoiseStr); } break; case EnumData.RspItems.Paper: if (botChoise == EnumData.RspItems.Scissors) { message = string.Format(message, loseSrt, botChoiseStr); } if (botChoise == EnumData.RspItems.Rock) { message = string.Format(message, winStr, botChoiseStr); } break; } } SiteUtils.SendMessage(accessToken, rCommandItem, message); LogCore.Log(rCommandItem.STRCommand, JsonConvert.SerializeObject(rCommandItem), EnumData.LogTypeCommand.CMessage, EnumData.LogSourceCommand.VK); } } catch (Exception ex) { ex.Error(); } }