Advertisement
Guest User

Untitled

a guest
Jul 31st, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.79 KB | None | 0 0
  1. #bot.py
  2. import vk_api
  3. from vk_bot import VkBot
  4. from vk_api.longpoll import VkLongPoll, VkEventType
  5. token = "token"
  6. from random import randint
  7.  
  8. def write_msg(user_id, message):
  9.     vk.method('messages.send', {'user_id': user_id, 'message': message, 'random_id': randint(1, 9999)}, )
  10.  
  11.  
  12. vk = vk_api.VkApi(token=token)
  13. longpoll = VkLongPoll(vk)
  14.  
  15.  
  16.  
  17. print("Server started")
  18. for event in longpoll.listen():
  19.     print(event.type)
  20.     if event.type == VkEventType.MESSAGE_NEW:
  21.         if event.to_me:
  22.             if event.attachments:
  23.                 if 'doc' in event.attachments.values():
  24.                     if 'attach2' in event.attachments.values():
  25.                         write_msg(event.user_id, 'Пожалуйста, отправляейте один файл за раз'.format())
  26.                     else:
  27.                         print(event.attachments) # тут вывожу айди файла
  28.                 else:
  29.                     write_msg(event.user_id, 'Пожалуйста, отправляйте документ в виде файла'.format())
  30.             else:
  31.                 print('New message:')
  32.                 print(f'For me by: {event.user_id}', end='')
  33.                 bot = VkBot(event.user_id)
  34.                 write_msg(event.user_id, bot.new_message(event.text))
  35.                 print('Text: ', event.text)
  36.  
  37.  
  38.  
  39. #vk_bot.py
  40.     import requests
  41. import bs4
  42.  
  43. class VkBot:
  44.  
  45.     def __init__(self, user_id):
  46.         print("Создан объект бота!")
  47.         self._USER_ID = user_id
  48.         self._USERNAME = self._get_user_name_from_vk_id(user_id)
  49.         self._COMMANDS = ["ПРИВЕТ", "ВРЕМЯ", "ПОКА"]
  50.  
  51.     def _get_user_name_from_vk_id(self, user_id):
  52.         request = requests.get("https://vk.com/id" + str(user_id))
  53.         bs = bs4.BeautifulSoup(request.text, "html.parser")
  54.         user_name = self._clean_all_tag_from_str(bs.findAll("title")[0])
  55.         return user_name.split()[0]
  56.  
  57.  
  58.  
  59.     # Метод для очистки от ненужных тэгов
  60.     def new_message(self, message):
  61.         if message:
  62.             return f"Здравствуйте, {self._USERNAME}. Я - бот по приему файлов, пока я умею делать только это." \
  63.                 f"Если Вы хотите поговорить с живым человеком, напишите в сообщения группе: "
  64.  
  65.  
  66.     @staticmethod
  67.     def _clean_all_tag_from_str(string_line):
  68.         result = ""
  69.         not_skip = True
  70.         for i in list(string_line):
  71.             if not_skip:
  72.                 if i == "<":
  73.                     not_skip = False
  74.                 else:
  75.                     result += i
  76.             else:
  77.                 if i == ">":
  78.                     not_skip = True
  79.  
  80.         return result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement