Beispiel #1
0
        static void Main(string[] args)
        {
            //args = new string[] {
            //    "--create",
            //    "5000",
            //    "+79062532468",
            //    "3DVobv7Pf5TVWdy7fykuSdWscy3kTS4MvV"
            //};
            //args = new string[] { "--gettypebtcaddress" };

            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
            ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;

            NetexSettings settings = new NetexSettings();

            settings.CreateIfNotExists();
            settings.LoadSettings();

            string USER_TOKEN = Guid.NewGuid().ToString();

            DB             db        = new DB();
            StorageModelDB storageDB = new StorageModelDB()
            {
                db = db
            }.MigrateUp();
            StorageModelREG storageREG = new StorageModelREG();

            EmailStorageModelDB emailStorageModel = new EmailStorageModelDB()
            {
                storageDB = storageDB
            };
            EmailStack emailStack = new EmailStack()
            {
                allowEmails = settings.allowEmails, emailStorageModel = emailStorageModel
            };
            EmailSender emailSender = new EmailSender()
            {
                settings = settings.email
            };

            //proxy list create
            const string           FILE_CREATE_PROXY       = "ProxyListForCreate.json";
            ProxyStorageModelMixed createProxyStorageModel = new ProxyStorageModelMixed(settings.registerKeyPrefix, settings.dbKeyPrefix, FILE_CREATE_PROXY)
            {
                storageDB = storageDB, storageREG = storageREG
            };
            ProxySettings createProxySettings = new ProxySettings(FILE_CREATE_PROXY)
            {
                createProxyStorageModel = createProxyStorageModel
            }.LoadSettings();
            ProxyStack createProxyStack = new ProxyStack()
            {
                settings = settings, emailSender = emailSender, proxySettings = createProxySettings, proxyStorageModel = createProxyStorageModel
            };

            //proxy list rate
            const string           FILE_RATE_PROXY       = "ProxyListForRate.json";
            ProxySettings          rateProxySettings     = new ProxySettings(FILE_RATE_PROXY).LoadSettings();
            ProxyStorageModelMixed rateProxyStorageModel = new ProxyStorageModelMixed(settings.registerKeyPrefix, settings.dbKeyPrefix, FILE_RATE_PROXY)
            {
                storageDB = storageDB, storageREG = storageREG
            };
            ProxyStack rateProxyStack = new ProxyStack()
            {
                settings = settings, emailSender = emailSender, proxySettings = rateProxySettings, proxyStorageModel = rateProxyStorageModel
            };

            //proxy list type addr
            const string           FILE_TYPEADDR_PROXY       = "ProxyListForGetTypeAddr.json";
            ProxySettings          typeaddrProxySettings     = new ProxySettings(FILE_TYPEADDR_PROXY).LoadSettings();
            ProxyStorageModelMixed typeaddrProxyStorageModel = new ProxyStorageModelMixed(settings.registerKeyPrefix, settings.dbKeyPrefix, FILE_TYPEADDR_PROXY)
            {
                storageDB = storageDB, storageREG = storageREG
            };
            ProxyStack typeaddrProxyStack = new ProxyStack()
            {
                settings = settings, emailSender = emailSender, proxySettings = typeaddrProxySettings, proxyStorageModel = typeaddrProxyStorageModel
            };

            try
            {
                if (args.Length == 0)
                {
                    Console.WriteLine(CheckCapcha(createProxyStack, settings));

                    Console.WriteLine("\n==========================================\n");
                    Console.WriteLine("Check proxy " + FILE_TYPEADDR_PROXY + ":");
                    CheckAllProxy(typeaddrProxyStack, typeaddrProxySettings, settings);

                    Console.WriteLine("\n==========================================\n");
                    Console.WriteLine("Check proxy " + FILE_CREATE_PROXY + ":");
                    CheckAllProxy(createProxyStack, createProxySettings, settings);

                    Console.ReadKey();
                    return;
                }

                //первым делом установи доступную валюту
                switch (args[ACTION_ID])
                {
                case "--rate":
                    Console.WriteLine(Rate(rateProxyStack.First(), settings));
                    break;

                case "--create":
                    double amount = -1;
                    try
                    { amount = double.Parse(args[1].Replace(',', '.')); }
                    catch (Exception)
                    { amount = double.Parse(args[1].Replace('.', ',')); }

                    string phone   = PhoneHelper.PhoneReplacer(args[2]);
                    string btcAddr = args[3];

                    List <string> usedProxyList = new List <string>();
                    int           cntTry        = settings.maxTryReCreate;
                    do
                    {
                        try
                        {
                            NetexRequestPaymentResponseType response = Create(USER_TOKEN, emailStack, createProxyStack, settings, amount, phone, btcAddr, ref usedProxyList);
                            response.used_proxy_list = usedProxyList.ToArray();
                            Console.WriteLine(response.toJson());

                            if (WRITE_DEBUG)
                            {
                                Console.ReadKey();
                            }

                            return;
                        }
                        catch (Exception) { }
                    } while (--cntTry > 0);
                    break;

                case "--gettypebtcaddress":
                    if (typeaddrProxyStack.proxySettings.items.Count() == 0)
                    {
                        Console.WriteLine(
                            new GetTypeBtcAddressResponse()
                        {
                            btc_addresstype    = "",
                            target_currency_id = 106
                        }.toJson()
                            );

                        if (WRITE_DEBUG)
                        {
                            Console.ReadKey();
                        }
                        return;
                    }

                    Console.WriteLine(GetTypeBtcAddress(typeaddrProxyStack.First(), settings));
                    if (WRITE_DEBUG)
                    {
                        Console.ReadKey();
                    }
                    break;

                case "--getallowcurrenciesids":
                    Console.WriteLine(GetAllowCurrenciesIds(typeaddrProxyStack.First(), settings));

                    if (WRITE_DEBUG)
                    {
                        Console.ReadKey();
                    }
                    break;

                case "--checkallproxy":
                    CheckAllProxy(createProxyStack, createProxySettings, settings);

                    if (WRITE_DEBUG)
                    {
                        Console.ReadKey();
                    }
                    break;

                default:
                    if (args[ACTION_ID].Substring(args[ACTION_ID].Length - 4).Trim().ToLower() == ".txt")
                    {
                        AddNexProxy(args[ACTION_ID], createProxySettings);
                    }
                    break;
                }
            }
            catch (Exception ex) {
                if (TEST)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }