Files
vk_lp/routes/add_friend.py
2023-11-02 00:34:55 +07:00

57 lines
2.6 KiB
Python

from vkbottle import VKAPIError
from vkbottle.user import Message, UserLabeler
from config import edit_message, prefix_bot, user
from custom_rules.permission import Permission
bl = UserLabeler()
@bl.message(Permission(), text=[prefix_bot + " +др"])
async def add_to_friends_cmd(ctx: Message):
if not ctx.reply_message:
await ctx.answer("❗ Ошибка при выполнении, необходимо пересланное сообщение")
return
friend_id = ctx.reply_message.from_id
try:
await user.api.friends.add(user_id=friend_id)
await edit_message(ctx, "✅ Все отлично, запрос отправлен")
except Exception as e:
if VKAPIError[174]:
await edit_message(ctx, "❗ Невозможно добавить в друзья самого себя")
elif VKAPIError[175]:
await edit_message(ctx,
"❗ Невозможно добавить в друзья пользователя, который занес Вас в свой черный список")
elif VKAPIError[176]:
await edit_message(ctx,
"❗ Невозможно добавить в друзья пользователя, который занесен в Ваш черный список")
else:
await edit_message(ctx, f"❗ Невозможно добавить в друзья пользователя: {e.message}")
@bl.message(Permission(), text=[prefix_bot + " -др"])
async def remove_from_friends_cmd(ctx: Message):
if not ctx.reply_message:
await edit_message(ctx, "❗ Ошибка при выполнении, необходимо пересланное сообщение")
return
friend_id = ctx.reply_message.from_id
response = await user.api.friends.delete(user_id=friend_id)
if not response.success:
await edit_message(ctx, "❗ Произошла ошибка при удалении друга")
return
if response.friend_deleted:
await edit_message(ctx, "✅ Друг удален")
elif response.out_request_deleted:
await edit_message(ctx, "✅ Отменена исходящая заявка")
elif response.in_request_deleted:
await edit_message(ctx, "✅ Отклонена входящая заявка")
elif response.suggestion_deleted:
await edit_message(ctx, "✅ Отклонена рекомендация друга")
else:
await edit_message(ctx, "❗ Произошла ошибка")