Не могу получить фото из папки на сервере которую бот должен выгружать мне в чат.. сделал так, но не вышло..
Как сделать чтобы бот отправлял фото сразу же, как только появляется движение?
#!/usr/bin/python
import config #файл с настройками
import telegram
import os
import subprocess
import sys
import shlex
import datetime
from subprocess import Popen, PIPE
from telegram.ext import CommandHandler
from imp import reload #модуль для перезагрузки (обновления) других модулей
from datetime import datetime
from telegram.ext import Updater
updater = Updater(token=config.token)
dispatcher = updater.dispatcher
процедура выполнения скрипта и тот код который пытался внедрить чтобы бот отправлял фото мне в чат из папки, куда motion сохраняет снимки движения объекта в поле зрения камеры.. формат снимков {:%d-%b-%Y-%R}.jpg
то есть 29-Jun-2017-18:54.jpg
def camon(bot, update):
reload(config)
user = str(update.message.from_user.id)
if user in config.admin: #если пользовательский id в списке admin то команда выполняется
run_command("/home/ignat/bot_serv/scriptcamon.sh")
photo = '/media/root/server/motion/{:%d-%b-%Y-%R}.jpg'.format(datetime.now())
bot.sendMessage(chat_id=update.message.chat_id, text=textoutput)
bot.sendPhoto(chat_id, open(photo, 'rb'))
ну вообще, думал реализовать отслеживание нового файла отдельно через watchdog или простым циклом , то есть в другом демоне а не в основном коде бота таким кодом
import telegram
bot = telegram.Bot('TOKEN')
def main():
# Тут должно быть отслеживание нового файла и вызов коллбэка
def on_new_file_created(new_file_name):
photo = '/media/root/server/motion/{:%d-%b-%Y-%R}.jpg'.format(new_file_name)
bot.sendPhoto(chat_id, open(photo, 'rb'))
if __name__ == '__main__':
main()
Свежие комментарии