@khadjiru666

Как сделать Телеграм-бота(Передача файлов)?

Ранее задавал вопрос про такого бота(удалили видимо). В общем и целом, моя задача была сделать бота, который будет кидать в течении N-количество промежуток какой то файл (txt.), а лучше его данные.
Вот сам код
import telebot
from telebot import types

bot = telebot.TeleBot('ВАШ ТОКЕН')

def main():
    markup = types.ReplyKeyboardMarkup(True)
    key1 = types.KeyboardButton('Статус Взлома')
    markup.add(key1)
    return markup

@bot.message_handler(commands=['Статус Взлома'])
def start(message):
    bot.send_message(message.chat.id, 'Привет', reply_markup=main())

@bot.message_handler(content_types=['text'])
def cont(message):
    with open('example.txt') as misc:
        f = open('example.txt', 'rb')
        bot.send_document(message.chat.id, f)
bot.polling()



Свою задачу выполняет, но когда даешь команду(нажимаешь кнопку).
Как сделать чтобы он отправлял файл сам? Без команды
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alegzz
можно отслеживать изменения в файле с помощью модуля watchdog:
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import time

class MyHandler(FileSystemEventHandler):
    def on_modified(self, event):
        print('Файл {} изменился'.format(event.src_path))

observer = Observer()
observer.schedule(MyHandler(), path="example.txt", recursive=False)
observer.start()
while True:
    time.sleep(1)
Ответ написан
@CleanyBoom
Кхм. Просто вынеси за пуллинг и отправь сообщение отдельно
chat_id = 746698178 # сюда чат айди
f = open('example.txt', 'rb')
bot.send_document(chat_id, f)


А чат айди можно получить например так
@bot.message_handler(content_types=['text'])
def mess(message):
    bot.send_message(message.chat.id, message.chat.id) # Бот на текстовое сообщение вернет твой чат айди


P.S. Пример работы сначала 2 кода потом 1
6072a641ad9fe550063528.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы