//using System; //using ln.http.resources; //using ln.skyscanner.entities; //using System.Linq; //using ln.types; //using System.Net; //using ln.types.threads; //using ln.types.net; //namespace ln.skyscanner.http //{ // public class CrawlerApi : JsonCallResource // { // public SkyScanner SkyScanner { get; } // public Crawler Crawler => SkyScanner.Crawler; // public CrawlerApi(Resource container, SkyScanner skyScanner) // : base(container, "crawler") // { // SkyScanner = skyScanner; // } // [Callable] // public CrawledSubnet[] GetSubnets() // { // return SkyScanner.Instance.Entities.CrawledSubnets.ToArray(); // } // [Callable] // public CrawledHost[] GetHosts() // { // CrawledHost[] result = SkyScanner.Instance.Entities.CrawledHosts.ToArray(); // return result; // } // [Callable] // public CrawledHost GetHostByIP(string _ip) // { // return SkyScanner.Crawler.FindHostForIP(IPv4.Parse(_ip)); // } // [Callable] // public CrawledHost AddHost(string _ip, string name) // { // IPv4 ip = IPv4.Parse(_ip); // CrawledHost host = SkyScanner.Crawler.FindHostForIP(ip); // host.Name = name; // SkyScanner.Instance.Entities.CrawledHosts.Upsert(host); // return host; // } // [Callable] // public void TriggerRecrawl() // { // foreach (CrawledHost host in SkyScanner.Instance.Entities.CrawledHosts.ToArray()) // { // host.NextCheck = DateTime.Now; // SkyScanner.Instance.Entities.CrawledHosts.Upsert(host); // } // } // [Callable] // public void Crawl(string _id) // { // Guid hostID = Guid.Parse(_id); // SkyScanner.Crawler.Crawl(hostID); // } // [Callable] // public PoolJob[] GetCurrentPoolJobs() // { // return SkyScanner.Crawler.CurrentJobs; // } // [Callable] // public PoolJob[] GetQueuedJobs() // { // return SkyScanner.Crawler.QueuedJobs; // } // [Callable] // public bool GetCrawlSubnets() // { // return SkyScanner.Crawler.CrawlSubnets; // } // [Callable] // public void SetCrawlSubnets(bool enable) // { // SkyScanner.Crawler.CrawlSubnets = enable; // } // [Callable] // public bool GetCrawlHosts() // { // return SkyScanner.Crawler.CrawlHosts; // } // [Callable] // public void SetCrawlHosts(bool enable) // { // SkyScanner.Crawler.CrawlHosts = enable; // } // [Callable] // public void ToggleCrawlHosts() // { // SkyScanner.Crawler.CrawlHosts = !SkyScanner.Crawler.CrawlHosts; // } // [Callable] // public void ToggleCrawlSubnets() // { // SkyScanner.Crawler.CrawlSubnets = !SkyScanner.Crawler.CrawlSubnets; // } // [Callable] // public Network4[] GetBlockedNetworks() // { // return SkyScanner.Instance.Entities.BlockedNetworks.ToArray(); // } // [Callable] // public void AddBlockedNetwork(string _network) // { // Network4 blocked = Network4.Parse(_network); // if (!SkyScanner.Instance.Entities.BlockedNetworks.Contains(blocked)) // { // SkyScanner.Instance.Entities.BlockedNetworks.Insert(blocked); // } // } // [Callable] // public void RemoveBlockedNetwork(string _network) // { // Network4 blocked = Network4.Parse(_network); // foreach (Network4 blockedNetwork in SkyScanner.Instance.Entities.BlockedNetworks) // { // if (blockedNetwork.Equals(blocked)) // { // SkyScanner.Instance.Entities.BlockedNetworks.Delete(blockedNetwork); // return; // } // } // } // } //}