diff --git a/bot.py b/bot.py index 4ca48a5..305d612 100644 --- a/bot.py +++ b/bot.py @@ -48,6 +48,7 @@ def create_user_if_not_exists(chat_id: str, user_id: str): MESSAGE_CHAT_NOT_ACTIVE = 'Извините, но я пока не работаю в этом чате.' MESSAGE_PERMISSION_DENIED = 'Извините, но о таком меня может попросить только администратор чата.' MESSAGE_NEED_REPLY = 'Извините, но эту команду нужно вызывать в ответном сообщении.' +MESSAGE_DEFAULT_RULES = 'Правила не установлены. Просто ведите себя хорошо.' MESSAGE_DEFAULT_GREETING_JOIN = 'Добро пожаловать, {name}!' MESSAGE_DEFAULT_GREETING_REJOIN = 'С возвращением, {name}!' @@ -74,6 +75,29 @@ async def start_handler(message: Message): await message.answer('Готова к работе!') +@bot.on.chat_message(text="!правила") +async def rules_handler(message: Message): + chat_id = message.peer_id + chat = create_chat_if_not_exists(chat_id) + if chat['active'] == 0: + await message.answer(MESSAGE_CHAT_NOT_ACTIVE) + return + + if message.reply_message is None: + if chat['rules'] is not None: + await message.answer(bold('Правила чата') + '\n' + chat['rules']) + else: + await message.answer(MESSAGE_DEFAULT_RULES) + else: + chat_members = await bot.api.messages.get_conversation_members(peer_id=chat_id, extended=False) + if not vk_user_is_admin(message.from_id, chat_members): + await message.answer(MESSAGE_PERMISSION_DENIED) + return + + database.DB.chat_update(chat_id, rules=message.reply_message.text) + await message.answer('Правила чата изменены.') + + @bot.on.chat_message(text="!приветствие") async def set_greeting_join_handler(message: Message): chat_id = message.peer_id diff --git a/database.py b/database.py index 74a7e10..76858b0 100644 --- a/database.py +++ b/database.py @@ -12,6 +12,7 @@ class Database: CREATE TABLE IF NOT EXISTS chats ( "id" INTEGER, "active" INTEGER NOT NULL DEFAULT 0, + "rules" TEXT, "greeting_join" TEXT, "greeting_rejoin" TEXT, PRIMARY KEY("id"))