from io import BytesIO
from os import environ

import dotenv
from aiogram import Bot, Dispatcher, executor, types
from httpx import AsyncClient

dotenv.load_dotenv()
bot = Bot(token=environ["TG_TOKEN"])
dp = Dispatcher(bot)


@dp.message_handler(commands=["start"])
async def start(mes: types.Message) -> None:
    await mes.reply(
        f"Привет {mes.from_user.get_mention()}",
        parse_mode="MarkdownV2",
    )


@dp.message_handler(commands=["send_pic"])
async def send_pic(mes: types.Message) -> None:
    async with AsyncClient() as client:
        response = await client.get(
            "https://loremflickr.com/320/240/dog",
            follow_redirects=True,
        )
    photo = BytesIO(response.content)
    photo.name = "dog.jpg"
    await mes.reply_photo(photo, "Here you go")


@dp.message_handler(content_types=types.ContentTypes.TEXT)
async def message_handler(mes: types.Message) -> None:
    await bot.send_message(mes.chat.id, mes.text)
    print(mes.text)


executor.start_polling(dp)