From 0a14530315a779c72c1f2ea10c122fe6921e52ba Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 16 Jun 2024 10:29:51 +0200 Subject: [PATCH] Separada la clase Obsidean como una librerira --- GTPCorrgir.csproj | 6 ++ Obsidean.cs | 144 ---------------------------------------------- gtpask.cs | 1 + 3 files changed, 7 insertions(+), 144 deletions(-) delete mode 100644 Obsidean.cs diff --git a/GTPCorrgir.csproj b/GTPCorrgir.csproj index 74acb60..6fe1626 100644 --- a/GTPCorrgir.csproj +++ b/GTPCorrgir.csproj @@ -26,5 +26,11 @@ + + + ..\Libraries\libObsidean\bin\Debug\net8.0-windows\libObsidean.dll + + + diff --git a/Obsidean.cs b/Obsidean.cs deleted file mode 100644 index caf1aa7..0000000 --- a/Obsidean.cs +++ /dev/null @@ -1,144 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.IO; -using Newtonsoft.Json.Linq; -using System.Text.RegularExpressions; - - -namespace GTPCorrgir -{ - internal class Obsidean - { - static HashSet technicalTerms; - - static string GetObsidianConfigPath() - { - string appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - return Path.Combine(appDataPath, "obsidian", "obsidian.json"); - } - - static string GetVaultPath(string vaultName) - { - try - { - string pathToJsonFile = GetObsidianConfigPath(); - string jsonContent = File.ReadAllText(pathToJsonFile); - JObject jsonObject = JObject.Parse(jsonContent); - JObject vaults = (JObject)jsonObject["vaults"]; - - foreach (var vault in vaults) - { - // 'vault' es un KeyValuePair - // 'vault.Key' es la clave (ID del vault), 'vault.Value' es el valor (detalles del vault como JToken) - string path = (string)vault.Value["path"]; - if (!string.IsNullOrEmpty(path)) - { - // Añadir una barra al final asegura que Path.GetDirectoryName funcione correctamente - string lastDirectoryName = Path.GetFileName(Path.GetDirectoryName(path.TrimEnd('\\') + "\\")); - - if (lastDirectoryName.Equals(vaultName, StringComparison.OrdinalIgnoreCase)) - { - return path; - } - } - } - } - catch (Exception ex) - { - Console.WriteLine("Error al leer o parsear el archivo JSON: " + ex.Message); - } - return null; - } - - public void LeerPalabrasTecnicas() - { - // "C:\Users\migue\OneDrive\Miguel\Obsidean\Trabajo\VM\Palabras Tecnicas\Lista.md" - string pathToMarkdown = GetVaultPath("VM"); - if (!string.IsNullOrEmpty(pathToMarkdown)) - { - string pathToLista = pathToMarkdown + "\\Palabras Tecnicas\\Lista.md"; - string[] lines = File.ReadAllLines(pathToLista); - technicalTerms = ExtractTechnicalTerms(lines); - } - - // Ahora puedes usar technicalTerms para tu lógica de corrección - } - - public HashSet ExtractTechnicalTerms(string[] lines) - { - var terms = new HashSet(); - foreach (var line in lines) - { - // Suponiendo que cada línea contiene un término técnico - terms.Add(line.Trim()); - } - return terms; - } - - public string MarkTechnicalTerms(string text) - { - // Utilizar Regex para identificar palabras individualmente - return Regex.Replace(text, @"\b(\w+)\b", match => - { - string word = match.Groups[1].Value; - // Verificar si la palabra está en el conjunto de términos técnicos - if (technicalTerms.Contains(word)) - { - return $"[[{word}]]"; // Encerrar la palabra en corchetes si es técnica - } - return word; // Devolver la palabra sin modificar si no es técnica - }); - } - - public string MarkTechnicalTerms_IgnoreCase(string text) - { - // Utilizar Regex para identificar palabras individualmente, ignorando mayúsculas y minúsculas - return Regex.Replace(text, @"\b(\w+)\b", match => - { - string word = match.Groups[1].Value; - // Verificar si la palabra está en el conjunto de términos técnicos, ignorando mayúsculas y minúsculas - if (technicalTerms.Contains(word, StringComparer.OrdinalIgnoreCase)) - { - return $"[[{word}]]"; // Encerrar la palabra en corchetes si es técnica - } - return word; // Devolver la palabra sin modificar si no es técnica - }, RegexOptions.IgnoreCase); - } - - public string RemoveTechnicalTermMarkers(string text) - { - // Utilizar Regex para encontrar y remover los dobles corchetes - return Regex.Replace(text, @"\[\[(.*?)\]\]", match => - { - string word = match.Groups[1].Value; - // Verificar si la palabra está en el conjunto de términos técnicos, ignorando mayúsculas y minúsculas - if (technicalTerms.Contains(word)) - { - return word; // Devolver la palabra sin corchetes si es técnica - } - return match.Value; // Devolver la palabra con corchetes si no es técnica - }); - } - - public string RemoveTechnicalTermMarkers_IgnoreCase(string text) - { - // Utilizar Regex para encontrar y remover los dobles corchetes - return Regex.Replace(text, @"\[\[(.*?)\]\]", match => - { - string word = match.Groups[1].Value; - // Verificar si la palabra está en el conjunto de términos técnicos, ignorando mayúsculas y minúsculas - if (technicalTerms.Contains(word.ToLowerInvariant(), StringComparer.OrdinalIgnoreCase)) - { - return word; // Devolver la palabra sin corchetes si es técnica - } - return match.Value; // Devolver la palabra con corchetes si no es técnica - }); - } - - - } - -} diff --git a/gtpask.cs b/gtpask.cs index 908c6f7..1622ea5 100644 --- a/gtpask.cs +++ b/gtpask.cs @@ -10,6 +10,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Diagnostics; using System.Windows.Interop; +using libObsidean; namespace GTPCorrgir {