From a034254cbea47d84aa02b3c44c8be3cc9e15bd50 Mon Sep 17 00:00:00 2001 From: Roman Timashev Date: Mon, 16 Oct 2017 03:16:12 +0300 Subject: [PATCH] [Sync] Kazimir uses ALS Typograf --- utils/Sync/kazimir/__init__.py | 8 +++--- utils/Sync/kazimir/artlebedev.py | 43 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 utils/Sync/kazimir/artlebedev.py diff --git a/utils/Sync/kazimir/__init__.py b/utils/Sync/kazimir/__init__.py index 4423f720..6e4e22fd 100644 --- a/utils/Sync/kazimir/__init__.py +++ b/utils/Sync/kazimir/__init__.py @@ -94,9 +94,11 @@ def html_from_tree(tree): async def typo(text): - url = 'http://www.typograf.ru/webservice/' - params = dict(text=text) - return await request.post(url, params, {'chr': 'utf-8'}) + from kazimir import artlebedev + return await artlebedev.typograf(text) + # url = 'http://www.typograf.ru/webservice/' + # params = dict(text=text) + # return await request.post(url, params, {'chr': 'utf-8'}) def join_tokens(tokens): diff --git a/utils/Sync/kazimir/artlebedev.py b/utils/Sync/kazimir/artlebedev.py new file mode 100644 index 00000000..e44289a5 --- /dev/null +++ b/utils/Sync/kazimir/artlebedev.py @@ -0,0 +1,43 @@ +from sync.data import request +from lxml import etree + + +async def typograf(text, options={}): + text = text.replace('&', '&') + text = text.replace('<', '<') + text = text.replace('>', '>') + + body = ''' + + + + + {text} + 1 + 0 + 1 + 3 + + + + '''.strip().format(text=text) + + url = 'http://typograf.artlebedev.ru/webservices/typograf.asmx' + resp = await request.post(url, body, {}, { + 'Content-Type': 'text/xml', + 'SOAPAction': 'http://typograf.artlebedev.ru/webservices/ProcessText', + }) + + response_tree = etree.fromstring(resp.encode()) + + try: + # look for ProcessTextResult + typograf_response = response_tree.getchildren()[0].getchildren()[0].getchildren()[0].text + except Exception as response_tree: + print(response_tree) + return text + + typograf_response = typograf_response.replace('&', '&') + typograf_response = typograf_response.replace('<', '<') + typograf_response = typograf_response.replace('>', '>') + return typograf_response