Example #1
0
        public IndexerModule(IIndexerService indexerService)
        {
            _indexerService = indexerService;
            GetResourceAll  = GetAll;
            GetResourceById = GetIndexer;
            CreateResource  = CreateIndexer;
            UpdateResource  = UpdateIndexer;
            DeleteResource  = DeleteIndexer;


            SharedValidator.RuleFor(c => c.Name).NotEmpty();
            SharedValidator.RuleFor(c => c.Implementation).NotEmpty();

            PostValidator.RuleFor(c => c.Fields).NotEmpty();
        }
        public override void Start()
        {
            using (var lifetimeScope = ContextScopeProvider.CreateChildContainer())
            {
                using (indexerService = lifetimeScope.Resolve<IIndexerService>())
                {
                    if (!indexerService.StartIndexer())
                    {
                        return;
                    }
                    indexerService.CleanLock();
                }
            }

            base.Start();
        }
Example #3
0
 public NzbSearchService(IIndexerService indexerService,
                         IFetchFeedFromIndexers feedFetcher,
                         ISceneMappingService sceneMapping,
                         ISeriesService seriesService,
                         IEpisodeService episodeService,
                         IMakeDownloadDecision makeDownloadDecision,
                         Logger logger)
 {
     _indexerService       = indexerService;
     _feedFetcher          = feedFetcher;
     _sceneMapping         = sceneMapping;
     _seriesService        = seriesService;
     _episodeService       = episodeService;
     _makeDownloadDecision = makeDownloadDecision;
     _logger = logger;
 }
        public override void Start()
        {
            using (var lifetimeScope = ContextScopeProvider.CreateChildContainer())
            {
                using (indexerService = lifetimeScope.Resolve <IIndexerService>())
                {
                    if (!indexerService.StartIndexer())
                    {
                        return;
                    }
                    indexerService.CleanLock();
                }
            }

            base.Start();
        }
 public StageFiveController(IIndexerService indexerService)
 {
     _indexerService = indexerService;
 }
 public IndexerSchemaModule(IIndexerService indexerService)
     : base("indexer/schema")
 {
     _indexerService = indexerService;
     GetResourceAll  = GetSchema;
 }
        protected override void DoWork()
        {
            Log.Trace("Starting Lucene Content Indexing Robot.");

            using (var lifetimeScope = ContextScopeProvider.CreateChildContainer())
            {
                using (indexerService = lifetimeScope.Resolve<IIndexerService>())
                {
                    var scrapeService = lifetimeScope.Resolve<IScrapeService>();
                    var crawlerService = lifetimeScope.Resolve<IWebCrawlerService>();

                    string message;
                    if (!crawlerService.IsConfigured(out message))
                    {
                        Log.ErrorFormat("Cannot start Lucene web crawler: {0}", message);
                        return;
                    }

                    if (!indexerService.OpenWriter())
                    {
                        Log.Error("Lucene Content Indexing Robot cannot continue. Failed to open writer.");
                        return;
                    }

                    var links = scrapeService.GetLinksForProcessing();

                    var pages = new List<PageData>();
                    var idsToDelete = new List<Guid>();

                    foreach (var link in links)
                    {
                        if (hostShuttingDown)
                        {
                            return;
                        }

                        scrapeService.MarkStarted(link.Id);

                        PageData response;

                        try
                        {
                            response = crawlerService.FetchPage(link.Path);

                            if (hostShuttingDown)
                            {
                                return;
                            }
                        }
                        catch (Exception exc)
                        {
                            Log.Error("Unhandled exception occurred while fetching a page.", exc);
                            response = null;
                        }

                        if (response != null)
                        {
                            response.IsPublished = link.IsPublished;
                            response.Id = link.Id;

                            switch (response.StatusCode)
                            {
                                case (HttpStatusCode.OK):
                                {
                                    pages.Add(response);
                                    break;
                                }

                                case HttpStatusCode.NotFound:
                                {
                                    idsToDelete.Add(link.Id);
                                    scrapeService.Delete(link.Id);
                                    break;
                                }

                                case HttpStatusCode.ServiceUnavailable:
                                    Log.Trace("Server Unavailable (503) - stop indexing for a moment.");
                                    scrapeService.MarkFailed(link.Id);
                                    return;

                                default:
                                {
                                    scrapeService.MarkFailed(link.Id);
                                    break;
                                }
                            }
                        }
                        else
                        {
                            scrapeService.MarkFailed(link.Id);
                        }
                    }

                    if (hostShuttingDown)
                    {
                        return;
                    }

                    foreach (var page in pages)
                    {
                        indexerService.AddHtmlDocument(page);
                        scrapeService.MarkVisited(page.Id);

                        if (hostShuttingDown)
                        {
                            return;
                        }
                    }

                    if (idsToDelete.Any())
                    {
                        indexerService.DeleteDocuments(idsToDelete.Distinct().ToArray());
                    }

                    indexerService.OptimizeIndex();
                }
            }

            if (!hostShuttingDown)
            {
                Log.Trace("Lucene Content Indexing Robot finished indexing.");
            }
        }
 public KCaseInputController(KCaseInputService kCaseInputService)
 {
     this.kCaseInputService = kCaseInputService;
     _indexService          = GetService <IIndexerService>();
 }
        protected override void DoWork()
        {
            Log.Trace("Starting Lucene Content Indexing Robot.");

            using (var lifetimeScope = ContextScopeProvider.CreateChildContainer())
            {
                using (indexerService = lifetimeScope.Resolve <IIndexerService>())
                {
                    var scrapeService  = lifetimeScope.Resolve <IScrapeService>();
                    var crawlerService = lifetimeScope.Resolve <IWebCrawlerService>();

                    string message;
                    if (!crawlerService.IsConfigured(out message))
                    {
                        Log.ErrorFormat("Cannot start Lucene web crawler: {0}", message);
                        return;
                    }

                    if (!indexerService.OpenWriter())
                    {
                        Log.Error("Lucene Content Indexing Robot cannot continue. Failed to open writer.");
                        return;
                    }

                    var links = scrapeService.GetLinksForProcessing();

                    var pages       = new List <PageData>();
                    var idsToDelete = new List <Guid>();

                    foreach (var link in links)
                    {
                        if (hostShuttingDown)
                        {
                            return;
                        }

                        scrapeService.MarkStarted(link.Id);

                        PageData response;

                        try
                        {
                            response = crawlerService.FetchPage(link.Path);

                            if (hostShuttingDown)
                            {
                                return;
                            }
                        }
                        catch (Exception exc)
                        {
                            Log.Error("Unhandled exception occurred while fetching a page.", exc);
                            response = null;
                        }

                        if (response != null)
                        {
                            response.IsPublished = link.IsPublished;
                            response.Id          = link.Id;

                            switch (response.StatusCode)
                            {
                            case (HttpStatusCode.OK):
                            {
                                pages.Add(response);
                                break;
                            }

                            case HttpStatusCode.NotFound:
                            {
                                idsToDelete.Add(link.Id);
                                scrapeService.Delete(link.Id);
                                break;
                            }

                            case HttpStatusCode.ServiceUnavailable:
                                Log.Trace("Server Unavailable (503) - stop indexing for a moment.");
                                scrapeService.MarkFailed(link.Id);
                                return;

                            default:
                            {
                                scrapeService.MarkFailed(link.Id);
                                break;
                            }
                            }
                        }
                        else
                        {
                            scrapeService.MarkFailed(link.Id);
                        }
                    }

                    if (hostShuttingDown)
                    {
                        return;
                    }

                    foreach (var page in pages)
                    {
                        indexerService.AddHtmlDocument(page);
                        scrapeService.MarkVisited(page.Id);

                        if (hostShuttingDown)
                        {
                            return;
                        }
                    }

                    if (idsToDelete.Any())
                    {
                        indexerService.DeleteDocuments(idsToDelete.Distinct().ToArray());
                    }

                    indexerService.OptimizeIndex();
                }
            }

            if (!hostShuttingDown)
            {
                Log.Trace("Lucene Content Indexing Robot finished indexing.");
            }
        }
 /// <summary>构造函数</summary>
 public IndexerServiceController(IIndexerService service)
 {
     ServiceImpl = service;
 }
 public IndexerJob(IIndexerService <IMaintainProviderIndex> indexerService)
 {
     _indexerService = indexerService;
 }
Example #12
0
 public KManage2Controller(KManage2Service kManage2Service)
 {
     _kManage2Service = kManage2Service;
     _bo2Service      = GetService <IBO2Service>();
     _indexService    = GetService <IIndexerService>();
 }
Example #13
0
 public IndexMetadataService(IAppDataService appDataService, IIndexerService indexerService)
 {
     _appDataService = appDataService;
     _indexerService = indexerService;
 }
Example #14
0
 public FetchAndParseRssService(IIndexerService indexerService, IFetchFeedFromIndexers feedFetcher, Logger logger)
 {
     _indexerService = indexerService;
     _feedFetcher    = feedFetcher;
     _logger         = logger;
 }
Example #15
0
 public StandardController(StandardService standardService)
 {
     this.standardService = standardService;
     _indexService        = GetService <IIndexerService>();
 }