Pull to refresh

Comments 20

где-то ошиблись кавычкой, видимо, подсветка подвела
Прочитал статью, и возник вопрос — чтобы автоответчик работал всегда, нужно этот скрипт постоянно работающим держать? Просто если это так, то это не совсем удобно получится (процесс python.exe)
Очевидно, что скрипт неплохо было бы доработать так, чтобы запускать его как демона.

P.S. Автору — спасибо, узнал про skype4py
чтобы автоответчик работал всегда, необходимо, чтобы был запущен сам скайп и конечно скрипт.
если смущает консольное окошко python, то под виндами можно скрипт запустить при помощи pythonw.exe.
Понятно)
ну, а если несколько скриптов работает? и у всех одинаковые имена)
надо бы мне все-таки раз и навсегда научиться, как запускать скрипт отдельным именованным процессом.
как минимум, в process explorer можно посмотреть у процесса параметр «Command line», там будет примерно так:
pythonw skypeAO.py
Как Вариант, скопировать pythonw.exe и переименовать его в что надо и пускать потом.
Можно использовать py2exe для «конвертации» в exe'шник.
UFO just landed and posted this here
self.WavFile = os.path.abspath('outofoffice.wav') #файл с ответом
self.IncomingCallsDir = os.path.abspath('incoming') #папка с аудиофайлами
Да и в целом для конкатенации путей к файлам используйте os.path.join()
+500
для работы с путями вообще лучше os.path использовать, гораздо меньше головной боли на другой платформе.
Последний скайп на Mac OS ловит segmentation fault на skype.Attach()
Очень жаль.
тоже самое и на убунте, но если перед запуском скипта выставить статус в скайпе «Не в сети», потом запустить скрипт и только потом уже выбрать нужный статус — все путём
Не помогло.
По идее, в момент skype.Attach() скайп должен показать предупреждение, что мы хотим его попользовать из вне. Когда-то было так.

Видимо в новой версии, что-то по этому поводу поменяли.
+API стал доступен только зарестрированным мемберам.
рано я начал радоваться малость, во время поступления звонка краш-памяти все равно наступает, так что явный баг какой-то
может на виндовс этого и нет через более фиксенные клиенты
while True:
    time.sleep(1)

Неужто в API скайпа нет какого нить метода на котором можно заблокироваться для ожидания событий? Мне кажется должен на skype.Attach() блокироваться, разве нет?

Да и print-ы правильнее было бы заменить на какой нить logging.debug()

Ну и использовать глобальное пространство имен тоже как то дурной тон. Определили бы onAttach(status) как замыкание в main() или как один из методов AnsweringMachine, передавали бы «skype» и список «CallIsFinished» в конструктор AnsweringMachine (или прям в конструкторе генерировали CallIsFinished)

А вообще прикольно, надо будет посмотреть этот API
Исправил два бага в логике: 1) автоответчик включался также при исходящих звонках 2) включался, в случае если трубка таки была поднята человеком.

Протестить на ubuntu или macos пока нет возможности =(
Прикольно бы сделать видео автоответчик с гипножабой. :)
Sign up to leave a comment.

Articles