|
|
|
@@ -2,14 +2,45 @@
|
|
|
|
|
|
|
|
|
|
from aiogram import Bot, F, Router, types
|
|
|
|
|
|
|
|
|
|
from ocab_core.logger import log
|
|
|
|
|
from ocab_modules.external.yandexgpt.handlers import answer_to_message
|
|
|
|
|
from ocab_modules.standard.config.config import (
|
|
|
|
|
get_approved_chat_id,
|
|
|
|
|
get_yandexgpt_in_words,
|
|
|
|
|
get_yandexgpt_start_words,
|
|
|
|
|
from ocab_core.modules_system.public_api import get_module, log, register_router
|
|
|
|
|
|
|
|
|
|
# from ocab_modules.standard.database.db_api import *
|
|
|
|
|
|
|
|
|
|
(get_approved_chat_id, get_yandexgpt_in_words, get_yandexgpt_start_words) = get_module(
|
|
|
|
|
"standard.config",
|
|
|
|
|
["get_approved_chat_id", "get_yandexgpt_in_words", "get_yandexgpt_start_words"],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
answer_to_message = get_module("external.yandexgpt", "answer_to_message")
|
|
|
|
|
|
|
|
|
|
(
|
|
|
|
|
get_chat,
|
|
|
|
|
add_chat,
|
|
|
|
|
get_user,
|
|
|
|
|
add_user,
|
|
|
|
|
get_user_name,
|
|
|
|
|
change_user_name,
|
|
|
|
|
get_user_tag,
|
|
|
|
|
change_user_tag,
|
|
|
|
|
update_chat_all_stat,
|
|
|
|
|
update_user_all_stat,
|
|
|
|
|
add_message,
|
|
|
|
|
) = get_module(
|
|
|
|
|
"standard.database",
|
|
|
|
|
[
|
|
|
|
|
"db_api.get_chat",
|
|
|
|
|
"db_api.add_chat",
|
|
|
|
|
"db_api.get_user",
|
|
|
|
|
"db_api.add_user",
|
|
|
|
|
"db_api.get_user_name",
|
|
|
|
|
"db_api.change_user_name",
|
|
|
|
|
"db_api.get_user_tag",
|
|
|
|
|
"db_api.change_user_tag",
|
|
|
|
|
"db_api.update_chat_all_stat",
|
|
|
|
|
"db_api.update_user_all_stat",
|
|
|
|
|
"db_api.add_message",
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
from ocab_modules.standard.database.db_api import *
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def chat_check(message: types.Message):
|
|
|
|
@@ -19,15 +50,13 @@ async def chat_check(message: types.Message):
|
|
|
|
|
if get_chat(message.chat.id) is None:
|
|
|
|
|
if message.chat.id in get_approved_chat_id():
|
|
|
|
|
# print(f"Chat in approve list: {message.chat.id} {message.chat.title}")
|
|
|
|
|
await log(f"Chat in approve list: {message.chat.id} {message.chat.title}")
|
|
|
|
|
log(f"Chat in approve list: {message.chat.id} {message.chat.title}")
|
|
|
|
|
add_chat(message.chat.id, message.chat.title)
|
|
|
|
|
# print(f"Chat added: {message.chat.id} {message.chat.title}")
|
|
|
|
|
await log(f"Chat added: {message.chat.id} {message.chat.title}")
|
|
|
|
|
log(f"Chat added: {message.chat.id} {message.chat.title}")
|
|
|
|
|
else:
|
|
|
|
|
# print(f"Chat not in approve list: {message.chat.id} {message.chat.title}")
|
|
|
|
|
await log(
|
|
|
|
|
f"Chat not in approve list: {message.chat.id} {message.chat.title}"
|
|
|
|
|
)
|
|
|
|
|
log(f"Chat not in approve list: {message.chat.id} {message.chat.title}")
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
# Проверяем обновление названия чата
|
|
|
|
@@ -36,10 +65,10 @@ async def chat_check(message: types.Message):
|
|
|
|
|
chat.chat_name = message.chat.title
|
|
|
|
|
chat.save()
|
|
|
|
|
# print(f"Chat updated: {message.chat.id} {message.chat.title}")
|
|
|
|
|
await log(f"Chat updated: {message.chat.id} {message.chat.title}")
|
|
|
|
|
log(f"Chat updated: {message.chat.id} {message.chat.title}")
|
|
|
|
|
else:
|
|
|
|
|
# print(f"Chat already exists: {message.chat.id} {message.chat.title}")
|
|
|
|
|
await log(f"Chat already exists: {message.chat.id} {message.chat.title}")
|
|
|
|
|
log(f"Chat already exists: {message.chat.id} {message.chat.title}")
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -62,23 +91,19 @@ async def user_check(message: types.Message):
|
|
|
|
|
message.from_user.last_name,
|
|
|
|
|
message.from_user.username,
|
|
|
|
|
)
|
|
|
|
|
# print(f"User added: {message.from_user.id} {message.from_user.first_name} {message.from_user.last_name}")
|
|
|
|
|
await log(f"User added: {message.from_user.id} {current_user_name}")
|
|
|
|
|
log(f"User added: {message.from_user.id} {current_user_name}")
|
|
|
|
|
else:
|
|
|
|
|
# print(f"User already exists: {message.from_user.id} {message.from_user.first_name} {message.from_user.last_name} {message.from_user.username}")
|
|
|
|
|
await log(
|
|
|
|
|
log(
|
|
|
|
|
f"User already exists: {message.from_user.id} {current_user_name} {message.from_user.username}"
|
|
|
|
|
)
|
|
|
|
|
# Проверяем обновление имени пользователя
|
|
|
|
|
if get_user_name(message.from_user.id) != current_user_name:
|
|
|
|
|
change_user_name(message.from_user.id, current_user_name)
|
|
|
|
|
# print(f"User updated: {message.from_user.id} {message.from_user.first_name} {message.from_user.last_name}")
|
|
|
|
|
await log(f"User name updated: {message.from_user.id} {current_user_name}")
|
|
|
|
|
log(f"User name updated: {message.from_user.id} {current_user_name}")
|
|
|
|
|
# Проверяем обновление username пользователя
|
|
|
|
|
if get_user_tag(message.from_user.id) != message.from_user.username:
|
|
|
|
|
change_user_tag(message.from_user.id, message.from_user.username)
|
|
|
|
|
# print(f"User updated: {message.from_user.id} {message.from_user.username}")
|
|
|
|
|
await log(
|
|
|
|
|
log(
|
|
|
|
|
f"User tag updated: {message.from_user.id} {message.from_user.username}"
|
|
|
|
|
)
|
|
|
|
|
pass
|
|
|
|
@@ -101,17 +126,19 @@ async def message_processing(message: types.Message, bot: Bot):
|
|
|
|
|
if (message.text.split(" ")[0] in get_yandexgpt_start_words()) or (
|
|
|
|
|
any(word in message.text for word in get_yandexgpt_in_words())
|
|
|
|
|
):
|
|
|
|
|
# print("message_processing")
|
|
|
|
|
await log("message_processing")
|
|
|
|
|
log("message_processing")
|
|
|
|
|
await answer_to_message(message, bot)
|
|
|
|
|
|
|
|
|
|
elif message.reply_to_message is not None:
|
|
|
|
|
if message.reply_to_message.from_user.is_bot:
|
|
|
|
|
# print("message_processing")
|
|
|
|
|
await log("message_processing")
|
|
|
|
|
log("message_processing")
|
|
|
|
|
await answer_to_message(message, bot)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
router = Router()
|
|
|
|
|
# Если сообщение содержит текст то вызывается функция message_processing
|
|
|
|
|
router.message.register(message_processing, F.text)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def module_init():
|
|
|
|
|
register_router(router)
|
|
|
|
|