Advertisement
Guest User

Cod

a guest
Jul 25th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.79 KB | None | 0 0
  1. import vk_api, time, traceback, random, json
  2. from vk_api.longpoll import VkLongPoll,VkEventType
  3. from tokens import token_anya
  4. import os
  5. from memory_profiler import memory_usage
  6.  
  7. #Авторизация
  8. vk_session = vk_api.VkApi(token = ЦЕНЗУРА)
  9. vk = vk_session.get_api()
  10. longpol = VkLongPoll(vk_session)
  11.  
  12. print("[INFO] Бот запущен!")
  13.  
  14.  
  15.                         #ФУНКЦИИ
  16.  
  17. #Отправка сообщений
  18.     #Беседа
  19.         #Сообщение
  20. def sender(id, text):
  21.     vk_session.method('messages.send', {'chat_id' : id, 'message' : text, 'random_id' : 0})
  22. def sendkeyb(id, text):
  23.     vk_session.method('messages.send', {'peer_id' : id3, 'message': text, 'random_id' : 0, 'keyboard' : keyboard})
  24.  
  25.         #Стикер
  26. def send_stick(id, number):
  27.     vk.messages.send(peer_id = id3, number = number, random_id = 0)
  28.    
  29.         #Картинки
  30. def send_paint(id, text):
  31.     vk_session.method('messages.send', {'peer_id' : id3, 'message' : text, 'attachment': photo , 'random_id' : 0})
  32.         #Погода
  33.  
  34.         #Сообщение
  35. def sendeer(id, text):
  36.     vk_session.method('messages.send', {'peer_id' : id3, 'message' : text, 'random_id' : 0})
  37.    
  38.  
  39. def sendeeeer(id, text):
  40.     return vk_session.method('messages.send', {'user_id' : id2, 'message' : text,'random_id' : 0})
  41.  
  42. #Получение ссылки       
  43. def sender1(id, reset):
  44.     return vk_session.method('messages.getInviteLink', {'peer_id': id3, 'reset' : 0})
  45.    
  46. #Создание ссылки
  47. def sender2(id, reset):
  48.     return vk_session.method('messages.getInviteLink', {'peer_id': id3, 'reset' : 1})
  49.  
  50. #Закрепление сообщения
  51. def sender3(id, msgid):
  52.     vk_session.method('messages.pin', {'peer_id' : id3, 'msgid' : msgid})
  53.  
  54. #Переименовка беседы
  55. def titles(id, title):
  56.     vk_session.method('messages.editChat', {'chat_id' : id, 'title' : title})
  57.    
  58. #Исключение из беседы
  59. def get_user(pattern: str) -> int:
  60.   if "[id" in pattern:
  61.     return int(pattern.split("|")[0].replace("[id", ""))
  62.   if "vk.com/" in pattern:
  63.     domen = pattern.split("/")[-1]
  64.     return vk.users.get(user_ids=domen)[0]["id"]
  65.    
  66. #Получение айди сообщения
  67. def sender5(offset, count, id3, ud2,):
  68.     vk_session.method('messages.getConversations', {'peer_id' : id3, 'user_id' : id2, 'count' : 1})
  69.    
  70. #Клавиатура
  71. def get_but(text, color):
  72.     return {
  73.                 "action": {
  74.                     "type": "text",
  75.                     "payload": "{\"button\": \"" + "1" + "\"}",
  76.                     "label": f"{text}"
  77.                 },
  78.                 "color": f"{color}"
  79.             }
  80.  
  81. keyboard = {
  82.     "one_time" : False,
  83.     "inline" : True,
  84.     "buttons" : [
  85.         [get_but('url_now', 'positive')],
  86.         [get_but('url_new', 'positive')]
  87.     ]
  88. }
  89. keyboard = json.dumps(keyboard, ensure_ascii = False).encode('utf-8')
  90. keyboard = str(keyboard.decode('utf-8'))
  91.  
  92. try:   
  93.     for event in longpol.listen():
  94.         if event.type == VkEventType.MESSAGE_NEW:
  95.             if event.to_me:
  96.                    
  97.                    
  98.                     #ПЕРЕМЕННЫЕ
  99.  
  100. #Айди
  101.                 id2 = event.user_id
  102.                 id3 = event.peer_id
  103.                 id = event.peer_id - 2000000000
  104.                
  105.  
  106. #Сообщение
  107.                 msg = event.text.lower()
  108.                 no_admin = "Вы не являетесь админом!"
  109.                
  110.                
  111. #Картинки
  112.                 photo = 'Нет'
  113.                 photos = {ЦЕНЗУРА}
  114.  
  115. #База Данных
  116.                
  117.  
  118. #Варны
  119.                 warn = 0
  120.                 warns = {ЦЕНЗУРА}
  121.                
  122. #Имя и фамилия
  123.                 fnln = vk.users.get(user_ids=event.user_id)
  124.                 fn = fnln[0]["first_name"]
  125.                 ln = fnln[0]["last_name"]
  126.  
  127. #Доступ
  128.                 dostypup = "Нет"
  129.                 dostyp = [ЦЕНЗУРА]
  130.                
  131.  
  132. #Роли          
  133.                 role = "Пользователь"
  134.                 roles = {ЦЕНЗУРА}
  135.  
  136. #Рандом              
  137.                 rand = random.choice(list(roles.keys()))
  138.                 rand2 = random.randint(0, 100)
  139.                 virash = roles[rand]
  140.                 idpreob = "[id" + str(rand) + "|" + virash + "]"
  141.  
  142. #Текс
  143.                 text = event.text.split(str(' '))
  144.                            
  145.            
  146.                     #КОМАНДЫ
  147.                 #МОДУЛЬ "МОДЕРАЦИЯ"
  148.                
  149.                 #Команда url
  150.                 if id2 in dostyp and ModerMod != 2 and msg == '.url':
  151.                     sendkeyb(id3, "url_now - ссылка на беседу (отсылаеться в лс)\nurl_new - создает и отсылает новую ссылку (отсылаеться в лс)")
  152.                 elif id2 not in dostyp and msg == '.url':
  153.                     sendeer(id3, no_admin)
  154.                 elif ModerMod == 2:
  155.                      sendeer(id3, module_false)
  156.                      
  157.                    
  158.                 #Команда url now
  159.                 elif id2 in dostyp and text[1] == 'url_now':
  160.                     print(sender1(id, 0))
  161.                     sender(id,"Ссылка отправлена вам в лс!")
  162.                     sendeeeer(id2, "Ссылка: " + str(sender1(id, 0)))
  163.                 elif id2 not in dostyp and text[1] == 'url_now':
  164.                     sender(id, no_admin)
  165.                 #Команда url new
  166.                 elif id2 in dostyp and text[1] == 'url_new':
  167.                     sender(id, "Новая ссылка создана и отправлена вам в лс!")
  168.                     sendeeeer(id2, "Новая ссылка: " + str(sender2(id, 1)))
  169.                 elif id2 not in dostyp and text[1] == 'url_new':
  170.                     sender(id, no_admin)
  171.                 #командв кик
  172.                 elif id2 in dostyp and text[0] == ".kick":
  173.                     vk.messages.removeChatUser(chat_id=event.peer_id - 2000000000, member_id=get_user(text[1]), random_id=0)
  174.                     sendeer(id3, "Пока дружок пирожок!")
  175.                 #команда title
  176.                 elif id2 in dostyp and text[0] == ".title":
  177.                     titles(id, text[1])
  178.                     sendeer(id3, "Беседа переименована!")
  179.                 #Команда команды
  180.                 elif msg == '.cmd':
  181.                     sendeer(id3, 'Мои команды:\n\n🔑 - команды для имеющих доступ\n👤 - команды для обычных пользователей\n---------------------------------------\nМодуль "Модерация":\n🔖 .url - работа с ссылкой беседы 🔑\n🔔 .all - вызов всех 🔑\nⓂ .moduls - возможность отключать модули 🔑\n----------------------------------------\nМодуль "Развлечения":\n❤ .гей - Определение гея (для пользователей имеющих роль)  👤\n📏 .писькамер - Размер письки (для пользователей имеющих роль) 👤\n🔢 .рандом - рандомное число от 0 до 100 👤')
  182.                 #Команда крик
  183.                 elif id2 in dostyp and msg == '.all':
  184.                     sendeer(id, "@all, " + "@id" + str(id2) + " вызывает всех!")
  185.                 elif id2 not in dostyp and msg == '.all':
  186.                     sendeer(id, no_admin)
  187.                
  188.                     #МОДУЛЬ "АНКЕТЫ"
  189.                 #Команда профиль
  190.                 elif msg == ".p":
  191.                     if id2 not in roles:
  192.                         role = "Пользователь"
  193.                     elif id2 in roles:
  194.                         role = roles[id2]
  195.                     if id2 in warns:
  196.                         warn = warns[id2]
  197.                     elif id2 not in warns:
  198.                         warn = 0
  199.                     if id2 not in photos:
  200.                         photo = "Нет"
  201.                     elif id2 in photos:
  202.                         photo = photos[id2]
  203.                     if id2 in dostyp:
  204.                         dostypup = "Да"
  205.                     elif id2 not in dostyp:
  206.                         dostypup = "Нет"
  207.                     send_paint(id3, 'Ваш профиль:' + '\nИмя: ' + fn + ' ' + ln + "\n📝Роль: " + str(role) + '\n🆔VK ID: @id' + str(id2) + "\n❗Предупреждения: " + str(warn) + "\n🔑Доступ: " + dostypup)
  208.                    
  209.                    
  210.                     #МОДУЛЬ "ИГРОВЫЕ"
  211.                 #Команда рандом
  212.                 elif msg == '.рандом':
  213.                     sendeer(id3, fn + ", ваше число: " + str(rand2))
  214.                    
  215.                     #МОДУЛЬ "DEV"            
  216.                 #Команда dostyp
  217.                 elif id2 in dostyp and msg == '.dostyp':
  218.                     sendeer(id3, dostyp)
  219.                 elif id2 not in dostyp and msg == '.dostyp':
  220.                     sendeer(id3, no_admin)
  221.                 #Команда roles
  222.                 elif id2 in dostyp and msg == '.roles':
  223.                     sendeer(id3, roles)
  224.                 elif id2 not in dostyp and msg == '.roles':
  225.                     sendeer(id3, no_admin)
  226.                 #Команда body
  227.                 elif id2 in dostyp and msg == '.body':
  228.                     sendeer(id3, body)
  229.                 elif msg == '.info':
  230.                     sendeer(id2, "ОЗУ: " + str(memory_usage()) + " мб")
  231.                     #ОБРАБОТЧИК ОШИБОК
  232.                
  233. except vk_api.exceptions.VkApiError:
  234.                             sender(id, 'Произошла ошибка!Проверьте правильность написания команды!'         traceback.print_exc()
  235. except TypeError:
  236.                             sender(id, 'Произошла ошибка!Проверьте правильность написания команды!')
  237.                             traceback.print_exc()
  238. except AttributeError:
  239.                             sender(id, 'Произошла ошибка!Проверьте правильность написания команды!')
  240.                             traceback.print_exc()
  241. except IndexError:
  242.                             sender(id, 'Произошла ошибка!Проверьте правильность написания команды!')
  243.                             traceback.print_exc()
  244.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement