Пример #1
0
        /** -------------------------------------------------------------------- **/

        private void GenerateTextSitemapPdfEntries(
            MacroscopeDocument msDoc,
            List <string> SitemapText,
            Dictionary <string, Boolean> Dedupe
            )
        {
            foreach (MacroscopeHyperlinkOut HyperlinkOut in msDoc.IterateHyperlinksOut())
            {
                string Url       = HyperlinkOut.GetTargetUrl();
                Uri    UrlParsed = new Uri(uriString: Url);

                if (Dedupe.ContainsKey(Url))
                {
                    continue;
                }
                else
                {
                    Dedupe.Add(Url, true);
                }

                if (!UrlParsed.AbsolutePath.ToLower().EndsWith(".pdf", StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }

                if (!this.DocCollection.GetAllowedHosts().IsAllowedFromUrl(Url: Url))
                {
                    continue;
                }

                if (!MacroscopeUrlUtils.VerifySameHost(BaseUrl: msDoc.GetUrl(), Url: Url))
                {
                    continue;
                }

                SitemapText.Add(Url);
            }
        }
Пример #2
0
        /** -------------------------------------------------------------------- **/

        private void GenerateXmlSitemapPdfEntries(
            MacroscopeDocument msDoc,
            XmlDocument SitemapXml,
            XmlElement UrlSetNode,
            Dictionary <string, Boolean> Dedupe
            )
        {
            foreach (MacroscopeHyperlinkOut HyperlinkOut in msDoc.IterateHyperlinksOut())
            {
                string Url       = HyperlinkOut.GetTargetUrl();
                Uri    UrlParsed = new Uri(uriString: Url);

                if (Dedupe.ContainsKey(Url))
                {
                    continue;
                }
                else
                {
                    Dedupe.Add(Url, true);
                }

                if (!UrlParsed.AbsolutePath.ToLower().EndsWith(".pdf", StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }

                if (!this.DocCollection.GetAllowedHosts().IsAllowedFromUrl(Url: Url))
                {
                    continue;
                }

                if (!MacroscopeUrlUtils.VerifySameHost(BaseUrl: msDoc.GetUrl(), Url: Url))
                {
                    continue;
                }

                XmlElement UrlNode = SitemapXml.CreateElement(string.Empty, "url", MacroscopeSitemapGenerator.XmlNamespace);
                UrlSetNode.AppendChild(UrlNode);

                {
                    XmlElement EntryNode = SitemapXml.CreateElement(string.Empty, "loc", MacroscopeSitemapGenerator.XmlNamespace);
                    XmlText    TextNode  = SitemapXml.CreateTextNode(Url);
                    UrlNode.AppendChild(EntryNode);
                    EntryNode.AppendChild(TextNode);
                }

                {
                    XmlElement EntryNode = SitemapXml.CreateElement(string.Empty, "changefreq", MacroscopeSitemapGenerator.XmlNamespace);
                    XmlText    TextNode  = SitemapXml.CreateTextNode("daily");
                    UrlNode.AppendChild(EntryNode);
                    EntryNode.AppendChild(TextNode);
                }

                {
                    XmlElement EntryNode = SitemapXml.CreateElement(string.Empty, "priority", MacroscopeSitemapGenerator.XmlNamespace);
                    XmlText    TextNode  = SitemapXml.CreateTextNode("1.0");
                    UrlNode.AppendChild(EntryNode);
                    EntryNode.AppendChild(TextNode);
                }
            }
        }