提交 af6cad75 编写于 作者: W wizardforcel

添加 userinfo 命令

上级 58794c81
......@@ -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")
......
......@@ -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:
......
......@@ -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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册