def login(self): username = str(bilibili().dic_bilibili['account']['username']) password = str(bilibili().dic_bilibili['account']['password']) if username != "": response = bilibili().request_getkey() value = response.json()['data'] key = value['key'] Hash = str(value['hash']) username, password = bilibili().calc_name_passw(key, Hash, username, password) response = self.normal_login(username, password) while response.json()['code'] == -105: response = self.login_with_captcha(username, password) try: access_key = response.json()['data']['token_info']['access_token'] cookie = (response.json()['data']['cookie_info']['cookies']) cookie_format = "" for i in range(0, len(cookie)): cookie_format = cookie_format + cookie[i]['name'] + "=" + cookie[i]['value'] + ";" bilibili().dic_bilibili['csrf'] = cookie[0]['value'] bilibili().dic_bilibili['access_key'] = access_key bilibili().dic_bilibili['cookie'] = cookie_format bilibili().dic_bilibili['uid'] = cookie[1]['value'] bilibili().dic_bilibili['pcheaders']['cookie'] = cookie_format bilibili().dic_bilibili['appheaders']['cookie'] = cookie_format dic_saved_session = { 'csrf': cookie[0]['value'], 'access_key': access_key, 'cookie': cookie_format, 'uid': cookie[1]['value'] } configloader.write2bilibili(dic_saved_session) Printer().printlist_append(['join_lottery', '', 'user', "登录成功"], True) except: Printer().printlist_append(['join_lottery', '', 'user', "登录失败,错误信息为:", response.json()['message']], True)
def login(self): username = str(bilibili().dic_bilibili['account']['username']) password = str(bilibili().dic_bilibili['account']['password']) if username != "": while True: response = bilibili().request_getkey() value = response.json()['data'] key = value['key'] Hash = str(value['hash']) calcd_username, calcd_password = bilibili().calc_name_passw( key, Hash, username, password) response = self.normal_login(calcd_username, calcd_password) while response.json()['code'] == -105: response = self.login_with_captcha(calcd_username, calcd_password) if response.json( )['code'] == -662: # "can't decrypt rsa password~" Printer().printer("打码时间太长key失效,重试", "Error", "red") continue if response.json()['code'] == -449: # {'code': -449, 'message': '服务繁忙, 请稍后再试', 'ts': 1593853665} Printer().printer("服务繁忙,10分钟后重试", "Error", "red") Printer().printer(f"疑似登录接口失效,请联系开发者 {response.json()}", "Warning", "red") time.sleep(600) continue break try: access_key = response.json( )['data']['token_info']['access_token'] refresh_token = response.json( )['data']['token_info']['refresh_token'] cookie = response.json()['data']['cookie_info']['cookies'] cookie_format = "" for i in range(len(cookie)): cookie_format = cookie_format + cookie[i][ 'name'] + "=" + cookie[i]['value'] + ";" bilibili().dic_bilibili['csrf'] = cookie[0]['value'] bilibili().dic_bilibili['access_key'] = access_key bilibili().dic_bilibili['refresh_token'] = refresh_token bilibili().dic_bilibili['cookie'] = cookie_format bilibili().dic_bilibili['uid'] = cookie[1]['value'] bilibili().dic_bilibili['pcheaders']['cookie'] = cookie_format bilibili().dic_bilibili['appheaders']['cookie'] = cookie_format dic_saved_session = { 'csrf': cookie[0]['value'], 'access_key': access_key, 'refresh_token': refresh_token, 'cookie': cookie_format, 'uid': cookie[1]['value'] } configloader.write2bilibili(dic_saved_session) Printer().printer(f"登录成功", "Info", "green") except: Printer().printer(f"登录失败,错误信息为:{response.json()}", "Error", "red")
def refresh_token(self): url = "https://passport.bilibili.com/api/v2/oauth2/refresh_token" params_dic = { "access_token": bilibili().dic_bilibili["access_key"], "actionKey": bilibili().dic_bilibili["actionKey"], "appkey": bilibili().dic_bilibili["appkey"], "build": bilibili().dic_bilibili["build"], "device": bilibili().dic_bilibili["device"], "mobi_app": bilibili().dic_bilibili["mobi_app"], "platform": bilibili().dic_bilibili["platform"], 'refresh_token': bilibili().dic_bilibili["refresh_token"], } temp_params = '&'.join( [f'{key}={value}' for key, value in params_dic.items()]) sign = bilibili().calc_sign(temp_params) payload = f'{temp_params}&sign={sign}' response = requests.post(url, params=payload, headers=app_headers) json_response = response.json() if json_response["code"] == 0: access_key = json_response['data']['token_info']['access_token'] refresh_token = json_response['data']['token_info'][ 'refresh_token'] cookie = json_response['data']['cookie_info']['cookies'] cookie_format = "" for i in range(len(cookie)): cookie_format = cookie_format + cookie[i][ 'name'] + "=" + cookie[i]['value'] + ";" bilibili().dic_bilibili['csrf'] = cookie[0]['value'] bilibili().dic_bilibili['access_key'] = access_key bilibili().dic_bilibili['refresh_token'] = refresh_token bilibili().dic_bilibili['cookie'] = cookie_format bilibili().dic_bilibili['uid'] = cookie[1]['value'] bilibili().dic_bilibili['pcheaders']['cookie'] = cookie_format bilibili().dic_bilibili['appheaders']['cookie'] = cookie_format dic_saved_session = { 'csrf': cookie[0]['value'], 'access_key': access_key, 'refresh_token': refresh_token, 'cookie': cookie_format, 'uid': cookie[1]['value'] } configloader.write2bilibili(dic_saved_session) Printer().printer(f"token刷新成功", "Info", "green") else: Printer().printer(f"token刷新失败,将重新登录 {json_response}", "Info", "green") self.login()
def login(self): username = str(bilibili().dic_bilibili['account']['username']) password = str(bilibili().dic_bilibili['account']['password']) if username != "": while True: response = bilibili().request_getkey() value = response.json()['data'] key = value['key'] Hash = str(value['hash']) calcd_username, calcd_password = bilibili().calc_name_passw( key, Hash, username, password) response = self.normal_login(calcd_username, calcd_password) while response.json()['code'] == -105: response = self.login_with_captcha(calcd_username, calcd_password) if response.json( )['code'] == -662: # "can't decrypt rsa password~" Printer().printer("打码时间太长key失效,重试", "Error", "red") continue break try: access_key = response.json( )['data']['token_info']['access_token'] cookie_info = self.access_token_2_cookies(access_key) cookie_format = "" for key, value in cookie_info.items(): cookie_format = cookie_format + key + "=" + value + ";" bilibili().dic_bilibili['csrf'] = cookie_info['bili_jct'] bilibili().dic_bilibili['access_key'] = access_key bilibili().dic_bilibili['cookie'] = cookie_format bilibili().dic_bilibili['uid'] = int(cookie_info['DedeUserID']) bilibili().dic_bilibili['pcheaders']['cookie'] = cookie_format bilibili().dic_bilibili['appheaders']['cookie'] = cookie_format dic_saved_session = { 'csrf': cookie_info['bili_jct'], 'access_key': access_key, 'cookie': cookie_format, 'uid': cookie_info['DedeUserID'] } configloader.write2bilibili(dic_saved_session) Printer().printer(f"登录成功", "Info", "green") except: Printer().printer(f"登录失败,错误信息为:{response.json()}", "Error", "red")