Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import vktools.utils as utils
- from captcha import *
- client_cfg = utils.load_cfg('client.json')
- c = utils.get_client(client_cfg)
- c.captcha_handler = get_captcha
- flooder_cfg = utils.load_cfg('flooder.json')
- c.auth(flooder_cfg['login'], flooder_cfg['password'])
- print 'VK ID %s' % c.user_id
- import urllib2
- import re
- import json
- import random
- import time
- sessions = {}
- connection = False
- while True:
- print sessions
- # устанавливаем онлайн
- print c.api('account.setOnline')
- # print '----'
- # notifies = c.api('notifications.get')
- # break
- # time.sleep(15)
- # print '----'
- # личные сообщения
- # https://vk.com/pages?oid=-1&p=%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_LongPoll_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D1%83
- if not connection:
- print u'Подключаемся к LongPoll серверу'
- ts, key, server = c.api('messages.getLongPollServer', {'use_ssl': 1}).values()
- connection = True
- url = 'https://%s?act=a_check&key=%s&ts=%s&wait=%s&mode=2' % (server, key, ts, flooder_cfg['wait_time'])
- # print url
- updates = c.fetch_json(url)
- print updates
- if 'failed' in updates:
- print u'Время действия ключа истекло'
- connection = False
- continue
- ts = updates['ts']
- for v in updates['updates']:
- # print v
- # отвечаем на личные сообщения
- # v[2] - флаги. 0000000010 означает что сообщение исходящее, т.е. мы ищем только входящие
- if v[0] == 4 and v[2] & 2 == 0:
- # отмечаем как прочитанное
- message_id = v[1]
- sender_id = v[3]
- message = v[6]
- print c.api('messages.markAsRead', {'message_ids': message_id, 'user_id': sender_id})
- # отправляем запрос на xu.su
- headers = {}
- if sender_id in sessions:
- headers['Cookie'] = 'bot=' + sessions[sender_id]
- req = urllib2.Request('http://xu.su/send.php',
- 'bot=1&text=' + urllib2.quote(message.encode('utf8')),
- headers)
- res = urllib2.urlopen(req)
- headers = res.info()
- if 'set-cookie' in headers:
- sessions[sender_id] = re.match('bot=([^;]+)', headers['set-cookie']).group(1)
- data = res.read()
- result = json.loads(data)
- message = result['text']\
- if 'text' in result and\
- u'Я пока не могу ответить на этот вопрос, потому что моя база данных ещё маленькая. Поговори со мной и она увеличится!' != result['text']\
- else random.choice(flooder_cfg['default_messages'])
- # набираем сообщение
- c.api('messages.setActivity', {'user_id': sender_id, 'type': 'typing'})
- time.sleep(random.uniform(1, 3))
- # проверяем откуда отправлено сообщение
- p = {'message': message}
- # если id отправителя больше 2 миллиардов, то сообщение отправлено из беседы
- if sender_id < 2e9:
- p['user_id'] = sender_id
- else:
- # вычисляем id беседы
- p['chat_id'] = sender_id - 2e9
- print c.api('messages.send', p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement