public void error() { var taB = project.Tables["temp"]; var error = project.GetLastError(); var tmp = ""; string query = string.Empty; string DB_set = project.Variables["DB_set"].Value; string id = string.Empty; if (error != null) { tmp = string.Format("ActionId: {0}", error.ActionId); query = "SELECT `id` from `log_errors` where `project`='" + project.Name + "' and `action`='" + tmp + "';"; id = ZennoPoster.Db.ExecuteQuery(query, null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, DB_set, " ", "\r\n"); if (id == "") { taB.Clear(); query = "INSERT INTO `log_errors` (`project`, `action`, `mes`,`object_id`) VALUES ('" + project.Name + "', '" + tmp + "', '" + instance.ActiveTab.DomText + "','" + project.Variables["id"].Value + "');\r\nSELECT `chat_id`,`token` from `admin_tg` where 1;"; ZennoPoster.Db.ExecuteQuery(query, null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, DB_set, ref taB); string chat_tg = taB.GetCell(0, 0); string Btok_tg = taB.GetCell(1, 0); string message = "new error|" + project.Name + "|" + tmp; ZennoPoster.HttpGet( "https://api.telegram.org/bot" + Btok_tg + "/sendmessage?chat_id=" + chat_tg + "&text=" + message, //url "", //proxy "utf-8", //charset ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderOnly ); } } query = "UPDATE `DB_users` SET `connects`=`connects`-1 WHERE `value`='" + DB_set + "';\r\nupdate `si_" + project.Variables["site"].Value + "` set `run`='0' where `id`='" + project.Variables["id_profile"].Value + "';\r\nUPDATE `counters` SET `errors`=`errors`+1,`Bposts`=`Bposts`+1 WHERE 1;\r\nUPDATE `objects` set `" + project.Variables["site"].Value + "`=3 where `id`='" + project.Variables["id"].Value + "';"; ZennoPoster.Db.ExecuteQuery(query, null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, DB_set, " ", "\r\n"); }
//Приватная функция получения номера сервиса snms-activate.ru public string smsactivate_getNumber(string ApiKey, string Proxy, string Service, string Forward, string Operator, out string smsactivate_number, out string smsactivate_id) { smsactivate_number = string.Empty; smsactivate_id = string.Empty; string getnumber = ZennoPoster.HttpGet("http://sms-activate.ru/stubs/handler_api.php?api_key=" + ApiKey + "&action=getNumber&service=" + Service + "&forward=" + Forward + "&operator=" + Operator , Proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly); switch (getnumber) { case "BAD_KEY": throw new Exception("Неверный API-ключ"); case "NO_KEY": throw new Exception("Укажите API-ключ"); case "ERROR_SQL": throw new Exception("ошибка SQL-сервера"); default: //Получаем номер smsactivate_number = System.Text.RegularExpressions.Regex.Replace(getnumber, @".*:", ""); //Получаем id string idtemp = System.Text.RegularExpressions.Regex.Replace(getnumber, @"ACCESS.*?:", ""); smsactivate_id = System.Text.RegularExpressions.Regex.Replace(idtemp, @":7.*", ""); return("Получили номер и id сервиса sms-activate"); } }
public void limit_2_999_999() { project.Variables["action"].Value = "check_limit"; string query = "SELECT `day_limit` FROM `si_" + project.Variables["site"].Value + "` where `id`='" + project.Variables["id_profile"].Value + "';"; query = ZennoPoster.Db.ExecuteQuery(query, null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, project.Variables["DB_set"].Value, " ", "\r\n"); int l = int.Parse(query); if (l == 0) { project.SendInfoToLog("Достигнут суточный лимит", true); project.Variables["alert"].Value = "limit"; string text = "<u>Достигнут суточный лимит на 2-999-999.ru</u>"; string url = project.Variables["url_for_notifications"].Value + project.Variables["user_id"].Value + "&msg=" + text; ZennoPoster.HttpGet( url, //url "", //proxy "utf-8", //charset ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderOnly ); query = "UPDATE `DB_users` SET `connects`=`connects`-1 WHERE `value`='" + project.Variables["DB_set"].Value + "';\r\nupdate `si_" + project.Variables["site"].Value + "` set `run`='0' where `id`='" + project.Variables["id_profile"].Value + "';\r\nUPDATE `objects` set `" + project.Variables["site"].Value + "`=1 where `id`='" + project.Variables["id"].Value + "';"; ZennoPoster.Db.ExecuteQuery(query, null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, project.Variables["DB_set"].Value, " ", "\r\n"); throw new Exception("достигнут суточный лимит"); } }
//Приватная функция получения баланса сервиса sms-activate.ru private string getbalance(string ApiKey, string Proxy) { string getbalance = ZennoPoster.HttpGet("http://sms-activate.ru/stubs/handler_api.php?api_key=" + ApiKey + "&action=getBalance", Proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly); string balance = System.Text.RegularExpressions.Regex.Replace(getbalance, @".*?:", ""); return(balance); }
/*Функция получения смс кода * Входящие значения: * 1) ApiKey - ключ API * 2) Proxy - текущий прокси проекта * 3) Number - номер телефона, на который проводится активация * 4) Id - id активации * 5) ArrTimers - массив таймеров: * [0] - время ожидания смс * [1] - общее время ожидания смс */ private string sms_ok(string ApiKey, string Proxy, string Id, string Status) { // Объявляем переменные string smsstatus = string.Empty; string sms = string.Empty; string setStatus = ZennoPoster.HttpGet("http://sms-activate.ru/stubs/handler_api.php?api_key=" + ApiKey + "&action=setStatus&status=" + Status + "&id=" + Id, Proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly); switch (setStatus) { case "ACCESS_READY": for (int i = 0; i < 16; i++) { smsstatus = ZennoPoster.HttpGet("http://sms-activate.ru/stubs/handler_api.php?api_key=" + ApiKey + "&action=getStatus&id=" + Id, Proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly); if (smsstatus.Contains("STATUS_OK")) { sms = System.Text.RegularExpressions.Regex.Replace(smsstatus, @".*OK:", ""); return(sms); } else { System.Threading.Thread.Sleep(60000); } } break; case "ACCESS_ACTIVATION": return("Номер успешно подтверждён"); case "STATUS_CANCEL": throw new Exception("Истёк срок ожидания прихода смс"); case "ERROR_SQL": throw new Exception("Ошибка SQL-сервера"); case "NO_ACTIVATION": throw new Exception("Id активации не существует"); case "BAD_SERVICE": throw new Exception("Некорректное наименование сервиса"); case "BAD_STATUS": throw new Exception("Некорректный статус"); case "BAD_KEY": throw new Exception("Неверный API-ключ"); case "BAD_ACTION": throw new Exception("Некорректное действие"); } return(sms); }
public static int GetNumberOfTries(string TaskName) { string sid = TaskHelper.GetTaskId(TaskName); var id = Guid.Parse(sid); var taskInfo = ZennoPoster.GetTaskInfo(id); string execsettings = Regex.Match(taskInfo,@"(?<=<ExecutionSettings>).*?(?=</ExecutionSettings>)").Value; string ntries = Regex.Match(execsettings,@"(?<=<NumberOfTries>).*?(?=</NumberOfTries>)").Value; int res=0; Int32.TryParse(ntries,out res); return res; }
public static string GetStatus(string TaskName) { string sid = TaskHelper.GetTaskId(TaskName); var id = Guid.Parse(sid); var taskInfo = ZennoPoster.GetTaskInfo(id); string status = Regex.Match(taskInfo,@"(?<=<Status>).*?(?=</Status>)").Value; return status; //Perform - работает //Complite - завершен //Stop - остановлен //Schedule - запланирован //WaitPerform - компилится }
public void captcha1(string tag, string atr, string text, string search_type, int number) { project.Variables["action"].Value = "captcha1 " + text; string cps = "RuCaptcha.dll"; if (project.Variables["cp_srv"].Value == "antigate") { cps = "Anti-Captcha.dll"; } HtmlElement he = instance.GetTabByAddress("page").GetDocumentByAddress("0").FindElementByTag("form", 1).FindChildByAttribute(tag, atr, text, search_type, number); var result = ZennoPoster.CaptchaRecognition(cps, he.DrawToBitmap(false), ""); var tmp = result.Split(new [] { "-|-" }, StringSplitOptions.None); if (tmp.Length > 1) { project.Variables["captcha"].Value = tmp[0]; project.Variables["bad_captcha"].Value = tmp[1]; } }
public void save_form_2_999_999() { string query = string.Empty; string text = string.Empty; if (instance.ActiveTab.DomText.Contains("Вы превысили свой суточный лимит")) { query = "update `si_" + project.Variables["site"].Value + "` set `day_limit`=0 where `id`='" + project.Variables["id_profile"].Value + "';"; ZennoPoster.Db.ExecuteQuery(query, null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, project.Variables["DB_set"].Value, " ", "\r\n"); text = "<u>Достигнут суточный лимит на 2-999-999.ru</u>"; } text = "Объявление <u>" + project.Variables["inet_title"].Value + "</u> успешно размещено на 2-999-999.ru"; string url = project.Variables["url_for_notifications"].Value + project.Variables["user_id"].Value + "&msg=" + text; string responce = string.Empty; responce = ZennoPoster.HttpGet( url, //url "", //proxy "utf-8", //charset ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderOnly ); string DB_set = project.Variables["DB_set"].Value; string site = project.Variables["site"].Value; string id_profile = project.Variables["id_profile"].Value; string objects_id_rk = string.Empty; query = "select `objects_id_rk` from `si_" + site + "` where `id`='" + id_profile + "';"; objects_id_rk = ZennoPoster.Db.ExecuteQuery(query, null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, DB_set, " ", "\r\n"); if (objects_id_rk == "") { objects_id_rk = project.Variables["id"].Value; } else { objects_id_rk = objects_id_rk + "\r\n" + project.Variables["id"].Value; } query = "update `si_" + site + "` set `objects_count`=`objects_count`+1, `objects_id_rk`='" + objects_id_rk + "',`run`='0' where `id`='" + project.Variables["id_profile"].Value + "';\r\nUPDATE `counters` SET `Gposts`=`Gposts`+1, `" + project.Variables["site"].Value + "P`=`" + project.Variables["site"].Value + "P`+1 WHERE 1;\r\nUPDATE `DB_users` SET `connects`=`connects`-1 WHERE `value`='" + DB_set + "';\r\nupdate `si_" + project.Variables["site"].Value + "` set `day_limit`=`day_limit`-1 where `id`='" + project.Variables["id_profile"].Value + "';\r\nUPDATE `objects` set `" + site + "`=1 where `id`='" + project.Variables["id"].Value + "';"; ZennoPoster.Db.ExecuteQuery(query, null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, DB_set, " ", "\r\n"); project.Profile.Save(project.Directory + @"\profile\" + project.Variables["id_profile"].Value + ".zpprofile"); }
//Приватная функция получения количества свободных номеров private string getNumbersStatus(string ApiKey, string Proxy) { string getNumbersStatus = ZennoPoster.HttpGet("http://sms-activate.ru/stubs/handler_api.php?api_key=" + ApiKey + "&action=getNumbersStatus", Proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly); var jsonser = new System.Web.Script.Serialization.JavaScriptSerializer(); Dictionary <string, object> data = jsonser.Deserialize <Dictionary <string, object> >(getNumbersStatus); string vk = data["vk_0"].ToString(); string ok = data["ok_0"].ToString(); string wa = data["wa_0"].ToString(); string vi = data["vi_0"].ToString(); string tg = data["tg_0"].ToString(); string wb = data["wb_0"].ToString(); string go = data["go_0"].ToString(); string av = data["av_0"].ToString(); string av_1 = data["av_1"].ToString(); string fb = data["fb_0"].ToString(); string tw = data["tw_0"].ToString(); string ub = data["ub_0"].ToString(); string qw = data["qw_0"].ToString(); string gt = data["gt_0"].ToString(); string sn = data["sn_0"].ToString(); string ig = data["ig_0"].ToString(); string ss = data["ss_0"].ToString(); string ym = data["ym_0"].ToString(); string ya = data["ya_0"].ToString(); string ma = data["ma_0"].ToString(); string mm = data["mm_0"].ToString(); string uk = data["uk_0"].ToString(); string me = data["me_0"].ToString(); string mb = data["mb_0"].ToString(); string we = data["we_0"].ToString(); string ot = data["ot_0"].ToString(); string ot_1 = data["ot_1"].ToString(); return(ok); }
public void lists() { project.SendInfoToLog("подготовка списков", true); var recip = project.Tables["recip"]; var email = project.Tables["email"]; var subj = project.Lists["subj"]; var link = project.Lists["link"]; var paste_text = project.Lists["paste_text"]; recip.Clear(); email.Clear(); subj.Clear(); link.Clear(); paste_text.Clear(); string path = project.Variables["recip_list"].Value; var val = System.IO.File.ReadAllText(path); Macros.TextProcessing.ToTable(val, "\r\n", "Text", ":", "Text", project, recip); path = project.Variables["subj_list"].Value; val = System.IO.File.ReadAllText(path); Macros.TextProcessing.ToList(val, "\r\n", "Text", project, subj); path = project.Variables["email_list"].Value; val = System.IO.File.ReadAllText(path); Macros.TextProcessing.ToTable(val, "\r\n", "Text", ";", "Text", project, email); path = project.Variables["link_list"].Value; val = System.IO.File.ReadAllText(path); Macros.TextProcessing.ToList(val, "\r\n", "Text", project, link); path = project.Variables["paste_text_list"].Value; val = System.IO.File.ReadAllText(path); Macros.TextProcessing.ToList(val, "\r\n", "Text", project, paste_text); path = System.IO.File.ReadAllText(project.Directory + @"/set/s_bol.xml"); path = Macros.TextProcessing.Replace(path, @"(?<=wait</Name><Value>).*?(?=</Value>)", project.Variables["limit_post_for_one_akk"].Value, "Regex", "All"); path = Macros.TextProcessing.Replace(path, @"(?<=body</Name><Value>).*?(?=</Value>)", project.Variables["body"].Value, "Regex", "All"); path = Macros.TextProcessing.Replace(path, @"(?<=proxy_type</Name><Value>).*?(?=</Value>)", project.Variables["proxy_type"].Value, "Regex", "All"); val = System.IO.File.ReadAllText(project.Variables["body"].Value); if (val.Contains(@"$PASTE_LINK$")) { path = Macros.TextProcessing.Replace(path, @"(?<=body_contains_link</Name><Value>).*?(?=</Value>)", "1", "Regex", "All"); } else { path = Macros.TextProcessing.Replace(path, @"(?<=body_contains_link</Name><Value>).*?(?=</Value>)", "0", "Regex", "All"); } if (val.Contains(@"$PASTE_TEXT$")) { path = Macros.TextProcessing.Replace(path, @"(?<=body_contains_text</Name><Value>).*?(?=</Value>)", "1", "Regex", "All"); } else { path = Macros.TextProcessing.Replace(path, @"(?<=body_contains_text</Name><Value>).*?(?=</Value>)", "0", "Regex", "All"); } System.IO.File.WriteAllText(project.Directory + @"/set/s_bol.xml", path); startInfo.FileName = string.Format(project.Directory + @"/set/s_bol.bat"); Process.Start(startInfo); if (project.Variables["proxy_type"].Value == "nosok") { ZennoPoster.AddTries("Nosok", 1); System.Threading.Thread.Sleep(5 * 1000); if (!File.Exists(project.Directory + @"/proxy/proxy_nosok.txt")) { System.Threading.Thread.Sleep(5 * 1000); } } int t = int.Parse(project.Variables["limit_post_for_one_akk"].Value); t = recip.RowCount / t; project.SendInfoToLog("Запуск потоков", true); System.Threading.Thread.Sleep(3 * 1000); ZennoPoster.AddTries("S_bol", t); System.Threading.Thread.Sleep(1 * 500); }
public void bad_captcha() { ZennoPoster.Db.ExecuteQuery("UPDATE `counters` SET `Bcaptcha`=`Bcaptcha`+1 WHERE 1;", null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.MySqlClient, project.Variables["DB_set"].Value, " ", "\r\n"); ZennoPoster.HttpGet(project.Variables["bad_captcha"].Value); }