Skip to content

Commit

Permalink
fix errors
Browse files Browse the repository at this point in the history
  • Loading branch information
alekssamos committed Feb 2, 2021
1 parent 89d2b47 commit 83718c6
Show file tree
Hide file tree
Showing 4 changed files with 115 additions and 16 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Дополнение Text Normalizer для NVDA

[Скачать версию 2021.02.02](https://github.com/alekssamos/textnormalizer_for_nvda/releases/latest/download/textnormalizer-2021.02.02.nvda-addon)
[Скачать версию 2021.02.03](https://github.com/alekssamos/textnormalizer_for_nvda/releases/latest/download/textnormalizer-2021.02.03.nvda-addon)

### Горячие клавиши
Свободных комбинаций нынче стало не хватать, да и они могут уже использоваться в других дополнениях.
Expand Down
90 changes: 80 additions & 10 deletions addon/doc/en/readme.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,87 @@
# Дополнение crypto info для NVDA
# Дополнение Text Normalizer для NVDA

[Скачать версию 2021.01.31](https://github.com/alekssamos/crypto_info/releases/latest/download/crypto_info-2021.01.31.nvda-addon)
[Скачать версию 2021.02.03](https://github.com/alekssamos/textnormalizer_for_nvda/releases/latest/download/textnormalizer-2021.02.03.nvda-addon)

### Горячие клавиши
* nvda+Alt+K - Показать список криптовалют
* nvda+Alt+0-9 - Прослушать информацию о выбранной криптовалюте в позиции от 0 до 9
> То есть nvda+Alt+0, nvda+Alt+1, nvda+Alt+2 и так далее.
Свободных комбинаций нынче стало не хватать, да и они могут уже использоваться в других дополнениях.

Пока менять нельзя, возможно скоро сделаю. Если неудобно, поменяйте через Жесты ввода.
Я знаю, что для менее продвинутых пользователей лучше, чтобы они были сразу, но нет. Я не придумал удобные свободные жесты.

Сейчас их как раз на сайте 10 штук, больше нет.
По этому: NVDA меню, Параметры, Жесты ввода, Text Normalizer
* Переключает функцию автоматической нормализации - самая важная: позваляет быстро включить и выключить преобразование в реальном времени;
* Показать диалог настроек - Находится в NVDA меню, Сервис. Включить копирование в буфер обмена, а так же протестировать конвертер, два текстовых поля, в одно пишете, нажимаете на кнопку, во втором получаете исправленный текст;
* Копировать последний текст в буфер обмена - Сказал "н@ши мopo3ы cильныe", нажал и скопируется "наши морозы сильные";
* Нормализовать выделенный текст - Выделил одно слово, нажал, услышал читаемый вариант;
* Нормализовать последнюю сказанную фразу - NVDA просто что-нибудь проговорила, нажал, услышал читаемый вариант;
* Нормализовать текст из буфера обмена - у вас уже есть скопированный текст, после нажатия он заменится на исправленный.
* Нормализовать текст под объектом навигатора - с цифровой клавиатуры или из под курсора мыши, допустим, текст под навигатором NVDA берёт и преобразовывает.
### Примеры:
> Слушайте сначала без дополнения, затем с ним.
В первой версии информация берётся со страницы [Криптовалюты в реальном времени — Investing.com](https://ru.investing.com/crypto/),
* Coбиpаeм @пельcины, кoтopые висят у мeня нa дepeBe и кyшaeм иx, нe 3абывaйтe тoлькo иx пoчиcтить, а шкурки выкинyть в мycopHoe BEДPO.
* BAШ 6aлaнс мeHee 5 рyблeй, пoпoлнитe BAШ Cчёт.
* ПPEДЛ@Г@Ю 3@paб0т0к В ИнтepHeте бeз BЛOЖEHИй! XOЧEШЬ 3@p@60ТAТЬ? на 1Phone, 1Pad, 1POD?
* Я 3HAЮ ТBOЙ `п@poль` и лoгин для дocтyпа в личный к@бинeт!
* BЫXOДA HEТ!

возможно в будущем добавлю другие.
Сейчас мне лень.
> Нecколько лeт нaзaд был y мeня товapищ, котоpый иcтинно вepил в то, что ecли cпpоcить y дeвyшки: a вaм нyжнa бaнкa? И онa cкaжeт – нyжнa. То жeнa c нee полyчитcя - xозяйcтвeннaя xpaнитeльницa домaшнeго очaгa.
>
> К cловy, caм он был мaлоcть pacceянный, и cвято полaгaл, что кpaны в квapтиpe должeн peмонтиpовaть - caнтexник, a мeнять pозeтки – элeктpик.
> И нe мог он нaйти тy, котоpой былa нyжнa бaнкa.
>
> И вот кaк-то звонит он и пpeдлaгaeт нaпитьcя. Спpaшивaю: что cлyчилоcь?
> B пapкe зaвязaлcя paзговоp c cимпaтичнeнькой дeвyшкой. Нy и по тpaдиции:
>
> - А вaм бaнкa нyжнa?
> А онa в отвeт: - Нyжнa!
>
> Я – говоpит, зaмyж ee чyть нe позвaл в тy жe ceкyндy.
>
> А онa в отвeт: - А вaм отвepткa нyжнa?
> - Нeт, - c yлыбкой нa лицe сказал мой товapищ...
> Сидeл я. Никого нe тpогaл. Можно cкaзaть, что пpимycы починял ceбe cпокойно гдe-то зa гоpодом. Звонит нeзнaкомый номep. Бepy тpyбкy. Дeвочкa c cильным yкpaинcким aкцeнтом пpeдcтaвляeтcя и говоpит, что очeнь зaинтepecовaло иx моё peзюмe (чecтно, yжe нe обpaщaю внимaния нa тaкиe фpaзы) и xотeли бы пообщaтьcя поближe. Пpоговоpили вопpоc минимaльной зapплaты. Иx вcё ycтpоило.
>
> - Я вaм пpишлю email, гдe бyдyт yкaзaны peквизиты для контaктa c тexничecким cпeциaлиcтом, котоpый бyдeт вac cобeceдовaть.
>
> Чepeз нeкотоpоe вpeмя нa почтe было пиcьмо c контaктaми. Добaвил в Skype и договоpилиcь, что зaвтpa в 12 мы бyдeм общaтьcя. А покa по нaзвaнию попытaлcя нaйти иx. Уcпeшно, xотя и нe c пepвой попытки. Сaйт подозpитeльно поxож нa "Lorem Ipsum", то ecть cплошнaя pыбa нa WP. Компaния большaя и cepьёзнaя. Понятно.
>
> B полдeнь мы cозвонилиcь. B тeчeниe чaca мы пpоговоpили много paзличныx вопpоcов. Пообщaлиcь об опытe. Емy явно нpaвилоcь cо мной говоpить, тaк кaк для мeня иx иcпользyeмый cтeк нa 90% знaком и близок. Этим жe зaнимaлcя нa cвоём paбочeм мecтe в дpyгой компaнии. Он cкaзaл, что eщё нeмного людeй поcобeceдyeт и вepнётcя c тexничecким зaдaниeм. Бyдeт это в концe нeдeли. Что жe, бyдeм ждaть.
>
> А покa peзюмиpyя: xотят paботaть в cepyю, зaнимaютcя cтpaнными дeлaми, вpодe бы и "гaлepы", a вpодe бы и нe cовceм. Хотят много зa нe тaк много дeнeг.
>
> B концe нeдeли, чacов в пять вeчepa пpилeтaeт в Skype тexничecкaя чacть cобeceдовaния. А я только пpоcнyлcя. Пpочитaл. Уточнил пapy момeнтов и зa полчaca cдeлaл, пpeдоcтaвив peзyльтaт. Ещё пpивёл пpимeчaниe того, что и почeмy нe нaдо дeлaть тaк, кaк нaпиcaно (ycтapeло). Он yдивилcя. Почитaл и cкaзaл, что оно тaк и ecть. Bcё понpaвилоcь. Быcтpо и чётко.
>
> B понeдeльник под вeчep нaчaлcя очepeдной этaп cобeceдовaния, кyдa добaвили и то ли диpeктоpa, то ли тexничecкого диpeктоpa, котоpый cxодy:
>
> - Я тaк понимaю, что зa -20% вы paботaть нe cтaнeтe?
> - Бeзycловно, нeт.
>
> К моeмy yдивлeнию диaлог к полyдню cлeдyющeго дня ожил.
>
> - Окeй. Допycтим бyдeт по вaшeмy (cпacибо зa одолжeниe). Bы в кypce, что y нac иcпользyeтcя keylogger?
> - Нeт, нe в кypce, a зaчeм?
> - Мы нa оcновe eго оцeнивaeм зaгpyжeнноcть чeловeкa. Bот, к пpимepy, чeловeк, котоpый вac cобeceдовaл имeeт 65% и это нeплоxой peзyльтaт (нy-нy, paccкaзывaйтe! Это пpоcто пипeц!)
> - Допycтим тaк, но кaк нaжaтиe нa клaвиши коppeлиpyют c peзyльтaтом? Baм нyжны нaжaтия или peзyльтaт в cpок?
>
> B отвeт ycлышaл доcтaточно cтpaнный отвeт о том, что тaк они могyт контpолиpовaть зaгpyзкy, болee того, что это пpeкpacно дepжит "в тонyce" cотpyдников и нe позволяeт им paccлaбитьcя.
>
> - А вaм cкaзaл, что y нac ecть Полигpaф?
> - Зaчeм он мнe? Я cобeceдyюcь нa нeмaтepиaльно отвeтcтвeннyю должноcть.
> - Для того, чтобы вaм cпокойнee cпaть. И нaм, что вы y нac ничeго нe yкpaли.
> - Поcтойтe, полигpaф до пpиёмa paботы или поcлe?
> - Пepeд кaждой зapплaтой!
>
> Мой eблeт пepeкоcило, пepeд глaзaми пpолeтeлa cовa c филином в извecтном нaпpaвлeнии. Оп-пa, a c тaкими людьми можно общaтьcя иcключитeльно инaчe.
>
> Он eщё мнe долго пиcaл кaкyю-то дичь пpо то, что это позволит знaть мeньшe и дeлaть большe, что тaким обpaзом обepeгaют cотpyдников от нeнyжной инфоpмaции и пpочeго. Мнe жe это видeлоcь нe болee кaк попыткa зacтaвить paботaть зa eдy cпeциaлиcтa и поcтоянно eго доить. Учитывaя, что это IT-контоpa, то кaкой-то лютый пиceц y ниx внyтpи. И cкоpee вceго компaния вполнe ceбe "кpyпнaя", cоcтоящaя из можeт чeловeк 15 и caмодypa диpeктоpa.
>
> Пpочитaв вcё то, что мнe нaпиcaли, пpeдложил им cвои ycловия: бeз офоpмлeния в штaт, чepeз ИП по ГПХ. Сyммы бyдyт дpyгими, тaк кaк тpeбyeтcя пpовecти ayдит, поcтapaтьcя выpaботaть пpaвилa внyтpeннeй бeзопacноcти инфоpмaции, aвтомaтизиpовaть то, что до cиx поp y ниx тaк и нe aвтомaтизиpовaно. Пpeдвapитeльно оцeнил +150% от зaпpaшивaeмой компeнcaции, тaк кaк это ypовeнь вышe ypовня пpоcто IT-cпeциaлиcтa, a cкоpee мeнeджepa или диpeктоpa по IT.
>
> Тaк я и нe ycтpоилcя paботaть в этy большyю компaнию. Считaю, что ничeго нe потepял пpи этом и дaжe cэкономил ceбe нepвы и cилы.
>> Источник: [Just Story](https://vk.com/public106084026)
С дополнением лучше? Именно для этого оно и создано.

С помощью встроенного словаря такое не сделать, нужен контекст, где используется та или иная буква.
37 changes: 33 additions & 4 deletions addon/globalPlugins/textnormalizer/textnormalizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@
"""

import re

def replace(old, new, str, caseinsentive = False):
if caseinsentive:
return str.replace(old, new)
else:
return re.sub(re.escape(old), new, str, flags=re.IGNORECASE)

class TextNormalizer():
"""Translates the letters of the alphabet mixed in normal"""

Expand All @@ -22,10 +29,13 @@ def CheckWord(self, word):
"""

newword = word
# если есть цифры - не меняем
if re.match("[24579]", newword):
return newword
OnlyRu = "БбвГгДдЁёЖжЗзИиЙйЛлмнПптУФфЦцЧчШшЩщЪъЫыЬьЭэЮюЯя"
OnlyEn = "DdFfGghIiJjLlNQqRrSstUVvWwYZz"
Rus = "АаВЕеКкМНОоРрСсТуХхЗО1тиа@пьб"
Eng = "AaBEeKkMHOoPpCcTyXx30imu@anb6"
Rus = "АаВЕеКкМНОоРрСсТуХхЗО1тиапьб"
Eng = "AaBEeKkMHOoPpCcTyXx30imu@nb6"

IsRu100percent = False
for c1 in word:
Expand Down Expand Up @@ -80,9 +90,28 @@ def CheckText(self, text):
newWord = self.CheckWord(word)
if self.Changes:
newText = newText.replace(word, newWord)
Rus = ["с", "у", "нет", "ее"]
Eng = ["c", "y", "heт", "ee"]
if text != newText:
newText = newText.replace("Y", "У").replace("B", "В")
newText = newText.replace("C", "С").replace("мрз", "mp3").replace("HET", "НЕТ")
newText = newText.replace("B", "В").replace("H", "Н")
for i in range(0, len(Rus)):
newText = replace(Eng[i], Rus[i], newText, False)
patterns = [
"[cс][kк][oо][pр][еe]",
"[kк][yу][pр][сc]",
"[kк][yу][pр][сc][eе]",
"[s][kк][yу][pр][eе]",
r"[a]([a-zа-яё\s,:.?!]+)"
]
replaces = [
"скорее",
"курс",
"курсе",
"skype",
r"а\1"
]
for i in range(0, len(patterns)):
newText = re.sub(patterns[i], replaces[i], newText, flags=re.IGNORECASE)
return newText

def main():
Expand Down
2 changes: 1 addition & 1 deletion buildVars.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
# Translators: Long description to be shown for this add-on on add-on information from add-ons manager
"addon_description": _("""Translates the letters of the alphabet mixed in normal."""),
# version
"addon_version": "2021.02.02",
"addon_version": "2021.02.03",
# Author(s)
"addon_author": u"alekssamos <aleks-samos@yandex.ru>",
# URL for the add-on documentation support
Expand Down

0 comments on commit 83718c6

Please sign in to comment.