Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import vk_api, time, traceback, random, json
- from vk_api.longpoll import VkLongPoll,VkEventType
- from tokens import token_anya
- import os
- from memory_profiler import memory_usage
- #Авторизация
- vk_session = vk_api.VkApi(token = ЦЕНЗУРА)
- vk = vk_session.get_api()
- longpol = VkLongPoll(vk_session)
- print("[INFO] Бот запущен!")
- #ФУНКЦИИ
- #Отправка сообщений
- #Беседа
- #Сообщение
- def sender(id, text):
- vk_session.method('messages.send', {'chat_id' : id, 'message' : text, 'random_id' : 0})
- def sendkeyb(id, text):
- vk_session.method('messages.send', {'peer_id' : id3, 'message': text, 'random_id' : 0, 'keyboard' : keyboard})
- #Стикер
- def send_stick(id, number):
- vk.messages.send(peer_id = id3, number = number, random_id = 0)
- #Картинки
- def send_paint(id, text):
- vk_session.method('messages.send', {'peer_id' : id3, 'message' : text, 'attachment': photo , 'random_id' : 0})
- #Погода
- #Сообщение
- def sendeer(id, text):
- vk_session.method('messages.send', {'peer_id' : id3, 'message' : text, 'random_id' : 0})
- def sendeeeer(id, text):
- return vk_session.method('messages.send', {'user_id' : id2, 'message' : text,'random_id' : 0})
- #Получение ссылки
- def sender1(id, reset):
- return vk_session.method('messages.getInviteLink', {'peer_id': id3, 'reset' : 0})
- #Создание ссылки
- def sender2(id, reset):
- return vk_session.method('messages.getInviteLink', {'peer_id': id3, 'reset' : 1})
- #Закрепление сообщения
- def sender3(id, msgid):
- vk_session.method('messages.pin', {'peer_id' : id3, 'msgid' : msgid})
- #Переименовка беседы
- def titles(id, title):
- vk_session.method('messages.editChat', {'chat_id' : id, 'title' : title})
- #Исключение из беседы
- def get_user(pattern: str) -> int:
- if "[id" in pattern:
- return int(pattern.split("|")[0].replace("[id", ""))
- if "vk.com/" in pattern:
- domen = pattern.split("/")[-1]
- return vk.users.get(user_ids=domen)[0]["id"]
- #Получение айди сообщения
- def sender5(offset, count, id3, ud2,):
- vk_session.method('messages.getConversations', {'peer_id' : id3, 'user_id' : id2, 'count' : 1})
- #Клавиатура
- def get_but(text, color):
- return {
- "action": {
- "type": "text",
- "payload": "{\"button\": \"" + "1" + "\"}",
- "label": f"{text}"
- },
- "color": f"{color}"
- }
- keyboard = {
- "one_time" : False,
- "inline" : True,
- "buttons" : [
- [get_but('url_now', 'positive')],
- [get_but('url_new', 'positive')]
- ]
- }
- keyboard = json.dumps(keyboard, ensure_ascii = False).encode('utf-8')
- keyboard = str(keyboard.decode('utf-8'))
- try:
- for event in longpol.listen():
- if event.type == VkEventType.MESSAGE_NEW:
- if event.to_me:
- #ПЕРЕМЕННЫЕ
- #Айди
- id2 = event.user_id
- id3 = event.peer_id
- id = event.peer_id - 2000000000
- #Сообщение
- msg = event.text.lower()
- no_admin = "Вы не являетесь админом!"
- #Картинки
- photo = 'Нет'
- photos = {ЦЕНЗУРА}
- #База Данных
- #Варны
- warn = 0
- warns = {ЦЕНЗУРА}
- #Имя и фамилия
- fnln = vk.users.get(user_ids=event.user_id)
- fn = fnln[0]["first_name"]
- ln = fnln[0]["last_name"]
- #Доступ
- dostypup = "Нет"
- dostyp = [ЦЕНЗУРА]
- #Роли
- role = "Пользователь"
- roles = {ЦЕНЗУРА}
- #Рандом
- rand = random.choice(list(roles.keys()))
- rand2 = random.randint(0, 100)
- virash = roles[rand]
- idpreob = "[id" + str(rand) + "|" + virash + "]"
- #Текс
- text = event.text.split(str(' '))
- #КОМАНДЫ
- #МОДУЛЬ "МОДЕРАЦИЯ"
- #Команда url
- if id2 in dostyp and ModerMod != 2 and msg == '.url':
- sendkeyb(id3, "url_now - ссылка на беседу (отсылаеться в лс)\nurl_new - создает и отсылает новую ссылку (отсылаеться в лс)")
- elif id2 not in dostyp and msg == '.url':
- sendeer(id3, no_admin)
- elif ModerMod == 2:
- sendeer(id3, module_false)
- #Команда url now
- elif id2 in dostyp and text[1] == 'url_now':
- print(sender1(id, 0))
- sender(id,"Ссылка отправлена вам в лс!")
- sendeeeer(id2, "Ссылка: " + str(sender1(id, 0)))
- elif id2 not in dostyp and text[1] == 'url_now':
- sender(id, no_admin)
- #Команда url new
- elif id2 in dostyp and text[1] == 'url_new':
- sender(id, "Новая ссылка создана и отправлена вам в лс!")
- sendeeeer(id2, "Новая ссылка: " + str(sender2(id, 1)))
- elif id2 not in dostyp and text[1] == 'url_new':
- sender(id, no_admin)
- #командв кик
- elif id2 in dostyp and text[0] == ".kick":
- vk.messages.removeChatUser(chat_id=event.peer_id - 2000000000, member_id=get_user(text[1]), random_id=0)
- sendeer(id3, "Пока дружок пирожок!")
- #команда title
- elif id2 in dostyp and text[0] == ".title":
- titles(id, text[1])
- sendeer(id3, "Беседа переименована!")
- #Команда команды
- elif msg == '.cmd':
- sendeer(id3, 'Мои команды:\n\n🔑 - команды для имеющих доступ\n👤 - команды для обычных пользователей\n---------------------------------------\nМодуль "Модерация":\n🔖 .url - работа с ссылкой беседы 🔑\n🔔 .all - вызов всех 🔑\nⓂ .moduls - возможность отключать модули 🔑\n----------------------------------------\nМодуль "Развлечения":\n❤ .гей - Определение гея (для пользователей имеющих роль) 👤\n📏 .писькамер - Размер письки (для пользователей имеющих роль) 👤\n🔢 .рандом - рандомное число от 0 до 100 👤')
- #Команда крик
- elif id2 in dostyp and msg == '.all':
- sendeer(id, "@all, " + "@id" + str(id2) + " вызывает всех!")
- elif id2 not in dostyp and msg == '.all':
- sendeer(id, no_admin)
- #МОДУЛЬ "АНКЕТЫ"
- #Команда профиль
- elif msg == ".p":
- if id2 not in roles:
- role = "Пользователь"
- elif id2 in roles:
- role = roles[id2]
- if id2 in warns:
- warn = warns[id2]
- elif id2 not in warns:
- warn = 0
- if id2 not in photos:
- photo = "Нет"
- elif id2 in photos:
- photo = photos[id2]
- if id2 in dostyp:
- dostypup = "Да"
- elif id2 not in dostyp:
- dostypup = "Нет"
- send_paint(id3, 'Ваш профиль:' + '\nИмя: ' + fn + ' ' + ln + "\n📝Роль: " + str(role) + '\n🆔VK ID: @id' + str(id2) + "\n❗Предупреждения: " + str(warn) + "\n🔑Доступ: " + dostypup)
- #МОДУЛЬ "ИГРОВЫЕ"
- #Команда рандом
- elif msg == '.рандом':
- sendeer(id3, fn + ", ваше число: " + str(rand2))
- #МОДУЛЬ "DEV"
- #Команда dostyp
- elif id2 in dostyp and msg == '.dostyp':
- sendeer(id3, dostyp)
- elif id2 not in dostyp and msg == '.dostyp':
- sendeer(id3, no_admin)
- #Команда roles
- elif id2 in dostyp and msg == '.roles':
- sendeer(id3, roles)
- elif id2 not in dostyp and msg == '.roles':
- sendeer(id3, no_admin)
- #Команда body
- elif id2 in dostyp and msg == '.body':
- sendeer(id3, body)
- elif msg == '.info':
- sendeer(id2, "ОЗУ: " + str(memory_usage()) + " мб")
- #ОБРАБОТЧИК ОШИБОК
- except vk_api.exceptions.VkApiError:
- sender(id, 'Произошла ошибка!Проверьте правильность написания команды!' traceback.print_exc()
- except TypeError:
- sender(id, 'Произошла ошибка!Проверьте правильность написания команды!')
- traceback.print_exc()
- except AttributeError:
- sender(id, 'Произошла ошибка!Проверьте правильность написания команды!')
- traceback.print_exc()
- except IndexError:
- sender(id, 'Произошла ошибка!Проверьте правильность написания команды!')
- traceback.print_exc()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement