Advertisement
stuppid_bot

Untitled

Jul 13th, 2014
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.44 KB | None | 0 0
  1. # -*- coding: u8 -*-
  2. from account import *
  3. from vkrobot import *
  4. import vkrobot.longpoll as longpoll
  5. import re
  6. from vkrobot.utils import get_page
  7. import urllib
  8. import json
  9. from random import uniform
  10.  
  11. def on_response(listener, updates):
  12.     # print listener
  13.     # сообщения на которые нужно ответить
  14.     user_messages = {}
  15.     for update in updates:
  16.         # новое сообщение
  17.         if update[0] == 4:
  18.             code, message_id, flags, from_id, timestamp, subject, text, attachments = update
  19.             # у бесед id > 2 млрд.
  20.             from_user = from_id < 2e9
  21.             # входящее сообщение
  22.             is_incoming = (flags & longpoll.OUTBOX) == 0
  23.             # сообщение не прочитано
  24.             is_unread = flags & longpoll.UNREAD
  25.             # в сообщении должен быть текст
  26.             if from_user and is_incoming and is_unread and text:
  27.                 if from_id in user_messages:
  28.                     user_messages[from_id]['ids'].append(message_id)
  29.                     # объединяем несколько сообщений в одно.
  30.                     user_messages[from_id]['text'] += ' ' + text
  31.                 else:
  32.                     user_messages[from_id] = {
  33.                         'ids': [message_id],
  34.                         'text': text
  35.                     }
  36.     # отвечаем на сообщения
  37.     # print user_messages
  38.     for user_id, message in user_messages.items():
  39.         rb.delay( uniform(3, 5) )
  40.         # отметили прочитанным
  41.         rb.messages_markAsRead(message_ids=','.join( map( str, message['ids'] ) ), peer_id=user_id)
  42.         r = get_page( 'http://xu.su/send.php', 'bot=1&text=' + urllib.quote( message['text'].encode('utf8') ) )
  43.         r = json.loads(r)
  44.         if 'text' in r:
  45.             ans = r['text']
  46.             # что-то подозрительно похожее на ссылку
  47.             ans = re.sub(r'(?i)(https?://)?[\S]+\.[\S]+', ' ... ', ans)
  48.         else:
  49.             ans = r['error']
  50.         # набираем сообщение
  51.         rb.messages_setActivity(user_id, 'typing')
  52.         rb.delay( uniform(3, 10) )
  53.         # отправляем
  54.         rb.messages_send(message=ans, user_id=user_id)
  55.                
  56. rb = VKRobot(login, password)
  57.  
  58. longpoll.ServerListener(rb, on_response, use_ssl=1).listen()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement