Exemplo n.º 1
0
        private void buttonGetInfoAliance_Click(object sender,
            EventArgs e)
        {
            string alianceId = textBoxAlianceId.Text.Length > 1 ? textBoxAlianceId.Text : "1";
            string[] allyIds = alianceId.IndexOf(',') > -1 ? alianceId.Split(',') : new[] {alianceId};
            ServerInfo serverInfo = new ServerInfo();
            alianceData = new AlianceData();
            LoginPageData loginPageData = new LoginPageData(serverInfo);

            bool logedIn = Misc.Login(serverInfo, loginPageData);

            if (logedIn)
            {
                textBoxStatus.Text += "Loged in...\r\n";
                foreach (string allyId in allyIds)
                {
                    string pageSource = Http.SendData(serverInfo.AlianceUrl + allyId, null, serverInfo.CookieContainer,
                                                      serverInfo.CookieCollection);
                    ParseMembersStats(serverInfo, pageSource, alianceData);
                    FillData(alianceData);
                }
            }
            else
            {
                textBoxStatus.Text += "Not loged in...\r\n";
            }
        }
Exemplo n.º 2
0
        private void buttonGetInfoUid_Click(object sender,
            EventArgs e)
        {
            string username = textBoxUid.Text.Length > 1 ? textBoxUid.Text : "kmet";

            ServerInfo serverInfo = new ServerInfo();
            LoginPageData loginPageData = new LoginPageData(serverInfo);

            bool logedIn = Misc.Login(serverInfo, loginPageData);

            if (logedIn)
            {
                textBoxStatus.Text += "Loged in...\r\n";
                alianceData = new AlianceData();
                GetStats(serverInfo, 1, username, alianceData);
                FillData(alianceData);
            }
            else
            {
                textBoxStatus.Text += "Not loged in...\r\n";
            }
        }
Exemplo n.º 3
0
        private void GetStats(ServerInfo serverInfo,
            int number,
            string username,
            AlianceData data)
        {
            PlayerData playerData = new PlayerData {Number = number};
            //rank=&name=jasa&submit.x=7&submit.y=8&submit=submit
            string postData = String.Format("&rank=1&name={0}&submit.x=7&submit.y=8&submit=submit", username);
            textBoxStatus.Text += postData + "\r\n";
            string pageSource = Http.SendData(serverInfo.StatistikAttack, postData, serverInfo.CookieContainer,
                                              serverInfo.CookieCollection);
            HtmlParser htmlParser = new HtmlParser(pageSource);
            htmlParser.ParseAttackRang(playerData, username);

            postData = String.Format("&rank=1&name={0}&submit.x=7&submit.y=8&submit=submit", username);
            textBoxStatus.Text += postData + "\r\n";
            pageSource = Http.SendData(serverInfo.StatistikDefense, postData, serverInfo.CookieContainer,
                                       serverInfo.CookieCollection);
            htmlParser = new HtmlParser(pageSource);
            htmlParser.ParseDefenseRang(playerData, username);

            postData = String.Format("?rank=1&name={0}&submit.x=7&submit.y=8&submit=submit", username);
            pageSource = Http.SendData(serverInfo.StatistikRang, postData, serverInfo.CookieContainer,
                                       serverInfo.CookieCollection);
            htmlParser = new HtmlParser(pageSource);
            htmlParser.ParseRang(playerData, username);

            data.AddPlayerData(playerData);
            textBoxStatus.Text += playerData + "\r\n";
        }
Exemplo n.º 4
0
        private void ParseMembersStats(ServerInfo serverInfo,
            string pageSource,
            AlianceData data)
        {
            int delay = Int32.Parse(comboBoxDelay.Text);
            //<td align="right">1.</td><td class="s7"><a href="spieler.php?uid=9446">NoBody.</a></td>
            //<td align=""right"">([0-9{0,2}]).</td><td class=""(.*)""><a href=""spieler.php.uid=([0-9]{0,6})"">(.*)</a></td>
            //<td class="ra">1.</td><td class="pla"><a href="spieler.php?uid=2485">klukec</a></td><td class="hab">689</td>

            const string patternAlianceMembers =
                @"<td class=""ra"">([0-9]{0,3}).</td><td class=""pla""><a href=""spieler.php.uid=([0-9]{0,6})"">(.*)</a></td>";
            MatchCollection alianceMembersCollection =
                Regex.Matches(pageSource, patternAlianceMembers);
            int alianceMembers = alianceMembersCollection.Count;
            textBoxStatus.Text += "Found " + alianceMembers + " aliance members...\r\n";
            progressBarStatus.Maximum = alianceMembers;
            progressBarStatus.Value = progressBarStatus.Minimum;
            for (int i = 0; i < alianceMembers; i++)
            {
                int number = Int32.Parse(alianceMembersCollection[i].Groups[1].Value.Trim());
                string username = alianceMembersCollection[i].Groups[3].Value.Trim();
                GetStats(serverInfo, number, username, data);
                Thread.Sleep(delay);
                //this checking is automatically done as stated in the Ref Documentation
                //but it does not work , BUGssssss
                //so we have to do it shhhhh ....
                if (progressBarStatus.Value == progressBarStatus.Maximum)
                {
                    progressBarStatus.Value = progressBarStatus.Minimum;
                }
                progressBarStatus.PerformStep();
            }
        }
Exemplo n.º 5
0
 private void FillData(AlianceData data)
 {
     dataGridViewAliance.AutoGenerateColumns = true;
     dataGridViewAliance.DataSource = data.Players;
 }