запуск бота и сайта одновременно

This commit is contained in:
2023-04-29 08:58:09 +07:00
parent 3ee35ae080
commit 6aa9211ab7
4 changed files with 40 additions and 40 deletions
Executable
+64
View File
@@ -0,0 +1,64 @@
from aiogram.utils import executor
from loguru import logger
from aiogram import Bot, Dispatcher, types
from functions import get_audio_messages_func, openai_answer, yandex
import json
bot = Bot(token="5941118321:AAG0g0keLrlnuH_9U9X6ehpFFAdOX38qeXI") # создаю объект бота
dp = Dispatcher(bot) # создаю объект слушателя
logger.remove() # удаляю стандартный логер
logger.add("static/logs/logging_log.log", level="INFO") # создаю логер
@dp.message_handler(commands=['start']) # обрабатываю команду start
async def start(message: types.Message):
# получаю имя отправителя
if message.chat.first_name:
name = message.chat.first_name
else:
name = message.chat.title
logger.info(f"Группа {name} (ID: {message.chat.id}) запустил бота") # записываю в логи
await bot.send_message(message.chat.id, 'Привет! Отправляй голосовое, я расшифрую!') # отправляю ответное сообщение
@dp.message_handler(commands=['statistic'])
async def statistic(message: types.Message):
await yandex.statistic(message)
@dp.message_handler(commands=['create_yandex'])
async def create_yandex(message: types.Message):
await yandex.create_yandex(message)
@dp.message_handler(commands=['r'])
async def r(message: types.Message):
await openai_answer.get_response_to_openai(message, bot)
@dp.message_handler(commands=['r_clear'])
async def r_clear(message: types.Message):
await openai_answer.clear_db(message)
@dp.message_handler(content_types=['text'])
async def not_work_user(message: types.Message):
if str(message.from_user.id) == "620318992" and message.text == "Гена, бань его нахуй" and message.reply_to_message:
with open('../not_work_user.json', 'r') as f:
data = json.load(f)
data['chat_gpt'].append(message.reply_to_message.from_user.id)
with open('../not_work_user.json', 'w') as f:
json.dump(data, f, indent=4)
await message.reply(f"@{message.reply_to_message.from_user.username} "
f"вы больше не можете со мной разговаривать")
@dp.message_handler(content_types=['voice', 'video_note', 'video']) # обрабатываю голосовые сообщения, кружки, видео
async def get_audio_messages(message: types.Message):
await get_audio_messages_func.get_audio_messages_func(message, logger, bot) # вызываю функцию
def start_work_bot(): # функция запуска бота
logger.info("Бот запустился") # записываю логи
executor.start_polling(dp, skip_updates=True) # запускаю pooling без пропуска пропущенных сообщений
+33
View File
@@ -0,0 +1,33 @@
from fastapi import FastAPI, Request, Form, Depends, Cookie, responses, templating, staticfiles
from functions.admin import is_logged_in
from functions.admin.models import database
from functions.admin.templates import logins, refresh, logs, log
def Site():
app = FastAPI()
templates = templating.Jinja2Templates(directory="static/templates")
app.mount("/static", staticfiles.StaticFiles(directory="static"), name="static")
@app.get("/", response_class=responses.HTMLResponse)
def login(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
@app.get("/login", response_class=responses.HTMLResponse)
def login(request: Request):
return templates.TemplateResponse("login.html", {"request": request})
@app.post("/logins")
async def logins_response(username: str = Form(...), password: str = Form(...), db=Depends(database.get_db)):
return await logins.logins(username, password, db)
@app.get("/refresh")
async def refresh_access_token(req: Request, refresh_token: str = Cookie(None), db=Depends(database.get_db)):
return await refresh.refresh_access_token(req, refresh_token, db)
@app.get("/logs", response_class=responses.HTMLResponse)
async def logs_response(request: Request, logged_in: bool = Depends(is_logged_in.is_logged_in)):
return await logs.logs(templates, request, logged_in)
@app.get("/logs/{log_id}", response_class=responses.HTMLResponse)
async def log_response(request: Request, log_id: int, logged_in: bool = Depends(is_logged_in.is_logged_in)):
return await log.log(templates, request, log_id, logged_in)