diff --git a/__pycache__/dan63047bot.cpython-38.pyc b/__pycache__/dan63047bot.cpython-38.pyc new file mode 100644 index 0000000..e3fb019 Binary files /dev/null and b/__pycache__/dan63047bot.cpython-38.pyc differ diff --git a/dan63047bot.py b/dan63047bot.py index 7543daa..ae6d1e1 100644 --- a/dan63047bot.py +++ b/dan63047bot.py @@ -1,34 +1,38 @@ -import vk_api +import vk_api, time, bs4 from vk_api.longpoll import VkLongPoll, VkEventType +class VkBot: -def write_msg(user_id, message): - vk.method('messages.send', {'user_id': user_id, 'message': message}) - -# API-ключ созданный ранее -token = "6a9c267cd469388709a9e9acaddbe0aa81a0abbf12239b3e597a31729ffbddb9c88e80a443554c918b8f7" - -# Авторизуемся как сообщество -vk = vk_api.VkApi(token=token) - -# Работа с сообщениями -longpoll = VkLongPoll(vk) - -# Основной цикл -for event in longpoll.listen(): - - # Если пришло новое сообщение - if event.type == VkEventType.MESSAGE_NEW: + def __init__(self, peer_id): - # Если оно имеет метку для меня( то есть бота) - if event.to_me: + print("\nСоздан объект бота!") + self._USER_ID = peer_id + #self._USERNAME = self._get_user_name_from_vk_id(user_id) - # Сообщение от пользователя - request = event.text - - # Каменная логика ответа - if request == "привет": - write_msg(event.user_id, "Хай") - elif request == "пока": - write_msg(event.user_id, "Пока((") - else: - write_msg(event.user_id, "Не поняла вашего ответа...") + self._COMMANDS = ["привет", "!my_id", "!h", "пока"] + + def _get_user_name_from_vk_id(self, user_id): + request = requests.get("https://vk.com/id"+str(user_id)) + bs = bs4.BeautifulSoup(request.text, "html.parser") + + user_name = self._clean_all_tag_from_str(bs.findAll("title")[0]) + + return user_name.split()[0] + + def new_message(self, message): + + # Привет + if message == self._COMMANDS[0]: + return f"Привет-привет!" + + elif message == self._COMMANDS[1]: + return f"Ваш ид: {self._USER_ID}" + + elif message == self._COMMANDS[2]: + return f"Я бот, призванный доставлять неудобства.
Команды:
!my_id - сообщит ваш id в ВК
!user_id *id* - сообщит информацию о этом пользователе
!group_id *id* - сообщит информацию о этой группе
!image - отправляет пока что только одну картинку (скоро планируется отправлять рандомную картинку из альбома)
!h, !help - справка
Дата последнего обновления: 08.03.2020" + + # Пока + elif message == self._COMMANDS[3]: + return f"Пока-пока!" + + else: + return "Не понимаю о чем вы..." diff --git a/start.py b/start.py new file mode 100644 index 0000000..d99cb7a --- /dev/null +++ b/start.py @@ -0,0 +1,22 @@ +import vk_api, time, bs4 +from dan63047bot import VkBot +from vk_api.longpoll import VkLongPoll, VkEventType + +def write_msg(peer_id, message): + vk.method('messages.send', {'peer_id': peer_id, 'message': message, 'random_id': time.time()}) + +token = "9c2e8fbc0fb7c846315e2f7758373d92e6961cefe74697ffb335e14a67916e54e20df6082577c8a7ade1c"# API-ключ созданный ранее +vk = vk_api.VkApi(token=token)# Авторизуемся как сообщество +longpoll = VkLongPoll(vk)# Работа с сообщениями +print("Server started") +for event in longpoll.listen(): + if event.type == VkEventType.MESSAGE_NEW: + if event.to_me: + + print('New message:') + print(f'For me by: {event.peer_id}', end='') + + bot = VkBot(event.peer_id) + write_msg(event.peer_id, bot.new_message(event.text)) + + print('Text: ', event.text) \ No newline at end of file