From 1dfd193358ae639871ced10e026f9706f4e8a386 Mon Sep 17 00:00:00 2001 From: dan63047 Date: Sat, 4 Apr 2020 00:18:34 +0300 Subject: [PATCH] loopa --- __pycache__/dan63047bot.cpython-38.pyc | Bin 0 -> 2050 bytes dan63047bot.py | 64 +++++++++++++------------ start.py | 22 +++++++++ 3 files changed, 56 insertions(+), 30 deletions(-) create mode 100644 __pycache__/dan63047bot.cpython-38.pyc create mode 100644 start.py diff --git a/__pycache__/dan63047bot.cpython-38.pyc b/__pycache__/dan63047bot.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e3fb01948a927653f2a15480513df5c655076ee5 GIT binary patch literal 2050 zcmbVN+fQ6Y7@u?7U9Jkzv@|iEO*C;Ex{$U}LmEO0jWMy<6d`6qJXx3n95{RFxuB43 zLV<`%mBjc|(-dAzd=gp+2nGIyIj`r{C;kPW{C#tlmbUuh+05+BeAoGXmlGdg*0P-(dO)@Vbh1<_h90TD=sS}|4KoTd$pkAUv;&TUeHTM!BE&IjB8w9W?WxV z3n{J)v7B)Nc{Z3+m6=oz6lKWyar^QCqbIL)Sv4)3k-myL%h#Rc_&u`tjJ~%K0Ty)=dC*pMI z+aBb9XC4LS@BZzNJYK?mV#49>Sr1wqyC>FS!D$&Xh`T>z?SDk!=6 zYSF_jV_k+ot|j&q?030rYT(1}NqQfu#i_9L}T82jpWF-0)ihe>Vo6(PO0)}x1{2fFOQ0GU|z#>Zg zKt@Tk8y4M!;?XPNou}y?ny9m%nW)2f^hD9kWqZ!38GQ0AmyT0t zG{vfeHs_!-wSg&qBRR^ucuA{xNj<7hkL0D$8RgQJ>|vQ}iFdtJ;y&3sue_=J1Bbc` A$p8QV literal 0 HcmV?d00001 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