def testParseStr(self): result=Discuz.parse_str("a=1&b=2") self.assertEqual(len(result),2) self.assertTrue('a' in result) self.assertTrue('b' in result) self.assertTrue(result['a']=='1') self.assertTrue(result['b']=='2')
def testParse(self): print Discuz.parse_str(Discuz.discuzAuthcode('9949DdD0eUd4j+HIq8SIR4zDxr02OKaqn2+0D8X0+XDuZNs17mpg7K5xXdTe/qHLBul0p25SD+Q', settings.API_KEY,Discuz.DECODE))
def index(request): ''' 接受来自ucenter的调用 qs 是一个词典,action,time每次均会有,其它的根据实际的情况有不同的参数 通常url参数会有code,time但test action可能没有,下面代码需要重构,等确定那些有那些没有 ''' #目前不能处理非gbk编码 code=request.REQUEST.get('code','').encode('gbk') try: time_t=int(request.REQUEST.get('time',0)) except: time_t=0 qs=Discuz.parse_str(Discuz.discuzAuthcode(code, settings.API_KEY,Discuz.DECODE)) log(qs) time=int(qs.get('time',0)) log("time=%s&code=%s" %(time_t,code)) #timestamp = Discuz.unixTimestamp() if time_t and (time_t - time> 3600): #3600秒 延迟 return HttpResponse('Authracation has expiried') if not qs: return HttpResponse('Invalid Request') action = qs.get('action','') if action=='test': #测试 return HttpResponse(settings.API_RETURN_SUCCEED) elif action=='deleteuser': #删除用户 return API().delete_user(qs.get('ids','')) elif action=='renameuser': #改名用户 return API().rename_user(qs.get('uid',0),qs.get('oldusername'),qs.get('newusername')) elif action=='updatepw': #更新用户密码 return API().update_pw(qs.get('username',''),qs.get('password','')) elif action=='gettag': #获得tag return API().get_tag(qs.get('id','')) elif action=='synlogin': #同步登录 return API(request).syn_login(qs.get('uid',0)) elif action=='synlogout': #同步退出 return API(request).syn_logout() elif action=='updatebadwords': #更新过滤词 #return API().update_bad_words() return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='updatehosts': return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='updateapps': return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='updateclient': return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='updatecredit': return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='getcreditsettings': return HttpResponse(settings.API_RETURN_FORBIDDEN) elif action=='getcredit': return HttpResponse(settings.API_RETURN_FORBIDDEN) return HttpResponse(settings.API_RETURN_SUCCEED)