Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
первое что бросилось в глаза… это был вот этот кусок. похожее есть в
if 'lang' in respdetect.keys():
respdetect = respdetect
else:
respdetect = {'code': 200, 'lang': 'en'}
Почему бы не заменить на
if 'lang' not in respdetect.keys():
respdetect = {'code': 200, 'lang': 'en'}
во-вторых, не всегда requests.get вернет объект response из которого можно вытащить json. я бы, все таки, проверил что response code == 200 (или requests.codes.ok
); или использовал response.raise_for_errors()
.
ну и самое интересное — а что произойдет, если clipboard изменится между вызовом detect()
и translate()
? понимаю, что маловероятно, но это race condition. посоветовал бы сохранять состояние клипборда в переменную, а потом уже детектить язык и переводить.
if langtetect != 'ru':
langout = langtetect + '-ru'
else:
langout = 'ru-en'
langout = 'ru-' + langtetect
langout = 'ru-{}'.format(langtetect)
langout = f'ru-{langtetect}'
Яндекс.переводчик для Linux на Python+GTK3