diff --git a/BiliDriveEx/__main__.py b/BiliDriveEx/__main__.py index 71b2a30cdb033dc64ff2b33c2878deb5ed3762df..fed8e876b1316b57a1712ab6d6918ff0445bfcb7 100644 --- a/BiliDriveEx/__main__.py +++ b/BiliDriveEx/__main__.py @@ -45,15 +45,20 @@ def fetch_meta(s): def login_handle(args): if api.login(username=args.username, password=args.password): info = api.get_user_info() - if info: log_info(info) + if info: log(info) else: log("用户信息获取失败") def cookies_handle(args): api.set_cookies(args.cookies) info = api.get_user_info() - if info: log_info(info) + if info: log(info) else: log("用户信息获取失败") +def userinfo_handle(args): + info = api.get_user_info() + if info: log(info) + else: log("用户未登录") + def upload_handle(args): def core(index, block): try: @@ -293,6 +298,9 @@ def main(): cookies_parser.add_argument("cookies", help="your bilibili cookies") cookies_parser.set_defaults(func=cookies_handle) + userinfo_parser = subparsers.add_parser("userinfo", help="get userinfo") + userinfo_parser.set_defaults(func=userinfo_handle) + upload_parser = subparsers.add_parser("upload", help="upload a file") upload_parser.add_argument("file", help="name of the file to upload") upload_parser.add_argument("-b", "--block-size", default=4, type=int, help="block size in MB") diff --git a/BiliDriveEx/bilibili.py b/BiliDriveEx/bilibili.py index 72c35c2e29be50c0f823fd8e6b284519134b2467..0116b1c0a787de75ed2856f39a5c3b2400170c34 100644 --- a/BiliDriveEx/bilibili.py +++ b/BiliDriveEx/bilibili.py @@ -123,6 +123,7 @@ class Bilibili: continue if response['code'] == 0 and response['data']['status'] == 0: + self.cookies = {} for cookie in response['data']['cookie_info']['cookies']: self.cookies[cookie['name']] = cookie['value'] log("登录成功") @@ -134,7 +135,7 @@ class Bilibili: # 获取用户信息 - def get_user_info(self): + def get_user_info(self, fmt=True): url = f"https://api.bilibili.com/x/space/myinfo" headers = { 'Referer': f"https://space.bilibili.com", @@ -145,7 +146,7 @@ class Bilibili: ).json() if not response or response.get("code") != 0: - return False + return info = { 'ban': False, @@ -167,7 +168,11 @@ class Bilibili: info['level'] = response['data']['level'] info['nickname'] = response['data']['name'] info['uid'] = response['data']['mid'] - return info + + if fmt: + return f"{info['nickname']}(UID={info['uid']}), Lv.{info['level']}({info['experience']['current']}/{info['experience']['next']}), 拥有{info['coins']}枚硬币, 账号{'状态正常' if not info['ban'] else '被封禁'}" + else: + return info def save_cookies(self): with open(os.path.join(bundle_dir, "cookies.json"), "w", encoding="utf-8") as f: diff --git a/BiliDriveEx/util.py b/BiliDriveEx/util.py index 08a22731e591edfc128391c3d4ef81e9f9fdc4a1..87007d3212cfffba6e04454dbc51fbdff32fa27c 100644 --- a/BiliDriveEx/util.py +++ b/BiliDriveEx/util.py @@ -80,6 +80,3 @@ def request_retry(method, url, retry=5, **kwargs): get_retry = lambda url, retry=5, **kwargs: request_retry('GET', url, retry, **kwargs) post_retry = lambda url, retry=5, **kwargs: request_retry('POST', url, retry, **kwargs) - -def log_info(info): - log(f"{info['nickname']}(UID={info['uid']}), Lv.{info['level']}({info['experience']['current']}/{info['experience']['next']}), 拥有{info['coins']}枚硬币, 账号{'状态正常' if not info['ban'] else '被封禁'}") \ No newline at end of file