Solved - Hướng dẫn viết Plugin All1Tool từ A tới Z | Kiếm Tiền Trên Mạng - Make Money Online

using AutoManager.Commons;  using AutoManager.Recognition.Russ;  using HtmlAgilityPack;  using System;  using System.Collections.Generic;  using System.ComponentModel.Composition;  using System.Drawing;  using System.Linq;  using System.Text;  using System.Text.RegularExpressions;  using AutoManager.Plugins;    namespace All1Group.DueBux  {     [PluginInfo(PluginName = "[All1Group] DueBux")]   [Export(typeof(All1PluginScript))]   class DueBux : All1PluginScript   {     private Queue<string> _linkQueue;     private string getGridChances(string inputStr, string leftSideStr)   {   Regex regex = new Regex(string.Format("{0}\s*:\s*([^,<]+)", leftSideStr)); //Chance(s) left: 13</span>   Match m = regex.Match(inputStr);   if (m.Groups.Count > 1)   {   return m.Groups[1].Value;   }   return null;   }     private string getVerLink(string inputStr, string leftSideStr)   {   Regex regex = new Regex(string.Format("{0}\s*"\s*([^,"]+)", leftSideStr));   Match m = regex.Match(inputStr);   if (m.Groups.Count > 1)   {   return m.Groups[1].Value;   }   return null;   }     // O. Begin   public override All1ActionResult Begin(object arg)   {   Client.GetRequest("/");   return new All1NextMethodResult { NextMethod = SubmitLogin };   }     // I. Đăng nhập   private All1ActionResult SubmitLogin(object arg)   {     Dictionary<string, string> dic = new Dictionary<string, string>();   dic.Add("email", Username);   dic.Add("pass", Password);     // data: email=f17withlove%40gmail.com&pass=DoiPassRoi%3AP     // sau đó gửi request, request thuộc loại POST   Client.PostRequest("login.php", dic, Client.Host + "/login.php");     // Trường hợp login fail thì quay lại hàm SubmitLogin   if (!Client.ResponseStr.Contains("/logout.php")) //?i=lo&   {   return new All1NextMethodResult { NextMethod = SubmitLogin };   }     // Trường hợp login ok thì bắt đầu tới hàm lấy list ads   else   {   return new All1NextMethodResult { NextMethod = GetAdsList };   }   }// OK vậy là Login xong, giở debug thử xem tool có login giống như trên web không     // II. Lấy danh sách ads   private All1ActionResult GetAdsList(object arg)   {   // 4. Vào link chứa ads   Client.GetRequest("dash/index.php");     // 5. Lấy list ads theo những gì vừa quan sát   HtmlNodeCollection nodes = Client.ResponseDoc.DocumentNode.SelectNodes("//div[@id='addblock']"); //addblock   _linkQueue = new Queue<string>();   if (nodes != null)   {   foreach (HtmlNode node in nodes)   {   // Ads đã view thì bỏ qua   if (node.OuterHtml.Contains("background:grey"))   continue;     // Lấy ads chưa view   else   {   if (!IsCheatLink(node.ParentNode.ParentNode.InnerText))   {   string url = node.Attributes["onclick"].Value;   // Xử lý html và string sẽ đi sâu vào ở các bài sau   _linkQueue.Enqueue("/dash/" + url.Replace("')", "").Replace("window.open('", ""));   }   }     }   }     return new All1NextMethodResult { NextMethod = ProcessAdPage };   }     // III. View ads   private All1ActionResult ProcessAdPage(object arg)   {     if (_linkQueue.Count <= 0)   {   return new All1NextMethodResult { NextMethod = End };   }     // 1. Vào link mỗi ads   string currentAdLink = _linkQueue.Peek();   Client.GetRequest(currentAdLink, Client.Host + "/dash/index.php"); //url:     // 2. Lấy timer (thời gian đếm ngược với mỗi ads)   string timerStr;   if (Client.ResponseStr.Contains("270"))   timerStr = "30";   else if (Client.ResponseStr.Contains("90"))   timerStr = "10";   else   timerStr = "30";     // Lấy link verify ads để gửi request   string verLink = getVerLink(Client.ResponseStr, "url: ");     int timer = int.Parse(timerStr);     return new All1WaitingAdResult   {   WaitingTime = timer,   RemainAds = _linkQueue.Count,   NextMethod = (o) =>   {   // 3. Theo dõi request lên server để 1 ads được trả tiền => viết code theo   Client.GetRequest("dash/" + verLink, Client.ResponseFullUrl, true);   _linkQueue.Dequeue();   return new All1NextMethodResult { NextMethod = ProcessAdPage };   }   };     }     // Hàm view grid -> tạm bỏ qua   private All1ActionResult GridViewing(object arg)   {   int gridLeft = 1;   if (gridLeft <= 0)   {   return new All1NextMethodResult { NextMethod = GridViewing };   }   Random rd = new Random();   Client.GetRequest("dash/play_grid.php", Client.Host + "/dash/play_grid.php");     Client.GetRequest("dash/gridview.php?c=" + rd.Next(0, 20) + "&m=" + rd.Next(100, 600));   string verLink = getVerLink(Client.ResponseStr, "url: ");   try   {   gridLeft = int.Parse(getGridChances(Client.ResponseStr, "Chance\(s\) left").Trim());   }   catch   {   gridLeft--;   }     return new All1WaitingAdResult   {   WaitingTime = 5,   RemainAds = _linkQueue.Count,   NextMethod = (o) =>   {   Client.GetRequest("dash/" + verLink, Client.ResponseFullUrl, true);   return new All1NextMethodResult { NextMethod = GridViewing };   }   };     }     // IV. Kết thúc   public override All1ActionResult End(object arg)   {   Client.GetRequest("dash/");   HtmlNode textNode = Client.ResponseDoc.DocumentNode.SelectSingleNode("//strong[@style='color:white']"); //addblock   //color:white   Amount = ParseHelper.GetAmount(textNode.InnerText.Trim().Replace("$", ""));   return new All1ActionResult { Message = "Finish" };   }   }  }

x

IvanBlog

About IvanBlog

Author Description here.. Nulla sagittis convallis. Curabitur consequat. Quisque metus enim, venenatis fermentum, mollis in, porta et, nibh. Duis vulputate elit in elit. Mauris dictum libero id justo.

Subscribe to this Blog via Email :