Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
 public void Start(FTService ftService)
 {
     Storage       = new Storage(ftService);
     QueueIndexing = new QueueIndexing();
     Scheduler     = new Scheduler(GetTimeTable(), ScanAndIndex);
     Scheduler.Start();
 }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
 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);
 }
Esempio n. 6
0
 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);
 }
Esempio n. 7
0
 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);
 }
Esempio n. 8
0
 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);
 }
Esempio n. 9
0
 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);
 }
Esempio n. 10
0
 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);
 }
Esempio n. 11
0
 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);
 }
Esempio n. 12
0
 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);
 }
Esempio n. 13
0
 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);
 }
Esempio n. 14
0
        public Site(FTService service)
        {
            _service = service;

            //by default
            SiteEncoding = Encoding.UTF8;
            PageDelay    = TimeSpan.FromSeconds(1);
            SiteDelay    = TimeSpan.FromHours(4);
            ErrorDelay   = TimeSpan.FromMinutes(15);
        }
Esempio n. 15
0
        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;
            }
        }
Esempio n. 16
0
        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);
            }
        }
Esempio n. 17
0
 public Storage(FTService ftService)
 {
     _ftService = ftService;
 }
Esempio n. 18
0
        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);
        }