def onBtnUpdate(self): logging.info("Update status...") msg=self.plainTextEdit.toPlainText() if not msg and not self.img: self.alert(u"文字与图片必须输入至少一个!") return if not msg : msg=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) if os.path.isfile(self.img): resp=self.xkongfan.PhotosUpload(self.img,msg) else: resp=self.xkongfan.Update(msg) if resp['rawid']: self.img="" self.plainTextEdit.setPlainText("") self.btnShowSelectedImage.setText(u"") if os.path.isfile(self.convertedImg): os.remove(self.convertedImg) self.convertedImg="" self.cf.readfp(codecs.open(self.CONFIGFILE,"r","utf-8")) switch=self.cf.get("Manage","auto_minimize") if switch=="true": self.hide() logging.info("Staus Updated.") else: logging.error("Error when update status:MSG:%s"%msg) self.alert(u"消息更新失败……")
def apiOpen(self,url,data=None,POST=False): u'''ApiOpen,打开url,返回resp''' logging.info('ApiOpenStarted.') if POST : HTTP_METHOD='POST' else: HTTP_METHOD='GET' consumer = oauth.OAuthConsumer(consumer_key, consumer_secret) oauth_token=oauth.OAuthToken(self.key,self.secret) request=oauth.OAuthRequest.from_consumer_and_token(consumer, token=oauth_token, http_method=HTTP_METHOD, http_url=url, parameters=data) signature_method = oauth.OAuthSignatureMethod_HMAC_SHA1() request.sign_request(signature_method,consumer,oauth_token) headers=self.request_to_header(request) if data!=None : data=urllib.urlencode(data) else: data='' if not POST: url+='?'+data data=None try: html = urllib2.urlopen(urllib2.Request(url,data,headers=headers)) resp = html.read() except urllib2.URLError,e: if hasattr(e,'reason'): error = e.reason else: error = str(e) logging.error('ApiOpen:URLError:%s'%error) self.parent.alert(u'URLError:%s'%error) sys.exit(0)
def getTokenByAccount(self,username,passwd): u'''通过用户账户获取token''' logging.info('Get token by user account.') consumer = oauth.OAuthConsumer(consumer_key, consumer_secret) params = {} params['x_auth_username'] = username params['x_auth_password'] = passwd params['x_auth_mode'] = 'client_auth' request = oauth.OAuthRequest.from_consumer_and_token(consumer, http_url=access_token_url, parameters=params) signature_method = oauth.OAuthSignatureMethod_HMAC_SHA1() request.sign_request(signature_method, consumer, None) headers=self.request_to_header(request) try: resp = urllib2.urlopen(urllib2.Request(access_token_url, headers=headers)) except Exception,e: if hasattr(e,'code'): logging.error('GetTokenByAccount:Error:%s'%e.code) return None,None else: logging.error('GetTokenByAccount:Error:%s'%e) return None,None
if hasattr(e,'code'): logging.error('GetTokenByAccount:Error:%s'%e.code) return None,None else: logging.error('GetTokenByAccount:Error:%s'%e) return None,None else: token = resp.read() m = re.match(r'oauth_token=(?P<key>[^&]+)&oauth_token_secret=(?P<secret>[^&]+)', token) if m: oauth_token_key=m.group('key') oauth_token_secret=m.group('secret') logging.info('Token got.') return oauth_token_key,oauth_token_secret else: logging.error('Not a valid resp.Cann\'t get token.') return None,None def setToken(self,oauth_token_key,oauth_token_secret): u'''设置token''' self.key=oauth_token_key self.secret=oauth_token_secret def saveToken(self,key,secret): u'''保存key,secret''' logging.info('Save token.') k=Crypto().encrypt(key) v=Crypto().encrypt(secret) cf=ConfigParser.ConfigParser() if not os.path.isfile(CONFIGFILE): f=open(CONFIGFILE,'w')