Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.47 KB | None | 0 0
  1. import vk_api, json, time, random
  2. from vk_api.bot_longpoll import VkBotEventType, VkBotLongPoll
  3.  
  4. # Consts
  5. token = ""
  6. vk = vk_api.VkApi(token=token)
  7. longpoll = VkBotLongPoll(vk, "Тут айди группы, без кавычек")
  8. admins = []
  9.  
  10. # Keyboards
  11. def get_button(label, color, payload=""):
  12.     return {
  13.         "action": {
  14.             "type": "text",
  15.             "payload": json.dumps(payload),
  16.             "label": label
  17.         },
  18.         "color": color
  19.     }
  20.  
  21.  
  22. keyboard = {
  23.     "one_time": True,
  24.     "buttons": [
  25.  
  26.         [get_button(label="1", color="primary"),
  27.          get_button(label="2", color="negative")],
  28.         [get_button(label="3", color="positive")],
  29.         [get_button(label="4", color="negative")]
  30.  
  31.     ]
  32.  
  33. }
  34.  
  35. keyboard = json.dumps(keyboard, ensure_ascii=False).encode('utf-8')
  36. keyboard = str(keyboard.decode('utf-8'))
  37.  
  38. def send_msg(peer_id, message, keyboard):
  39.     '''
  40.  
  41.    :param peer_id: Объект беседы
  42.    :param message: Объект сообщения
  43.    :param keyboard: Объект клавиатуры
  44.    :return None:
  45.    '''
  46.  
  47.     vk.method("messages.send", {"peer_id": peer_id, "message": message, "keyboard": keyboard, "random_id": 0})
  48.  
  49. def main():
  50.     '''
  51.    Main class #Listener for messages
  52.    :return None:
  53.    '''
  54.  
  55.     for event in longpoll.listen():
  56.         if event.type == VkBotEventType.MESSAGE_NEW:
  57.             if event.obj.peer_id == event.obj.from_id: # Работа в личных сообщениях, для бесед event.obj.peer_id != event.obj.from_id
  58.                 text = event.object.text.lower() # Приравниваем сообщение в нижний регистр
  59.                 peer = event.object.peer_id # Сокращаем объект беседы до peer, чтобы было удобнее
  60.                 if text == "привет":
  61.                     send_msg(peer, "Привет, я бот, чтобы открыть меню напиши /menu", None)
  62.  
  63.                 elif text == "связаться":
  64.                     for i in admins:
  65.                         send_msg(i, f"{event.object.from_id} хочет с вами связаться!", None) # Будет работать, если у администраторов будет диалог с сообществом
  66.  
  67.                 elif text == "/menu" or text == "начать":
  68.                     send_msg(peer, "Выбери кнопку", keyboard)
  69.  
  70.  
  71. if __name__ == '__main__':
  72.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement