public void StartMobTweeting(object objemailpass) { try { string emailData = (string)objemailpass; string[] arr = Regex.Split(emailData, ":"); string email = string.Empty; string pass = string.Empty; string mobileagent = string.Empty; string authenticity_token = string.Empty; string Tweet = string.Empty; if (arr.Length == 2) { email = arr[0]; pass = arr[1]; } else { AddToMobileLogs("[ " + DateTime.Now + " ] => [ " + emailData + " Not In Correct Format ]"); return; } if (CountMobAgent >= lstMobUserAgent.Count) { CountMobAgent = 0; } mobileagent = lstMobUserAgent[CountMobAgent]; CountMobAgent++; GlobusHttpHelper HttpHelper = new GlobusHttpHelper(); //Login string pageFirst = HttpHelper.getHtmlfromUrlMobile(new Uri("https://mobile.twitter.com/session/new"), "https://mobile.twitter.com/signup", "", mobileagent); try { int startindex = pageFirst.IndexOf("authenticity_token"); string start = pageFirst.Substring(startindex); int endindex = start.IndexOf("\" />"); string end = start.Substring(0, endindex).Replace("authenticity_token\" type=\"hidden\" value=\"", ""); authenticity_token = end; } catch (Exception ex) { Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartMobTweeting() --> Authenticity token --> " + ex.Message, Globals.Path_ScrapeUsersErroLog); } string postdata = "authenticity_token=" + authenticity_token + "&username="******"&password="******"&commit=Sign+in"; string LoginFirst = HttpHelper.postFormDataMobileData(new Uri("https://mobile.twitter.com/session"), postdata, "https://mobile.twitter.com/session/new", "", "", "", "", mobileagent); if (LoginFirst.Contains("/session/destroy") && LoginFirst.Contains("/settings")) { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Logged In With Account :" + email + " ]"); if (queMobTweet.Count > 0) { } else { AddToMobileLogs("[ " + DateTime.Now + " ] => [ No Tweets For Account : " + email + " ]"); return; } } else { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Cannot Login With Account :" + email + " ]"); } } catch (Exception ex) { Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartMobTweeting() --> " + ex.Message, Globals.Path_ScrapeUsersErroLog); } }
public void AccountCreator(object objemailpass) { try { string emailData = (string)objemailpass; //emailData = "[email protected]:vAq8YqxSad"; string[] arr = Regex.Split(emailData, ":"); string email = string.Empty; string pass = string.Empty; string proxyAddress = string.Empty; string proxyPort = string.Empty; string proxyUsername = string.Empty; string proxyPassword = string.Empty; string username = string.Empty; string name = string.Empty; string mobileagent = string.Empty; string capcthaResponse = ""; string capcthaChallenge = ""; string Tweet = ""; string URl = ""; string Location = ""; string Bio = ""; string proxyItem = string.Empty; GlobusHttpHelper HttpHelper = new GlobusHttpHelper(); lock (lockr_queueRunningProxies_Mobile) { if (qRunningProxy_Mobile.Count > 0) { try { proxyItem = qRunningProxy_Mobile.Dequeue(); } catch { } } else { CheckAndFillProxyInQueue(); } } if (arr.Length == 2) { email = arr[0]; pass = arr[1]; AddToMobileLogs("[ " + DateTime.Now + " ] => [ Starting Email : " + email + " ]"); } if (arr.Length == 1) { return; } if (arr.Length == 2) { email = emailData.Split(':')[0].Replace("\0", ""); pass = emailData.Split(':')[1].Replace("\0", ""); } else if (arr.Length == 4) { email = emailData.Split(':')[0].Replace("\0", ""); pass = emailData.Split(':')[1].Replace("\0", ""); proxyAddress = emailData.Split(':')[2]; proxyPort = emailData.Split(':')[3]; } else if (arr.Length == 6) { email = emailData.Split(':')[0].Replace("\0", ""); pass = emailData.Split(':')[1].Replace("\0", ""); proxyAddress = emailData.Split(':')[2]; proxyPort = emailData.Split(':')[3]; proxyUsername = emailData.Split(':')[4]; proxyPassword = emailData.Split(':')[5]; } else { AddToMobileLogs("[ " + DateTime.Now + " ] => [ " + emailData + " Not In correct Format ]"); return; } if (!string.IsNullOrEmpty(proxyItem)) { try { proxyAddress = proxyItem.Split(':')[0]; proxyPort = proxyItem.Split(':')[1]; proxyUsername = proxyItem.Split(':')[2]; proxyPassword = proxyItem.Split(':')[3]; } catch { } } if (CountUsername >= lstMobUsername.Count) { CountUsername = 0; } username = lstMobUsername[CountUsername]; CountUsername++; if (CountName >= lstMobName.Count) { CountName = 0; } name = lstMobName[CountName]; CountName++; if (CountMobAgent >= lstMobUserAgent.Count) { CountMobAgent = 0; } mobileagent = lstMobUserAgent[CountMobAgent]; CountMobAgent++; if (CountTweet >= lstMobTweet.Count) { CountTweet = 0; } Tweet = lstMobTweet[CountTweet]; CountTweet++; if (CountUrl >= lstMobUrl.Count) { CountUrl = 0; } URl = lstMobUrl[CountUrl]; CountUrl++; if (CountLocation >= lstMobLocation.Count) { CountUrl = 0; } Location = lstMobLocation[CountLocation]; CountUrl++; if (CountBio >= lstMobBio.Count) { CountBio = 0; } Bio = lstMobBio[CountBio]; CountBio++; int tempCount_usernameCheckLoop = 0; usernameCheckLoop: string url1 = "https://twitter.com/users/email_available?suggest=1&username=&full_name=&email=" + Uri.EscapeDataString(email.Replace(" ", "")) + "&suggest_on_username=true&context=signup"; string EmailCheck = HttpHelper.getHtmlfromUrlProxy(new Uri(url1), proxyAddress, proxyPort, proxyUsername, proxyPassword, "https://twitter.com/signup,", "", mobileagent); string Usernamecheck = HttpHelper.getHtmlfromUrlProxy(new Uri("https://twitter.com/users/username_available?suggest=1&username="******"&full_name=" + name + "&email=&suggest_on_username=true&context=signup"), proxyAddress, proxyPort, proxyUsername, proxyPassword, "https://twitter.com/signup,", "", mobileagent); if (EmailCheck.Contains("Email has already been taken. An email can only be used on one Twitter account at a time")) { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Email : " + email + " has already been taken. An email can only be used on one Twitter account at a time ]"); return; } else if (Usernamecheck.Contains("Username has already been taken")) { //Created = false; AddToMobileLogs("[ " + DateTime.Now + " ] => [ Username : "******" has already been taken ]"); if (username.Count() > 12) { username = username.Remove(8); //Removes the extra characters } if (username.Count() > 15) { username = username.Remove(13); //Removes the extra characters } username = username + RandomStringGenerator.RandomStringAndNumber(5); tempCount_usernameCheckLoop++; if (tempCount_usernameCheckLoop < 5) { goto usernameCheckLoop; } } else if (EmailCheck.Contains("You cannot have a blank email address")) { AddToMobileLogs("[ " + DateTime.Now + " ] => [ You cannot have a blank email address ]"); } AddToMobileLogs("[ " + DateTime.Now + " ] => [ Redirecting To Twitter Signup ]"); string url = "https://mobile.twitter.com/signup"; string pagesource1 = HttpHelper.getHtmlfromUrlProxy(new Uri(url), proxyAddress, proxyPort, proxyUsername, proxyPassword, "https://twitter.com/signup,", "", mobileagent); string authenticity_token = string.Empty; AddToMobileLogs("[ " + DateTime.Now + " ] => [ Getting Captcha Chanllenge ]"); capcthaChallenge = GetCaptchaMobSrc(capcthaChallenge, pagesource1); int tempCaptchaCounter = 0; getCaptcha: AddToMobileLogs("[ " + DateTime.Now + " ] => [ Getting Authenticity Token ]"); try { int startindex = pagesource1.IndexOf("authenticity_token"); string start = pagesource1.Substring(startindex); int endindex = start.IndexOf("\" />"); string end = start.Substring(0, endindex).Replace("authenticity_token\" type=\"hidden\" value=\"", ""); authenticity_token = end; } catch (Exception ex) { Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> AccountCreator() --> Authenticity token --> " + ex.Message, Globals.Path_ScrapeUsersErroLog); } #region Captcha Solving AddToMobileLogs("[ " + DateTime.Now + " ] => [ Download Captcha Image ]"); WebClient webclient = new WebClient(); byte[] args = webclient.DownloadData(capcthaChallenge); string[] arr1 = new string[] { BaseLib.Globals.DBCUsername, BaseLib.Globals.DBCPassword, "" }; AddToMobileLogs("[ " + DateTime.Now + " ] => [ Getting Captcha Response ]"); DeathByCaptcha.Client clnt = null; DeathByCaptcha.Captcha captcha = null; capcthaResponse = DecodeDBC(arr1, args, out clnt, out captcha); if (string.IsNullOrEmpty(capcthaResponse)) { Thread.Sleep(1000); capcthaResponse = DecodeDBC(arr1, args, out clnt, out captcha); if (string.IsNullOrEmpty(capcthaResponse)) { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Empty Captcha Returned from Decaptcher ]"); // Report an incorrectly solved CAPTCHA. // Make sure the CAPTCHA was in fact incorrectly solved, do not // just report it at random, or you might be banned as abuser. if (captcha != null) { if (clnt.Report(captcha)) { Console.WriteLine("Reported as incorrectly solved"); } else { Console.WriteLine("Failed reporting as incorrectly solved"); } } else { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Captcha Null ]"); } } } #endregion string postdata = "authenticity_token=" + authenticity_token + "&oauth_signup_client%5Bfullname%5D=" + username + "&oauth_signup_client%5Bphone_number%5D=" + email.Split('@')[0].Replace("+", "%2B") + "%40" + email.Split('@')[1] + "&oauth_signup_client%5Bpassword%5D=" + pass + "&captcha_response_field=" + capcthaResponse + "&captcha_method=2&captcha_challenge_field=" + capcthaChallenge.Replace("https://mobile.twitter.com/signup/captcha/", "").Replace(".gif", "") + "&commit=Sign+up+for+Twitter"; string pagfinal = HttpHelper.postFormDataMobileData(new Uri("https://mobile.twitter.com/signup"), postdata, "https://mobile.twitter.com/signup", "", "", "", "", mobileagent); string pagfinal2 = HttpHelper.getHtmlfromUrlMobile(new Uri("http://mobile.twitter.com/home"), "https://mobile.twitter.com/signup", "", mobileagent); #region Tweet bool temp_IsCreated = false; if (pagfinal.Contains("signout") || pagfinal.Contains("https://mobile.twitter.com/signup/screen_name") || pagfinal.Contains("/signup/screen_name") || !pagfinal2.Contains("http://mobile.twitter.com/welcome/interests")) { if (pagfinal.Contains("https://mobile.twitter.com/signup/screen_name")) { string screenName = GlobusHttpHelper.GetParamValue(pagfinal, "settings[screen_name]"); string secondPostData = "authenticity_token=" + authenticity_token + "&suggestion=0%3A&settings%5Bscreen_name%5D=" + screenName + "&commit=Continue"; string res_secondPost = HttpHelper.postFormDataMobileData(new Uri("https://mobile.twitter.com/signup/screen_name "), secondPostData, "https://mobile.twitter.com/signup/screen_name", "", "", "", "", mobileagent); } AddToMobileLogs("[ " + DateTime.Now + " ] => [ Account Created : " + email + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + pass + ":" + proxyAddress + ":" + proxyPort + ":" + proxyUsername + ":" + proxyPassword, BaseLib.Globals.Path_MobEmailCreator); int counter_profile = 0; profilling: string pageProfileData = HttpHelper.getHtmlfromUrl(new Uri("https://mobile.twitter.com/settings/profile"), "https://mobile.twitter.com/account", ""); string postdataProfile = "authenticity_token=" + authenticity_token + "&settings%5Bfullname%5D=" + name + "&settings%5Burl%5D=" + url + "&settings%5Blocation%5D=" + Location + "&settings%5Bdescription%5D=" + Bio + "&commit=Save"; string postProfileData = HttpHelper.postFormDataMobileData(new Uri("https://mobile.twitter.com/settings/profile"), postdataProfile, "https://mobile.twitter.com/settings/profile", "", "", "", "", mobileagent); pageProfileData = HttpHelper.getHtmlfromUrl(new Uri("https://mobile.twitter.com/settings/profile"), "https://mobile.twitter.com/account", ""); string PostUrl = GlobusHttpHelper.GetParamValue(pageProfileData, "settings[url]"); if (!string.IsNullOrEmpty(PostUrl)) { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Account :" + email + " Profiled ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + pass, BaseLib.Globals.Path_MobEmailProfiled); } else { if (counter_profile <= 5) { Thread.Sleep(5000); AddToMobileLogs("[ " + DateTime.Now + " ] => [ Trying Profiling Once Again for Account : " + email + " ]"); counter_profile++; goto profilling; } AddToMobileLogs("[ " + DateTime.Now + " ] => [ Account :" + email + " Not Profiled ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + pass, BaseLib.Globals.Path_NotMobEmailProfiled); } string pagesource3 = HttpHelper.getHtmlfromUrlProxy(new Uri("https://mobile.twitter.com/compose/tweet"), proxyAddress, proxyPort, proxyUsername, proxyPassword, "https://mobile.twitter.com/compose/tweet", "", mobileagent); string TweetPost = "authenticity_token=" + authenticity_token + "&tweet%5Btext%5D=" + Uri.EscapeDataString(Tweet) + "&commit=Tweet"; string pagesourcepost = HttpHelper.postFormDataMobileData(new Uri("https://mobile.twitter.com/"), TweetPost, "https://mobile.twitter.com/compose/tweet", "", "", "", "", mobileagent); string secondpagesourcepost = HttpHelper.getHtmlfromUrl(new Uri("https://mobile.twitter.com/"), "https://mobile.twitter.com/", "", mobileagent); if (pagesourcepost.Contains("Tweet sent!") || secondpagesourcepost.Contains("Tweet sent!") || pagesourcepost.Contains(Tweet)) { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Tweeted " + Tweet + " From " + email + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + Tweet, BaseLib.Globals.Path_MobTweeted); } else if (secondpagesourcepost.Contains("Whoops! You already tweeted that") || pagesourcepost.Contains("Whoops! You already tweeted that…")) { AddToMobileLogs("[ " + DateTime.Now + " ] => [ You Already Tweeted " + Tweet + " From " + email + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + Tweet, BaseLib.Globals.Path_NotMobEmailTweeted); } else { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Not Tweeted " + Tweet + " From " + email + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + Tweet, BaseLib.Globals.Path_NotMobEmailTweeted); } temp_IsCreated = true; return; } else if (pagfinal.Contains("Redirecting to: <a href=\"https://mobile.twitter.com/signup/screen_name")) { Thread.Sleep(300); pagfinal = HttpHelper.getHtmlfromUrlProxy(new Uri("https://mobile.twitter.com/signup/screen_name"), proxyAddress, proxyPort, proxyUsername, proxyPassword, "https://mobile.twitter.com/compose/tweet", "", mobileagent); } else if (pagfinal.Contains("captcha invalid-field invalid-captcha-response-field")) //wrong captcha { tempCaptchaCounter++; AddToMobileLogs("[ " + DateTime.Now + " ] => [ Wrong Captcha : " + email + " ]"); // Report an incorrectly solved CAPTCHA. // Make sure the CAPTCHA was in fact incorrectly solved, do not // just report it at random, or you might be banned as abuser. if (captcha != null) { if (clnt.Report(captcha)) { Console.WriteLine("Reported as incorrectly solved"); } else { Console.WriteLine("Failed reporting as incorrectly solved"); } } if (tempCaptchaCounter <= 3) { capcthaChallenge = GetCaptchaMobSrc("", pagfinal); goto getCaptcha; } } if (pagfinal.Contains("settings[screen_name]") && !temp_IsCreated) { string screenName = GlobusHttpHelper.GetParamValue(pagfinal, "settings[screen_name]"); string secondPostData = "authenticity_token=" + authenticity_token + "&suggestion=0%3A&settings%5Bscreen_name%5D=" + screenName + "&commit=Continue"; string res_secondPost = HttpHelper.postFormDataMobileData(new Uri("https://mobile.twitter.com/signup/screen_name "), secondPostData, "https://mobile.twitter.com/signup/screen_name", "", "", "", "", mobileagent); #region Profile and tweet AddToMobileLogs("[ " + DateTime.Now + " ] => [ Account Created : " + email + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + pass + ":" + proxyAddress + ":" + proxyPort + ":" + proxyUsername + ":" + proxyPassword, BaseLib.Globals.Path_MobEmailCreator); int counter_profile = 0; profilling: string pageProfileData = HttpHelper.getHtmlfromUrl(new Uri("https://mobile.twitter.com/settings/profile"), "https://mobile.twitter.com/account", ""); string postdataProfile = "authenticity_token=" + authenticity_token + "&settings%5Bfullname%5D=" + name + "&settings%5Burl%5D=" + url + "&settings%5Blocation%5D=" + Location + "&settings%5Bdescription%5D=" + Bio + "&commit=Save"; string postProfileData = HttpHelper.postFormDataMobileData(new Uri("https://mobile.twitter.com/settings/profile"), postdataProfile, "https://mobile.twitter.com/settings/profile", "", "", "", "", mobileagent); pageProfileData = HttpHelper.getHtmlfromUrl(new Uri("https://mobile.twitter.com/settings/profile"), "https://mobile.twitter.com/account", ""); string PostUrl = GlobusHttpHelper.GetParamValue(pageProfileData, "settings[url]"); if (!string.IsNullOrEmpty(PostUrl)) { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Account :" + email + " Profiled ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + pass, BaseLib.Globals.Path_MobEmailProfiled); } else { if (counter_profile <= 5) { Thread.Sleep(5000); AddToMobileLogs("[ " + DateTime.Now + " ] => [ Trying Profiling Once Again for Account : " + email + " ]"); counter_profile++; goto profilling; } AddToMobileLogs("[ " + DateTime.Now + " ] => [ Account :" + email + " Not Profiled ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + pass, BaseLib.Globals.Path_NotMobEmailProfiled); } string pagesource3 = HttpHelper.getHtmlfromUrlProxy(new Uri("https://mobile.twitter.com/compose/tweet"), proxyAddress, proxyPort, proxyUsername, proxyPassword, "https://mobile.twitter.com/compose/tweet", "", mobileagent); string TweetPost = "authenticity_token=" + authenticity_token + "&tweet%5Btext%5D=" + Uri.EscapeDataString(Tweet) + "&commit=Tweet"; string pagesourcepost = HttpHelper.postFormDataMobileData(new Uri("https://mobile.twitter.com/"), TweetPost, "https://mobile.twitter.com/compose/tweet", "", "", "", "", mobileagent); string secondpagesourcepost = HttpHelper.getHtmlfromUrl(new Uri("https://mobile.twitter.com/"), "https://mobile.twitter.com/", "", mobileagent); if (pagesourcepost.Contains("Tweet sent!") || secondpagesourcepost.Contains("Tweet sent!") || pagesourcepost.Contains(Tweet)) { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Tweeted " + Tweet + " From " + email + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + Tweet, BaseLib.Globals.Path_MobTweeted); } else if (secondpagesourcepost.Contains("Whoops! You already tweeted that") || pagesourcepost.Contains("Whoops! You already tweeted that")) { AddToMobileLogs("[ " + DateTime.Now + " ] => [ You Already Tweeted " + Tweet + " From " + email + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + Tweet, BaseLib.Globals.Path_NotMobEmailTweeted); } else { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Not Tweeted " + Tweet + " From " + email + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + Tweet, BaseLib.Globals.Path_NotMobEmailTweeted); } #endregion } else { AddToMobileLogs("[ " + DateTime.Now + " ] => [ Account Not Created : " + email + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine(email + ":" + pass, BaseLib.Globals.Path_NotMobEmailCreator); } #endregion } catch (Exception ex) { if (ex.Message == "Unable to connect to remote server") { //AddToMobileLogs(ex.Message); } Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> AccountCreator() --> " + ex.Message, Globals.Path_ScrapeUsersErroLog); } finally { counter++; if (AccountCounter == counter) { MessageBox.Show("Finished Account Creation"); } } }