public void GetStartReply(Object parameters) { string CampaignName = string.Empty; try { Interlocked.Increment(ref counterThreadsCampaignReply); Tweeter.Tweeter tweeter = new Tweeter.Tweeter(); tweeter.logEvents.addToLogger += new EventHandler(logEvents_addToLogger); Array paramsArray = new object[10]; paramsArray = (Array)parameters; //get value from param KeyValuePair <string, MixedCampaignManager.classes.CampaignAccountManager> keyValue = (KeyValuePair <string, MixedCampaignManager.classes.CampaignAccountManager>)paramsArray.GetValue(0); string accKey = keyValue.Key; MixedCampaignManager.classes.CampaignAccountManager ReplyAccountManager = keyValue.Value; List <MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs> lst_ReplyData = (List <MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs>)paramsArray.GetValue(1); List <string> lst_ReplyMsgs = (List <string>)paramsArray.GetValue(2); bool _IsReplyParDay = (bool)paramsArray.GetValue(3); int _NoofReplyParDay = (int)paramsArray.GetValue(4); int _NoofReplyParAc = (int)paramsArray.GetValue(5); int DelayStar = (int)paramsArray.GetValue(6); int DelayEnd = (int)paramsArray.GetValue(7); CampaignName = (string)paramsArray.GetValue(8); //Get scheduler time and status if task is scheduled bool IsSchedulDaily = (bool)paramsArray.GetValue(9); DateTime SchedulerEndTime = (DateTime)paramsArray.GetValue(10); int MsgCounter = 0; //Add List Of Working thread //we are using this list when we stop/abort running camp processes.. try { MixedCampaignManager.classes.cls_variables.Lst_WokingThreads.Add(CampaignName + "_" + ReplyAccountManager.Username, Thread.CurrentThread); } catch (Exception) { } //get account logging if (!(CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts).Keys.Contains(accKey)) { ReplyAccountManager.Login(); try { CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts.Add(accKey, ReplyAccountManager); } catch { }; } else { try { ReplyAccountManager = null; bool values = (CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts).TryGetValue(accKey, out ReplyAccountManager); } catch (Exception) { } } count_AccountForReply_CompleteMessage = CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts.Count(); if (!ReplyAccountManager.IsLoggedIn || !ReplyAccountManager.IsNotSuspended) { return; } foreach (var lst_ReplyData_item in lst_ReplyData) { //Check Scheduled Task end time //If task is scheduled if (IsSchedulDaily) { if (SchedulerEndTime.Hour == DateTime.Now.Hour && DateTime.Now.Minute >= SchedulerEndTime.Minute) { _IsReplyProcessStart = true; new Thread(() => { frm_mixcampaignmanager frmcamp = new frm_mixcampaignmanager(); frmcamp.StoprunningCampaign(CampaignName); }).Start(); break; } } // foreach (string Msg in lst_ReplyMsgs) { string tweetId = lst_ReplyData_item.ID_Tweet; string tweetUsername = lst_ReplyData_item.username__Tweet_User; if (MsgCounter == lst_ReplyMsgs.Count) { MsgCounter = 0; } string Msg = lst_ReplyMsgs[MsgCounter]; string _wholeTweetMessage = lst_ReplyData_item.wholeTweetMessage; string tweetStatus; tweeter.Reply(ref ReplyAccountManager.globusHttpHelper, "", ReplyAccountManager.postAuthenticityToken, tweetId, tweetUsername, Msg, out tweetStatus); if (tweetStatus == "posted") { Log("[ " + DateTime.Now + " ] => [ Message :- " + Msg + " Tweet :- " + _wholeTweetMessage + " by " + keyValue.Key + " ]"); try { RepositoryClasses.ReportTableRepository.InsertReport(CampaignName, accKey, "", 0, tweetId, "", "", Msg); } catch (Exception) { } } else { Log("[ " + DateTime.Now + " ] => [ Status :- " + tweetStatus + " by " + keyValue.Key + " ]"); } int delay = BaseLib.RandomNumberGenerator.GenerateRandom(DelayStar * 1000, DelayEnd * 1000); Log("[ " + DateTime.Now + " ] => [ Delay :- " + TimeSpan.FromMilliseconds(delay).Seconds + " Seconds. ]"); Thread.Sleep(delay); MsgCounter++; } } } catch (Exception) { } finally { count_AccountForReply_CompleteMessage--; Interlocked.Decrement(ref counterThreadsCampaignReply); lock (lockerThreadsCampaignReply) { Monitor.Pulse(lockerThreadsCampaignReply); if (counterThreadsCampaignReply == 0) { RaiseCampaignFineshedEvent(CampaignName); Log("[ " + DateTime.Now + " ] => [ Process completed. ]"); Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(CampaignName + ": " + DateTime.Now, Globals.path_LogCampaignCompleted); } } } }
private void StartCampaignTweeting(object parameters) { int SingleTweetMsgCount = 0; string CampaignName = string.Empty; //CampaignAccountManager tweetAccountManager = null; try { Interlocked.Increment(ref counterThreadsCamapignTweet); Tweeter.Tweeter Objtweet; //get all parems from object Array paramsArray = new object[2]; paramsArray = (Array)parameters; //get value from param KeyValuePair<string, CampaignAccountManager> keyValue = (KeyValuePair<string, CampaignAccountManager>)paramsArray.GetValue(0); //get Message list prom param List<string> _lstTweetMsg = (List<string>)paramsArray.GetValue(1); //get bool value for tweet per account bool IsAllTweetParAc = (bool)paramsArray.GetValue(2); //get delay start and end timming from param int DelayStar = (int)paramsArray.GetValue(3); int DelayEnd = (int)paramsArray.GetValue(4); //get Number of tweets par account . int NoOfTweetPerAc = (int)paramsArray.GetValue(5); CampaignName = (string)paramsArray.GetValue(6); //Get scheduler time and status if task is scheduled bool IsSchedulDaily = (bool)paramsArray.GetValue(7); DateTime SchedulerEndTime = (DateTime)paramsArray.GetValue(8); bool IsHashTagsCampaign = (bool)paramsArray.GetValue(9); string TweetFilePath = (string)paramsArray.GetValue(10); bool IsUserList = (bool)paramsArray.GetValue(11); string UserListFilePath = (string)paramsArray.GetValue(12); //set get account details from kay value pair //and create event to print log messages from account related.. string accKey = keyValue.Key; string Hashtags = string.Empty; CampaignAccountManager tweetAccountManager = keyValue.Value; //Add List Of Working thread //we are using this list when we stop/abort running camp processes.. try { MixedCampaignManager.classes.cls_variables.Lst_WokingThreads.Add(CampaignName + "_" + tweetAccountManager.Username, Thread.CurrentThread); } catch (Exception) { } //attempt login from account if (!(CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts).Keys.Contains(accKey)) { //get account logging tweetAccountManager.Login(); try { CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts.Add(accKey, tweetAccountManager); } catch { }; } else { try { tweetAccountManager = null; bool values = (CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts).TryGetValue(accKey, out tweetAccountManager); //if (!tweetAccountManager.IsLoggedIn && !tweetAccountManager.IsNotSuspended) //{ //} } catch (Exception) { } } //check account is logged in if (tweetAccountManager.IsLoggedIn) { //check account is suspended or not //Comment by Prabhat 06.11.13 if (tweetAccountManager.IsNotSuspended) { //check condition if user wants to all tweet per account if (IsAllTweetParAc) { #region All Tweet Par Account Objtweet = new Tweeter.Tweeter(); int MSGcounter = 0; // TemplstTweetMsg = _lstTweetMsg; for (int i = 0; i < _lstTweetMsg.Count; i++) { try { //Check Scheduled Task end time //If task is scheduled if (IsSchedulDaily) { if (SchedulerEndTime.Hour == DateTime.Now.Hour && DateTime.Now.Minute >= SchedulerEndTime.Minute) { _IsTweetProcessStart = true; new Thread(() => { //frm_mixcampaignmanager frmcamp = new frm_mixcampaignmanager(); //frmcamp.StoprunningCampaign(CampaignName); //frmcamp.startTweet(CampaignName, ""); RaiseCampaignSearchLogEvents(campName); RaiseCampaignStartLogEvents(campName); }).Start(); break; } } //Process is execuite string tweetMsg = _lstTweetMsg[i]; //string tweetMsg = string.Empty; //try //{ // tweetMsg = TemplstTweetMsg[i]; // TemplstTweetMsg.Remove(tweetMsg); //} //catch (Exception ex) //{ // tweetMsg = _lstTweetMsg[i]; //} if (IsHashTagsCampaign) { lock (locker_que_hashtags) { if (que_TweetMessages_Campaign_Hashtags.Count > 0) { try { Hashtags = que_TweetMessages_Campaign_Hashtags.Dequeue(); } catch (Exception ex) { GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartTweetingMultithreaded() -- Tweet -- que_TweetMessages_Hashtags --> " + ex.Message, Globals.Path_TweetingErroLog); GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> TweetAccountManager -- Tweet -- que_TweetMessages_Hashtags --> " + ex.Message, Globals.Path_TweetAccountManager); } } else { Log("[ " + DateTime.Now + " ] => [ All Loaded Hash Tags Are Used ]"); //break; } } } if (!string.IsNullOrEmpty(Hashtags)) { tweetMsg = Hashtags + " " + tweetMsg; } string status = string.Empty; Objtweet.Tweet(ref tweetAccountManager.globusHttpHelper, tweetAccountManager.postAuthenticityToken, tweetMsg, out status); if (status == "posted") { //If susceesfully posted Log("[ " + DateTime.Now + " ] => [ Message :- " + tweetMsg + " is posted from " + keyValue.Key + " ]"); try { //Insert details in Report table RepositoryClasses.ReportTableRepository.InsertReport(CampaignName, accKey, "", 0, "", tweetMsg, "", ""); } catch (Exception ex) { GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartCampaignTweeting() -- Tweet -- > " + ex.Message, Globals.Path_TweetingErroLog); GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartCampaignTweeting() -- Tweet --> " + ex.Message, Globals.Path_TweetAccountManager); } try { RemoveFollwerFromTxtFile(TweetFilePath, tweetMsg); if (IsUserList) { RemoveMentionUser(UserListFilePath,tweetMsg,TweetFilePath); } } catch { } } else { //not successFully Posted Log("[ " + DateTime.Now + " ] => [ Message is not posted from " + accKey + " ]"); } //Delay after every Tweet.. int delay = BaseLib.RandomNumberGenerator.GenerateRandom(DelayStar, DelayEnd); Log("[ " + DateTime.Now + " ] => [ Delay :- " + delay + " Seconds ]"); Thread.Sleep(delay * 1000); } catch (Exception ex) { GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartCampaignTweeting() -- Tweet -- IsAllTweetParAc --> " + ex.Message, Globals.Path_TweetingErroLog); GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartCampaignTweeting() -- Tweet -- IsAllTweetParAc --> " + ex.Message, Globals.Path_TweetAccountManager); } finally { } } #endregion } else { #region Single Tweet par account try { Objtweet = new Tweeter.Tweeter(); while (true) { if (QtweetMsg.Count == 0) { Log("[ " + DateTime.Now + " ] => [ Message is finished from message list. ]"); Log("[ " + DateTime.Now + " ] => [ PROCESS COMPLETED ]"); Log("-----------------------------------------------------------------------------------------------------------------------"); break; } //Check Scheduler end time //If task is scheduled if (IsSchedulDaily) { if (SchedulerEndTime.Hour == DateTime.Now.Hour && DateTime.Now.Minute >= SchedulerEndTime.Minute) { _IsTweetProcessStart = true; new Thread(() => { //frm_mixcampaignmanager frmcamp = new frm_mixcampaignmanager(); //frmcamp.StoprunningCampaign(CampaignName); //frmcamp.startTweet(CampaignName, ""); RaiseCampaignSearchLogEvents(campName); RaiseCampaignStartLogEvents(campName); }).Start(); return; } } //if (SingleTweetMsgCount >= _lstTweetMsg.Count) //{ // AddToCampaignLoggerListBox("Message is finished from message list."); // return; //} string tweetMsg = QtweetMsg.Dequeue(); if (IsHashTagsCampaign) { lock (locker_que_hashtags) { if (que_TweetMessages_Campaign_Hashtags.Count > 0) { try { Hashtags = que_TweetMessages_Campaign_Hashtags.Dequeue(); } catch (Exception ex) { GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartTweetingMultithreaded() -- Tweet -- que_TweetMessages_Hashtags --> " + ex.Message, Globals.Path_TweetingErroLog); GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> TweetAccountManager -- Tweet -- que_TweetMessages_Hashtags --> " + ex.Message, Globals.Path_TweetAccountManager); } } else { Log("[ " + DateTime.Now + " ] => [ All Loaded Hash Tags Are Used ]"); //break; } } } if (!string.IsNullOrEmpty(Hashtags)) { tweetMsg = Hashtags + " " + tweetMsg; } string status = string.Empty; Objtweet.Tweet(ref tweetAccountManager.globusHttpHelper, tweetAccountManager.postAuthenticityToken, tweetMsg, out status); if (status == "posted") { try { //Insert details in Report table RepositoryClasses.ReportTableRepository.InsertReport(CampaignName, accKey, "", 0, "", tweetMsg, "", ""); } catch (Exception ex) { GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartCampaignTweeting() -- Tweet --> " + ex.Message, Globals.Path_TweetingErroLog); GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartCampaignTweeting() -- Tweet --> " + ex.Message, Globals.Path_TweetAccountManager); } //If susceesfully posted Log("[ " + DateTime.Now + " ] => [ Message :- " + tweetMsg + " is posted from " + keyValue.Key + " ]"); try { RemoveFollwerFromTxtFile(TweetFilePath, tweetMsg); } catch { } if (IsUserList) { RemoveMentionUser(UserListFilePath, tweetMsg, TweetFilePath); } //control threads according to number of message par account if (NoOfTweetPerAc != 0) { if (NoOfTweetPerAc == SingleTweetMsgCount) { Log("[ " + DateTime.Now + " ] => [ Finished number of tweet as per account Limit From :- " + accKey + " ]"); Log("[ " + DateTime.Now + " ] => [ PROCESS COMPLETED ]"); Log("-----------------------------------------------------------------------------------------------------------------------"); return; } SingleTweetMsgCount++; } } else { //not successFully Posted Log("[ " + DateTime.Now + " ] => [ Message :- " + tweetMsg + " is not posted from " + keyValue.Key + " ]"); QtweetMsg.Enqueue(tweetMsg); ///decrease counter when posting is failed if (SingleTweetMsgCount > 0) SingleTweetMsgCount--; } //Delay after every Tweet.. int delay = BaseLib.RandomNumberGenerator.GenerateRandom(DelayStar, DelayEnd); Log("[ " + DateTime.Now + " ] => [ Delay :- " + delay + " Seconds ]"); Thread.Sleep(delay*1000); } } catch (Exception ex) { GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartCampaignTweeting() -- Tweet -- IsAllTweetParAcNotTrue --> " + ex.Message, Globals.Path_TweetingErroLog); GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartCampaignTweeting() -- Tweet -- IsAllTweetParAcNotTrue --> " + ex.Message, Globals.Path_TweetAccountManager); } finally { } #endregion } } else { //If account is suspended ... //its returns without performing any operation //AddToCampaignLoggerListBox("User is suspended " + keyValue.Key); //return; } } else { ////If not logged in account //AddToCampaignLoggerListBox("Login failed from " + keyValue.Key); //return; } } catch (Exception ex) { GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartCampaignTweetingEndBlock -- Tweet --> " + ex.Message, Globals.Path_TweetingErroLog); GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> StartCampaignTweetingEndBlock -- Tweet --> " + ex.Message, Globals.Path_TweetAccountManager); } finally { Interlocked.Decrement(ref counterThreadsCamapignTweet); lock (lockerThreadsCampaignTweet) { Monitor.Pulse(lockerThreadsCampaignTweet); } //counterThreadsCamapignTweet--; if (counterThreadsCamapignTweet == 0) { if (MixedCampaignManager.classes.cls_variables.Lst_WokingThreads.ContainsKey(CampaignName)) { MixedCampaignManager.classes.cls_variables.Lst_WokingThreads.Remove(CampaignName); } if (cls_variables.lstCampaignStartShedular.Contains(CampaignName)) { try { cls_variables.lstCampaignStartShedular.Remove(CampaignName); } catch { }; } _IsTweetProcessStart = true; RaiseCampaignFineshedEvent(CampaignName); Log("[ " + DateTime.Now + " ] => [ Process completed for campaign " + CampaignName + " ]"); Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(CampaignName + ": " + DateTime.Now, Globals.path_LogCampaignCompleted); } } }
public void startRetweeting(object parameters) { Tweeter.Tweeter tweeter = new Tweeter.Tweeter(); tweeter.logEvents.addToLogger += new EventHandler(logEvents_addToLogger); string CampaignName = string.Empty; try { Interlocked.Increment(ref counterThreadsCampaignRetweet); Queue<MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs> Queue_Struct_TweetData = new Queue<MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs>(); int Tweetcounter = 0; //get all parems from object Array paramsArray = new object[2]; paramsArray = (Array)parameters; //get value from param KeyValuePair<string, MixedCampaignManager.classes.CampaignAccountManager> keyValue = (KeyValuePair<string, MixedCampaignManager.classes.CampaignAccountManager>)paramsArray.GetValue(0); string accKey = keyValue.Key; MixedCampaignManager.classes.CampaignAccountManager RetweetAccountManager = keyValue.Value; List<MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs> lst_Struct_TweetData1 = (List<MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs>)paramsArray.GetValue(1); bool IsRetweetParDay = (bool)paramsArray.GetValue(2); int NoofRetweetParDay = (int)paramsArray.GetValue(3); int NoofRetweetParAc = (int)paramsArray.GetValue(4); int minDelay = (int)paramsArray.GetValue(5); int maxDelay = (int)paramsArray.GetValue(6); CampaignName = (string)paramsArray.GetValue(7); //Get scheduler time and status if task is scheduled bool IsSchedulDaily = (bool)paramsArray.GetValue(8); DateTime SchedulerEndTime = (DateTime)paramsArray.GetValue(9); // Add list Value in Queue list ... lst_Struct_TweetData1.ForEach(acc => { Queue_Struct_TweetData.Enqueue(acc); }); //Add List Of Working thread //we are using this list when we stop/abort running camp processes.. try { MixedCampaignManager.classes.cls_variables.Lst_WokingThreads.Add(CampaignName + "_" + RetweetAccountManager.Username, Thread.CurrentThread); } catch (Exception) { } //get account logging if (!(CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts).Keys.Contains(accKey)) { RetweetAccountManager.Login(); try { CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts.Add(accKey, RetweetAccountManager); } catch { }; } else { try { RetweetAccountManager = null; bool values = (CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts).TryGetValue(accKey, out RetweetAccountManager); } catch (Exception) { } } if (RetweetAccountManager.IsLoggedIn) { if (RetweetAccountManager.IsNotSuspended) { while (Queue_Struct_TweetData.Count > 0) { string tweetStatus = string.Empty; int delay = 0; if (Queue_Struct_TweetData.Count == 0) { break; } if (Tweetcounter == NoofRetweetParAc) { ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ Per account re-tweet limit has exceeded from " + keyValue.Key + " ]"); break; } //Check Scheduled Task end time //If task is scheduled if (IsSchedulDaily) { if (SchedulerEndTime.Hour == DateTime.Now.Hour && DateTime.Now.Minute >= SchedulerEndTime.Minute) { _IsReTweetProcessStart = true; new Thread(() => { frm_mixcampaignmanager frmcamp = new frm_mixcampaignmanager(); frmcamp.StoprunningCampaign(CampaignName); }).Start(); break; } } try { delay = RandomNumberGenerator.GenerateRandom((minDelay), (maxDelay)); } catch (Exception ex) { delay = 10; } MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs TweetDetails = Queue_Struct_TweetData.Dequeue(); tweeter.ReTweet(ref RetweetAccountManager.globusHttpHelper, "", RetweetAccountManager.postAuthenticityToken, TweetDetails.ID_Tweet, "", out tweetStatus); if (tweetStatus == "posted") { Tweetcounter++; ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ >> Retweeted : >> " + TweetDetails.wholeTweetMessage + " by " + keyValue.Key + " ]"); try { RepositoryClasses.ReportTableRepository.InsertReport(CampaignName, accKey, "", 0, TweetDetails.ID_Tweet, "", TweetDetails.wholeTweetMessage, ""); } catch (Exception) { } } else { ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ >> Couldn't Retweet : >> " + TweetDetails.wholeTweetMessage + " by " + keyValue.Key + " ]"); } //ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ Delay :- " + TimeSpan.FromMilliseconds(delay).Seconds + " seconds ] "); ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ Delay :- " + delay + " seconds ]"); Thread.Sleep(delay * 1000); } } } } catch (Exception ex) { Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> startRetweeting() --> " + ex.Message, Globals.Path_TweetingErroLog); Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> startRetweeting() --> " + ex.Message, Globals.Path_TwtErrorLogs); } finally { tweeter.logEvents.addToLogger -= new EventHandler(logEvents_addToLogger); Interlocked.Decrement(ref counterThreadsCampaignRetweet); lock (lockerThreadsCamapignRetweet) { Monitor.Pulse(lockerThreadsCamapignRetweet); } if (counterThreadsCampaignRetweet == 0) { RaiseCampaignFineshedEvent(CampaignName); ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ PROCESS COMPLETED for Campaign "+CampaignName +" ]"); Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(CampaignName + ": " + DateTime.Now, Globals.path_LogCampaignCompleted); } } }
public void startRetweeting(object parameters) { Tweeter.Tweeter tweeter = new Tweeter.Tweeter(); tweeter.logEvents.addToLogger += new EventHandler(logEvents_addToLogger); string CampaignName = string.Empty; try { Interlocked.Increment(ref counterThreadsCampaignRetweet); Queue <MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs> Queue_Struct_TweetData = new Queue <MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs>(); int Tweetcounter = 0; //get all parems from object Array paramsArray = new object[2]; paramsArray = (Array)parameters; //get value from param KeyValuePair <string, MixedCampaignManager.classes.CampaignAccountManager> keyValue = (KeyValuePair <string, MixedCampaignManager.classes.CampaignAccountManager>)paramsArray.GetValue(0); string accKey = keyValue.Key; MixedCampaignManager.classes.CampaignAccountManager RetweetAccountManager = keyValue.Value; List <MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs> lst_Struct_TweetData1 = (List <MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs>)paramsArray.GetValue(1); bool IsRetweetParDay = (bool)paramsArray.GetValue(2); int NoofRetweetParDay = (int)paramsArray.GetValue(3); int NoofRetweetParAc = (int)paramsArray.GetValue(4); int minDelay = (int)paramsArray.GetValue(5); int maxDelay = (int)paramsArray.GetValue(6); CampaignName = (string)paramsArray.GetValue(7); //Get scheduler time and status if task is scheduled bool IsSchedulDaily = (bool)paramsArray.GetValue(8); DateTime SchedulerEndTime = (DateTime)paramsArray.GetValue(9); // Add list Value in Queue list ... lst_Struct_TweetData1.ForEach(acc => { Queue_Struct_TweetData.Enqueue(acc); }); //Add List Of Working thread //we are using this list when we stop/abort running camp processes.. try { MixedCampaignManager.classes.cls_variables.Lst_WokingThreads.Add(CampaignName + "_" + RetweetAccountManager.Username, Thread.CurrentThread); } catch (Exception) { } //get account logging if (!(CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts).Keys.Contains(accKey)) { RetweetAccountManager.Login(); try { CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts.Add(accKey, RetweetAccountManager); } catch { }; } else { try { RetweetAccountManager = null; bool values = (CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts).TryGetValue(accKey, out RetweetAccountManager); } catch (Exception) { } } if (RetweetAccountManager.IsLoggedIn) { if (RetweetAccountManager.IsNotSuspended) { while (Queue_Struct_TweetData.Count > 0) { string tweetStatus = string.Empty; int delay = 0; if (Queue_Struct_TweetData.Count == 0) { break; } if (Tweetcounter == NoofRetweetParAc) { ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ Per account re-tweet limit has exceeded from " + keyValue.Key + " ]"); break; } //Check Scheduled Task end time //If task is scheduled if (IsSchedulDaily) { if (SchedulerEndTime.Hour == DateTime.Now.Hour && DateTime.Now.Minute >= SchedulerEndTime.Minute) { _IsReTweetProcessStart = true; new Thread(() => { frm_mixcampaignmanager frmcamp = new frm_mixcampaignmanager(); frmcamp.StoprunningCampaign(CampaignName); }).Start(); break; } } try { delay = RandomNumberGenerator.GenerateRandom((minDelay), (maxDelay)); } catch (Exception ex) { delay = 10; } MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs TweetDetails = Queue_Struct_TweetData.Dequeue(); tweeter.ReTweet(ref RetweetAccountManager.globusHttpHelper, "", RetweetAccountManager.postAuthenticityToken, TweetDetails.ID_Tweet, "", out tweetStatus); if (tweetStatus == "posted") { Tweetcounter++; ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ >> Retweeted : >> " + TweetDetails.wholeTweetMessage + " by " + keyValue.Key + " ]"); try { RepositoryClasses.ReportTableRepository.InsertReport(CampaignName, accKey, "", 0, TweetDetails.ID_Tweet, "", TweetDetails.wholeTweetMessage, ""); } catch (Exception) { } } else { ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ >> Couldn't Retweet : >> " + TweetDetails.wholeTweetMessage + " by " + keyValue.Key + " ]"); } //ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ Delay :- " + TimeSpan.FromMilliseconds(delay).Seconds + " seconds ] "); ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ Delay :- " + delay + " seconds ]"); Thread.Sleep(delay * 1000); } } } } catch (Exception ex) { Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> startRetweeting() --> " + ex.Message, Globals.Path_TweetingErroLog); Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> startRetweeting() --> " + ex.Message, Globals.Path_TwtErrorLogs); } finally { tweeter.logEvents.addToLogger -= new EventHandler(logEvents_addToLogger); Interlocked.Decrement(ref counterThreadsCampaignRetweet); lock (lockerThreadsCamapignRetweet) { Monitor.Pulse(lockerThreadsCamapignRetweet); } if (counterThreadsCampaignRetweet == 0) { RaiseCampaignFineshedEvent(CampaignName); ReTweetUserControlLog("[ " + DateTime.Now + " ] => [ PROCESS COMPLETED for Campaign " + CampaignName + " ]"); Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(CampaignName + ": " + DateTime.Now, Globals.path_LogCampaignCompleted); } } }
public void GetStartReply(Object parameters) { string CampaignName = string.Empty; try { Interlocked.Increment(ref counterThreadsCampaignReply); Tweeter.Tweeter tweeter = new Tweeter.Tweeter(); tweeter.logEvents.addToLogger += new EventHandler(logEvents_addToLogger); Array paramsArray = new object[10]; paramsArray = (Array)parameters; //get value from param KeyValuePair<string, MixedCampaignManager.classes.CampaignAccountManager> keyValue = (KeyValuePair<string, MixedCampaignManager.classes.CampaignAccountManager>)paramsArray.GetValue(0); string accKey = keyValue.Key; MixedCampaignManager.classes.CampaignAccountManager ReplyAccountManager = keyValue.Value; List<MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs> lst_ReplyData = (List<MixedCampaignManager.classes.CampTwitterDataScrapper.StructTweetIDs>)paramsArray.GetValue(1); List<string> lst_ReplyMsgs = (List<string>)paramsArray.GetValue(2); bool _IsReplyParDay = (bool)paramsArray.GetValue(3); int _NoofReplyParDay = (int)paramsArray.GetValue(4); int _NoofReplyParAc = (int)paramsArray.GetValue(5); int DelayStar = (int)paramsArray.GetValue(6); int DelayEnd = (int)paramsArray.GetValue(7); CampaignName = (string)paramsArray.GetValue(8); //Get scheduler time and status if task is scheduled bool IsSchedulDaily = (bool)paramsArray.GetValue(9); DateTime SchedulerEndTime = (DateTime)paramsArray.GetValue(10); int MsgCounter = 0; //Add List Of Working thread //we are using this list when we stop/abort running camp processes.. try { MixedCampaignManager.classes.cls_variables.Lst_WokingThreads.Add(CampaignName + "_" + ReplyAccountManager.Username, Thread.CurrentThread); } catch (Exception) { } //get account logging if (!(CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts).Keys.Contains(accKey)) { ReplyAccountManager.Login(); try { CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts.Add(accKey, ReplyAccountManager); } catch { }; } else { try { ReplyAccountManager = null; bool values = (CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts).TryGetValue(accKey, out ReplyAccountManager); } catch (Exception) { } } count_AccountForReply_CompleteMessage = CampaignManager.CampaignAccountsList.dictionary_CampaignAccounts.Count(); if (!ReplyAccountManager.IsLoggedIn || !ReplyAccountManager.IsNotSuspended) { return; } foreach (var lst_ReplyData_item in lst_ReplyData) { //Check Scheduled Task end time //If task is scheduled if (IsSchedulDaily) { if (SchedulerEndTime.Hour == DateTime.Now.Hour && DateTime.Now.Minute >= SchedulerEndTime.Minute) { _IsReplyProcessStart = true; new Thread(() => { frm_mixcampaignmanager frmcamp = new frm_mixcampaignmanager(); frmcamp.StoprunningCampaign(CampaignName); }).Start(); break; } } // foreach (string Msg in lst_ReplyMsgs) { string tweetId = lst_ReplyData_item.ID_Tweet; string tweetUsername = lst_ReplyData_item.username__Tweet_User; if (MsgCounter == lst_ReplyMsgs.Count) { MsgCounter = 0; } string Msg = lst_ReplyMsgs[MsgCounter]; string _wholeTweetMessage = lst_ReplyData_item.wholeTweetMessage; string tweetStatus; tweeter.Reply(ref ReplyAccountManager.globusHttpHelper, "", ReplyAccountManager.postAuthenticityToken, tweetId, tweetUsername, Msg, out tweetStatus); if (tweetStatus == "posted") { Log("[ " + DateTime.Now + " ] => [ Message :- " + Msg + " Tweet :- " + _wholeTweetMessage + " by " + keyValue.Key + " ]"); try { RepositoryClasses.ReportTableRepository.InsertReport(CampaignName, accKey, "", 0, tweetId, "", "", Msg); } catch (Exception) { } } else { Log("[ " + DateTime.Now + " ] => [ Status :- " + tweetStatus + " by " + keyValue.Key + " ]"); } int delay = BaseLib.RandomNumberGenerator.GenerateRandom(DelayStar * 1000, DelayEnd * 1000); Log("[ " + DateTime.Now + " ] => [ Delay :- " + TimeSpan.FromMilliseconds(delay).Seconds + " Seconds. ]"); Thread.Sleep(delay); MsgCounter++; } } } catch (Exception) { } finally { count_AccountForReply_CompleteMessage--; Interlocked.Decrement(ref counterThreadsCampaignReply); lock (lockerThreadsCampaignReply) { Monitor.Pulse(lockerThreadsCampaignReply); if (counterThreadsCampaignReply == 0) { RaiseCampaignFineshedEvent(CampaignName); Log("[ " + DateTime.Now + " ] => [ Process completed. ]"); Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(CampaignName + ": " + DateTime.Now, Globals.path_LogCampaignCompleted); } } } }
public void retweetOfUrl(object param) { string reTweetUrlPageSource = string.Empty; string ReTweetId = string.Empty; string tweetStatus = ""; int minDelay = 20; int maxDelay = 25; int delay = 10 * 1000; if (GlobusRegex.ValidateNumber(txtRetweetFavMinDelay.Text) && GlobusRegex.ValidateNumber(txtRetweetFavMinDelay.Text)) { minDelay = Convert.ToInt32(txtRetweetFavMinDelay.Text); maxDelay = Convert.ToInt32(txtRetweetFavMaxDelay.Text); } delay = RandomNumberGenerator.GenerateRandom(minDelay, maxDelay); TweetAccountManager tweetAccountManager = new TweetAccountManager(); try { Tweeter.Tweeter tweeter = new Tweeter.Tweeter(); Array ParamArr = (Array)param; string RetweetUrl = (string)ParamArr.GetValue(0); KeyValuePair<string, TweetAccountManager> keyValue_Item = (KeyValuePair<string, TweetAccountManager>)ParamArr.GetValue(1); tweetAccountManager = (TweetAccountManager)ParamArr.GetValue(2); try { //Get Id of tweet from URL.. if (RetweetUrl.Contains("/")) { string[] SplitReTweetUrl = RetweetUrl.Split('/'); ReTweetId = SplitReTweetUrl[SplitReTweetUrl.Count() - 1]; } else { AddToLog_RetweetAndFavorite("[ " + DateTime.Now + " ] => [ URL is in wrong Formate > " + RetweetUrl + " ]"); } } catch (Exception) { AddToLog_RetweetAndFavorite("[ " + DateTime.Now + " ] => [ URL is in wrong Formate > " + RetweetUrl + " ]"); } if (!string.IsNullOrEmpty(RetweetUrl)) { //check Coount is loged in or Is not suspended .. if (tweetAccountManager.IsLoggedIn) { if (tweetAccountManager.IsNotSuspended) { try { //Get the page Source from URL... //reTweetUrlPageSource = tweetAccountManager.globusHttpHelper.getHtmlfromUrl(new Uri(RetweetUrl), "", ""); //finally post retweet on Given Url ... tweeter.ReTweetByUrl(ref tweetAccountManager.globusHttpHelper, tweetAccountManager.postAuthenticityToken, ReTweetId, out tweetStatus); //check the return value from with condition ...if its succesfully retweeted or not ... if (tweetStatus == "posted") { //RetweetCount++; //Prnt in logger is posted.. AddToLog_RetweetAndFavorite("[ " + DateTime.Now + " ] => [ Retweeted :" + RetweetUrl + " from " + tweetAccountManager.Username + " ]"); AddToLog_RetweetAndFavorite("[ " + DateTime.Now + " ] => [ Success fully Retweeted Form Account > " + keyValue_Item.Key); GlobusFileHelper.AppendStringToTextfileNewLine(keyValue_Item.Key + ":" + tweetAccountManager.Password + ":" + tweetAccountManager.proxyAddress + ":" + tweetAccountManager.proxyPort + ":" + tweetAccountManager.proxyUsername + ":" + tweetAccountManager.proxyPassword, Globals.path_SucessfullyRetweetToUrlFromId); } else { AddToLog_RetweetAndFavorite("[ " + DateTime.Now + " ] => [ Fail/Already Retweeted From Account > " + keyValue_Item.Key + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine(keyValue_Item.Key + ":" + tweetAccountManager.Password + ":" + tweetAccountManager.proxyAddress + ":" + tweetAccountManager.proxyPort + ":" + tweetAccountManager.proxyUsername + ":" + tweetAccountManager.proxyPassword, Globals.path_FailureRetweetToUrlFromId); } AddToLog_RetweetAndFavorite("[ " + DateTime.Now + " ] => [ Retweet delay for "+delay+" secs ]"); //AddToLog_RetweetAndFavorite("Retweet delay for "+delay+" secs"); Thread.Sleep(delay * 1000); } catch (Exception ex) { //AddToLog_RetweetAndFavorite("[ " + DateTime.Now + " ] => [ Error :- > " + ex.Message + " ]"); GlobusFileHelper.AppendStringToTextfileNewLine("Error :- Mathod Name :- retweetOfUrl- 1; Error Text :- " + ex.Message, Globals.path_LogErrorFromRetweetAndFavorit); } } else { AddToLog_RetweetAndFavorite("[ " + DateTime.Now + " ] => [ Account Is suspended >" + keyValue_Item.Key + " ]"); } } else { AddToLog_RetweetAndFavorite("[ " + DateTime.Now + " ] => [ Account Login Faile >" + keyValue_Item.Key + " ]"); } } } catch (Exception ex) { //AddToLog_RetweetAndFavorite("Error :- > " + ex.Message); GlobusFileHelper.AppendStringToTextfileNewLine("Error :- Mathod Name :- retweetOfUrl- 2; Error Text :- " + ex.Message, Globals.path_LogErrorFromRetweetAndFavorit); } }