Ejemplo n.º 1
0
def apiv2RefreshToken(refreshtoken, updatedb=1, **kw):
    """token刷新
    """
    url = 'https://osu.ppy.sh/oauth/token'
    header = {'Content-Type': 'application/x-www-form-urlencoded'}
    params = {
        'grant_type': 'refresh_token',
        'client_id': '19',
        'client_secret': '46SmWQ2TyF5FMECwHrblTZ2oiYq4yyAbOH5BDDS7',
        'refresh_token': refreshtoken,
        "redirect_uri": "http://interbot.cn/apiv2/auth"
    }
    ret = -1
    res = requests.post(url, headers=header, data=params)
    logging.info('refreshtoken:%s|status:%s', url, res)
    if res.status_code == 200:
        rs = json.loads(res.text)
        if not rs.get('error'):
            ret = rs['access_token']
            if updatedb:
                baseHandler.baseHandler().updateToken(kw['qq'], kw['groupid'],
                                                      rs['access_token'],
                                                      rs['refresh_token'])
        else:
            ret = -2
            logging.info('token失效')

    return ret
Ejemplo n.º 2
0
def apiv2me(**kw):
    qqid = request.form.get('qqid')
    groupid = request.form.get('groupid')
    atqq = request.form.get('atqq')
    queryid = qqid
    if atqq:
        base = baseHandler.baseHandler()
        rs = base.checkTokenPermission(atqq, groupid)
        if rs.isdigit():
            queryid = atqq
        else:
            return rs
    url = "http://inter4.com/osubot/v2me"
    data = {"qqid": queryid, "groupid": groupid}
    r = requests.post(url, timeout=10, data=data)
    try:
        rdata = json.loads(r.text)
        imgpath = ppyHandler.ppyHandler().drawRankLine(rdata, queryid)
        return "[CQ:image,cache=0,file=%s]" % imgpath
    except:
        logging.error(traceback.format_exc())
        if len(r.text) < 50:
            return r.text
        else:
            return '异常'
    return '异常,懒得修了'
Ejemplo n.º 3
0
 def getV2MyInfo(self, qq, groupid):
     uinfo = baseHandler.baseHandler().getUserBindInfo({"qq": qq})
     token = uinfo[0]["acesstoken"]
     refreshtoken = uinfo[0]["refreshtoken"]
     osuname = uinfo[0]["osuname"]
     res = self.autov2Req(qq, groupid, "me", token, refreshtoken)
     if isinstance(res, str):
         return res
     else:
         return json.dumps(res)
Ejemplo n.º 4
0
def recommendTags(**kw):
    qq = kw['atqq'] if kw.get('atqq') else kw['qqid']
    groupid = kw['groupid']
    ins = baseHandler.baseHandler()
    r = ins.recordRecMap(qq, groupid)
    rs = ''
    if r == -1:
        rs = '推荐功能执行中!'
    elif r == 1:
        rs = '开启推荐map功能,发送图链,结束后请使用!stoprcm'
    return rs
Ejemplo n.º 5
0
def stat(**kw):
    b = ppyHandler.ppyHandler()
    atqq = kw['atqq']
    if atqq:
        base = baseHandler.baseHandler()
        rs = base.checkTokenPermission(atqq, kw['groupid'])
        if rs.isdigit():
            rs = b.osuV2stat(atqq, kw['groupid'])
    else:
        rs = b.osuV2stat(kw['qqid'], kw['groupid'])
    return rs
Ejemplo n.º 6
0
def bindUserInfo(**kw):
    ins = baseHandler.baseHandler()
    osuid = ' '.join(kw['iargs']) if kw.get('iargs') else kw.get('osuid', '')
    r = ins.bindOsuUser(osuid, kw['qqid'], kw['groupid'])
    if r > 0:
        rs = '绑定成功!'
    elif r == 0:
        rs = '重复绑定!'
    elif r == -1:
        rs = '系统异常!'
    elif r == -2:
        rs = '网络或者用户名异常!'
    else:
        rs = '未知错误!'
    return rs
Ejemplo n.º 7
0
def userPermissionSet(**kw):
    ins = baseHandler.baseHandler()
    pms = Config.TOKEN_PERMISSION
    levels = pms.keys()
    usage = 'usage: ¡settokenpms %s\n注:' % ('/'.join(levels))
    for k in levels:
        usage += k + '-' + pms[k] + ' '
    if not kw.get('iargs'):
        return usage
    inputLevel = kw['iargs'][0]
    if inputLevel not in levels:
        return usage
    ret = ins.updateUserPermission(kw['qqid'], inputLevel)
    rs = "token权限更新成功!\n当前权限: %s-%s" % (inputLevel, pms[inputLevel])
    if ret <= 0:
        rs = "token权限更新失败!\n当前权限: %s-%s" % (inputLevel, pms[inputLevel])
    return rs
Ejemplo n.º 8
0
 def getFriends(self, qq, groupid):
     uinfo = baseHandler.baseHandler().getUserBindInfo({"qq": qq})
     token = uinfo[0]["acesstoken"]
     refreshtoken = uinfo[0]["refreshtoken"]
     osuname = uinfo[0]["osuname"]
     res = self.autov2Req(qq, groupid, "friends", token, refreshtoken)
     if isinstance(res, str):
         return res
     else:
         friendsNum = len(res)
         rs = "%s's friends(%s)\n" % (osuname, friendsNum)
         if friendsNum < 10:
             fs = res
         else:
             fs = random.sample(res, 10)
         for i, r in enumerate(fs):
             rs += '%s.%s\n' % (i + 1, r["username"])
     return rs[:-1]
Ejemplo n.º 9
0
def recommendList(**kw):
    qq = kw['atqq'] if kw.get('atqq') else kw['qqid']
    groupid = kw['groupid']
    ins = baseHandler.baseHandler()
    r = ins.recordRecMapList(qq, groupid)
    return str(r)
Ejemplo n.º 10
0
def remRecommendTags(**kw):
    qq = kw['atqq'] if kw.get('atqq') else kw['qqid']
    groupid = kw['groupid']
    ins = baseHandler.baseHandler()
    r = ins.stopRecordRecMap(qq, groupid)
    return str(r)
Ejemplo n.º 11
0
def userInfoApi2(**kw):
    ins = baseHandler.baseHandler()
    rts = ins.getUserBindInfo2(kw['qqid'])
    return json.dumps(rts)
Ejemplo n.º 12
0
def userInfoApi(**kw):
    ins = baseHandler.baseHandler()
    rts = ins.getUserBindInfo({"qq": kw['qqid']})
    return json.dumps(rts)
Ejemplo n.º 13
0
def userPermission(**kw):
    ins = baseHandler.baseHandler()
    ret = ins.getUserPermission(kw['qqid'])
    return ret
Ejemplo n.º 14
0
def bindUserToken(**kw):
    ins = baseHandler.baseHandler()
    url = 'https://osu.ppy.sh/oauth/authorize?client_id=19&response_type=code&state=%sx%s&scope=friends.read%%20identify' % (
        kw['qqid'], kw['groupid'])
    ret = url + '\n*请点击链接进行授权绑定'
    return ret
Ejemplo n.º 15
0
def chat(**kw):
    inputs = ' '.join(kw['iargs'])
    ins = baseHandler.baseHandler()
    r = ins.chat2bot(inputs)
    return r
Ejemplo n.º 16
0
 def getV2osuInfo(self, qq, groupid):
     uinfo = baseHandler.baseHandler().getUserBindInfo({"qq": qq})
     token = uinfo[0]["acesstoken"]
     refreshtoken = uinfo[0]["refreshtoken"]
     osuname = uinfo[0]["osuname"]
     return self.autov2Req2(qq, groupid, "me", token, refreshtoken)