Untitled
unknown
plain_text
2 years ago
4.2 kB
10
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...