Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions biliupload/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from biliupload.upload.bili_upload import BiliUploader
from biliupload.utils.parse_yaml import parse_yaml
from biliupload.controller.upload_controller import UploadController
from biliupload.login.check_login import CheckLogin

def cli():
logging.basicConfig(
Expand Down Expand Up @@ -39,6 +40,9 @@ def cli():
upload_parser.add_argument('--cover', default='', help='(default is empty) The cover of video (if you want to customize, set it as the path to your cover image)')
upload_parser.add_argument('--dynamic', default='', help='(default is empty) The dynamic information')

# Login subcommand
check_login_parser = subparsers.add_parser('check', help='Check if the user is logged in')

args = parser.parse_args()

# Check if no subcommand is provided
Expand Down Expand Up @@ -76,5 +80,8 @@ def package_video_metadata(line, copyright, tid, title, desc, tag, source, cover
upload_controller = UploadController()
upload_controller.upload_and_publish_video(args.video_path)

if args.subcommand == 'check':
CheckLogin().check_bili_login()

if __name__ == '__main__':
cli()
39 changes: 39 additions & 0 deletions biliupload/login/check_login.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
from biliupload.ioer import ioer
import requests
import json

class CheckLogin(object):
def __init__(self):
self.config = ioer().get_config()

def check_bili_login(self):
url = 'https://api.bilibili.com/x/web-interface/nav'
with requests.Session() as session:
session.headers = self.config["headers"]
session.cookies = requests.utils.cookiejar_from_dict(self.config["cookies"])
response = session.get(url)
if response.status_code == 200:
response_data = json.loads(response.text)
if response_data['data']['isLogin'] == True:
self.obtain_bili_login_info(response_data)
return True
else:
print("There is currently no login account, some functions may not work")
# print(response.text)
return False
else:
print("Check failed, please check the info")
print(response.text)
return False

def obtain_bili_login_info(self, response_data):
current_level = response_data['data']['level_info']['current_level']
uname = response_data['data']['uname']
vip_status = response_data['data']['vipStatus']

print(f"Current account: {uname}")
print(f"Current level: {current_level}")
if vip_status == 1:
print(f"Status: 大会员")
else:
print(f"Status: 非大会员")