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); }
public void Handle(CrawlHandler cacheHandler) { if (FilesToHandle.Count == 0) { return; } cacheHandler.SetLanguage(Plugin.GetLanguage()); Plugin.Crawl(FilesToHandle, (line) => cacheHandler.Handle(line)); FilesToHandle.Clear(); }
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); } }
/// <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}"); } }
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); }
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); } }
public Crawler(CrawlHandler handler) { _handler = handler; }
public void Setup() { _cache = new Fake_Cache(); _crawlHandler = new CrawlHandler(_cache, (s) => {}); }