Написал я скрипт для быстрой генерации карточек anki:
#!/bin/env python
import os
import requests
import re
import sys
file_name = sys.argv[2]
word = sys.argv[1]
html_ipa = requests.get('https://wooordhunt.ru/word/'+word).text
ipa = re.findall(r'<span title="американская транскрипция слова .*?" class="transcription"> .*?</span>', html_ipa)[0]
ipa = re.findall(r'\|.*?\|', ipa)[0][1:-1]
translate = os.popen('trans en:ru -b '+word).read()[:-1] # Использую пакет translate-shell, ибо судя по всему гугл транслейт в лоб не берётся. Почему то оно очень медленное. (!!!!!!!)Надо заменить.
print('English word: '+word+'\nTranscription: '+ipa+'\nRussian word: '+translate)
en_example = input('English example: ')
ru_example = input('Russian example: ')
input()
with open(file_name, 'a') as f:
print(word, ipa, en_example, translate, ru_example, sep='\t', file = f)
Если вызывать из терминала по запросу:
exo-open --launch TerminalEmulator /home/d/ankigen.py "$(xsel -o)" /home/d/toanki.txt
То всё работает как надо (в новом окне термнала выполняется скрипт).
Однако, если выполнять эту же команду по хоткею, тогда скрипт крашится:
Traceback (most recent call last):
File "/home/d/ankigen.py", line 22, in <module>
ipa = re.findall(r'<span title="американская транскрипция слова .*?" class="transcription"> .*?</span>', html_ipa)[0]
IndexError: list index out of range
Система manjaro. Хоткей через гуй прописывал.
Я просто с толку сбит, в чём может быть дело?
anki, bash, python