Пример #1
0
 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)
Пример #2
0
 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")
Пример #3
0
 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()
Пример #4
0
 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")