protected override void OnStop() { WriteLog("Stop Service", EventLogEntryType.Information); //start web service try { if (_robots != null) { foreach (var robot in _robots) { robot.Stop(); } } FTService.StopWebService(); _fts.Stop(); WriteLog("Service stoped.", EventLogEntryType.Information); } catch (Exception ex) { WriteLog(ex.Message + ex.StackTrace, EventLogEntryType.Error); throw ex; } }
public void Start(FTService ftService) { Storage = new Storage(ftService); QueueIndexing = new QueueIndexing(); Scheduler = new Scheduler(GetTimeTable(), ScanAndIndex); Scheduler.Start(); }
public IndexService(FTService service, Action <string> logError, Action <string> logInfo) { _service = service; _logError = logError; _logInfo = logInfo; BH.BoobenRobot.Site.Sites = new List <Site>(); BH.BoobenRobot.Site.Sites.Add(new PravdaSite(service)); BH.BoobenRobot.Site.Sites.Add(new KhafSite(service)); BH.BoobenRobot.Site.Sites.Add(new SearchengineSite(service)); BH.BoobenRobot.Site.Sites.Add(new DouSite(service)); BH.BoobenRobot.Site.Sites.Add(new GamedevSite(service)); BH.BoobenRobot.Site.Sites.Add(new HabrSite(service)); BH.BoobenRobot.Site.Sites.Add(new GotaiSite(service)); BH.BoobenRobot.Site.Sites.Add(new SqlSite(service)); BH.BoobenRobot.Site.Sites.Add(new SevasSite(service)); BH.BoobenRobot.Site.Sites.Add(new SkcSite(service)); BH.BoobenRobot.Site.Sites.Add(new VeloSite(service)); BH.BoobenRobot.Site.Sites.Add(new IxbtSite(service)); BH.BoobenRobot.Site.Sites.Add(new AutouaSite(service)); BH.BoobenRobot.Site.Sites.Add(new FinSite(service)); BH.BoobenRobot.Site.Sites.Add(new GratisSite(service)); BH.BoobenRobot.Site.Sites.Add(new CyberSite(service)); }
public SearchengineSite(FTService service) : base(service) { BaseUrl = "searchengines.guru"; Code = "search"; SiteEncoding = Encoding.UTF8; PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
public GotaiSite(FTService service) : base(service) { BaseUrl = "gamedev.ru"; Code = "gotai"; SiteEncoding = Encoding.UTF8; PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
public IxbtSite(FTService service) : base(service) { BaseUrl = "ixbt.com"; Code = "ixbt"; SiteEncoding = Encoding.GetEncoding("windows-1251"); PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
public PravdaSite(FTService service) : base(service) { BaseUrl = "pravda.com.ua"; Code = "pravda"; SiteEncoding = Encoding.UTF8; PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
public FinSite(FTService service) : base(service) { BaseUrl = "finance.ua"; Code = "fin"; SiteEncoding = Encoding.UTF8; PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
public SevasSite(FTService service) : base(service) { BaseUrl = "sevastopol.info"; Code = "sevas"; SiteEncoding = Encoding.UTF8; PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
public GamedevSite(FTService service) : base(service) { BaseUrl = "gamedev.ru"; Code = "game"; SiteEncoding = Encoding.GetEncoding("windows-1251"); PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
public SkcSite(FTService service) : base(service) { BaseUrl = "skoda-club.org.ua"; Code = "skc"; SiteEncoding = Encoding.UTF8; PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
public HabrSite(FTService service) : base(service) { BaseUrl = "habrahabr.ru"; Code = "habr"; SiteEncoding = Encoding.UTF8; PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
public VeloSite(FTService service) : base(service) { BaseUrl = "velokyiv.com"; Code = "velo"; SiteEncoding = Encoding.UTF8; PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
public Site(FTService service) { _service = service; //by default SiteEncoding = Encoding.UTF8; PageDelay = TimeSpan.FromSeconds(1); SiteDelay = TimeSpan.FromHours(4); ErrorDelay = TimeSpan.FromMinutes(15); }
private void StartService() { WriteLog("Start Service", EventLogEntryType.Information); //start web service try { var conf = FTService.GetDefaultConfiguration(); var directory = ConfigurationManager.AppSettings["IndexPath"]; if (!Directory.Exists(directory)) { directory = Path.Combine(CurrentDirectory, directory); } conf.SetIndexPath(directory); conf.LimitUsedMemory = ulong.Parse(ConfigurationManager.AppSettings["LimitUsedMemory"]); _fts.SetConfiguration(conf); _fts.Start(); FTService.StartWebservice(_fts, ConfigurationManager.AppSettings["URL"], LoadDocumentContent, ex => { WriteLog(ex.Message + ex.StackTrace, EventLogEntryType.Error); }); WriteLog("Service started.", EventLogEntryType.Information); } catch (Exception ex) { WriteLog(ex.Message + ex.StackTrace, EventLogEntryType.Error); Stop(); throw ex; } }
private void UpdateInstanceInfo(FTService fts) { var info = fts.GetInfo(); lbInstanceInfo.Text = "Version: " + info.Version.ToString() + "\n" + "UsedMemory: " + info.UsedMemory.ToString() + "\n" + "TotalMemory: " + info.TotalMemory.ToString() + "\n" + "LastNameIDRAM: " + info.LastNameIDRAM.ToString() + "\n" + "LastNameIDHDD: " + info.LastNameIDHDD.ToString() + "\n" + "CountWordsRAM: " + info.CountWordsRAM.ToString() + "\n" + "CountWordsHDD: " + info.CountWordsHDD.ToString() + "\n" + "DocumentNameSize: " + info.DocumentNameSize.ToString() + "\n" + "WordsHeaderBase: " + info.WordsHeaderBase.ToString() + "\n" + "LastErrorMessage: " + info.LastErrorMessage.ToString() + "\n"; lbInstanceInfo.Update(); if (info.HasError) { throw new ApplicationException(info.LastErrorMessage); } }
public Storage(FTService ftService) { _ftService = ftService; }
private bool IndexFiles(FTService fts, string rootPath, string currPath) { bool res = false; DirectoryInfo di = new DirectoryInfo(currPath); foreach (DirectoryInfo subDi in di.GetDirectories("*", SearchOption.AllDirectories)) { res |= IndexFiles(fts, rootPath, subDi.FullName); } foreach (FileInfo fi in di.GetFiles()) { string extension = fi.Extension.ToLower(); //if(extension == ".zip") //{ // using (FileStream zipToOpen = new FileStream(fi.FullName, FileMode.Open)) // { // using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Read)) // { // foreach (ZipArchiveEntry zipEntry in archive.Entries) // { // using (StreamReader sr = new StreamReader(zipEntry.Open(), Encoding.UTF8)) // { // readTime.Start(); // string text = sr.ReadToEnd(); // readTime.Stop(); // this.IndexFile(fi.FullName + "\\" + zipEntry.FullName, text); // } // GC.Collect(); // } // } // } //} //else if ((extension == ".txt" || extension == ".html" || extension == ".cs" || extension == ".vb" || extension == ".cpp" || extension == ".fb2" || extension == ".log" || extension == ".csv" || extension == ".xml")) { long maxSize = 1024 * 1024 * 10; string fullName = fi.FullName.Replace(rootPath, ""); if (fi.Length < maxSize) //10mb { readTime.Start(); string text = FTSearch.ReadFileText(fi.FullName); readTime.Stop(); res |= this.IndexFile(fullName, text); } else { using (StreamReader sr = new StreamReader(fi.FullName)) { for (long i = 0; i < fi.Length; i += maxSize) { long size; if (i + maxSize < fi.Length) { size = maxSize; } else { size = fi.Length - i; } char[] buffer = new char[size + 1]; readTime.Start(); sr.Read(buffer, 0, (int)size); readTime.Stop(); res |= this.IndexFile(fullName, new string(buffer)); } } } } } return(res); }