Пример #1
0
        static public List <myProxy> LoadProxyList(string path)
        {
            List <myProxy> proxyList = new List <myProxy>();
            //читаем данные из файла
            XDocument doc = XDocument.Load(path);

            //проходим по каждому элементу в найшей library
            //(этот элемент сразу доступен через свойство doc.Root)
            foreach (XElement el in doc.Root.Elements())
            {
                myProxy prox = new myProxy();
                prox.Adress    = el.Attribute("Adress").Value;
                prox.Port      = el.Attribute("Port").Value;
                prox.ProxyType = el.Attribute("ProxyType").Value;
                if (el.Attribute("Auth").Value == "false")
                {
                    prox.Auth = false;
                }
                else
                {
                    prox.Auth = true;
                }
                prox.Login    = el.Attribute("Login").Value;
                prox.Password = el.Attribute("Password").Value;

                proxyList.Add(prox);
            }
            Log("proxyList загружен.");
            return(proxyList);
        }
Пример #2
0
 //true - если добавил, false - если уже существует
 static public bool addProxy(XDocument doc, myProxy proxx, string _id = "777", string options = "48")
 {
     if (!checkProxyServerByAdress(doc, proxx.Adress))
     {
         // XDocument doc = XDocument.Load(path);
         XElement proxList = doc.Root.Element("ProxyList"); // new XElement("ProxyList");
         //int maxId = doc.Root.Elements("track").Max(t => Int32.Parse(t.Attribute("id").Value));
         XElement prox = new XElement("Proxy",
                                      new XAttribute("id", _id),
                                      new XAttribute("type", proxx.ProxyType),
                                      new XElement("Address", proxx.Adress),
                                      new XElement("Port", proxx.Port),
                                      new XElement("Options", options),
                                      new XElement("Authentication", new XAttribute("enabled", proxx.Auth),
                                                   new XElement("Username", proxx.Login), new XElement("Password", proxx.Password)));
         proxList.Add(prox);
         //doc.Root.Add();.Elements("ProxyList").Add();
         // doc.Save(path);
         return(true);
     }
     else
     {
         return(false);
     }
 }
        /*
         * static void openCrome_MainIP(string accMail)
         * {
         *  string chromeUserData_path = $@"C:\Users\{Environment.UserName}\AppData\Local\Google\Chrome\User Data";
         *  //чистим юзердату
         *  if (Directory.Exists(chromeUserData_path))
         *  {
         *      Directory.Delete(chromeUserData_path, true);
         *      Log("folder deleted");
         *  }
         *  // string accMail = @"herrma";       // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
         *  string accUserData_path = $@"C:\Users\{Environment.UserName}\AppData\Local\Google\Chrome\" + accMail + @"\User Data";
         *
         *  //если уже существует юзердата для аккаунта, то перемещаем ее на место юзердаты
         *  if (Directory.Exists(accUserData_path))
         *  {
         *      Directory.Move(accUserData_path, chromeUserData_path);
         *      Log("folder moved");
         *  }
         *
         *  //тпепрь откроем хром
         *  Log("opening chrome...");
         *  Process chromeProcess = new Process();
         *  chromeProcess.StartInfo.FileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
         *  chromeProcess.Start();
         *  //и ждем пока нами закроется браузер
         *  chromeProcess.WaitForExit();
         *  Log("browser closed...");
         *
         *  Thread.Sleep(3000);
         *
         *  //если есть юзердата в папке хрома, то перемещаем ее на место юзердаты аккаунта
         *  if (Directory.Exists(chromeUserData_path))
         *  {
         *      Directory.Move(chromeUserData_path, accUserData_path);
         *      Log("folder moved");
         *  }
         * }
         */
        static bool setProxyServer_and_Rule1(XDocument doc, myProxy proxx, string Proxifier_Settings_File) //true - потом УДАЛЯТЬ ПРОКСИ ; false - потом НЕ УДАЛЯТЬ
        {
            // XDocument doc = XDocument.Load(Proxifier_Settings_File);

            deleteTop_Rule_Ever(doc);
            deleteProxyes777(doc);
            // deleteTop_Rule_Ever_and_hisProxy(doc);
            deleteCrap_Defaults(doc);

            var deleteProxyFLAG = false;

            if (!checkTop_Rule_Ever(doc))
            {
                if (!checkProxyServerByAdress(doc, proxx.Adress))
                {
                    addProxy(doc, proxx, "777");
                    addRule(doc, "chrome.exe", "777");
                    deleteProxyFLAG = true;
                }
                else
                {
                    addRule(doc, "chrome.exe", getProxyID_byAddress(doc, proxx.Adress));
                    deleteProxyFLAG = false;
                }
                doc.Save(Proxifier_Settings_File);
                LogSUCCESSFUL();
                printNameId_value(doc);
            }
            else
            {
                Log("уже записано или еще чета");
                Log("!!!!!! была ошибка    ОБЯЗАТЕЛЬНО ВПРОВЕРИТЬ НАСТРОЙКИ ПРОКСИФАЕРА");
                Log("!!!!!! была ошибка    ОБЯЗАТЕЛЬНО ВПРОВЕРИТЬ НАСТРОЙКИ ПРОКСИФАЕРА");
                Log("!!!!!! была ошибка    ОБЯЗАТЕЛЬНО ВПРОВЕРИТЬ НАСТРОЙКИ ПРОКСИФАЕРА");
                return(false);
            }
            return(deleteProxyFLAG);
        }
        public static void openChrome_viaProxy(XDocument doc, string accMail, myProxy proxx, string Proxifier_Settings_File)
        {
            var deleteProxyFlag = true;

            string chrome_UserData_path = $@"C:\Users\{Environment.UserName}\AppData\Local\Google\Chrome\User Data";
            string acc_UserData_path    = $@"C:\Users\{Environment.UserName}\AppData\Local\Google\Chrome\" + accMail + @"\User Data";

            //создать папку почты если ее нет
            if (!Directory.Exists(acc_UserData_path))
            {
                Directory.CreateDirectory(acc_UserData_path);
                Log("mail folder created");
            }

            //чистим юзердату
            if (Directory.Exists(chrome_UserData_path))
            {
                DirectoryInfo di = new DirectoryInfo(chrome_UserData_path);

                foreach (FileInfo file in di.GetFiles())
                {
                    file.Delete();
                }
                Thread.Sleep(50);
                foreach (DirectoryInfo dir in di.GetDirectories())
                {
                    try
                    {
                        dir.Delete(true);
                    }
                    catch (Exception)
                    {
                        // throw;
                    }
                }

                Directory.Delete(chrome_UserData_path, true);
                Log("folder deleted");
            }
            //  string accMail = @"*****@*****.**";       // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

            //если уже существует юзердата для аккаунта, то перемещаем ее на место юзердаты
            if (Directory.Exists(acc_UserData_path))
            {
                Directory.Move(acc_UserData_path, chrome_UserData_path);
                Log("folder moved");
            }

            //ставим прокси для хрома
            deleteProxyFlag = setProxyServer_and_Rule1(doc, proxx, Proxifier_Settings_File);
            Process.Start($@"C:\Users\{Environment.UserName}\AppData\Roaming\Proxifier\Profiles\Default.ppx");

            Click_OK_Proxifier();   //принимает изменение настроек

            //тпепрь откроем хром
            Log("opening chrome...");
            Process chromeProcess = new Process();

            chromeProcess.StartInfo.FileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
            chromeProcess.Start();
            //и ждем пока нами закроется браузер
            chromeProcess.WaitForExit();
            Log("browser closed, deleting proxy server and rule...");

            //если прокси существовал до нас, то не трогаем его. если прокси добавили мы, то удалим его.
            removeProxyServer_and_Rule(doc, deleteProxyFlag, Proxifier_Settings_File);
            Process.Start($@"C:\Users\{Environment.UserName}\AppData\Roaming\Proxifier\Profiles\Default.ppx");
            Click_OK_Proxifier();   //принимает изменение настроек

            //если есть юзердата в папке хрома, то перемещаем ее на место юзердаты аккаунта
            if (Directory.Exists(chrome_UserData_path))
            {
                try
                {
                    Directory.Move(chrome_UserData_path, acc_UserData_path);
                    Log("folder moved");
                }
                catch (Exception ex)
                {
                    //throw;
                }
            }
        }