Untitled
unknown
plain_text
2 years ago
4.2 kB
7
Indexable
from vkbottle.user import User, Message import re, asyncio from vkbottle import VKAPIError import mysql.connector import random from random import randint #from roles_vk import Permission from loguru import logger from config import settings import requests import os import json logger.remove() user = User(token='') def get_user_id(user_link): try: if user_link.startswith('@'): resolved_user = user.users.get(user_ids=user_link[1:])[0] return resolved_user['id'] else: match = re.match(r'^https?://vk\.com/([a-zA-Z0-9_\.]+)$', user_link) if match: screen_name = match.group(1) resolved_user = user.users.get(user_ids=screen_name)[0] return resolved_user['id'] elif user_link.isdigit(): return int(user_link) else: return None except Exception as e: print("Ошибка при получении id пользователя:", e) return None def invite_user_to_chat_g(user_id, chat_id): try: if chat_id == 2 or chat_id == 3: user.messages.addChatUser( chat_id=chat_id, user_id=user_id, ) return True else: return False except Exception as e: print("Ошибка при добавлении пользователя в беседу:", e) return False def invite_user_to_chat_m(user_id, chat_id): try: if chat_id == 4 or chat_id == 3: user.messages.addChatUser( chat_id=chat_id, user_id=user_id, ) return True else: return False except Exception as e: print("Ошибка при добавлении пользователя в беседу:", e) return False @user.on.chat_message(text=".invite <argument> <user_link>") async def invite_user_to_chats(message: Message, argument: str, user_link: str): chat_id = message.peer_id uid = message.from_id mydb = mysql.connector.connect( host=settings['host'], user=settings["user"], password=settings["password"], database=settings["database"] ) curs = mydb.cursor() curs = mydb.cursor(buffered=True) print('3') command_args = message.text.split(' ') print('2') if len(command_args) == 3: print('1') user_id = get_user_id(user_link) curs.execute(f'SELECT dostup FROM perms WHERE vk = {uid} AND dostup = "2" OR vk = {uid} AND dostup = "3" OR vk = {uid} AND dostup = "1"') myres = curs.fetchone() if myres is None: await message.answer('У Вас нет прав!') else: if user_id is not None: if argument == 'G': if invite_user_to_chat_g(user_id, 2) and invite_user_to_chat_g(user_id, 3): await message.answer('Пользователь успешно добавлен в беседу Курилку и Забивов Гетто!') else: await message.answer('Ошибка при добавлении пользователя в беседу!') elif argument == 'M': if invite_user_to_chat_m(user_id, 3) and invite_user_to_chat_m(user_id, 4): await message.answer('Пользователь успешно добавлен в беседу Курилку и Забивов Мафий!') else: await message.answer('Ошибка при добавлении пользователя в беседу!') else: await message.answer('Некорректный аргумент! Допустимые значения: G, M') else: await message.answer('Пожалуйста, укажите аргумент (G или M) и ссылку или id пользователя после команды !invite!') if __name__ == "__main__": user.run_forever()
Editor is loading...