IEnumerable <TemplateRef> GetTemplateRefs(IEnumerable <string> input) { List <TemplateRef> items = new List <TemplateRef>(); foreach (var templateidStr in SitemapUtils.FilterComments(input)) { try { int templateId; if (int.TryParse(templateidStr, out templateId)) { var templateFolder = Asset.Load(templateId); if (templateFolder.IsLoaded) { items.Add(new TemplateRef(templateFolder.AssetPath.ToString(), templateFolder.Id)); } } } catch (Exception ex) { throw new ApplicationException(string.Format("Failed while processing '{0}': {1}", templateidStr, ex.Message), ex); } } return(items); }
IEnumerable <TemplateRef> GetTemplateRefs(PanelEntry panel) { var input = SitemapUtils.SplitMultilineInput(panel.Raw["exclude_templates"]); var templateRefs = GetTemplateRefs(input); return(templateRefs); }
IEnumerable <TemplateRef> GetTemplateRefs(Asset asset) { var input = SitemapUtils.SplitMultilineInput(asset.Raw["exclude_templates"]); var templateRefs = GetTemplateRefs(input); return(templateRefs); }
/// <summary> /// Retrieves ignored paths from 'ignored_paths' field /// </summary> /// <param name="siteroot_asset"></param> /// <returns></returns> public IEnumerable <Regex> GetIgnoredPaths(Asset siteroot_asset) { var regex_list = SitemapUtils.SplitMultilineInput(siteroot_asset.Raw["ignored_paths"]) .Select(_ => CPContrib.SiteMap.SitemapUtils.PathspecToRegex(_)).ToArray(); return(regex_list); }
public void SplitMultilineInput() { //simulates a multiline textbox in crownpeak Input.ShowTextBox(multiline:true) var rawinput = "Line 1\r\nLine 2\r\nLine 3"; var expected = new string[] { "Line 1", "Line 2", "Line 3" }; var split = SitemapUtils.SplitMultilineInput(rawinput); split.Should().ContainInOrder(expected); }
public void ParseOverrides2() { var pathspec = "/Arbor Memorial/(en|fr)/What We Do/*"; var input = pathspec + @" => {""priority"":0.8}"; var expected = new Override() { PathSpec = pathspec, PathSpecRegex = SitemapUtils.PathspecToRegex(pathspec), OverrideProperties = new Serialization.@override() { changefreq = null, priority = 0.8f } }; var sitemapinput = CreateSitemapInput(); var overrides = sitemapinput._ParseOverrides(new string[] { input }); overrides.Should().BeEquivalentTo(expected); }
public void ParseOverrides(string input, string pathspec_value) { var expected = new Override() { PathSpec = pathspec_value, PathSpecRegex = SitemapUtils.PathspecToRegex(pathspec_value), OverrideProperties = new Serialization.@override() { changefreq = "daily", priority = 0.5f } }; var lines = new string[] { input }; var sitemapinput = CreateSitemapInput(); var overrides = sitemapinput._ParseOverrides(lines); overrides.Should().HaveCount(1); overrides.Should().Equal(expected); }
internal IEnumerable <UrlMetaEntry> _ParseOverrides(IEnumerable <string> input) { var parsedOverrides = new List <UrlMetaEntry>(); Regex r = new Regex(@"(.*)\s=>\s(.*)"); foreach (var line in input) { var m = r.Match(line); if (m.Success) { var overrideEntry = new UrlMetaEntry() { PathSpec = m.Groups[1].Value, PathSpecRegex = SitemapUtils.PathspecToRegex(m.Groups[1].Value), Meta = (CPContrib.SiteMap.Serialization.UrlMeta)Util.DeserializeDataContractJson(m.Groups[2].Value, typeof(CPContrib.SiteMap.Serialization.UrlMeta)) }; parsedOverrides.Add(overrideEntry); } } return(parsedOverrides); }
public override void Execute(CommandContext context) { var siteName = context.Parameters["siteName"]; var siteGroupName = context.Parameters["siteGroupName"]; if (string.IsNullOrWhiteSpace(siteName) && string.IsNullOrWhiteSpace(siteGroupName)) { return; } var generationIndex = $"sitemap-{(string.IsNullOrWhiteSpace(siteName) ? siteGroupName : siteName)}"; var coreDb = Factory.GetDatabase("core"); var previousGeneration = coreDb.Properties[generationIndex]; if (string.IsNullOrWhiteSpace(previousGeneration)) { SitemapUtils.Generate(siteName, siteGroupName); coreDb.Properties[generationIndex] = DateUtil.IsoNow; return; } var previousGenerationDateTime = DateUtil.IsoDateToDateTime(previousGeneration); var currentDateTime = DateUtil.IsoDateToDateTime(DateUtil.IsoNow); var possibleRunDateTime = previousGenerationDateTime.AddSeconds(_localDelay); if (possibleRunDateTime > currentDateTime) { var remainingTime = possibleRunDateTime - currentDateTime; SheerResponse.Alert($"Unable to generate sitemap. Must wait {remainingTime.Minutes} minute{(remainingTime.Minutes == 1 ? "" : "s")} {remainingTime.Seconds} second{(remainingTime.Seconds == 1 ? "" : "s")} before attempting to manually regenerate sitemap"); return; } SitemapUtils.Generate(siteName, siteGroupName); coreDb.Properties[generationIndex] = DateUtil.IsoNow; }
public IEnumerable <UrlMetaEntry> GetDefaults(Asset asset) { var input = SitemapUtils.SplitMultilineInput(asset.Raw["sm_defaults"]); return(_ParseOverrides(input)); }
public IEnumerable <UrlMetaEntry> GetOverrides(PanelEntry panel) { var input = SitemapUtils.SplitMultilineInput(panel.Raw["sm_overrides"]); return(_ParseOverrides(input)); }