Добавлена команда !я.

This commit is contained in:
Kirill Kirilenko 2026-01-18 00:52:39 +03:00
parent e61b2d1c14
commit 099fd5efea
4 changed files with 58 additions and 0 deletions

View file

@ -44,6 +44,8 @@ async def help_handler(message: Message):
return
response = Bold('Команды для всех') + '\n'
response += '!я - показать визитку участника\n'
response += '!я* - изменить визитку участника\n'
response += '!правила - вывести правила\n'
response += '!сегодня - статистика сообщений за сегодня\n'
response += '!месяц - статистика сообщений за месяц\n'
@ -63,6 +65,31 @@ async def help_handler(message: Message):
await message.answer(**response.as_kwargs())
@router.message(F.text == "")
async def about_handler(message: Message):
chat_id = message.chat.id
chat = database.DB.create_chat_if_not_exists(chat_id)
if chat['active'] == 0:
await message.answer(MESSAGE_CHAT_NOT_ACTIVE)
return
user_id = message.from_user.id
user = database.DB.create_user_if_not_exists(chat_id, user_id)
if message.reply_to_message is None:
if user['about'] is not None:
response = Italic(format(utils.full_name(message.from_user.first_name, message.from_user.last_name))) + '\n'
response += user['about']
await message.answer(**response.as_kwargs())
else:
await message.answer('Вы не установили визитку.')
else:
if message.reply_to_message.content_type == ContentType.TEXT:
database.DB.user_update(chat_id, user_id, about=message.reply_to_message.text)
await message.answer('Визитка изменена.')
else:
await message.answer('Извините, но я понимаю только текст.')
@router.message(F.text == "!сегодня")
async def stats_today_handler(message: Message, bot: Bot):
chat_id = message.chat.id

View file

@ -23,6 +23,7 @@ class TgDatabase(database.BasicDatabase):
"messages_today" INTEGER NOT NULL DEFAULT 0,
"messages_month" INTEGER NOT NULL DEFAULT 0,
"warnings" INTEGER NOT NULL DEFAULT 0,
"about" TEXT,
PRIMARY KEY("chat_id","user_id"))
""")

View file

@ -49,6 +49,8 @@ async def rules_handler(message: Message):
return
response = bold('Команды для всех') + '\n'
response += '!я - показать визитку участника\n'
response += '!я* - изменить визитку участника\n'
response += '!правила - вывести правила\n'
response += '!сегодня - статистика сообщений за сегодня\n'
response += '!месяц - статистика сообщений за месяц\n'
@ -72,6 +74,33 @@ async def rules_handler(message: Message):
await message.answer(response)
@labeler.chat_message(text="")
async def about_handler(message: Message):
chat_id = message.peer_id
chat = database.DB.create_chat_if_not_exists(chat_id)
if chat['active'] == 0:
await message.answer(MESSAGE_CHAT_NOT_ACTIVE)
return
user_id = message.from_id
user = database.DB.create_user_if_not_exists(chat_id, user_id)
if message.reply_message is None:
info = await message.ctx_api.users.get(user_ids=[user_id])
if len(info) == 1:
if user['about'] is not None:
await message.answer(italic(f'{info[0].first_name} {info[0].last_name}') + '\n' + user['about'])
else:
await message.answer(MESSAGE_DEFAULT_RULES)
else:
await message.answer('Не могу получить информацию об участнике.')
else:
if len(message.reply_message.text) > 0:
database.DB.user_update(chat_id, user_id, about=message.reply_message.text)
await message.answer('Визитка изменена.')
else:
await message.answer('Извините, но я понимаю только текст.')
@labeler.chat_message(text="!сегодня")
async def stats_today_handler(message: Message):
chat_id = message.peer_id

View file

@ -26,6 +26,7 @@ class VkDatabase(database.BasicDatabase):
"messages_month" INTEGER NOT NULL DEFAULT 0,
"warnings" INTEGER NOT NULL DEFAULT 0,
"happy_birthday" INTEGER NOT NULL DEFAULT 1,
"about" TEXT,
PRIMARY KEY("chat_id","user_id"))
""")