From ac6e11537c97e39c0a77420dc4cea66bd16cb540 Mon Sep 17 00:00:00 2001 From: chrys Date: Thu, 22 Sep 2016 22:42:14 +0200 Subject: [PATCH] make punctuation initial working --- .../commands/commands/review_curr_char.py | 2 +- .../commands/commands/review_next_char.py | 2 +- .../commands/commands/review_prev_char.py | 2 +- .../54000-present_char_if_cursor_change_horizontal.py | 2 +- .../commands/onScreenUpdate/50000-char_echo.py | 2 +- .../commands/onScreenUpdate/65000-char_delete_echo.py | 2 +- src/fenrir-package/core/outputManager.py | 6 ++++-- src/fenrir-package/core/punctuationManager.py | 11 +++++++---- 8 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/fenrir-package/commands/commands/review_curr_char.py b/src/fenrir-package/commands/commands/review_curr_char.py index 8c44cd62..7ba7faa7 100644 --- a/src/fenrir-package/commands/commands/review_curr_char.py +++ b/src/fenrir-package/commands/commands/review_curr_char.py @@ -28,7 +28,7 @@ class command(): if currChar.strip(" \t\n") == '': self.env['runtime']['outputManager'].presentText("blank" ,interrupt=True) else: - self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True) + self.env['runtime']['outputManager'].presentText(currChar ,interrupt=True, ignorePunctuation=True) def setCallback(self, callback): pass diff --git a/src/fenrir-package/commands/commands/review_next_char.py b/src/fenrir-package/commands/commands/review_next_char.py index 0b2e36e2..66a1aebb 100644 --- a/src/fenrir-package/commands/commands/review_next_char.py +++ b/src/fenrir-package/commands/commands/review_next_char.py @@ -28,7 +28,7 @@ class command(): if currChar.strip(" \t\n") == '': self.env['runtime']['outputManager'].presentText("blank", interrupt=True) else: - self.env['runtime']['outputManager'].presentText(currChar, interrupt=True) + self.env['runtime']['outputManager'].presentText(currChar, interrupt=True, ignorePunctuation=True) def setCallback(self, callback): pass diff --git a/src/fenrir-package/commands/commands/review_prev_char.py b/src/fenrir-package/commands/commands/review_prev_char.py index c7edc999..61ea11dc 100644 --- a/src/fenrir-package/commands/commands/review_prev_char.py +++ b/src/fenrir-package/commands/commands/review_prev_char.py @@ -28,7 +28,7 @@ class command(): if currChar.strip(" \t\n") == '': self.env['runtime']['outputManager'].presentText("blank", interrupt=True) else: - self.env['runtime']['outputManager'].presentText(currChar, interrupt=True) + self.env['runtime']['outputManager'].presentText(currChar, interrupt=True, ignorePunctuation=True) def setCallback(self, callback): pass diff --git a/src/fenrir-package/commands/onInput/54000-present_char_if_cursor_change_horizontal.py b/src/fenrir-package/commands/onInput/54000-present_char_if_cursor_change_horizontal.py index 646d5dbf..e04aa7a0 100644 --- a/src/fenrir-package/commands/onInput/54000-present_char_if_cursor_change_horizontal.py +++ b/src/fenrir-package/commands/onInput/54000-present_char_if_cursor_change_horizontal.py @@ -33,7 +33,7 @@ class command(): return currChar = self.env['screenData']['newContentText'].split('\n')[self.env['screenData']['newCursor']['y']][self.env['screenData']['newCursor']['x']] if not currChar.strip(" \t\n") == '': - self.env['runtime']['outputManager'].presentText(currChar, interrupt=True) + self.env['runtime']['outputManager'].presentText(currChar, interrupt=True, ignorePunctuation=True) def setCallback(self, callback): pass diff --git a/src/fenrir-package/commands/onScreenUpdate/50000-char_echo.py b/src/fenrir-package/commands/onScreenUpdate/50000-char_echo.py index 791bd01f..9ed4232f 100644 --- a/src/fenrir-package/commands/onScreenUpdate/50000-char_echo.py +++ b/src/fenrir-package/commands/onScreenUpdate/50000-char_echo.py @@ -28,7 +28,7 @@ class command(): # big changes are no char (but the value is bigger than one maybe the differ needs longer than you can type, so a little strange random buffer for now) if len(self.env['screenData']['newDelta']) > 3: return - self.env['runtime']['outputManager'].presentText(self.env['screenData']['newDelta'], interrupt=True) + self.env['runtime']['outputManager'].presentText(self.env['screenData']['newDelta'], interrupt=True, ignorePunctuation=True) def setCallback(self, callback): pass diff --git a/src/fenrir-package/commands/onScreenUpdate/65000-char_delete_echo.py b/src/fenrir-package/commands/onScreenUpdate/65000-char_delete_echo.py index 09531033..8fada66f 100644 --- a/src/fenrir-package/commands/onScreenUpdate/65000-char_delete_echo.py +++ b/src/fenrir-package/commands/onScreenUpdate/65000-char_delete_echo.py @@ -35,7 +35,7 @@ class command(): # too much for a single backspace... if len(self.env['screenData']['newNegativeDelta']) >= 5: return - self.env['runtime']['outputManager'].presentText(self.env['screenData']['newNegativeDelta'], interrupt=True) + self.env['runtime']['outputManager'].presentText(self.env['screenData']['newNegativeDelta'], interrupt=True, ignorePunctuation=True) def setCallback(self, callback): pass diff --git a/src/fenrir-package/core/outputManager.py b/src/fenrir-package/core/outputManager.py index 3623fad9..dd5c3919 100644 --- a/src/fenrir-package/core/outputManager.py +++ b/src/fenrir-package/core/outputManager.py @@ -20,7 +20,7 @@ class outputManager(): self.env['runtime']['settingsManager'].shutdownDriver('soundDriver') self.env['runtime']['settingsManager'].shutdownDriver('speechDriver') - def presentText(self, text, interrupt=True, soundIcon = ''): + def presentText(self, text, interrupt=True, soundIcon = '', ignorePunctuation=False): self.env['runtime']['debug'].writeDebugOut("presentText:\nsoundIcon:'"+soundIcon+"'\nText:\n" + text ,debug.debugLevel.INFO) if self.playSoundIcon(soundIcon, interrupt): self.env['runtime']['debug'].writeDebugOut("soundIcon found" ,debug.debugLevel.INFO) @@ -28,7 +28,7 @@ class outputManager(): self.speakText(text, interrupt) self.brailleText(text, interrupt) - def speakText(self, text, interrupt=True): + def speakText(self, text, interrupt=True, ignorePunctuation=False): if not self.env['runtime']['settingsManager'].getSettingAsBool('speech', 'enabled'): self.env['runtime']['debug'].writeDebugOut("Speech disabled in outputManager.speakText",debug.debugLevel.INFO) return @@ -74,8 +74,10 @@ class outputManager(): self.env['runtime']['debug'].writeDebugOut(str(e),debug.debugLevel.ERROR) try: + text = self.env['runtime']['punctuationManager'].proceedPunctuation(text,ignorePunctuation) self.env['runtime']['speechDriver'].speak(text) except Exception as e: + print(e) self.env['runtime']['debug'].writeDebugOut("\"speak\" in outputManager.speakText ",debug.debugLevel.ERROR) self.env['runtime']['debug'].writeDebugOut(str(e),debug.debugLevel.ERROR) diff --git a/src/fenrir-package/core/punctuationManager.py b/src/fenrir-package/core/punctuationManager.py index 79cdeaca..4d96f38b 100644 --- a/src/fenrir-package/core/punctuationManager.py +++ b/src/fenrir-package/core/punctuationManager.py @@ -4,6 +4,7 @@ # Fenrir TTY screen reader # By Chrys, Storm Dragon, and contributers. +import string from core import debug class punctuationManager(): @@ -12,7 +13,7 @@ class punctuationManager(): def initialize(self, environment): self.env = environment self.punctuation = { - 'currLevel':'1', + 'currLevel':'3', 'levels':{ '1':',', '2':'.', @@ -39,16 +40,18 @@ class punctuationManager(): return resultText def usePunctuationDict(self, text, punctuationDict, punctuation): resultText = str(text) - if punctuationDict and punctuation != '': + + if punctuationDict and punctuation and punctuation != '': for key,item in punctuationDict.items(): if key in punctuation: resultText = resultText.replace(str(key),' ' +str(item) +' ') + return resultText - def proceedPunctuation(self, text, ignoreLevel=False): + def proceedPunctuation(self, text, ignorePunctuation=False): resultText = self.useCustomDict(text, self.punctuation['customDict']) currPunctLevel = '' - if not ignoreLevel: + if not ignorePunctuation and self.punctuation['currLevel'] in self.punctuation['levels']: currPunctLevel = self.punctuation['levels'][self.punctuation['currLevel']] else: currPunctLevel = string.punctuation