示例#1
0
        public SmartCrawler(string name, string url, string pathOutput, string[] urlAcceptWords, string[] ignoreKeywords, int dept)
        {
            Name           = name;
            Url            = url;
            CountRun       = 0;
            OutputFile     = pathOutput;
            UrlKeyWords    = urlAcceptWords;
            Depth          = dept;
            Step           = 0;
            IgnoreKeywords = ignoreKeywords;
            InitSchedules();
            UrlSmart = new SmartUrl(Url);
            Page     = new WebPage(Url);

            if (urlAcceptWords.Length <= 0)
            {
                UrlKeyWords.ToList().Add(Url);
            }

            if (pathOutput == null || pathOutput == string.Empty)
            {
                pathOutput = @"C:\TmpC#\Crawlers\" + Name + ".txt";
            }

            AddResult();

            GetNextUrls();
        }
示例#2
0
        protected void InitFormByUrl()
        {
            var input1 = SmartUrl.ExtractInput(Request.Params, 1);
            var input2 = SmartUrl.ExtractInput(Request.Params, 2);

            // Sync form controls
            if (!string.IsNullOrWhiteSpace(input1.DatabaseName))
            {
                if (ddlDatabase1.Items.FindByValue(input1.DatabaseName) != null)
                {
                    ddlDatabase1.SelectedValue = input1.DatabaseName;
                }
            }
            if (!string.IsNullOrWhiteSpace(input2.DatabaseName))
            {
                if (ddlDatabase2.Items.FindByValue(input2.DatabaseName) != null)
                {
                    ddlDatabase2.SelectedValue = input2.DatabaseName;
                }
            }

            // Item
            txtItemId.Text = input1.ItemId?.ToString();

            // Solr
            if (Configs.IsUsingSolr)
            {
                if (!string.IsNullOrWhiteSpace(input1.SolrIndexes?[0]))
                {
                    ddlIndex1.SelectedValue = input1.SolrIndexes?[0];
                }
                if (!string.IsNullOrWhiteSpace(input2.SolrIndexes?[0]))
                {
                    ddlIndex2.SelectedValue = input2.SolrIndexes?[0];
                }
                if (!string.IsNullOrWhiteSpace(input1.SolrIndexes?[1]))
                {
                    ddlIndex3.SelectedValue = input1.SolrIndexes?[1];
                }
                if (!string.IsNullOrWhiteSpace(input2.SolrIndexes?[1]))
                {
                    ddlIndex4.SelectedValue = input2.SolrIndexes?[1];
                }
            }

            if (input1.ItemId != (ID)null)
            {
                // Field
                LoadFields(input1.ItemId, input1.Database ?? input2.Database);
                ddlField.SelectedValue = input1.FieldId.ToGuid().ToString();

                // and load item into viewer
                LoadItem(input1, input2);
            }
        }
示例#3
0
        protected void InitComponent()
        {
            GrouperService = new ValueGrouper();
            SmartUrl       = new SmartUrl();

            ApiViewer = new ApiViewer(GrouperService, SmartUrl);
            SqlViewer = new SqlViewer(GrouperService, SmartUrl);
            if (Configs.IsUsingSolr)
            {
                SolrViewer = new SolrViewer();
            }

            InitDropDowns();
        }
示例#4
0
 public SmartCrawler(string url)
 {
     if (url.IsUrl())
     {
         UrlSmart = new SmartUrl(url);
         Page     = new WebPage(url);
         Depth    = 0;
         Name     = url;
         CountRun = 0;
         InitSchedules();
     }
     else
     {
         throw new Exception("url is not valid");
     }
 }
示例#5
0
        public async Task <IHttpActionResult> PostLink([FromUri] SmartUrl url)
        {
            if (url.IsEmpty)
            {
                return(BadRequest("Emtpy/Bad Url"));
            }

            Uri PunyUrl = await shortener.ProcessAsync(url);

            Domain.Entities.PunyUrl punyUrl = await storage.AddOrUpdateAsync(url, PunyUrl);

            return(Ok(new
            {
                topDomain = punyUrl.PartitionKey.FromBase64(),
                puny = punyUrl.RowKey.FromBase64(),
                original = punyUrl.Original
            }));
        }
示例#6
0
        protected void LoadItem(params LensInput[] input)
        {
            // Init values comparison
            GrouperService.Reset();

            // Populate API/Cached results
            ResultApiMaster.Text = ApiViewer.GetHtml(input?[0]);
            ResultApiWeb.Text    = ApiViewer.GetHtml(input?[1]);

            // Populate SQL results
            ResultSqlMaster.Text = SqlViewer.GetHtml(input?[0]);
            ResultSqlWeb.Text    = SqlViewer.GetHtml(input?[1]);

            // Populate Solr results
            if (Configs.IsUsingSolr)
            {
                litIndexesLeft.Text  = SolrViewer.GetHtml(input?[0]);
                litIndexesRight.Text = SolrViewer.GetHtml(input?[1]);
            }
            // Set Share
            litShare.Text = $"<a href=\"?{SmartUrl.ToQueryString(input)}\" class=\"btn btn-secondary\">Share Link</a>";
        }
示例#7
0
        public SmartCrawler(string crawlerTemplate, string crawlerOutput)
        {
            SmartFile _file = new SmartFile(crawlerTemplate);

            string[] _items = _file.Lines[0].Split(new string[] { "|" }, StringSplitOptions.None);
            Name        = _items[0]; //CrawlerName
            Url         = _items[1]; //Url
            OutputFile  = _items[2];
            Depth       = int.Parse(_items[3]);
            UrlKeyWords = _items[4].Split(new string[] { ";" }, StringSplitOptions.None).Where(t => t.Length > 0).ToArray();
            InitSchedules();
            CountRun = 0;
            Step     = 0;

            if (!string.IsNullOrWhiteSpace(_items[5]))
            {
                IgnoreKeywords = _items[5].Split(new string[] { ";" }, StringSplitOptions.None).Where(t => t.Length > 0).ToArray();
            }

            if (OutputFile == null || OutputFile == string.Empty)
            {
                OutputFile = @"C:\TmpC#\Crawlers\" + Name + ".txt";
            }

            UrlSmart = new SmartUrl(Url);
            Page     = new WebPage(Url);

            OutputFile = crawlerOutput + OutputFile;

            if (!File.Exists(OutputFile))
            {
                File.Create(OutputFile);
                File.WriteAllText(OutputFile, "Crawler " + Name);
            }
            AddResult();

            NextUrls = new List <string>();
            NextUrls = Page.HtmlSmart.InternalLinks.Where(t => t.IsUrl() && IsAccept(t)).Distinct().ToList();
        }
示例#8
0
 public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
 {
     return(SmartUrl.Parse(value as string));
 }