From 192dbabbd682f88803e340c63c595994b1aeed1d Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Mon, 23 Jul 2018 14:43:11 +0200 Subject: [PATCH] Correction liens --- AideDeJeu/AideDeJeu/Tools/Helpers.cs | 5 + AideDeJeu/AideDeJeuCmd/Program.cs | 148 +++++++++++++++++++-------- Data/spells_hd.md | 2 +- 3 files changed, 113 insertions(+), 42 deletions(-) diff --git a/AideDeJeu/AideDeJeu/Tools/Helpers.cs b/AideDeJeu/AideDeJeu/Tools/Helpers.cs index 9d3a7e78..01a11a50 100644 --- a/AideDeJeu/AideDeJeu/Tools/Helpers.cs +++ b/AideDeJeu/AideDeJeu/Tools/Helpers.cs @@ -23,6 +23,11 @@ namespace AideDeJeu.Tools } } + public static IEnumerable GetResourceNames() + { + var assembly = typeof(Helpers).GetTypeInfo().Assembly; + return assembly.GetManifestResourceNames(); + } public static async Task GetResourceStringAsync(string resourceName) { var assembly = typeof(Helpers).GetTypeInfo().Assembly; diff --git a/AideDeJeu/AideDeJeuCmd/Program.cs b/AideDeJeu/AideDeJeuCmd/Program.cs index 7484a142..590386eb 100644 --- a/AideDeJeu/AideDeJeuCmd/Program.cs +++ b/AideDeJeu/AideDeJeuCmd/Program.cs @@ -120,10 +120,91 @@ namespace AideDeJeuCmd await SaveStringAsync(dataDir + "spells_hd_by_class_level.md", result); } + static async Task> GetAllAnchorsAsync() + { + var anchors = new List(); + var allitems = new Dictionary(); + var names = Helpers.GetResourceNames(); + foreach(var name in names) + { + if (name.Contains("_hd.")) + { + var md = await Helpers.GetResourceStringAsync(name); + var item = AideDeJeu.Tools.MarkdownExtensions.ToItem(md); + allitems.Add(name, item); + } + } + foreach(var allitem in allitems) + { + if (allitem.Value is Items) + { + var items = allitem.Value as Items; + foreach (var item in items) + { + if (!string.IsNullOrWhiteSpace(item.Name)) + { + //Console.WriteLine(item.Name); + anchors.Add(item.Name); + } + } + } + else if(allitem.Value != null) + { + if (!string.IsNullOrWhiteSpace(allitem.Value.Name)) + { + //Console.WriteLine(allitem.Value.Name); + anchors.Add(allitem.Value.Name); + } + } + } + return anchors; + } + + static async Task SearchAsync(string anchor) + { + var first = true; + var names = Helpers.GetResourceNames(); + foreach (var name in names) + { + var md = await Helpers.GetResourceStringAsync(name); + using (var reader = new StringReader(md)) + { + var line = await reader.ReadLineAsync(); + while (line != null) + { + if (line.FirstOrDefault() != '#' && + !line.StartsWith("- AltName") && + line.Contains(anchor) && + !line.Contains($"[{anchor}") && + !line.Contains($"{anchor}]") + ) + { + if (first) + { + first = false; + Console.WriteLine(); + Console.WriteLine(anchor); + Console.WriteLine(); + } + Console.WriteLine(line); + Console.WriteLine(); + } + line = await reader.ReadLineAsync(); + } + } + } + //Console.WriteLine(); + } + static async Task Main(string[] args) { string dataDir = @"..\..\..\..\..\Data\"; await CheckAllLinks(); + //var anchors = await GetAllAnchorsAsync(); + //foreach(var anchor in anchors) + //{ + // await SearchAsync(anchor); + //} return; var mdVO = await LoadStringAsync(dataDir + "monsters_vo.md"); var mdVF = await LoadStringAsync(dataDir + "monsters_hd.md"); @@ -169,28 +250,23 @@ namespace AideDeJeuCmd { string dataDir = @"..\..\..\..\..\Data\"; - var mdMonstersVO = await LoadStringAsync(dataDir + "monsters_vo.md"); - var mdMonstersHD = await LoadStringAsync(dataDir + "monsters_hd.md"); - var mdSpellsVO = await LoadStringAsync(dataDir + "spells_vo.md"); - var mdSpellsHD = await LoadStringAsync(dataDir + "spells_hd.md"); - var mdConditionsVO = await LoadStringAsync(dataDir + "conditions_vo.md"); - var mdConditionsHD = await LoadStringAsync(dataDir + "conditions_hd.md"); - + var allmds = new Dictionary(); var allanchors = new Dictionary>(); - allanchors.Add("conditions_hd", GetMarkdownAnchors(mdConditionsHD).ToList()); - allanchors.Add("conditions_vo", GetMarkdownAnchors(mdConditionsVO)); - allanchors.Add("spells_hd", GetMarkdownAnchors(mdSpellsHD)); - allanchors.Add("spells_vo", GetMarkdownAnchors(mdSpellsVO)); - allanchors.Add("monsters_hd", GetMarkdownAnchors(mdMonstersHD)); - allanchors.Add("monsters_vo", GetMarkdownAnchors(mdMonstersVO)); - var alllinks = new Dictionary>>(); - alllinks.Add("spells_hd", GetMarkdownLinks(mdSpellsHD)); - alllinks.Add("spells_vo", GetMarkdownLinks(mdSpellsVO)); - alllinks.Add("monsters_hd", GetMarkdownLinks(mdMonstersHD)); - alllinks.Add("monsters_vo", GetMarkdownLinks(mdMonstersVO)); - alllinks.Add("conditions_hd", GetMarkdownLinks(mdConditionsHD)); - alllinks.Add("conditions_vo", GetMarkdownLinks(mdConditionsVO)); + var allnames = new Dictionary>(); + var resnames = Helpers.GetResourceNames(); + foreach (var resname in resnames) + { + if (resname.Contains(".md")) + { + var name = resname.Substring(15, resname.Length - 18); + var md = await Helpers.GetResourceStringAsync(resname); + allmds.Add(name, md); + allanchors.Add(name, GetMarkdownAnchors(md).ToList()); + alllinks.Add(name, GetMarkdownLinks(md)); + allnames.Add(name, GetMarkdownAnchorNames(md)); + } + } foreach (var links in alllinks) { @@ -205,26 +281,16 @@ namespace AideDeJeuCmd } } - var allnames = new Dictionary>(); - allnames.Add("conditions_hd", GetMarkdownAnchorNames(mdConditionsHD)); - allnames.Add("conditions_vo", GetMarkdownAnchorNames(mdConditionsVO)); - allnames.Add("spells_hd", GetMarkdownAnchorNames(mdSpellsHD)); - allnames.Add("spells_vo", GetMarkdownAnchorNames(mdSpellsVO)); - allnames.Add("monsters_hd", GetMarkdownAnchorNames(mdMonstersHD)); - allnames.Add("monsters_vo", GetMarkdownAnchorNames(mdMonstersVO)); - - foreach (var names in allnames) - { - foreach (var name in names.Value) - { - FindName(mdSpellsHD, name); - FindName(mdSpellsVO, name); - FindName(mdMonstersHD, name); - FindName(mdMonstersVO, name); - FindName(mdConditionsHD, name); - FindName(mdConditionsVO, name); - } - } + //foreach (var names in allnames) + //{ + // foreach (var name in names.Value) + // { + // foreach(var mdkv in allmds) + // { + // FindName(mdkv.Value, name); + // } + // } + //} } public static void FindName(string md, string name) @@ -267,7 +333,7 @@ namespace AideDeJeuCmd public static IEnumerable GetMarkdownAnchorNames(string md) { - var regex = new Regex($"\\n# (?.*?)\\n"); + var regex = new Regex($"\\n##? (?.*?)\\n"); var matches = regex.Matches(md); foreach (Match match in matches) { diff --git a/Data/spells_hd.md b/Data/spells_hd.md index 065537d3..d573fddf 100644 --- a/Data/spells_hd.md +++ b/Data/spells_hd.md @@ -9396,7 +9396,7 @@ Une créature affectée est consciente du sort qui la limite et peut donc soigne [Guerrier]: fighter_hd.md [Magicien]: wizard_hd.md [Moine]: monk_hd.md -[Ombrelame]: rogue_hd.md#ombrelame +[Ombrelame]: rogue_ombrelame_hd.md [Paladin]: paladin_hd.md [Rôdeur]: ranger_hd.md [Roublard]: rogue_hd.md