HomebrewTgBot/main.py
2025-02-03 22:12:02 +05:00

114 lines
4.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import logging
import requests
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from aiogram.types import Message
from dotenv import load_dotenv
import os
import asyncio
# Загрузка переменных окружения из .env файла
load_dotenv()
# Получение токена из переменной окружения
API_TOKEN = os.getenv('BOT_TOKEN')
LOG_LEVEL = os.getenv("LOG_LEVEL")
if not API_TOKEN:
raise ValueError("No API_TOKEN provided. Please set the API_TOKEN environment variable.")
# Настраиваем логирование
logging.basicConfig(level=logging.ERROR)
# Инициализация бота
bot = Bot(token=API_TOKEN)
dp = Dispatcher()
# Обработчик команды /boobs
@dp.message(Command(commands=['boobs'], prefix="!/"))
async def send_boobs(message: Message):
# Выполнение запроса к API oboobs
response = requests.get('http://api.oboobs.ru/boobs/1/1/random')
if response.status_code == 200:
data = response.json()
if data:
# Получение значения preview
preview = data[0]['preview']
# Убираем подстроку "_preview" из пути
img_path = preview.replace("_preview", "")
# Формируем полный URL
img_url = f'https://media.oboobs.ru/{img_path}'
# Отправка картинки и сообщения в групповой чат
await bot.send_photo(
chat_id=message.chat.id, # Отправка в тот же чат, где была вызвана команда
photo=img_url,
has_spoiler=True,
caption=f"{message.from_user.username} заказал сиськи!"
)
else:
await message.answer("Не удалось получить данные с сервера.")
else:
await message.answer("Ошибка при выполнении запроса к API.")
# Обработчик команды /boobs
@dp.message(Command(commands=['butts'], prefix="!/"))
async def send_butts(message: Message):
# Выполнение запроса к API oboobs
response = requests.get('http://api.obutts.ru/butts/1/1/random')
if response.status_code == 200:
data = response.json()
if data:
# Получение значения preview
preview = data[0]['preview']
# Убираем подстроку "_preview" из пути
img_path = preview.replace("_preview", "")
# Формируем полный URL
img_url = f'http://media.obutts.ru/{img_path}'
# Отправка картинки и сообщения в групповой чат
await bot.send_photo(
chat_id=message.chat.id, # Отправка в тот же чат, где была вызвана команда
photo=img_url,
has_spoiler=True,
caption=f"{message.from_user.username} заказал жопки!"
)
else:
await message.answer("Не удалось получить данные с сервера.")
else:
await message.answer("Ошибка при выполнении запроса к API.")
@dp.message(Command(commands=['cats'], prefix="!/"))
async def send_cats(message: Message):
response = requests.get('https://api.thecatapi.com/api/images/get?api_key=Mjg0Mzg2&format=json')
if response.status_code == 200:
data = response.json()
if data:
img_url = str(data[0]['url'])
await bot.send_photo(
chat_id=message.chat.id, # Отправка в тот же чат, где была вызвана команда
photo=img_url,
has_spoiler=False,
caption=f"{message.from_user.username} заказал котиков!"
)
else:
await message.answer("Не удалось получить данные с сервера.")
else:
await message.answer("Ошибка при выполнении запроса к API.")
@dp.message()
async def default_message(message: types.Message):
pass
async def main():
# Регистрация обработчиков
dp.message.register(send_boobs)
dp.message.register(send_butts)
dp.message.register(send_cats)
# Запуск polling
await dp.start_polling(bot)
if __name__ == '__main__':
asyncio.run(main())