Ejemplo n.º 1
0
        public ProxyListViewModel(IProxyChecker proxyChecker, ITransportService transportService, ICacheService cacheService, ICommonErrorHandler errorHandler, IStateService stateService, INavigationService navigationService, IMTProtoService mtProtoService, ITelegramEventAggregator eventAggregator)
            : base(cacheService, errorHandler, stateService, navigationService, mtProtoService, eventAggregator)
        {
            SuppressSharing = StateService.SuppressProxySharing;
            StateService.SuppressProxySharing = false;

            _proxyChecker     = proxyChecker;
            _transportService = transportService;

            PropertyChanged += (sender, args) =>
            {
                if (Property.NameEquals(args.PropertyName, () => IsEnabled))
                {
                    var proxy = _proxyConfig.GetProxy();
                    _proxyConfig.IsEnabled = new TLBool(IsEnabled);
                    if (proxy != null)
                    {
                        proxy.NotifyOfPropertyChange(() => proxy.Self);
                    }
                    SetReconnect(!_proxyConfig.IsEmpty, _proxyConfig, null);
                }
                else if (Property.NameEquals(args.PropertyName, () => UseForCalls))
                {
                    var proxy = _proxyConfig.GetProxy();
                    _proxyConfig.UseForCalls = new TLBool(UseForCalls);
                    if (proxy != null)
                    {
                        proxy.NotifyOfPropertyChange(() => proxy.Self);
                    }
                    SetReconnect(false, _proxyConfig, null);
                }
            };
        }
Ejemplo n.º 2
0
        public HttpRequest(IConfiguration configurationManager, IProxyChecker proxyChecker)
        {
            var configuration = configurationManager.GetSection("tor").Get <TorConfigurationSection>();

            m_PortsFrom        = configuration.PortStart;
            m_PortsControlFrom = configuration.PortControlStart;
            m_PortsCount       = configuration.PortCount;

            _proxyChecker = proxyChecker;
            SetProxy();
        }
Ejemplo n.º 3
0
        public Application(ISearchEngine searchEngine,
                           IProxyChecker checker,
                           IHttpDownloaderContainer httpDownloaderContainer,
                           IGeoIP geoIP = null,
                           IProxyProvider proxyProvider = null,
                           ITaskManager taskManager = null)
        {
            this.searchEngine = searchEngine;
            this.checker = checker;
            this.httpDownloaderContainer = httpDownloaderContainer;

            this.proxyProvider = proxyProvider ?? new ProxyProvider();
            this.geoIP = geoIP ?? new TurnOffGeoIP();
            this.taskManager = taskManager ?? new TaskManager();
        }
Ejemplo n.º 4
0
        public Application(ISearchEngine searchEngine,
                           IProxyChecker checker,
                           IHttpDownloaderContainer httpDownloaderContainer,
                           IGeoIP geoIP = null,
                           IRatingManager ratingManager = null,
                           IProxyProvider proxyProvider = null,
                           ITaskManager taskManager     = null)
        {
            this.searchEngine            = searchEngine;
            this.checker                 = checker;
            this.httpDownloaderContainer = httpDownloaderContainer;

            this.proxyProvider = proxyProvider ?? new ProxyProvider();
            this.geoIP         = geoIP ?? new TurnOffGeoIP();
            this.taskManager   = taskManager ?? new TaskManager();
            this.ratingManager = ratingManager ?? new DisabledRatingManager();
        }
Ejemplo n.º 5
0
        public Application Create(TaskItem task, ProxySearchFeedback feedback)
        {
            Context.Set(new CancellationTokenSource());
            Context.Set <IHttpDownloaderContainer>(HttpDownloaderContainer);

            task.UpdateDetails(Resources.ReadingConfigurationOfSelectedSearch);

            IDetectable   searchEngineDetectable = DetectableManager.CreateDetectableInstance <ISearchEngine>(Settings.SelectedTabSettings.SearchEngineDetectableType);
            IDetectable   proxyCheckerDetectable = DetectableManager.CreateDetectableInstance <IProxyChecker>(Settings.SelectedTabSettings.ProxyCheckerDetectableType);
            IDetectable   geoIPDetectable        = DetectableManager.CreateDetectableInstance <IGeoIP>(Settings.GeoIPDetectableType);
            ISearchEngine searchEngine           = DetectableManager.CreateImplementationInstance <ISearchEngine>(searchEngineDetectable,
                                                                                                                  Settings.SelectedTabSettings.SearchEngineSettings,
                                                                                                                  searchEngineDetectable.InterfaceSettings);

            feedback.ExportAllowed = !(searchEngine is FolderSearchEngine);

            task.UpdateDetails(Resources.PreparingProxyProvider);

            IProxyProvider proxyProvider = new ProxyProvider(Context.Get <IBlackList>(), new ParseMethodsProvider(Settings.ParseDetails));

            task.UpdateDetails(Resources.PreparingProxyChecker);

            IProxyChecker proxyChecker = DetectableManager.CreateImplementationInstance <IProxyChecker>(proxyCheckerDetectable,
                                                                                                        Settings.SelectedTabSettings.ProxyCheckerSettings,
                                                                                                        proxyCheckerDetectable.InterfaceSettings);

            task.UpdateDetails(Resources.PreparingGeoIpService);

            IGeoIP geoIP = DetectableManager.CreateImplementationInstance <IGeoIP>(geoIPDetectable,
                                                                                   Settings.GeoIPSettings,
                                                                                   geoIPDetectable.InterfaceSettings);

            task.UpdateDetails(Resources.PreparingApplication);

            Application application = new Application(searchEngine, proxyChecker, HttpDownloaderContainer, geoIP, Context.Get <IRatingManager>(), proxyProvider, Context.Get <ITaskManager>());

            application.ProxyAlive += feedback.OnAliveProxy;
            application.OnError    += Context.Get <IErrorFeedback>().SetException;

            return(application);
        }