Exemplo n.º 1
0
        private static void initPlugins(PluginLocator locator)
        {
            var plugins = locator.Locate();

            foreach (var plugin in plugins)
            {
                try {
                    plugin.Initialize(_path);
                    plugin.GetCrawlFileTypes();
                    ThreadPool.QueueUserWorkItem(
                        (o) => {
                        try {
                            var currentPlugin = (LanguagePlugin)o;
                            var handler       = new CrawlHandler(_cache, (s) => Logger.Write(s));
                            handler.SetLanguage(currentPlugin.GetLanguage());
                            currentPlugin.Crawl(new string[] { _path }, (line) => handler.Handle(line));
                        } catch (Exception ex) {
                            Logger.Write(ex.ToString());
                        }
                    },
                        plugin);
                } catch (Exception ex) {
                    Logger.Write(ex.ToString());
                }
            }
            Logger.Write("Plugins initialized");
        }
 public async Task ShouldCrawl()
 {
     await CrawlHandler.ProcessAsync(
         new Configuration("http://google.com/", Path.Combine(Path.GetTempPath(), "TestFileWrite"))
     {
         Depth = 1,
         Mode  = TraversalMode.SameHost
     }).ConfigureAwait(false);
 }
Exemplo n.º 3
0
 public void Handle(CrawlHandler cacheHandler)
 {
     if (FilesToHandle.Count == 0)
     {
         return;
     }
     cacheHandler.SetLanguage(Plugin.GetLanguage());
     Plugin.Crawl(FilesToHandle, (line) => cacheHandler.Handle(line));
     FilesToHandle.Clear();
 }
Exemplo n.º 4
0
 public void Handle(CrawlHandler cacheHandler)
 {
     if (FilesToHandle.Count == 0)
     {
         return;
     }
     try {
         cacheHandler.SetLanguage(Plugin.GetLanguage());
         Plugin.Crawl(FilesToHandle, (line) => cacheHandler.Handle(line));
         FilesToHandle.Clear();
     } catch (Exception ex) {
         Logger.Write(ex);
     }
 }
Exemplo n.º 5
0
        /// <summary>
        ///     An example usage of crawler.
        /// </summary>
        private static async Task Main()
        {
            var result = await CrawlHandler.ProcessAsync(
                new Configuration("http://google.com/", "${TempPath}\\TestFileWrite")
            {
                Depth = 2,
                Mode  = TraversalMode.AnyHost
            }).ConfigureAwait(false);

            foreach (var(uri, exception) in result.FailedUris)
            {
                Console.WriteLine($"{uri}: {exception}");
            }
        }
Exemplo n.º 6
0
        private void consoleSearch(Instance instance, string search)
        {
            var result       = instance.FindTypes(search);
            var searchResult = new SearchResult();
            var handler      = new CrawlHandler(searchResult, (s) => {});

            handler.TypeSearchAllTheThings();
            result
            .Split(new[] { Environment.NewLine }, StringSplitOptions.None)
            .ToList()
            .ForEach(x => {
                var line           = x;
                var signatureStart = line.IndexOf("|signature|");
                if (signatureStart > 0)
                {
                    line = line.Substring(signatureStart + 1, line.Length - (signatureStart + 1));
                }
                handler.Handle(line);
            });
            for (int i = 0; i < searchResult.Signatures.Count; i++)
            {
                Console.WriteLine("{0} - {1}",
                                  i + 1,
                                  searchResult.Signatures[i].Signature);
            }
            if (searchResult.Signatures.Count == 0)
            {
                return;
            }
            var selection = Console.ReadLine();
            int number;

            if (!int.TryParse(selection, out number))
            {
                return;
            }
            if (number < 1 || number > (searchResult.Signatures.Count))
            {
                return;
            }
            var signature = searchResult.Signatures[number - 1];
            var editor    = _editorEngineFactory.GetInstance(Environment.CurrentDirectory);

            if (editor == null)
            {
                return;
            }
            editor.GoTo(signature.File, signature.Line, signature.Column);
        }
Exemplo n.º 7
0
        private void handleChanges(Stack <Change> buffer)
        {
            var cacheHandler = new CrawlHandler(_crawlReader, (s) => Logger.Write(s));
            var files        = getChanges(buffer);

            files.ForEach(x =>
            {
                _cache.Invalidate(x.Path);
                handle(x);
            });
            foreach (var plugin in _plugins)
            {
                plugin.Handle(cacheHandler);
            }
        }
Exemplo n.º 8
0
 public Crawler(CrawlHandler handler)
 {
     _handler = handler;
 }
Exemplo n.º 9
0
 public void Setup()
 {
     _cache        = new Fake_Cache();
     _crawlHandler = new CrawlHandler(_cache, (s) => {});
 }