import bilibiliuploader.core as core from bilibiliuploader.util import cipher import json class BilibiliUploader(): def __init__(self): self.access_token = None self.refresh_token = None self.sid = None self.mid = None def login(self, username, password): code, self.access_token, self.refresh_token, self.sid, self.mid, _ = core.login(username, password) if code != 0: # success print("login fail, error code = {}".format(code)) def login_by_access_token(self, access_token, refresh_token=None): self.access_token = access_token self.refresh_token = refresh_token self.sid, self.mid, _ = core.login_by_access_token(access_token) def login_by_access_token_file(self, file_name): with open(file_name, "r") as f: login_data = json.loads(f.read()) self.access_token = login_data["access_token"] self.refresh_token = login_data["refresh_token"] self.sid, self.mid, _ = core.login_by_access_token(self.access_token) def save_login_data(self, file_name=None): login_data = json.dumps( { "access_token": self.access_token, "refresh_token": self.refresh_token } ) try: with open(file_name, "w+") as f: f.write(login_data) finally: return login_data def upload(self, parts, copyright: int, title: str, tid: int, tag: str, desc: str, source: str = '', cover: str = '', no_reprint: int = 0, open_elec: int = 1, max_retry: int = 5, thread_pool_workers: int = 1): return core.upload(self.access_token, self.sid, self.mid, parts, copyright, title, tid, tag, desc, source, cover, no_reprint, open_elec, max_retry, thread_pool_workers) def edit(self, avid=None, bvid=None, parts=None, insert_index=None, copyright=None, title=None, tid=None, tag=None, desc=None, source=None, cover=None, no_reprint=None, open_elec=None, max_retry: int = 5, thread_pool_workers: int = 1): if not avid and not bvid: print("please provide avid or bvid") return None, None if not avid: avid = cipher.bv2av(bvid) if not isinstance(parts, list): parts = [parts] if type(avid) is str: avid = int(avid) core.edit_videos( self.access_token, self.sid, self.mid, avid, bvid, parts, insert_index, copyright, title, tid, tag, desc, source, cover, no_reprint, open_elec, max_retry, thread_pool_workers )