СВОЙ - TG бот для генерировать ссылки на загруженные файлы

Urac

New member
Пользователь
Регистрация
13 Фев 2025
Сообщения
4
Реакции
0
Чтобы создать Telegram-бота, который будет генерировать ссылки на загруженные файлы с нужным вам форматом, нужно сделать следующее:

Шаг 1: Создать бота в Telegram​

  1. Перейдите в Telegram и найдите бота.
  2. Используйте команду /newbot, чтобы создать нового бота, и следуйте инструкциям.
  3. После создания бота вы получите токен API, который будет нужен для работы с Telegram API.

Шаг 2: Настроить окружение​

Убедитесь, что у вас установлены Python и необходимые библиотеки:
Bash:
pip install pyTelegramBotAPI flask

Шаг 3: Написать код бота​

Вот пример кода бота, который будет принимать файл, сохранять его и генерировать ссылку с форматом header=video.mp4:
Python:
import telebot
from flask import Flask, request, send_from_directory
import os
import requests

API_TOKEN = 'YOUR_TELEGRAM_BOT_API_TOKEN'
SERVER_URL = 'https://your-domain.com'  # Замените на ваш домен или IP
DOWNLOAD_DIR = 'downloads'

bot = telebot.TeleBot(API_TOKEN)
app = Flask(__name__)

# Создаем директорию для хранения файлов
if not os.path.exists(DOWNLOAD_DIR):
    os.makedirs(DOWNLOAD_DIR)

@bot.message_handler(content_types=['video'])
def handle_docs_video(message):
    # Получаем file_id и сохраняем файл
    file_info = bot.get_file(message.video.file_id)
    file = requests.get(f'https://api.telegram.org/file/bot{API_TOKEN}/{file_info.file_path}')
    file_name = message.video.file_name or f"{message.video.file_id}.mp4"
    file_path = os.path.join(DOWNLOAD_DIR, file_name)
    
    with open(file_path, 'wb') as f:
        f.write(file.content)
    
    # Генерируем ссылку на файл
    file_link = f"{SERVER_URL}/api/tg/file?id={message.video.file_id}&name={file_name}&header=video.mp4"
    bot.send_message(message.chat.id, f"Your file is uploaded: {file_link}")

@app.route('/api/tg/file', methods=['GET'])
def download_file():
    file_id = request.args.get('id')
    file_name = request.args.get('name')
    
    # Проверяем наличие файла
    if os.path.exists(os.path.join(DOWNLOAD_DIR, file_name)):
        return send_from_directory(DOWNLOAD_DIR, file_name, as_attachment=True)
    else:
        return "File not found", 404

if __name__ == '__main__':
    bot.polling(none_stop=True)
    app.run(host='0.0.0.0', port=5000)

Шаг 4: Настроить сервер​

  1. Настроить веб-сервер:
    • Если у вас есть домен, убедитесь, что ваш сервер настроен на работу с Flask (например, используя Gunicorn или uWSGI в связке с Nginx).
    • Если у вас нет домена, вы можете использовать ngrok для временного получения публичного URL.
  2. Запустить бота:
    • Запустите бота на вашем сервере командой:
Bash:
python bot.py
  1. Убедиться, что Flask-приложение работает:
    • Откройте браузер и перейдите по вашему SERVER_URL, чтобы убедиться, что Flask-приложение запущено и готово к обработке запросов.

Шаг 5: Тестирование​

  1. Отправьте видео боту в Telegram.
  2. Получите от бота ссылку на видео, которая будет выглядеть как <file_id>&name=<file_name>&header=video.mp4.
  3. Перейдите по этой ссылке, чтобы убедиться, что файл загружается корректно.

Завершение​

Этот бот будет получать видеофайлы, сохранять их на сервере и генерировать ссылки с нужным форматом header=video.mp4. Вы можете кастомизировать бота под свои нужды, например, добавив поддержку других типов файлов или изменив логику обработки.
 
Сверху