Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: u8 -*-
- from account import *
- from vkrobot import *
- import vkrobot.longpoll as longpoll
- import re
- from vkrobot.utils import get_page
- import urllib
- import json
- from random import uniform
- def on_response(listener, updates):
- # print listener
- # сообщения на которые нужно ответить
- user_messages = {}
- for update in updates:
- # новое сообщение
- if update[0] == 4:
- code, message_id, flags, from_id, timestamp, subject, text, attachments = update
- # у бесед id > 2 млрд.
- from_user = from_id < 2e9
- # входящее сообщение
- is_incoming = (flags & longpoll.OUTBOX) == 0
- # сообщение не прочитано
- is_unread = flags & longpoll.UNREAD
- # в сообщении должен быть текст
- if from_user and is_incoming and is_unread and text:
- if from_id in user_messages:
- user_messages[from_id]['ids'].append(message_id)
- # объединяем несколько сообщений в одно.
- user_messages[from_id]['text'] += ' ' + text
- else:
- user_messages[from_id] = {
- 'ids': [message_id],
- 'text': text
- }
- # отвечаем на сообщения
- # print user_messages
- for user_id, message in user_messages.items():
- rb.delay( uniform(3, 5) )
- # отметили прочитанным
- rb.messages_markAsRead(message_ids=','.join( map( str, message['ids'] ) ), peer_id=user_id)
- r = get_page( 'http://xu.su/send.php', 'bot=1&text=' + urllib.quote( message['text'].encode('utf8') ) )
- r = json.loads(r)
- if 'text' in r:
- ans = r['text']
- # что-то подозрительно похожее на ссылку
- ans = re.sub(r'(?i)(https?://)?[\S]+\.[\S]+', ' ... ', ans)
- else:
- ans = r['error']
- # набираем сообщение
- rb.messages_setActivity(user_id, 'typing')
- rb.delay( uniform(3, 10) )
- # отправляем
- rb.messages_send(message=ans, user_id=user_id)
- rb = VKRobot(login, password)
- longpoll.ServerListener(rb, on_response, use_ssl=1).listen()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement