コード例 #1
0
ファイル: frmMain_NewUI.cs プロジェクト: prog-moh/twtboard
        private void threadStartScrapeInFollower()
        {
            TwitterDataScrapper dataScrapeer = new TwitterDataScrapper();
            try
            {
                List<string> lst_structTweetFollowersIDs = new List<string>();
                List<string> lst_structTweetFollowingsIds = new List<string>();
                GlobusHttpHelper globusHttpHelper = new GlobusHttpHelper();
                string user_id = string.Empty;
                int counter = 0;
                TweetAccountManager TweetLogin = new TweetAccountManager();

                foreach (KeyValuePair<string, TweetAccountManager> item in TweetAccountContainer.dictionary_TweetAccount)
                {
                    if (counter > TweetAccountContainer.dictionary_TweetAccount.Count)
                    {
                        counter = 0;
                    }

                    TweetLogin = new TweetAccountManager();
                    TweetLogin.Username = item.Key;
                    TweetLogin.Password = item.Value.Password;
                    TweetLogin.IPAddress = item.Value.IPAddress;
                    TweetLogin.IPPort = item.Value.IPPort;
                    TweetLogin.IPUsername = item.Value.IPUsername;
                    TweetLogin.IPpassword = item.Value.IPpassword;
                    AddToLog_Follower("[ " + DateTime.Now + " ] => [ Logging Process start for scrapping User ]");
                    TweetLogin.Login();
                    if (!TweetLogin.IsLoggedIn)
                    {
                        continue;
                    }
                    else
                    {
                        AddToLog_Follower("[ " + DateTime.Now + " ] => [ Logged in successful]");
                        globusHttpHelper = TweetLogin.globusHttpHelper;
                        counter++;
                        break;
                    }
                }
                string ReturnStatus = string.Empty;

                if (!TweetLogin.IsLoggedIn)
                {
                    AddToLog_Follower("[ " + DateTime.Now + " ] => [ Please Upload Atleast One Working Account To Get Details ]");
                    return;
                }


                //foreach (string keyword in listUserIDs)//foreach (string keyword in lstscrapeUsername)
                //{
                   string  keyword = txtUserIDtoFollow.Text.Trim();
                    
                    dataScrapeer.CounterDataNo = 500;
                    listUserIDs.Clear();

                    txtlimitScrapeUsersINFollower.Invoke(new MethodInvoker(delegate
                    {
                        if (!string.IsNullOrEmpty(txtlimitScrapeUsersINFollower.Text) && NumberHelper.ValidateNumber(txtlimitScrapeUsersINFollower.Text))
                        {
                            dataScrapeer.CounterDataNo = Convert.ToInt32(txtlimitScrapeUsersINFollower.Text);
                        }
                    }));

                    if (counter > TweetAccountContainer.dictionary_TweetAccount.Count)
                    {
                        counter = 0;
                    }

                    if (chkboxScrapeFollowersInFollower.Checked)
                    {
                        try
                        {
                            if (!File.Exists(Globals.Path_ScrapedFollowersList))
                            {
                                GlobusFileHelper.AppendStringToTextfileNewLine("Name/Id , FollowersUserID , Followers User Name", Globals.Path_ScrapedFollowersList);
                            }
                            string returnStatus = string.Empty;
                            dataScrapeer.logEvents.addToLogger += new EventHandler(DataScraperlogger_addToLogger);
                         //   lst_structTweetFollowersIDs = dataScrapeer.GetFollowers_New(keyword.Trim(), out ReturnStatus, ref globusHttpHelper);
                            lst_structTweetFollowersIDs = dataScrapeer.GetFollowers_New_WithNo_Followers(keyword.Trim(), out ReturnStatus, ref globusHttpHelper);

                            AddToLog_Follower("[ " + DateTime.Now + " ] => [ Followers Scrapped ]");
                            //TwitterDataScrapper.logEvents.addToLogger -= new EventHandler(DataScraperlogger_addToLogger);
                                       
                            if (lst_structTweetFollowersIDs.Count > 0)
                            {
                                //listUserIDs.Clear();
                                //string item=Globals.Path_ScrapedFollowersList.Split(':')[0];
                                if (Chk_IsFollowerUserId.Checked)
                                {
                                    foreach (string item in lst_structTweetFollowersIDs)
                                    {
                                        string userid = item.Split(':')[0];
                                        listUserIDs.Add(userid);
                                    }
                                }

                                else if (Chk_IsFollowerScreanName.Checked)
                                {
                                    foreach (string item in lst_structTweetFollowersIDs)
                                    {
                                        string username = item.Split(':')[1];
                                        listUserIDs.Add(username);
                                    }
                                }

                                if (lst_structTweetFollowersIDs.Count > 0)
                                {
                                    //listUserIDs.AddRange(lst_structTweetFollowersIDs);
                                    AddToLog_Follower("[ " + DateTime.Now + " ] => [ Added " + lst_structTweetFollowersIDs.Count + " Followers from User: "******" ]");
                                    AddToLog_Follower("[ " + DateTime.Now + " ] => [ Data Exported to " + Globals.Path_ScrapedFollowersList);
                                }

                            }
                            else if (ReturnStatus.Contains("Sorry, that page does not exist"))
                            {
                                AddToLog_Follower("[ " + DateTime.Now + " ] => [ Sorry, That User does not exist =>" + ReturnStatus.Split(':')[1] + " ]");
                                //continue;
                            }
                            else if (ReturnStatus == "Account is Suspended. ")
                            {
                                AddToLog_Follower("[ " + DateTime.Now + " ] => [ Account " + keyword + "  is Suspended. ]");
                            }
                            else if (ReturnStatus == "Error")
                            {
                                AddToLog_Follower("[ " + DateTime.Now + " ] => [ Rate Limit Exceeded.Please Try After Some Time ]");
                            }
                            else
                            {
                                AddToLog_Follower("[ " + DateTime.Now + " ] => [ " + keyword + " does not have any Followers ]");
                            }
                        }
                        catch (Exception ex)
                        {
                            Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> btnScrapeUser_Click() -- chkboxScrapeFollowers.Checked --> " + ex.Message, Globals.Path_ScrapeUsersErroLog);
                            Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine("Error --> btnScrapeUser_Click() -- chkboxScrapeFollowers.Checked --> " + ex.Message, Globals.Path_TwtErrorLogs);
                        }
                    }

                    if (chkboxScrapeFollowingsInFollower.Checked)
                    {
                        try
                        {
                            if (!File.Exists(Globals.Path_ScrapedFollowingsList))
                            {
                                GlobusFileHelper.AppendStringToTextfileNewLine("Name/Id , FollowersUserID , Followers User Name", Globals.Path_ScrapedFollowingsList);
                            }
                            string returnStaus = string.Empty;
                            dataScrapeer.logEvents.addToLogger += new EventHandler(DataScraperlogger_addToLogger);
                            lst_structTweetFollowingsIds = dataScrapeer.GetFollowings_New(keyword.Trim(), out returnStaus, ref globusHttpHelper);
                            AddToLog_Follower("[ " + DateTime.Now + " ] => [ Following Scrapped ]");
                            if (lst_structTweetFollowingsIds.Count > 0)
                            {

                                //listUserIDs.Clear();
                                if (Chk_IsFollowerUserId.Checked)
                                {
                                    foreach (string item in lst_structTweetFollowingsIds)
                                    {
                                        string userid = item.Split(':')[0];
                                        listUserIDs.Add(userid);
                                    }
                                }

                                else if (Chk_IsFollowerScreanName.Checked)
                                {
                                    foreach (string item in lst_structTweetFollowingsIds)
                                    {
                                        string username = item.Split(':')[1];
                                        listUserIDs.Add(username);
                                    }
                                }
                               // listUserIDs.AddRange(lst_structTweetFollowingsIds);
                                //AddToScrapeLogs("[ " + DateTime.Now + " ] => [ Adding To DataBase and File ]");
                                if (lst_structTweetFollowingsIds.Count > 0)
                                {

                                  AddToLog_Follower("[ " + DateTime.Now + " ] => [ Added " + lst_structTweetFollowingsIds.Count + " Followings from User: "******" ]");
                                   AddToLog_Follower("[ " + DateTime.Now + " ] => [ Data Exported to " + Globals.Path_ScrapedFollowingsList + " ]");

                                }

                            }
                            else if (ReturnStatus.Contains("Sorry, that page does not exist"))
                            {
                                AddToLog_Follower("[ " + DateTime.Now + " ] => [ Sorry, That User does not exist =>" + ReturnStatus.Split(':')[1] + " ]");
                                //continue;
                            }
                            else if (ReturnStatus == "Account is Suspended. ")
                            {
                                AddToLog_Follower("[ " + DateTime.Now + " ] => [ Account " + keyword + "  is Suspended. ]");
                            }
                            else if (ReturnStatus == "Error")
                            {
                                AddToLog_Follower("[ " + DateTime.Now + " ] => [ Rate Limit Exceeded.Please Try After Some Time ]");
                            }
                            else
                            {
                                AddToLog_Follower("[ " + DateTime.Now + " ] => [ " + keyword + " User does not exist ]");
                            }
                        }
                        catch (Exception ex)
                        {
                            Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine(DateTime.Now + " --> Error --> btnScrapeKeyword_Click() -- lst_structTweetFollowingsIds foreach --> " + ex.Message, Globals.Path_ScrapeUsersErroLog);
                            Globussoft.GlobusFileHelper.AppendStringToTextfileNewLine("Error --> btnScrapeKeyword_Click() -- lst_structTweetFollowingsIds foreach --> " + ex.Message, Globals.Path_TwtErrorLogs);
                        }
                    }
                    //break;
                    //Globals.lstScrapedUserIDsInFollower = Globals.lstScrapedUserIDsInFollower.Distinct().ToList();
            

            }
            catch (Exception)
            {

            }
            finally
            {
                IsStart_ScrapUser = true;
                dataScrapeer.logEvents.addToLogger -= new EventHandler(DataScraperlogger_addToLogger);
            }
        }