static void CheckAllProxy() { var proxyList = App .settings .proxy .items; List <ProxySettingsItem> bannedList = new List <ProxySettingsItem>(); foreach (var proxyItem in proxyList) { bool isBan = new Cash365() .CheckIsBanForever(proxyItem); if (isBan) { Console.WriteLine("Ban forever: " + proxyItem.ip); bannedList.Add(proxyItem); } else { Console.WriteLine("Success access: " + proxyItem.ip); } } Console.WriteLine("-----------------------------------------------"); Console.WriteLine("Banned cnt: " + bannedList.Count()); }
static Cache365RequestPaymentResponseType Create(double amount, string phone, string btcAddr, ProxySettingsItem proxy) { Random r = new Random(); Cash365 model = new Cash365(); if (proxy != null) { model.httpRequest.Proxy = proxy.CreateProxyClient(); } if (App.settings.cache365.accounts.Count() > 0) { var free = App.accountsStack.GetFree(); App.accountsStack.MarkBusy(free); bool isLogin = model.Login(free.login, free.passwrd); if (!isLogin) { throw new Exception("can`t login " + free.login); } Thread.Sleep( r.Next( App.settings.cache365.delay_after_login_from, App.settings.cache365.delay_after_login_to ) ); } string email = GenerateEmail(phone); App.actionsLog.Append(new ActionDataItem(phone, "GenerateEmail: " + email)); CreateTicketStruct created = model.CreateTicket(phone, amount, btcAddr, email); App.actionsLog.Append(new ActionDataItem(phone, "completed create ticket, try parse final page")); ParseFinalPage parser = new ParseFinalPage(created.content); var finalPage = new Cache365RequestPaymentResponseType() { account = created.qiwiNumber, btc_amount = parser.GetBtcAmount(), comment = parser.GetNumberTicket(), ip = proxy == null ? "" : proxy.ip, email = email }; App.actionsLog.Append(new ActionDataItem(phone, "Final page: " + finalPage.toJson())); return(finalPage); }
static double GetBtcRateByTicketForm(IElement form) { var p = Cash365.GetById(form, "p", "pre-order-form-course"); string val = p.GetElementsByTagName("span")[0].InnerHtml; try { return(double.Parse(val)); } catch (Exception) { } return(double.Parse(val.Replace('.', ','))); }
static string Rate() { var model = new Cash365(); var rate = model.GetRateBalance(); RateCache365Response rateResponse = new RateCache365Response() { rate = double.Parse(rate.Item1.ToString()), balance = double.Parse(rate.Item2.ToString()), }; return(rateResponse.toJson()); }
public void ChangeProxyTest() { Cash365 model = new Cash365(); Assert.IsTrue(model.DoStepsForBan(), "Не работает нарываение на бан"); ProxySettingsItem usedProxyInCreate = null; //model.ChangeProxyOnNoBan( // new ProxyLog() // .Load() // .GetBlacklistHosts(), // ref usedProxyInCreate //); //Assert.IsFalse(model.IsBan(), "Не работает применение прокси"); }
public void CreateTicketTest() { Random r = new Random(); Cash365 model = new Cash365(); ProxySettingsItem usedProxyInCreate = null; //model.ChangeProxyOnNoBan( // new ProxyLog() // .Load() // .GetBlacklistHosts(), // ref usedProxyInCreate //); //Thread.Sleep(r.Next(App.settings.cache365.delay_before_each_step_from, App.settings.cache365.delay_before_each_step_to)); var free = App.accountsStack.GetFree(); App.accountsStack.MarkBusy(free); Assert.IsTrue( model.Login( free.login, free.passwrd ), "Не получается залогиниться " + free.login ); Thread.Sleep( r.Next( App.settings.cache365.delay_after_login_from, App.settings.cache365.delay_after_login_to ) ); CreateTicketStruct created = model.CreateTicket("+7912345678", 5000, "bc1q3zm4x7d4032gp8ghqsmf79dzmnrmtggp2e7mae"); Assert.IsNotEmpty(created.content, "Заявка не создается"); Assert.IsNotEmpty(created.qiwiNumber, "QIWI кошелек не возвращается"); ParseFinalPage parser = new ParseFinalPage(created.content); Assert.IsNotEmpty(parser.GetStatus(), "Не работает парсинг статуса по только что созданной заявке, " + created.content); Assert.IsNotEmpty(parser.GetNumberTicket(), "Не работает парсинг номера заявки по только что созданной заявке, " + created.content); Assert.IsNotEmpty(parser.GetRubAmount(), "Не работает парсинг суммы руб по только что созданной заявке, " + created.content); Assert.IsNotEmpty(parser.GetBtcAmount(), "Не работает парсинг суммы btc по только что созданной заявке, " + created.content); Assert.IsNotEmpty(parser.GetBtcAddr(), "Не работает парсинг адреса btc по только что созданной заявке, " + created.content); Assert.IsNotEmpty(parser.GetCardId(), "Не работает парсинг id кошелька по только что созданной заявке, " + created.content); }