Как стать автором
Обновить

Комментарии 7

первое что бросилось в глаза… это был вот этот кусок. похожее есть в


    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. посоветовал бы сохранять состояние клипборда в переменную, а потом уже детектить язык и переводить.

Почему бы не заменить на

Ну в общем то, да. Так лучше.
посоветовал бы сохранять состояние клипборда в переменную

А вот насчет этого даже и не знаю. Там же тысячные доли секунды.
В скрипте специально оставлен API ключ?
У него есть лимит бесплатного использования, кроме того любой желающий может получить свой.
Спасибо. Исправил.
if langtetect != 'ru':
        langout = langtetect + '-ru'
    else:
        langout = 'ru-en'

Зачем так, если можно в одну строку:
   langout = 'ru-' + langtetect

А еще лучше так:
   langout = 'ru-{}'.format(langtetect)

Или даже так:
   langout = f'ru-{langtetect}'
Зачем так, если можно в одну строку

И будет переводить в одну сторону.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории