QQ自动回复加强版

由本社区发起的开源项目
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

QQ自动回复加强版

#1

帖子 枫叶饭团 » 2012-08-19 22:59

副产品,挂着挺稳定的。
只有一个功能:自动回复,回复内容。。。自己试
很慢,很慢。。。

[python]
#!/usr/bin/env python3
#
# Author: maplebeats
#
# gtalk/mail: maplebeats@gmail.com
#
# Last modified: 2012-08-19 22:15
#
# Filename: webqq.py
#
# Description: Webqq class
#
from urllib import parse,request
from http import cookiejar
import random,time
import json,re,hashlib
import threading

class Webqq:

def _hexchar2bin(self,hex):
arry= bytearray()
for i in range(0, len(hex), 2):
arry.append(int(hex[i:i+2],16))
return arry

def _preprocess(self,password=None,verifycode=None):

self.hashpasswd=self._md5(password)
I=self._hexchar2bin(self.hashpasswd)
H = self._md5(I + bytes(verifycode[2],encoding="ISO-8859-1"))
G = self._md5(H + verifycode[1].upper());
return G

def _md5(self,str):
try:
str = str.encode('utf-8')
except:
pass
return hashlib.md5(str).hexdigest().upper()

def _request(self, url, data=None):

if data:
data = parse.urlencode(data).encode('utf-8')
rr = request.Request(url,data,self._headers)
else:
rr = request.Request(url=url, headers=self._headers)

fp = self.opener.open(rr)

try:
res = fp.read().decode('utf-8')
except:
res = fp.read()

fp.close

return res


def __init__(self):
self.cookieJar = cookiejar.CookieJar()
self.opener = request.build_opener(request.HTTPCookieProcessor(self.cookieJar))
self._headers = {
"User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1",
"Accept-Language":"zh-cn,en;q=0.8,en-us;q=0.5,zh-hk;q=0.3",
"Accept-Encoding":"gzip, deflate",
"Connection":"keep-alive",
"Referer":"http://ui.ptlogin2.qq.com/cgi-bin/login ... 0120619001"
}
self.clientid = "4646111"
self._msgid = 60000000

def _getverifycode(self):

urlv = 'http://check.ptlogin2.qq.com/check?uin= ... 08010&r=%s'%(self.__qq,random.Random().random())
res = self._request(url = urlv)
verify=eval(res.split("(")[1].split(")")[0])
verify=list(verify)
if verify[0]=='1':
imgurl="http://captcha.qq.com/getimage?aid=5670 ... =%s&uin=%s"%(random.Random().random(),self.__qq)
self.__verifyimg = "verify"
f=open(self.__verifyimg,"wb")
fp = request.urlopen(imgurl)
f.write(fp.read())
f.close()
print("请输入验证码:")
vf=input("vf # ").strip()
verify[1]=vf

return verify

def _login(self):

urlv="http://ptlogin2.qq.com/login?u=%s&p=%s& ... qq&t=1&g=1"
res = self._request(url = urlv)
if res.find('登录成功') != -1:
print("登陆成功")
elif res.find('验证码不正确') != -1:
self._getverifycode()
self._login()
else:
print(res)

def _poll(self):

urlv = "http://d.web2.qq.com/channel/poll2"
self._headers.update({"Referer":"http://d.web2.qq.com/proxy.html?v=20110 ... ack=1&id=2"})
status = {'clientid':self.clientid,'psessionid':self.psessionid}
data = {'r':json.dumps(status),
'clientid' : self.clientid,
'psessionid': 'null'
}
res = self._request(urlv,data)
res = json.loads(res)
self.message_received(res)

heart = threading.Timer(0.5,self._poll)
heart.start()

def connect(self):

self.__qq = "这里是QQ号"
self.pswd = "这里是QQ密码"
self.__qq = self.__qq.strip()
self.pswd = self.pswd.strip()
self.__verifycode = self._getverifycode()
self.passwd = self._preprocess(
self.pswd,
self.__verifycode
)
print ("登录中...")

self._login()

self._cookies()

urlv = "http://d.web2.qq.com/channel/login2"
self._headers.update({"Referer":"http://d.web2.qq.com/proxy.html?v=20110 ... ack=1&id=2"})
status = {'status':'online','ptwebqq':self.cookies['ptwebqq'],'passwd_sig':'','clientid':self.clientid,'psessionid':'null'}
data = {'r':json.dumps(status),
'clientid' : self.clientid,
'psessionid': 'null'
}
res = self._request(urlv,data)

data = json.loads(res)
self.psessionid = data['result']['psessionid']

self._poll()

def _cookies(self):
cj = self.cookieJar
self.cookies = {}
for i in cj:
self.cookies.update({i.name:i.value})

def msg_id(self):
self._msgid += 1
return self._msgid

def disconnect(self):
pass

def pending(self,msg):
pass

def message_received(self,msg):
if msg['retcode'] == 0:
poll_type = msg['result'][0]['poll_type']
data = msg['result'][0]['value']
if poll_type == 'message':
from_uin = data['from_uin']
content = data['content'][1]
tt = threading.Thread(target=self._bot,args=(from_uin,self._botmsg(),))
tt.start()
elif poll_type == 'group_message' :
from_uin = data['from_uin']
content = data['content'][1]
send_uin = data['send_uin']
print(msg)
#self.xmpp.sendmsg('[%s] %s' % (username,msg))

def _bot(self,uin,msg="test"):

msg = "[\""+msg+"\",[\"font\",{\"name\":\"宋体\",\"size\":\"20\",\"style\":[0,0,0],\"color\":\"000000\"}]]"
urlv = "http://d.web2.qq.com/channel/send_buddy_msg2"
status = {'to':uin,'face':180,'content':msg,'msg_id':self.msg_id(),'clientid':self.clientid,"psessionid":self.psessionid}
data = {'r':json.dumps(status),
'clientid': self.clientid,
'psessionid': self.psessionid
}
res = self._request(urlv,data)

def _botmsg(self):

urlv = "http://api.hitokoto.us/rand"
res = request.urlopen(urlv).read().decode()
hit = json.loads(res)
return hit['hitokoto']

def sendmsg(self,msg):

group_uin = "2675988593"
urlv = "http://d.web2.qq.com/channel/send_qun_msg2"
msg = "[\""+msg+"\",[\"font\",{\"name\":\"宋体\",\"size\":\"20\",\"style\":[0,0,0],\"color\":\"000000\"}]]"
status = {"group_uin":group_uin,"content":msg,"msg_id":self.msg_id(),"clientid":self.clientid,"psessionid":self.psessionid}
data = {'r':json.dumps(status),
'clientid': self.clientid,
'psessionid':self.psessionid
}
res = self._request(urlv,data)
print(res)

def write(self, msg, cb=None):
pass

test = Webqq()
test.connect()
[/python]
头像
nmsfan
帖子: 18958
注册时间: 2009-10-16 22:46
来自: finland

Re: 轮子来了

#2

帖子 nmsfan » 2012-08-19 23:13

自动回复“你丫去死”
会是什么效果
:em04 :em04
>>>>推Ubuntu 桌面培训~~<<<<
>>>>想加入/了解gimp汉化吗,点我吧~<<<<
——————————————————————
不推荐wubi,也不推荐你给别人推荐wubi…………
随心而为的感觉真好……
强推mayhem!!
强推ensiferum
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: QQ自动回复加强版

#3

帖子 YeLee » 2012-08-20 7:50

轮子来了?
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: QQ自动回复加强版

#4

帖子 JiangHui » 2012-08-20 7:54

图片
头像
qy117121
论坛版主
帖子: 50558
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 轮子来了

#5

帖子 qy117121 » 2012-08-20 10:05

nmsfan 写了:自动回复“你丫去死”
会是什么效果
:em04 :em04
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
qy117121
论坛版主
帖子: 50558
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: QQ自动回复加强版

#6

帖子 qy117121 » 2012-08-20 10:08

2012-08-20-100624_517x555_scrot.png
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: QQ自动回复加强版

#7

帖子 枫叶饭团 » 2012-08-20 11:02

都说是副产品了,顺路做了个小BOT
头像
nmsfan
帖子: 18958
注册时间: 2009-10-16 22:46
来自: finland

Re: QQ自动回复加强版

#8

帖子 nmsfan » 2012-08-20 14:17

挂qq系统 :em20 :em20
会显示iphone在线吗 :em20 :em20
>>>>推Ubuntu 桌面培训~~<<<<
>>>>想加入/了解gimp汉化吗,点我吧~<<<<
——————————————————————
不推荐wubi,也不推荐你给别人推荐wubi…………
随心而为的感觉真好……
强推mayhem!!
强推ensiferum
头像
qy117121
论坛版主
帖子: 50558
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: QQ自动回复加强版

#9

帖子 qy117121 » 2012-08-20 14:20

nmsfan 写了:挂qq系统 :em20 :em20
会显示iphone在线吗 :em20 :em20
手机在线,
饭团的不清楚
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
nmsfan
帖子: 18958
注册时间: 2009-10-16 22:46
来自: finland

Re: QQ自动回复加强版

#10

帖子 nmsfan » 2012-08-20 14:23

哈哈,真搞乐,真有人喜欢挂qq么…………那个等级有个鸟用……
>>>>推Ubuntu 桌面培训~~<<<<
>>>>想加入/了解gimp汉化吗,点我吧~<<<<
——————————————————————
不推荐wubi,也不推荐你给别人推荐wubi…………
随心而为的感觉真好……
强推mayhem!!
强推ensiferum
头像
qy117121
论坛版主
帖子: 50558
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: QQ自动回复加强版

#11

帖子 qy117121 » 2012-08-20 14:27

我会说那几个QQ多数是我的么 :em09
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: QQ自动回复加强版

#12

帖子 枫叶饭团 » 2012-08-20 18:00

增加了bot回复功能,代码不告诉你们。。。
头像
qy117121
论坛版主
帖子: 50558
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: QQ自动回复加强版

#13

帖子 qy117121 » 2012-08-20 18:01

枫叶饭团 写了:增加了bot回复功能,代码不告诉你们。。。
人家才不想知道呢
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: QQ自动回复加强版

#14

帖子 YeLee » 2012-08-20 18:12

膜拜高手,能说说原理么? :em01 :em01 :em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
nmsfan
帖子: 18958
注册时间: 2009-10-16 22:46
来自: finland

Re: QQ自动回复加强版

#15

帖子 nmsfan » 2012-08-20 18:34

不明觉厉
>>>>推Ubuntu 桌面培训~~<<<<
>>>>想加入/了解gimp汉化吗,点我吧~<<<<
——————————————————————
不推荐wubi,也不推荐你给别人推荐wubi…………
随心而为的感觉真好……
强推mayhem!!
强推ensiferum
回复