Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import vktools.utils as utils
- import account1
- import urllib
- c = utils.create_client()
- c.auth(account1.login, account1.password)
- print c.user_id
- # c.api('wall.post', {'message': u'тест'})
- # список всех кто онлайн получаем
- # users_online = c.api('friends.getOnline')
- # print users_online
- info = c.api('messages.getLongPollServer', {'use_ssl': 1})
- ts = info['ts']
- key = info['key']
- server = info['server']
- wait_time = 25
- import json
- import random
- import time
- defaults = [u'тю', u'азаза', u'иди нахуй']
- while True:
- # устанавливаем онлайн
- print c.api('account.setOnline')
- url = 'https://%s?act=a_check&key=%s&ts=%s&wait=%s&mode=2' % (server, key, ts, wait_time)
- # print url
- info = c.fetch_json(url)
- # подробнее тут
- # 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
- print info
- ts = info['ts']
- for v in info['updates']:
- # print v
- # отвечаем на личные сообщения
- # v[2] - флаги. 0000000010 означает что сообщение исходящее, т.е. мы ищем только входящие
- if v[0] == 4 and v[2] & 2 == 0:
- # отмечаем как прочитанное
- message_id = v[1]
- from_id = v[3]
- message = v[6]
- try:
- print c.api('messages.markAsRead', {'message_ids': message_id, 'user_id': from_id})
- # отправляем запрос на xu.su
- res = urllib.urlopen('http://xu.su/send.php', 'bot=1&text=' + urllib.quote(message.encode('utf8')))
- data = res.read()
- result = json.loads(data)
- message = result['text']\
- if 'text' in result and\
- u'Я пока не могу ответить на этот вопрос, потому что моя база данных ещё маленькая. Поговори со мной и она увеличится!' != result['text']\
- else random.choice(defaults)
- # набираем сообщение
- c.api('messages.setActivity', {'user_id': from_id, 'type': 'typing'})
- time.sleep(random.uniform(1, 3))
- # проверяем откуда отправлено сообщение
- p = {'message': message}
- # если id отправителя больше 2 миллиардов, то сообщение отправлено из беседы
- if from_id < 2e9:
- p['user_id'] = from_id
- else:
- # вычисляем id беседы
- p['chat_id'] = from_id - 2e9
- print c.api('messages.send', p)
- except Exception, e:
- print e
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement