电脑代码python_python发 代码分享 -电脑资料

复制代码代码如下:

import urllib.parse,os.path,time,sys,re,urllib.request

from http.client import HTTPSConnection

from PyQt5.QtCore import *

from PyQt5.QtGui import *

from PyQt5.QtWidgets import *

from PyQt5.QtWebKitWidgets import *

from PyQt5.QtNetwork import *

#path

spath=sys.path[0]

if len(ospath)!=3:

ospath+='\\'

spath=ospath.replace('\\','/')

#api

class Api:

def getOpenid(self,token):

url="https://graph.qq.com/oauth2.0/me?access_token=%s" % token

u=urllib.request.urlopen(url)

data=u.read()

try:

data=data.decode('utf-8')

except:

data=data.decode('gbk')

penid=re.findall('"openid":"(.+?)"',data)[0]

return openid

def qq(self,token,status,pic):

fSize=os.path.getsize(pic)

BOUNDARY="$-img-lufei-goodboy-$"

CRLF='\r\n'

data=[

'--'+BOUNDARY,

'Content-Disposition: form-data; name="access_token"',

'',

token,

'--'+BOUNDARY,

'Content-Disposition: form-data; name="openid"',

'',

self.getOpenid(token),

'--'+BOUNDARY,

'Content-Disposition: form-data; name="oauth_consumer_key"',

'',

'100451446',

#status

'--'+BOUNDARY,

'Content-Disposition: form-data; name="content"',

'',

status,

#pic

'--'+BOUNDARY,

'Content-Disposition: form-data; name="pic"; filename="q_17.jpg"',

'Content-Type: image/jpeg',

''

]

#utf-8

data=(CRLF.join(data)+CRLF).encode('utf-8')

closing='\r\n--'+BOUNDARY+'--\r\n'

sumlen=len(data)+len(closing)+fSize

#----------------------------------------

h=HTTPSConnection('graph.qq.com')

h.putrequest('POST','/t/add_pic_t')

h.putheader('Content-Type','multipart/form-data; boundary=%s' % BOUNDARY)

h.putheader('Content-Length',sumlen)

h.endheaders()

h.send(data)

f=open(pic,'rb')

while True:

data=f.read(12345)

if not data:

break

h.send(data)

f.close()

h.send(closing.encode('utf-8'))

r=h.getresponse()

return r.read().decode('utf-8','ignore')

#webview

class WebView(QWebView):

token=None

def __init__(self):

super().__init__()

self.resize(800,500)

self.setWindowFlags(Qt.FramelessWindowHint|Qt.X11BypassWindowManagerHint|Qt.Tool)

self.cookieJar=QNetworkCookieJar()

self.page().networkAccessManager().setCookieJar(self.cookieJar)

url="https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=%s&redirect_uri=%s&state=%s" % ('100451446','http://lufei.fboat.net/api/qq.php','---I---Love---You---')

self.load(QUrl(url))

#sigal

self.loadProgress.connect(self.judge)

def judge(self):

url=re.findall(r"'(.+?)'",str(self.url()))[0]

if url=='http://lufei.fboat.net/':

for x in self.cookieJar.allCookies():

if x.domain()=='lufei.fboat.net' and x.name()=='token':

self.token=re.findall("'(.+?)'",str(x.value()))[0]

self.close()

#ui

class Dialog(QDialog):

def __init__(self):

super().__init__()

#icon,title

self.setWindowIcon(QIcon(ospath+'weibo.ico'))

self.setWindowTitle('weibo')

#texteditor

self.editor=QTextEdit()

#textline,filebutton,submit,login

self.line=QLineEdit()

brows=QPushButton('打开')

brows.clicked.connect(self.getFileName)

submit=QPushButton('发表')

submit.clicked.connect(self.submit)

login=QPushButton('登录')

login.clicked.connect(self.view)

#layout

layout=QGridLayout()

layout.setContentsMargins(0,0,0,0)

#addwidget

layout.addWidget(self.editor,0,0,1,2)

layout.addWidget(self.line,1,0,1,1)

layout.addWidget(brows,1,1,1,1)

layout.addWidget(submit,2,0,1,1)

layout.addWidget(login,2,1,1,1)

#set

self.setLayout(layout)

def getFileName(self):

fileName=QFileDialog.getOpenFileName()

self.line.setText(fileName[0])

def view(self):

webView.show()

def submit(self):

status=self.editor.toPlainText()

pic=self.line.text()

self.editor.setText(api.qq(webView.token,status,pic))

app=QApplication(sys.argv)

webView=WebView()

api=Api()

dialog=Dialog()

dialog.show()

app.exec_()

QQ空间 搜狐微博 人人网 开心网 百度搜藏更多

Tags: 代码

复制链接收藏本文打印本文关闭本文返回首页

上一篇:python实现2014火车票查询代码分享

下一篇:windows下wxPython开发环境安装与配置方法

相关文章

2014-01-01python抓取豆瓣图片并自动保存示例学习

2014-02-02python时间整形转标准格式的示例分享

2014-01-01使用cx_freeze把python打包exe示例

2013-03-03python 字符串格式化代码

2009-04-04Python 自动安装 Rising 杀毒软件

2014-03-03利用打码兔和超人打码自封装的打码类分享

2014-02-02python 多进程通信模块的简单实现

2013-02-02centos下更新Python版本的步骤

2013-02-02使用python检测手机QQ在线状态的脚本代码

2014-02-02go和python调用其它程序并得到程序输出

文章评论

最 近 更 新

Python学习笔记(一)(基础入门之环境搭建

Python实现同时兼容老版和新版Socket协议

Python函数学习笔记

python基础教程之实现石头剪刀布游戏示例

win7 下搭建sublime的python开发环境的配

python基础教程之数字处理(math)模块详解

python3.3使用tkinter开发猜数字游戏示例

python使用os模块的os.walk遍历文件夹示例

python中关于时间和日期函数的常用计算总

python 中的列表解析和生成表达式

热 点 排 行

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 文件和路径操作函数小结

python 字符串split的用法分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值