コード例 #1
0
        public BarcelonaController(SedeTaskData user,
                                   SedeCheckerProxyAdressDTO proxy,
                                   ILogger logger,
                                   IRecaptchaV2Resolver recaptchaV2Resolver,
                                   SeaSettings settings) : base()
        {
            this.UserData = user;

            this._logger = logger;

            this._proxy = proxy;

            _settings = settings;

            _controllerSettings = settings.ControllerSettings;

            _scripts = settings.SedeScripts.Scripts;

            _f = new FileService(_logger);

            CaptchaResolver = recaptchaV2Resolver;
        }
コード例 #2
0
        public Main(SeaSettings settings)
        {
            _settings = settings;

            InitializeComponent();

            _lc = new LoggerConsole {
                MdiParent = this
            };

            _logger = _lc;

            _storage   = new JsonStorageService <SedeAppDto>(SeaVariables.JsonStorageDb);
            _tds       = new TasksDataService(_storage);
            _recaptcha = new RuCaptchaResolver(SeaVariables.ReCaptchaApiKey, SeaVariables.SitaCaptchaUrl, _logger);

            _ps = new SedeProxyService(_logger);
            _ps.OnProxyCallback += UpdateActiveProxyesCount;
            _ps.LaunchCheckAdressesState();

            f = new FileService(_logger);

            InitializeUiForms();

            InitializeScripts();

            var callback = new TimerCallback(LaunchTasksProccesing);
            var rand     = new Random();
            var randTime = rand.Next(this._settings.TaskProccesingMinDueTimeout * 1000, this._settings.TaskProccesingMaxTimeout * 1000);

            _processTasksTimer = new Timer(callback, null, randTime, randTime);

            var cb        = new TimerCallback(LaunchConstitutionTasksProccesing);
            var cRand     = new Random();
            var cRandTime = cRand.Next(this._settings.ConstitutionTaskProcessingMinDueTimeout * 1000, this._settings.ConstitutionTaskProcessingMaxTimeout * 1000);

            _processConstitutuionTasksTimer = new Timer(cb, null, cRandTime, cRandTime);
        }
コード例 #3
0
        public ConstitutionController(ConstitutionTaskData user,
                                      SedeCheckerProxyAdressDTO proxy,
                                      ILogger logger,
                                      IRecaptchaV2Resolver recaptchaV2Resolver,
                                      SeaSettings settings,
                                      ScriptsSettings scripts)
        {
            this.UserData = user;

            this._logger = logger;

            this._settings = settings.ControllerSettings;

            _s = settings;

            this._proxy = proxy;

            _scripts = scripts.Scripts;

            _f = new FileService(_logger);

            CaptchaResolver = recaptchaV2Resolver;
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: zaxar291/Sez-electronica
        private static SeaSettings InitializeSettings()
        {
            //todo: move it to json storage -> implement DTO entities & converters

            var ss = new SeaSettings
            {
                DefaultAppDir     = Application.StartupPath,
                DefaultAppDataDir = $"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}\\Sede\\",

                SitaUrl        = "https://sede.administracionespublicas.gob.es/icpplus/index.html",
                SitaCaptchaUrl = "https://sede.administracionespublicas.gob.es/icpplus/acEntrada",

                RuCaptchaApiKey        = "6Ld3FzoUAAAAANGzDQ-ZfwyAArWaG2Ae15CGxkKt",
                RucaptchaSuccessAction = "reportgood",
                RucaptchaBadAction     = "reportbad",

                TaskProccesingMaxTimeout    = 300,
                TaskProccesingMinDueTimeout = 150,

                ConstitutionTaskProcessingMaxTimeout    = 14441,
                ConstitutionTaskProcessingMinDueTimeout = 14400,

                MailServiceSettings = new MailServiceSettings
                {
                    SenderName          = "SEA PROJECT",
                    SenderEmail         = "*****@*****.**",
                    SmtpUseSsl          = false,
                    SmtpServer          = "mail.adm.tools",
                    SmtpPort            = 25,
                    SmtpPassword        = "******",
                    SmtpUser            = "******",
                    DefaultSubject      = "SEA PROJECT - FOUNDED CITA REPORT",
                    DefaultBodyTemplate = "<b>CONGRATULATIONS!</b> <br /><br /> <b>[REPORT ID]</b> {0} <br /> <b>[REPORT DATETIME]</b> {1} <br /> THE GREAT CITA WAS FOUND FOR <b>{2}</b>!",
                    ReportReceivers     = new[]
                    {
                        new MailServiceReportReceiver {
                            Email       = "*****@*****.**",
                            Description = "Vitalii Ivanov",
                            IsEnabled   = true
                        },
                        new MailServiceReportReceiver {
                            Email       = "*****@*****.**",
                            Description = "Mariya Ponomareva",
                            IsEnabled   = true
                        },
                        new MailServiceReportReceiver {
                            Email       = "*****@*****.**",
                            Description = "Zachar Stadnichenko",
                            IsEnabled   = true
                        }
                    }
                },
                ControllerSettings = new BaseControllerSettings
                {
                    ChromeDriverSettings = new ChromeDriverSettings
                    {
                        WindowState = BrowserWindowState.Normal,
                        //BrowserWindowsSize = new Size(),
                        CloseAlianPages            = false,
                        DisableDefaultApps         = false,
                        DisableInfoBars            = true,
                        DisablePopupBlocking       = false,
                        IgnoreCertificateErrors    = false,
                        LaunchBrowserIncognitoMode = true,
                        PageLoadTimeout            = 60,
                        UseProxy = true,
                        //IsHeadless = true,
                    }
                },
                SedeScripts = new ScriptsSettings {
                    Scripts = new Dictionary <string, string>()
                }
            };

            ss.SedeScripts.Scripts.Add("DomButtonClickAction", $"{ss.DefaultAppDir}\\Scripts\\Sede\\SitaButtonClickAction.js");
            ss.SedeScripts.Scripts.Add("SitaCalendarDateSelector", $"{ss.DefaultAppDir}\\Scripts\\Sede\\SitaCalendarDateSelector.js");
            ss.SedeScripts.Scripts.Add("SitaGoogleCapthcaSolver", $"{ss.DefaultAppDir}\\Scripts\\Sede\\SitaGoogleCaptchaSolver.js");
            ss.SedeScripts.Scripts.Add("SitaRadioDateSelector", $"{ss.DefaultAppDir}\\Scripts\\Sede\\SitaRadioDateSelector.js");
            ss.SedeScripts.Scripts.Add("SitaListSelector", $"{ss.DefaultAppDir}\\Scripts\\Sede\\SitaListSelector.js");

            return(ss);
        }