Не работает данный код по загрузке файла на сервер телеграмм. Прошу не смотреть на сам код, ибо писал с помощью разных источников и официального API. Скорее всего ошибки в импорте библиотек, не понимаю почему не работают. Вот код:
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from telegram import ChatAction
import os
TOKEN = "<YOUR_BOT_TOKEN>"
def start(update, context):
update.message.reply_text("Пришли мне файл, и я загружу его на сервер Telegram.")
def upload_file(update, context):
context.bot.send_chat_action(chat_id=update.message.chat_id, action=ChatAction.UPLOAD_DOCUMENT)
file = update.message.document
file_name = file.file_name
file_path = f"downloads/{file_name}"
file.get_file().download(file_path)
file_id = file.file_id
download_link = f"https://api.telegram.org/file/bot{TOKEN}/{file_id}"
update.message.reply_text(f"Файл '{file_name}' успешно загружен на сервер Telegram.\n"
f"Ссылка для скачивания: {download_link}")
def main():
updater = Updater(token=TOKEN, use_context=True)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler("start", start))
dispatcher.add_handler(MessageHandler(Filters.document, upload_file))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
UPD: Ошибка заключается в 1 строке, а именно:
Traceback (most recent call last):
File "C:\Users\Anton\Desktop\py.py", line 1, in <module>
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
ImportError: cannot import name 'Filters' from 'telegram.ext' (C:\Users\Anton\AppData\Local\Programs\Python\Python312\Lib\site-packages\telegram\ext\__init__.py)
UPD 2: После исправления первых 2 строк на это:
from telegram.ext import Updater, CommandHandler, MessageHandler, filters
from telegram.chataction import ChatAction
Появилась новая проблема:
Traceback (most recent call last):
File "C:\Users\Anton\Desktop\py.py", line 2, in <module>
from telegram.chataction import ChatAction
ModuleNotFoundError: No module named 'telegram.chataction'
Полазил в инете, telegram.chataction было самым "лучшим" решением проблемы, но одна проблема сменилась на другую