Добрый день.
Система Windows10
Python 3.8.5
Пытаюсь объеденить две программы, нужно что бы бот при появлении нового файла в папке отправлял его содержимого в телеграмм.
При таком коде не выполняется часть кода отвечающая за слежение за изменениями в папке.
Система Windows10
Python 3.8.5
Пытаюсь объеденить две программы, нужно что бы бот при появлении нового файла в папке отправлял его содержимого в телеграмм.
При таком коде не выполняется часть кода отвечающая за слежение за изменениями в папке.
Python:
import telebot
import config
import random
from telebot import types
import sys
import time
#import logging
from watchdog.observers import Observer
#from watchdog.events import LoggingEventHandler
from watchdog.events import FileSystemEventHandler
bot = telebot.TeleBot(config.TOKEN)
with open("test.txt") as file:
rline = file.read()
@bot.message_handler(content_types=['text'])
def lalala(message):
if message.chat.type == 'private':
if message.text == '? Рандомное число':
bot.send_message(message.chat.id, str(rline))
elif message.text == '? Как дела?':
markup = types.InlineKeyboardMarkup(row_width=2)
item1 = types.InlineKeyboardButton("Хорошо", callback_data='good')
item2 = types.InlineKeyboardButton("Не очень", callback_data='bad')
markup.add(item1, item2)
bot.send_message(message.chat.id, 'Отлично, сам как?', reply_markup=markup)
else:
bot.send_message(message.chat.id, 'Я не знаю что ответить ?')
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
try:
if call.message:
if call.data == 'good':
bot.send_message(call.message.chat.id, 'Вот и отличненько ?')
elif call.data == 'bad':
bot.send_message(call.message.chat.id, 'Бывает ?')
# remove inline buttons
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="? Как дела?",
reply_markup=None)
# show alert
bot.answer_callback_query(callback_query_id=call.id, show_alert=False,
text="ЭТО ТЕСТОВОЕ УВЕДОМЛЕНИЕ!!11")
except Exception as e:
print(repr(e))
# RUN
bot.polling(none_stop=True)
class EventHandler(FileSystemEventHandler):
# вызывается на событие создания файла или директории
def on_created(self, event):
bot.send_message(message.chat.id, str(rline))
# вызывается на событие модификации файла или директории
def on_modified(self, event):
print(event.event_type,event.src_path)
# вызывается на событие удаления файла или директории
def on_deleted(self, event):
print(event.event_type,event.src_path)
# вызывается на событие перемещения\переименования файла или директории
def on_moved(self, event):
print(event.event_type,event.src_path,event.dest_path)
if __name__ == "__main__":
#logging.basicConfig(level=logging.INFO,
# format='%(asctime)s - %(message)s',
# datefmt='%Y-%m-%d %H:%M:%S')
path = r"C:\Work\export" # отслеживаемая директория с нужным файлом
event_handler = EventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()