SublimeTypograph/lib/mdash.py
2015-12-27 09:28:03 +03:00

66 lines
1.6 KiB
Python

import json
import urllib.request
__author__ = 'Anton Vakhrushev'
__email__ = 'anwinged@ya.ru'
MDASH_URL = 'http://mdash.ru/api.v1.php'
class TypographError(RuntimeError):
pass
class Typograph(object):
def __init__(self, rules=None):
self.rules = self.__prepare_rules(rules)
def process(self, text):
data = self.__prepare_data(text)
answer = self.__request(data)
answer = json.loads(answer)
self.__ensure_answer_is_correct(answer)
return answer['result']
def __prepare_data(self, text):
data = {}
data.update(self.rules)
data.update({'text': text})
return data
def __request(self, data):
data = urllib.parse.urlencode(data)
data = data.encode('utf-8')
request = urllib.request.Request(MDASH_URL, data)
responce = urllib.request.urlopen(request)
return responce.read().decode('utf-8')
def __ensure_answer_is_correct(self, answer):
if answer.get('status') == 'error':
raise TypographError()
def __prepare_rules(self, params):
def convert(v):
return 'on' if v == 'on' or v == True else 'off'
result = {}
params = params or {}
for k in params:
result[k] = convert(params[k])
return result
if __name__ == '__main__':
params = {
'Text.paragraphs': False,
'Text.breakline': 'off',
}
t = Typograph(params)
print(t.process('"Вы все еще кое-как верстаете в "Ворде"? - Тогда мы идем к вам!"'))