From cc4df96bac499dcb2336639b9f9eb306c0bd8da2 Mon Sep 17 00:00:00 2001 From: Lothar Buchholz Date: Tue, 16 Jun 2020 01:10:36 +0200 Subject: [PATCH] Version 0.8.1-beta - stop replacements on match - better ooc recognition patterns - keep cases of over-long replacements --- CHANGELOG.md | 7 +++++ Grichelde.toc | 2 +- GricheldeChat.lua | 62 +++++++++++++++++----------------------- GricheldeConstants.lua | 3 +- GricheldeDatabase.lua | 1 + GricheldeOptions.lua | 2 -- GricheldeUpgrade.lua | 2 ++ README.md | 16 +++++++---- localisation/deDE.lua | 6 ++-- localisation/enUS.lua | 4 ++- twitch/minimap-icon.png | Bin 13660 -> 41477 bytes 11 files changed, 57 insertions(+), 48 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d82340d..24a20b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Version 0.8.1-beta - 2020-06-16 +### Added +- stop replacements per mapping +- more ooc recognition patterns +### Fixed +- keep cases of over-long replacements + ## Version 0.8.0-beta - 2020-06-14 [Feature Complete] ### Added - handle replacement via slash command diff --git a/Grichelde.toc b/Grichelde.toc index 20c5629..07f492d 100644 --- a/Grichelde.toc +++ b/Grichelde.toc @@ -3,7 +3,7 @@ ## Title: Grichelde ## Notes: Replaces characters from the chat box ## Notes-de: Ersetzt eingegebene Zeichen in der Chat-Zeile -## Version: 0.8.0-beta +## Version: 0.8.1-beta ## Author: Teilzeit-Jedi ## eMail: tj@teilzeit-jedi.de diff --git a/GricheldeChat.lua b/GricheldeChat.lua index 88b527d..9143aae 100644 --- a/GricheldeChat.lua +++ b/GricheldeChat.lua @@ -95,31 +95,6 @@ local function IsOneBigEmote(this, text) return isOneBigEmote end ---[[ ---- Detect OOC in text, patterns are (( ooc )) or ooc: -local function IsOoc(this, text) - local firstWord, _ = this:SplitOnFirstMatch(text) - assert(firstWord ~= nil, "firstWord is never nil") - - -- scheme: (( ooc )) - if sub(firstWord, 1, 2) == "((" then - -- search for emote end - local _, oocEnd = find(text, "%)%)", 3) - if (oocEnd == length(text)) then - this:TracePrintPrint("IsOoc : skip ((ooc))", text) - return true - end - end - -- scheme: ooc: - if sub(firstWord, 1, 4) == "ooc:" then - this:TracePrint("IsOoc : skip ooc:", text) - return true - end - - return false -end -]] - --- Checks if a message can be replaced according to configuration. -- @return boolean function Grichelde:CheckReplacementAllowed(text, channel) @@ -281,11 +256,13 @@ function Grichelde:ReplaceText(text) local newText = text local finalText = "" + local currentChar, previousChar local current = 1 local lastStart = 1 while current <= length(newText) do - local currentChar = sub(newText, current, current) + previousChar = currentChar + currentChar = sub(newText, current, current) self:TracePrint("current/char : %s,%s", current, currentChar) if ( not tContains(lookAheads, currentChar)) then @@ -293,7 +270,7 @@ function Grichelde:ReplaceText(text) else -- lookahead-check for all preservable patterns (itemLinks, textures, emotes, ooc, etc.) local textAhead = sub(newText, current) - local posEnd = self:CheckForPreversableText(textAhead) + local posEnd = self:CheckForPreversableText(textAhead, previousChar) if posEnd > 0 then self:DebugPrint("ReplaceText : Found an ignore pattern") @@ -318,7 +295,7 @@ function Grichelde:ReplaceText(text) finalText = finalText .. replacement self:DebugPrint("ReplaceText : replaced \"%s\"", text) - self:DebugPrint("ReplaceText : with \"%s\"", finalText) + self:DebugPrint("ReplaceText : with \"%s\"", finalText) return finalText end @@ -327,7 +304,7 @@ end --- emotes, ooc or %-substitutons and returns the end location of the match, or 0 if no pattern was found -- @param text string -- @return number -function Grichelde:CheckForPreversableText(text) +function Grichelde:CheckForPreversableText(text, previousChar) self:TracePrint("CheckForPreversableText : text:", text) -- Calling find on ever pattern might be inefficient but its way less code than marching over every character @@ -375,8 +352,8 @@ function Grichelde:CheckForPreversableText(text) end end - -- ooc: detection remaing text is treated as ooc completely! - if sub(lowerText, 1, 4) == "ooc:" then + -- ooc detection remaing text is treated as ooc completely! + if (previousChar == nil or previousChar == ' ') and find(lowerText, "^ooc[%:%s]") then self:DebugPrint("CheckForPreversableText : ooc for remaing text") return length(text) end @@ -395,6 +372,7 @@ function Grichelde:ReplaceCharacters(text) local result = text local consolidate = {} + local stopOnMatch = nil -- replacements are done first for replName, replTable in spairs(replacements) do @@ -414,6 +392,10 @@ function Grichelde:ReplaceCharacters(text) local pos1, pos2 = find(oldResult, search, pos) self:TracePrint("ReplaceCharacters : pos1: %d, pos2: %d", pos1, pos2) while (pos1 and pos2 and pos1 <= pos2) do + if replTable.stopOnMatch and stopOnMatch == nil then + stopOnMatch = replName + end + local pre = sub(result, 1, pos1 - 1 + offset) local post = sub(result, pos2 + 1 + offset) self:TracePrint("ReplaceCharacters : pre: %s, post: %s", pre, post) @@ -455,6 +437,10 @@ function Grichelde:ReplaceCharacters(text) local pos1, pos2 = find(lowerResult, lowerSearch, pos) self:TracePrint("ReplaceCharacters : pos1: %d, pos2: %d", pos1, pos2) while (pos1 and pos2 and pos1 <= pos2) do + if replTable.stopOnMatch and stopOnMatch == nil then + stopOnMatch = replName + end + local pre = sub(result, 1, pos1 - 1 + offset) local match = sub(result, pos1 + offset, pos2 + offset) local post = sub(result, pos2 + 1 + offset) @@ -508,13 +494,11 @@ function Grichelde:ReplaceCharacters(text) if lastCase == nil then if (isUpper(nextLetter)) then repl = repl .. toUpper(remainingReplace) - elseif (isLower(nextLetter)) then - repl = repl .. toLower(remainingReplace) else repl = repl .. remainingReplace end elseif lastCase == false then - repl = repl .. toLower(remainingReplace) + repl = repl .. remainingReplace else if (isLower(nextLetter)) then repl = repl .. toLower(remainingReplace) @@ -566,6 +550,10 @@ function Grichelde:ReplaceCharacters(text) else self:DebugPrint("ReplaceCharacters : Skip replacement for %s", replName) end + + if stopOnMatch ~= nil then + break + end end -- consolidation is done last @@ -573,7 +561,7 @@ function Grichelde:ReplaceCharacters(text) local before = result local search = replTable.searchText - if not nilOrEmpty(search) and replTable.active then + if not nilOrEmpty(search) and replTable.active then local replace = replTable.replaceText local lowerResult = toLower(result) local offset = 0 @@ -608,6 +596,10 @@ function Grichelde:ReplaceCharacters(text) else self:DebugPrint("ReplaceCharacters : Skip consolidation for %s", replName) end + + if stopOnMatch == replName then + break + end end self:DebugPrint("ReplaceCharacters : final text:", result) diff --git a/GricheldeConstants.lua b/GricheldeConstants.lua index 3db054c..e53196b 100644 --- a/GricheldeConstants.lua +++ b/GricheldeConstants.lua @@ -120,7 +120,8 @@ Grichelde.IGNORE_PATTERNS_CASE_SENSITIVE = { "|K.-|k", -- Battle.net "|n", -- newline - "%(%(.-%)%)", -- (( ooc )) + "%(%(.-%)%)", -- (( ... )) + "%(%s*ooc[%:%s].-%)", -- ( ooc ) } -- for separate emote detection diff --git a/GricheldeDatabase.lua b/GricheldeDatabase.lua index d59cff6..a2343cb 100644 --- a/GricheldeDatabase.lua +++ b/GricheldeDatabase.lua @@ -30,6 +30,7 @@ function Grichelde:GetDefaultConfig() replaceText = "", exactCase = false, consolidate = true, + stopOnMatch = false, }, replacement_10 = { order = 10, diff --git a/GricheldeOptions.lua b/GricheldeOptions.lua index e0395da..2aca601 100644 --- a/GricheldeOptions.lua +++ b/GricheldeOptions.lua @@ -337,7 +337,6 @@ function Grichelde:CreateMapping(offset) desc = self.L.Options_Mapping_Consolidate_Desc, width = "full", }, ---[[ stopOnMatch = { order = 22, type = "toggle", @@ -345,7 +344,6 @@ function Grichelde:CreateMapping(offset) desc = self.L.Options_Mapping_StopOnMatch_Desc, width = "full", } -]] } } end diff --git a/GricheldeUpgrade.lua b/GricheldeUpgrade.lua index 6bf8c32..04cdbd0 100644 --- a/GricheldeUpgrade.lua +++ b/GricheldeUpgrade.lua @@ -100,6 +100,8 @@ function Grichelde:UpgradeDatabase() if upgrade == 0 then self:DebugPrint("Database up-to-date") + -- bump version number even if no update is required + self.db.global.version = self.version else if not error then self.db.global.version = self.version diff --git a/README.md b/README.md index b4e0cb7..d5d32d0 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,12 @@ # Grichelde - Text replacer -Grichelde is a WoW Classic Addon that replaces characters you typed in a chatbox with any replacement text you specified in the addon options. +Grichelde is a WoW Classic Addon that replaces any characters or words you typed in a chatbox with any replacement text or word you specified. +You can define any search and replace text arbitrarily. The replacement is done **before** the text is send to others/in the target channel. +It does **not** change txt others have written in the chat/channel. + +Its purpose it to simulate a speaking disability of your toon and hereby strengthen immersion in roleplay. +Initially started as a helper addon for a roleplaying friend, Grichelde can be used for much more, like -Intentionally started as a helper addon for a roleplaying friend, Grichelde can be used for much more, like * fixing your common spelling errors :) * replacing toon names with their nick names * write out abbreviations for you @@ -47,17 +51,17 @@ Actually there are two solutions: #### I get errors, what should I do? -Please report your errors here. Make a screenshot or copy both the error message as well as your recent mappings. -You can bring up a small windows with your mapping by entering the `/gri mappings` command. +Please report your errors on [project website](https://www.curseforge.com/wow/addons/grichelde) at curse forge. Make a screenshot or copy both the error message as well as your recent mappings. +You can bring up a small windows with your mapping by entering the `/gri mappings` command on copy them. #### Why that strange name? -Grichelde is the name of an undead rogue without a jaw, who was played in RP sessions with a guild member. +Grichelde is the name of an Undead rogue without a jaw, who was played in RP sessions with a guild member. She started replacing "s" and "t" letters manually for each line in the chat, which became cumbersome over time. (If you ever wondered how an Undead without a jaw sounds like, its really hilarious, you should try it.) Without spelling errors, "Griselde" in German is an old-fashioned female first name. -#### I'm a pro. Does it support regular expressions? +#### I'm a Pro. Does it support regular expressions? This is actually an unofficial feature. In general the searchText is passed in as Lua, so yes regex can be used in lookups. There are two caveats: first, Lua does not support PCRE syntax, as it would bloat Lua's simplicity and performance (read [here](http://www.lua.org/pil/20.1.html) why). diff --git a/localisation/deDE.lua b/localisation/deDE.lua index 4b7e21b..85bc832 100644 --- a/localisation/deDE.lua +++ b/localisation/deDE.lua @@ -146,6 +146,8 @@ L.Options_Help_Basics = cYellow("Reihenfolge") .. "Die Zusammenfassung wird erst nach der Ersetzung vorgenommen, d.h. am vollst\195\164ndig ersetzten Text f\195\188r jede Zuordnung. " .. "|nMit der Zuordnung " .. cPrefix("\"s\" => \"sch\"") .. " wird aus " .. cPrefix("\"Tasse\" => \"Tasche\"") .. " statt " .. cPrefix("\"Taschsche\"") .. ", " .. "aber " .. cPrefix("\"schmeissen\" => \"schchmeischen\"") .. ". Solche Randbedingungen beseitigt in der Regel eine weitere Zuordnung wie " .. cPrefix("\"chch\" => \"ch\"") .. "." + .. "|n|n" .. cYellow("Anhalten nach Treffer") + .. "|nEs werden keine weiteren Ersetzungen mehr vorgenommen, wenn die aktuelle Zuordnung zutreffend ist. Alle nachfolgenden Zuordnungen werden dann \195\188bersprungen. Wenn kein Treffer vorliegt, werden die restlichen Zuordnung ganz normal weiter abgearbeitet." L.Options_Help_Expert = cYellow("verk\195\188rzende/verl\195\163ngernde Ersetzungen") .. "|nIst der Ersetzungstext k\195\188rzer als der eigentliche Suchtext, werden die \195\188bersch\195\188\195\159igen Zeichen des Suchtreffers entfernt. " .. "Ist der Ersetzungstext l\195\163nger, werden die \195\188brigen Zeichen nach dem Treffer hinten drangehangen. Dabei wird die Gro\195\159- und Kleinschreibung des letzten Zeichens ber\195\188cksichtigt, " @@ -179,9 +181,9 @@ L.Options_Help_Examples3_Text = cPrefix("ei => ey") .. "|n|n" .. cPrefix("\195\1 L.Options_Help_Examples4_Select = "Abk\195\188rzungen" L.Options_Help_Examples4_Header = cYellow("Viel sagen, wenig tippen.") L.Options_Help_Examples4_Text = cPrefix("gz => Herzlichen Gl\195\188ckwunsch") .. "|n|n" .. cPrefix("gn8 => Gute Nacht") .. "|n|n" .. cPrefix("afk => Bin mal eben weg (AFK)") .. "|n|n" .. cPrefix("MC => Geschmolzener Kern") -L.Options_Help_Examples5_Select = "Eigennamen" +L.Options_Help_Examples5_Select = "Eigen-, Kose- und Ortsnamen" L.Options_Help_Examples5_Header = cYellow("Ersetzt Spielernamen, NPCs oder Orte durch andere Ausdr\195\188cke.") -L.Options_Help_Examples5_Text = cPrefix("Sylvanas => die rachs\195\188chtige Bansheek\195\182nigin") .. "|n|n" .. cPrefix("R\195\188tzkn\195\188bbel => R\195\188tzi") .. "|n|n" .. cPrefix("Unterstadt => Undercity") +L.Options_Help_Examples5_Text = "Exakte Gro\195\159- und Kleinschreibung wird empfohlen|n|n" .. cPrefix("Sylvanas => die rachs\195\188chtige Bansheek\195\182nigin") .. "|n|n" .. cPrefix("R\195\188tzkn\195\188bbel => R\195\188tzi") .. "|n|n" .. cPrefix("Unterstadt => Undercity") L.Options_Help_Examples6_Select = "Lispeln" L.Options_Help_Examples6_Header = cYellow("Aussprache von S und Z wird zu einem Zischlaut") L.Options_Help_Examples6_Text = cPrefix("sch => ch") .. "|n|n" .. cPrefix("s => fs") .. "|n|n" .. cPrefix("z => ts") .. "|n|n" .. cPrefix("chs => x") diff --git a/localisation/enUS.lua b/localisation/enUS.lua index 8ca7f9a..589d474 100644 --- a/localisation/enUS.lua +++ b/localisation/enUS.lua @@ -146,6 +146,8 @@ L.Options_Help_Basics = cYellow("Ordering") .. "Consolidation takes place after all replacements were done, meaning it's applied to the completely replaced text. " .. "|nWith mapping " .. cPrefix("\"s\" => \"sh\"") .. " text becomes " .. cPrefix("\"tossing\" => \"toshing\"") .. " instead of " .. cPrefix("\"toshshing\"") .. ", yet still " .. cPrefix("\"paths\" => \"pathsh\"") .. ". " .. "Such edge cases can usually be mitigated with an additional mapping at the end: " .. cPrefix("\"thsh\" => \"thz\"") .. "." + .. "|n|n" .. cYellow("stop on match") + .. "|nNo other replacements are done, when the current mapping matched. This will skip any other consecutive mappings when hit. When no match ocurred, the remaining mappings are processed as usual." L.Options_Help_Expert = cYellow("shortening/lengthening replacements") .. "|nIf the replacement is shorter than the actual match, all remaining characters will be skipped. If the replacement is longer, all remaining characters will be appended. " .. "The case of the replaced character is considered as well as the case of the next character in the original text. That way capital case abbreviations and expressions will not be distorted. " @@ -181,7 +183,7 @@ L.Options_Help_Examples4_Header = cYellow("Say much, type less.") L.Options_Help_Examples4_Text = cPrefix("gz => Congratulations") .. "|n|n" .. cPrefix("gn8 => Good night") .. "|n|n" .. cPrefix("afk => I'm temporarikly not available (AFK)") .. "|n|n" .. cPrefix("MC => Molten Core") L.Options_Help_Examples5_Select = "Proper names" L.Options_Help_Examples5_Header = cYellow("Replace player names, NPCs or locations.") -L.Options_Help_Examples5_Text = cPrefix("Sylvanas => the revengeful banshee queen") .. "|n|n" .. cPrefix("Asmongold => Asmon") .. "|n|n" .. cPrefix("Crossroads => X-roads") +L.Options_Help_Examples5_Text = "exact case is recommended|n|n" .. cPrefix("Sylvanas => the revengeful banshee queen") .. "|n|n" .. cPrefix("Asmongold => Asmon") .. "|n|n" .. cPrefix("Crossroads => X-roads") L.Options_Help_Examples6_Select = "lisp" L.Options_Help_Examples6_Header = cYellow("S and Z will become a sibilant") L.Options_Help_Examples6_Text = cPrefix("s => th") .. "|n|n" .. cPrefix("ch => tsh") .. "|n|n" .. cPrefix("z => tsh") .. "|n|n" .. cPrefix("dg => ck") diff --git a/twitch/minimap-icon.png b/twitch/minimap-icon.png index 2a2cab74fbb8b493a9476a4d22093ebeeac42d9a..a453e77386c32ca80175e17ee490d301cd96a6ee 100644 GIT binary patch literal 41477 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