ln.skyscanner/http/CrawlerApi.cs

69 lines
1.6 KiB
C#
Raw Normal View History

2019-03-14 13:31:15 +01:00
using System;
using ln.http.resources;
using ln.skyscanner.entities;
using System.Linq;
2019-03-15 07:43:12 +01:00
using ln.skyscanner.crawl;
using ln.types;
using System.Net;
2019-03-15 15:35:44 +01:00
using ln.types.threads;
2019-03-14 13:31:15 +01:00
namespace ln.skyscanner.http
{
public class CrawlerApi : JsonCallResource
{
public SkyScanner SkyScanner { get; }
public CrawlerApi(Resource container,SkyScanner skyScanner)
:base(container,"crawler")
{
SkyScanner = skyScanner;
}
[Callable]
2019-03-21 14:06:36 +01:00
public CrawledSubnet[] GetSubnets()
2019-03-14 13:31:15 +01:00
{
2019-03-18 08:12:54 +01:00
return SkyScanner.Crawler?.CrawlPool.Subnets.ToArray();
2019-03-15 07:43:12 +01:00
}
[Callable]
public CrawledHost[] GetHosts()
{
return SkyScanner.Crawler?.CrawlPool?.Hosts;
}
[Callable]
public CrawledHost GetHostByIP(string _ip)
{
return SkyScanner.Crawler.CrawlPool.HostForIP(CIDR.Parse(_ip));
}
[Callable]
public CrawledHost AddHost(string _ip, string name)
{
CIDR ip = CIDR.Parse(_ip);
CrawledHost host = SkyScanner.Crawler.CrawlPool.HostForIP(ip);
host.Name = name;
return host;
}
[Callable]
public void Crawl(string _ip)
{
SkyScanner.Crawler.Crawl(CIDR.Parse(_ip));
2019-03-14 13:31:15 +01:00
}
2019-03-15 15:35:44 +01:00
[Callable]
public PoolJob[] GetCurrentPoolJobs()
{
return SkyScanner.Crawler.CurrentJobs;
}
[Callable]
public PoolJob[] GetQueuedJobs()
{
return SkyScanner.Crawler.QueuedJobs;
}
2019-03-14 13:31:15 +01:00
}
}