Telegram ботыБоты

Создание Telegram-бота для загрузки изображений на Telegra.ph

В этой статье мы создадим Telegram-бота на Python, который будет получать изображения от пользователя и загружать их на Telegra.ph, а затем возвращать прямую ссылку на изображение.

Подготовка окружения

Для начала, установите необходимые библиотеки:

pip install aiogram pytelegraph

Создание бота и настройка токена

  1. Создайте бота в @BotFather и получите токен.
  2. В файле config.py сохраните токен:
TOKEN = 'your_bot_token'

Реализация бота

Создайте файл main.py и импортируйте необходимые библиотеки:

import logging
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.types import ParseMode
from aiogram.utils import executor
from pytelegraph import Telegraph
from config import TOKEN

Настройте логирование:

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

Создайте экземпляры бота и диспетчера:

bot = Bot(token=TOKEN)
dp = Dispatcher(bot)

Создайте экземпляр Telegraph и авторизуйтесь с помощью метода create_account:

telegraph = Telegraph()
telegraph.create_account(short_name='YourBotName')

Создайте обработчик команды /start:

@dp.message_handler(commands=['start'])
async def cmd_start(message: types.Message):
    await message.reply("Привет! Отправь мне изображение, и я загружу его на Telegra.ph и верну ссылку на него.")

Создайте обработчик для получения изображений:

@dp.message_handler(content_types=['photo'])
async def process_photo(message: types.Message):
    photo = message.photo[-1]
    photo_path = await bot.download_file_by_id(photo.file_id)

    with open(photo_path, 'rb') as photo_file:
        telegraph_upload = telegraph.upload_file([photo_file])

    photo_url = f'https://telegra.ph{telegraph_upload[0]}'
    await message.reply(f'Ваше изображение загружено на Telegra.ph:\n{photo_url}', parse_mode=ParseMode.HTML)

Запустите бота:

if __name__ == '__main__':
    from aiogram import executor
    executor.start_polling(dp, skip_updates=True)

Теперь ваш бот готов к работе! Отправьте ему фотографию, и он загрузит ее на Telegra.ph и вернет прямую ссылку на изображение.

5/5 - (1 голос)

Добавить комментарий

Back to top button