Initial Commit
This commit is contained in:
parent
79051d60f7
commit
735cfc10ac
9
.idea/.gitignore
generated
vendored
Normal file
9
.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
.env
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
22
Dockerfile
Normal file
22
Dockerfile
Normal file
@ -0,0 +1,22 @@
|
||||
# Используем официальный Python образ в качестве базового
|
||||
FROM python:3.11-slim
|
||||
|
||||
LABEL authors="UdoChudo"
|
||||
|
||||
# Устанавливаем рабочую директорию в контейнере
|
||||
WORKDIR /app
|
||||
|
||||
# Копируем файлы зависимостей в рабочую директорию
|
||||
COPY requirements.txt .
|
||||
|
||||
# Устанавливаем зависимости
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# Копируем все файлы проекта в рабочую директорию
|
||||
COPY main.py .
|
||||
|
||||
# Устанавливаем переменную окружения для токена API
|
||||
ENV API_TOKEN=your_api_token_here
|
||||
|
||||
# Команда для запуска бота
|
||||
CMD ["python", "main.py"]
|
||||
98
main.py
Normal file
98
main.py
Normal file
@ -0,0 +1,98 @@
|
||||
import logging
|
||||
import requests
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.filters import Command
|
||||
from aiogram.types import Message
|
||||
from aiogram.methods import SendPhoto
|
||||
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()
|
||||
async def default_message(message: types.Message):
|
||||
pass
|
||||
|
||||
async def main():
|
||||
# Регистрация обработчиков
|
||||
dp.message.register(send_boobs)
|
||||
dp.message.register(send_butts)
|
||||
|
||||
# Запуск polling
|
||||
await dp.start_polling(bot)
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
20
requirements.txt
Normal file
20
requirements.txt
Normal file
@ -0,0 +1,20 @@
|
||||
aiofiles==23.2.1
|
||||
aiogram==3.12.0
|
||||
aiohappyeyeballs==2.4.0
|
||||
aiohttp==3.10.5
|
||||
aiosignal==1.3.1
|
||||
annotated-types==0.7.0
|
||||
attrs==24.2.0
|
||||
certifi==2024.8.30
|
||||
charset-normalizer==3.3.2
|
||||
frozenlist==1.4.1
|
||||
idna==3.8
|
||||
magic-filter==1.0.12
|
||||
multidict==6.0.5
|
||||
pydantic==2.8.2
|
||||
pydantic_core==2.20.1
|
||||
python-dotenv==1.0.1
|
||||
requests==2.32.3
|
||||
typing_extensions==4.12.2
|
||||
urllib3==2.2.2
|
||||
yarl==1.9.7
|
||||
Loading…
x
Reference in New Issue
Block a user