Exemplo n.º 1
0
def RefreshToken():
    # return
    response = bilibili.request_refresh_token()
    json_response = response.json()
    # print(json_response)

    if not json_response['code'] and 'mid' in json_response['data'][
            'token_info']:
        print('token刷新成功')
        data = json_response['data']
        access_key = data['token_info']['access_token']
        refresh_token = data['token_info']['refresh_token']
        cookie = data['cookie_info']['cookies']
        generator_cookie = (f'{i["name"]}={i["value"]}' for i in cookie)
        cookie_format = ';'.join(generator_cookie)
        dic_saved_session = {
            'csrf': cookie[0]['value'],
            'access_key': access_key,
            'refresh_token': refresh_token,
            'cookie': cookie_format
        }
        bilibili.load_session(dic_saved_session)
        if ConfigLoader().dic_user['other_control']['keep-login']:
            ConfigLoader().write2bilibili(dic_saved_session)
        # 更新token信息
        return True
    print('联系作者(token刷新失败,cookie过期)', json_response)
    return False
Exemplo n.º 2
0
def RefreshToken():
    # return
    response = bilibili.request_refresh_token()
    json_response = response.json()
    # print(json_response)
    if not json_response['code'] and json_response['data'].get('mid', ''):
        print('token刷新成功')
        dic_saved_session = {
            'access_key': json_response['data']['access_token'],
            'refresh_token': json_response['data']['refresh_token']
        }
        bilibili.load_session(dic_saved_session)
        if ConfigLoader().dic_user['other_control']['keep-login']:
            ConfigLoader().write2bilibili(dic_saved_session)
        # 更新token信息
        return True
    print('联系作者(token刷新失败,cookie过期)', json_response)
    return False
Exemplo n.º 3
0
def LoginWithPwd():
    username = ConfigLoader().dic_bilibili['account']['username']
    password = ConfigLoader().dic_bilibili['account']['password']
    response = bilibili.request_getkey()
    value = response.json()['data']
    key = value['key']
    Hash = str(value['hash'])
    username, password = calc_name_passw(key, Hash, username, password)
    captcha = None
    response = bilibili.normal_login(username, password, captcha)
    # while response.json()['code'] == -105:
    #     captcha = bilibili.get_captcha(username, password)
    #     response = bilibili.normal_login(username, password, captcha)
    json_rsp = response.json()
    print(json_rsp)
    try:
        data = json_rsp['data']
        access_key = data['token_info']['access_token']
        refresh_token = data['token_info']['refresh_token']
        cookie_info = bilibili.access_token_2_cookies(access_key)
        print(cookie_info)
        generator_cookie = (f'{i[0]}={i[1]}' for i in cookie_info.items())
        cookie_format = ';'.join(generator_cookie)
        dic_saved_session = {
            'csrf': cookie_info['bili_jct'],
            'access_key': access_key,
            'refresh_token': refresh_token,
            'cookie': cookie_format,
            'uid': cookie_info['DedeUserID']
            }
        # print(dic_saved_session)
        bilibili.load_session(dic_saved_session)
        if ConfigLoader().dic_user['other_control']['keep-login']:
            ConfigLoader().write2bilibili(dic_saved_session)
        printer.info(['登陆成功'], True)
        return True

    except:
        print(sys.exc_info()[0], sys.exc_info()[1])
        printer.info([f'登录失败,错误信息为:{json_rsp}'], True)
        return False
Exemplo n.º 4
0
def LoginWithPwd():
    username = ConfigLoader().dic_bilibili['account']['username']
    password = ConfigLoader().dic_bilibili['account']['password']
    response = bilibili.request_getkey()
    value = response.json()['data']
    key = value['key']
    Hash = str(value['hash'])
    username, password = calc_name_passw(key, Hash, username, password)

    response = bilibili.normal_login(username, password)
    while response.json()['code'] == -105:
        response = bilibili.login_with_captcha(username, password)
    try:
        # print(response.json())
        data = response.json()['data']
        access_key = data['token_info']['access_token']
        refresh_token = data['token_info']['refresh_token']
        cookie = data['cookie_info']['cookies']
        generator_cookie = (f'{i["name"]}={i["value"]}' for i in cookie)
        cookie_format = ';'.join(generator_cookie)
        dic_saved_session = {
            'csrf': cookie[0]['value'],
            'access_key': access_key,
            'refresh_token': refresh_token,
            'cookie': cookie_format,
            'uid': cookie[1]['value']
        }
        # print(dic_saved_session)
        bilibili.load_session(dic_saved_session)
        if ConfigLoader().dic_user['other_control']['keep-login']:
            ConfigLoader().write2bilibili(dic_saved_session)
        print("[{}] {}".format(
            time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())),
            '密码登陆成功'))
        return True

    except:
        print("[{}] 登录失败,错误信息为:{}".format(
            time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())),
            response.json()['message']))
        return False
Exemplo n.º 5
0
def LoginWithPwd():
    username = ConfigLoader().dic_bilibili['account']['username']
    password = ConfigLoader().dic_bilibili['account']['password']
    response = bilibili.request_getkey()
    value = response.json()['data']
    key = value['key']
    Hash = str(value['hash'])
    username, password = calc_name_passw(key, Hash, username, password)
    captcha = None
    response = bilibili.normal_login(username, password, captcha)
    while response.json()['code'] == -105:
        captcha = bilibili.get_captcha(username, password)
        response = bilibili.normal_login(username, password, captcha)
    json_rsp = response.json()
    # print(json_rsp)
    if not json_rsp['code'] and not json_rsp['data']['status']:
        data = json_rsp['data']
        access_key = data['token_info']['access_token']
        refresh_token = data['token_info']['refresh_token']
        cookie = data['cookie_info']['cookies']
        generator_cookie = (f'{i["name"]}={i["value"]}' for i in cookie)
        cookie_format = ';'.join(generator_cookie)
        dic_saved_session = {
            'csrf': cookie[0]['value'],
            'access_key': access_key,
            'refresh_token': refresh_token,
            'cookie': cookie_format,
            'uid': cookie[1]['value']
        }
        # print(dic_saved_session)
        bilibili.load_session(dic_saved_session)
        if ConfigLoader().dic_user['other_control']['keep-login']:
            ConfigLoader().write2bilibili(dic_saved_session)
        printer.info(['登陆成功'], True)
        return True

    else:
        printer.info([f'登录失败,错误信息为:{json_rsp}'], True)
        return False
Exemplo n.º 6
0
def login():
    if ConfigLoader().dic_bilibili['saved-session']['cookie']:
        bilibili.load_session(ConfigLoader().dic_bilibili['saved-session'])
        return HandleExpire()
    else:
        return LoginWithPwd()