diff --git a/config/punctuation/de.conf b/config/punctuation/de.conf index 7e63dfc6..81f33903 100644 --- a/config/punctuation/de.conf +++ b/config/punctuation/de.conf @@ -44,10 +44,29 @@ _:===:Lienie unten =:===:Istgleich [customDict] - [emoticonDict] -:):===:Grins -;):===:Zwinker -XD:===:loool -:D:===:Lach -<{-.-}>:===:Raves +# This dictionary uses regexp, so be sure to escape anything that would be parsed by regexp, e.g. *, ., ^, $, etc. +[\s*|'|"][\s*|'|"]<{-.-}>:===:Raves +[\s*|'|"][\s*|'|"]8-\):===:smile with sunglasses +[\s*|'|"][\s*|'|"]:-/:===:confused +[\s*|'|"][\s*|'|"]-\.-:===:bugged +[\s*|'|"][\s*|'|"]>\.<:===:laughing +[\s*|'|"][\s*|'|"]8-X:===:skull +[\s*|'|"][\s*|'|"]>:\):===:evil smile +[\s*|'|"][\s*|'|"]>:-\):===:evil smile +[\s*|'|"][\s*|'|"]\\o/:===:Hurray +[\s*|'|"][\s*|'|"]:/:===:confused +[\s*|'|"][\s*|'|"]8\):===:smile with sunglasses +[\s*|'|"]:D[\s*|'|"]:===:laugh +[\s*|'|"];\)[\s*|'|"]:===:wink +[\s*|'|"]XD[\s*|'|"]:===:LOL +[\s*|'|"]:-\)[\s*|'|"]:===:smile +[\s*|'|"]:\)[\s*|'|"]:===:smile +[\s*|'|"]->[\s*|'|"]:===:arrow right +# example for arrow left +#(?:[ |^])(<-)(?:[ ,.!?$]):===:arrow left +# or +#([ |^])<-([ ,.!?$]):===:arrow left\2 +[\s*|'|"]<-[\s*|'|"]:===:arrow left +[\s*|'|"][O|o][O|o][\s*|'|"]:===:WTF? +[\s*|'|"]\^\^[\s*|'|"]:===:enjoy smile diff --git a/config/punctuation/default.conf b/config/punctuation/default.conf index e3995e53..22cdc00e 100644 --- a/config/punctuation/default.conf +++ b/config/punctuation/default.conf @@ -44,26 +44,31 @@ _:===:line =:===:equals [customDict] +# This dictionary uses regexp, so be sure to escape anything that would be parsed by regexp, e.g. *, ., ^, $, etc. [emoticonDict] -<{-.-}>:===:Raves -8-):===:smile with sunglasses -:-/:===:confused --.-:===:bugged ->.<:===:laughing -8-X:===:skull ->:):===:evil smile ->:-):===:evil smile -\o/:===:Hurray -:/:===:confused -8):===:smile with sunglasses -:D:===:laugh -;):===:wink -XD:===:LOL -:-):===:smile -:):===:smile -->:===:arrow right -<-:===:arrow left -oO:===:WTF? -Oo:===:WTF? -^^:===:enjoy smile +# This dictionary uses regexp, so be sure to escape anything that would be parsed by regexp, e.g. *, ., ^, $, etc. +[\s*|'|"][\s*|'|"]<{-.-}>:===:Raves +[\s*|'|"][\s*|'|"]8-\):===:smile with sunglasses +[\s*|'|"][\s*|'|"]:-/:===:confused +[\s*|'|"][\s*|'|"]-\.-:===:bugged +[\s*|'|"][\s*|'|"]>\.<:===:laughing +[\s*|'|"][\s*|'|"]8-X:===:skull +[\s*|'|"][\s*|'|"]>:\):===:evil smile +[\s*|'|"][\s*|'|"]>:-\):===:evil smile +[\s*|'|"][\s*|'|"]\\o/:===:Hurray +[\s*|'|"][\s*|'|"]:/:===:confused +[\s*|'|"][\s*|'|"]8\):===:smile with sunglasses +[\s*|'|"]:D[\s*|'|"]:===:laugh +[\s*|'|"];\)[\s*|'|"]:===:wink +[\s*|'|"]XD[\s*|'|"]:===:LOL +[\s*|'|"]:-\)[\s*|'|"]:===:smile +[\s*|'|"]:\)[\s*|'|"]:===:smile +[\s*|'|"]->[\s*|'|"]:===:arrow right +# example for arrow left +#(?:[ |^])(<-)(?:[ ,.!?$]):===:arrow left +# or +#([ |^])<-([ ,.!?$]):===:arrow left\2 +[\s*|'|"]<-[\s*|'|"]:===:arrow left +[\s*|'|"][O|o][O|o][\s*|'|"]:===:WTF? +[\s*|'|"]\^\^[\s*|'|"]:===:enjoy smile diff --git a/config/punctuation/en.conf b/config/punctuation/en.conf index 21e51c02..005a7bb7 100644 --- a/config/punctuation/en.conf +++ b/config/punctuation/en.conf @@ -44,10 +44,29 @@ _:===:line =:===:equals [customDict] - [emoticonDict] -:):===:smile -;):===:twinker -XD:===:loool -:D:===:lought -<{-.-}>:===:Raves +# This dictionary uses regexp, so be sure to escape anything that would be parsed by regexp, e.g. *, ., ^, $, etc. +[\s*|'|"][\s*|'|"]<{-.-}>:===:Raves +[\s*|'|"][\s*|'|"]8-\):===:smile with sunglasses +[\s*|'|"][\s*|'|"]:-/:===:confused +[\s*|'|"][\s*|'|"]-\.-:===:bugged +[\s*|'|"][\s*|'|"]>\.<:===:laughing +[\s*|'|"][\s*|'|"]8-X:===:skull +[\s*|'|"][\s*|'|"]>:\):===:evil smile +[\s*|'|"][\s*|'|"]>:-\):===:evil smile +[\s*|'|"][\s*|'|"]\\o/:===:Hurray +[\s*|'|"][\s*|'|"]:/:===:confused +[\s*|'|"][\s*|'|"]8\):===:smile with sunglasses +[\s*|'|"]:D[\s*|'|"]:===:laugh +[\s*|'|"];\)[\s*|'|"]:===:wink +[\s*|'|"]XD[\s*|'|"]:===:LOL +[\s*|'|"]:-\)[\s*|'|"]:===:smile +[\s*|'|"]:\)[\s*|'|"]:===:smile +[\s*|'|"]->[\s*|'|"]:===:arrow right +# example for arrow left +#(?:[ |^])(<-)(?:[ ,.!?$]):===:arrow left +# or +#([ |^])<-([ ,.!?$]):===:arrow left\2 +[\s*|'|"]<-[\s*|'|"]:===:arrow left +[\s*|'|"][O|o][O|o][\s*|'|"]:===:WTF? +[\s*|'|"]\^\^[\s*|'|"]:===:enjoy smile diff --git a/config/punctuation/es.conf b/config/punctuation/es.conf index f95d3c73..8bfe9612 100644 --- a/config/punctuation/es.conf +++ b/config/punctuation/es.conf @@ -44,10 +44,29 @@ _:===:subrayado =:===:igual [customDict] - [emoticonDict] -:):===:sonrisa -;):===:twinker -XD:===:loool -:D:===:lought -<{-.-}>:===:Raves +# This dictionary uses regexp, so be sure to escape anything that would be parsed by regexp, e.g. *, ., ^, $, etc. +[\s*|'|"][\s*|'|"]<{-.-}>:===:Raves +[\s*|'|"][\s*|'|"]8-\):===:smile with sunglasses +[\s*|'|"][\s*|'|"]:-/:===:confused +[\s*|'|"][\s*|'|"]-\.-:===:bugged +[\s*|'|"][\s*|'|"]>\.<:===:laughing +[\s*|'|"][\s*|'|"]8-X:===:skull +[\s*|'|"][\s*|'|"]>:\):===:evil smile +[\s*|'|"][\s*|'|"]>:-\):===:evil smile +[\s*|'|"][\s*|'|"]\\o/:===:Hurray +[\s*|'|"][\s*|'|"]:/:===:confused +[\s*|'|"][\s*|'|"]8\):===:smile with sunglasses +[\s*|'|"]:D[\s*|'|"]:===:laugh +[\s*|'|"];\)[\s*|'|"]:===:wink +[\s*|'|"]XD[\s*|'|"]:===:LOL +[\s*|'|"]:-\)[\s*|'|"]:===:smile +[\s*|'|"]:\)[\s*|'|"]:===:smile +[\s*|'|"]->[\s*|'|"]:===:arrow right +# example for arrow left +#(?:[ |^])(<-)(?:[ ,.!?$]):===:arrow left +# or +#([ |^])<-([ ,.!?$]):===:arrow left\2 +[\s*|'|"]<-[\s*|'|"]:===:arrow left +[\s*|'|"][O|o][O|o][\s*|'|"]:===:WTF? +[\s*|'|"]\^\^[\s*|'|"]:===:enjoy smile diff --git a/config/punctuation/fr.conf b/config/punctuation/fr.conf index ff36dffd..475db2be 100644 --- a/config/punctuation/fr.conf +++ b/config/punctuation/fr.conf @@ -44,10 +44,29 @@ _:===:souligné =:===:égale à [customDict] - [emoticonDict] -:):===:sourire -;):===:clin d'oeil -XD:===:explosé de rire -:D:===:rire -<{-.-}>:===:Raves +# This dictionary uses regexp, so be sure to escape anything that would be parsed by regexp, e.g. *, ., ^, $, etc. +[\s*|'|"][\s*|'|"]<{-.-}>:===:Raves +[\s*|'|"][\s*|'|"]8-\):===:smile with sunglasses +[\s*|'|"][\s*|'|"]:-/:===:confused +[\s*|'|"][\s*|'|"]-\.-:===:bugged +[\s*|'|"][\s*|'|"]>\.<:===:laughing +[\s*|'|"][\s*|'|"]8-X:===:skull +[\s*|'|"][\s*|'|"]>:\):===:evil smile +[\s*|'|"][\s*|'|"]>:-\):===:evil smile +[\s*|'|"][\s*|'|"]\\o/:===:Hurray +[\s*|'|"][\s*|'|"]:/:===:confused +[\s*|'|"][\s*|'|"]8\):===:smile with sunglasses +[\s*|'|"]:D[\s*|'|"]:===:laugh +[\s*|'|"];\)[\s*|'|"]:===:wink +[\s*|'|"]XD[\s*|'|"]:===:LOL +[\s*|'|"]:-\)[\s*|'|"]:===:smile +[\s*|'|"]:\)[\s*|'|"]:===:smile +[\s*|'|"]->[\s*|'|"]:===:arrow right +# example for arrow left +#(?:[ |^])(<-)(?:[ ,.!?$]):===:arrow left +# or +#([ |^])<-([ ,.!?$]):===:arrow left\2 +[\s*|'|"]<-[\s*|'|"]:===:arrow left +[\s*|'|"][O|o][O|o][\s*|'|"]:===:WTF? +[\s*|'|"]\^\^[\s*|'|"]:===:enjoy smile diff --git a/config/punctuation/pl.conf b/config/punctuation/pl.conf index 59356403..75152d0c 100644 --- a/config/punctuation/pl.conf +++ b/config/punctuation/pl.conf @@ -44,10 +44,29 @@ _:===:podkreślnik =:===:równa się [customDict] - [emoticonDict] -:):===:smile -;):===:twinker -XD:===:loool -:D:===:lought -<{-.-}>:===:Raves +# This dictionary uses regexp, so be sure to escape anything that would be parsed by regexp, e.g. *, ., ^, $, etc. +[\s*|'|"][\s*|'|"]<{-.-}>:===:Raves +[\s*|'|"][\s*|'|"]8-\):===:smile with sunglasses +[\s*|'|"][\s*|'|"]:-/:===:confused +[\s*|'|"][\s*|'|"]-\.-:===:bugged +[\s*|'|"][\s*|'|"]>\.<:===:laughing +[\s*|'|"][\s*|'|"]8-X:===:skull +[\s*|'|"][\s*|'|"]>:\):===:evil smile +[\s*|'|"][\s*|'|"]>:-\):===:evil smile +[\s*|'|"][\s*|'|"]\\o/:===:Hurray +[\s*|'|"][\s*|'|"]:/:===:confused +[\s*|'|"][\s*|'|"]8\):===:smile with sunglasses +[\s*|'|"]:D[\s*|'|"]:===:laugh +[\s*|'|"];\)[\s*|'|"]:===:wink +[\s*|'|"]XD[\s*|'|"]:===:LOL +[\s*|'|"]:-\)[\s*|'|"]:===:smile +[\s*|'|"]:\)[\s*|'|"]:===:smile +[\s*|'|"]->[\s*|'|"]:===:arrow right +# example for arrow left +#(?:[ |^])(<-)(?:[ ,.!?$]):===:arrow left +# or +#([ |^])<-([ ,.!?$]):===:arrow left\2 +[\s*|'|"]<-[\s*|'|"]:===:arrow left +[\s*|'|"][O|o][O|o][\s*|'|"]:===:WTF? +[\s*|'|"]\^\^[\s*|'|"]:===:enjoy smile diff --git a/src/fenrirscreenreader/core/punctuationManager.py b/src/fenrirscreenreader/core/punctuationManager.py index a98577ea..57416204 100644 --- a/src/fenrirscreenreader/core/punctuationManager.py +++ b/src/fenrirscreenreader/core/punctuationManager.py @@ -33,15 +33,16 @@ class punctuationManager(): del currAllPunctNone[ord(char)] except: pass - return text.translate(currAllPunctNone) - + return text.translate(currAllPunctNone) def useCustomDict(self, text, customDict, seperator=''): resultText = str(text) if customDict: for key,item in customDict.items(): - resultText = resultText.replace(str(key),seperator + str(item) + seperator) + try: + resultText = re.sub(str(key), seperator + str(item) + seperator, resultText) + except: + resultText = resultText.replace(str(key),seperator + str(item) + seperator) return resultText - def usePunctuationDict(self, text, punctuationDict, punctuation): resultText = str(text) @@ -49,11 +50,11 @@ class punctuationManager(): if ' ' in punctuation: resultText = resultText.replace(' ',' ' + punctuationDict[' '] + ' ') for key,item in punctuationDict.items(): - if key in punctuation and key not in ' ': + if (punctuation != '' and key in punctuation) and key not in ' ': if self.env['runtime']['settingsManager'].getSetting('general', 'respectPunctuationPause') and \ len(key) == 1 and \ key in "',.;:?!": - resultText = resultText.replace(str(key),' ' +str(item) + str(key) + ' ') + resultText = resultText.replace(str(key),' ' +str(item) + str(key) + ' ') else: resultText = resultText.replace(str(key),' ' +str(item) + ' ') return resultText