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
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
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
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
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
def login(): if ConfigLoader().dic_bilibili['saved-session']['cookie']: bilibili.load_session(ConfigLoader().dic_bilibili['saved-session']) return HandleExpire() else: return LoginWithPwd()