Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import telebot
- from telebot.types import InputMediaPhoto
- from watchdog.observers import Observer
- from watchdog.events import FileSystemEventHandler
- TOKEN = ''
- bot = telebot.TeleBot(TOKEN)
- chat_id = ''
- sent_files = set()
- class Handler(FileSystemEventHandler):
- def on_created(self, event):
- if event.is_directory:
- return None
- filename = os.path.basename(event.src_path)
- # Проверяем, что это графический файл и он ещё не был отправлен
- if filename.lower().endswith(('.jpg', '.jpeg', '.png', '.gif')) and filename not in sent_files:
- # Добавляем файл в множество отправленных
- sent_files.add(filename)
- # Получаем размер файла
- file_size = os.stat(event.src_path).st_size
- if file_size <= 50 * 1024 * 1024: # Если файл меньше 50 МБ, отправляем его одним сообщением
- with open(event.src_path, 'rb') as file:
- bot.send_document(chat_id, file)
- else: # Если файл больше 50 МБ, отправляем его в нескольких сообщениях-частях
- with open(event.src_path, 'rb') as file:
- file_parts = []
- chunk_size = 50 * 1024 * 1024
- while True:
- chunk = file.read(chunk_size)
- if not chunk:
- break
- file_parts.append(chunk)
- media = [InputMediaPhoto(file_part) for file_part in file_parts]
- bot.send_media_group(chat_id, media)
- event_handler = Handler()
- observer = Observer()
- observer.schedule(event_handler, 'D:/', recursive=False)
- observer.start()
- try:
- while True:
- pass
- except KeyboardInterrupt:
- observer.stop()
- observer.join()
Advertisement
Add Comment
Please, Sign In to add comment