-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdelete_vin.py
More file actions
46 lines (38 loc) · 1.93 KB
/
Copy pathdelete_vin.py
File metadata and controls
46 lines (38 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# delete_vin.py
import logging
from aiogram import types
from aiogram.types import Message
from AsyncDbHandler import AsyncDbHandler
logger = logging.getLogger(__name__)
async def delete_vin(message: Message, vin_pattern, require_admin=True):
if require_admin:
try:
# Получаем информацию о статусе пользователя в чате
member = await message.bot.get_chat_member(message.chat.id, message.from_user.id)
if member.status not in ['administrator', 'creator']:
await message.reply("Эта команда доступна только администраторам")
return
except Exception as e:
logger.error(f"Ошибка при проверке прав администратора: {str(e)}")
await message.reply("Ошибка при проверке прав доступа")
return
args = message.text.split()
if len(args) != 2:
await message.reply("Использование: /deletevin <VIN>\nПример: /deletevin ZARFANBN2M7642011")
return
vin = args[1].upper()
if not vin_pattern.match(vin):
await message.reply("Неверный формат VIN")
return
try:
db = AsyncDbHandler()
msg_id = await db.GetMessageIdByVin(vin)
if not msg_id:
await message.reply(f"VIN {vin} не найден в базе данных")
return
await db.DeleteVin(vin)
logger.info(f"VIN {vin} удален пользователем {message.from_user.id}")
await message.reply(f"VIN {vin} успешно удален из базы данных")
except Exception as e:
logger.error(f"Ошибка при удалении VIN {vin}: {str(e)}")
await message.reply(f"Произошла ошибка при удалении VIN: {str(e)}")