diff --git a/app.py b/app.py index d5dbfe7..392e15a 100644 --- a/app.py +++ b/app.py @@ -9,6 +9,7 @@ from controller.api.video_clip_blueprint import blueprint as api_video_clip_blue from controller.api.danmaku_clip_blueprint import blueprint as api_danmaku_clip_blueprint from controller.api.posting_blueprint import blueprint as api_posting_blueprint from controller.api.video_part_blueprint import blueprint as api_video_part_blueprint +from controller.api.biliuploader_blueprint import blueprint as api_biliuploader_blueprint from model import db app = Flask(__name__) @@ -28,6 +29,7 @@ app.register_blueprint(api_video_clip_blueprint) app.register_blueprint(api_danmaku_clip_blueprint) app.register_blueprint(api_posting_blueprint) app.register_blueprint(api_video_part_blueprint) +app.register_blueprint(api_biliuploader_blueprint) with app.app_context(): # db.drop_all(app=app) db.create_all(app=app) diff --git a/controller/api/bilirecorder_blueprint.py b/controller/api/bilirecorder_blueprint.py index ba18709..04d310a 100644 --- a/controller/api/bilirecorder_blueprint.py +++ b/controller/api/bilirecorder_blueprint.py @@ -50,6 +50,7 @@ def auto_submit_task(): _result = _f.result() if _result: # start uploading + bilibili_instance.login() bilibili_instance.upload(parts=_result, title=bili_record_workflow_item.name, desc=VIDEO_DESC, diff --git a/controller/api/biliuploader_blueprint.py b/controller/api/biliuploader_blueprint.py new file mode 100644 index 0000000..ef9d526 --- /dev/null +++ b/controller/api/biliuploader_blueprint.py @@ -0,0 +1,19 @@ +from flask import Blueprint, jsonify +from workflow.bilibili import INSTANCE as BILIBILI_INSTANCE + +blueprint = Blueprint("api_biliuploader", __name__, url_prefix="/api/biliuploader") + + +@blueprint.get("/") +def get_login_info(): + return jsonify({ + "mid": BILIBILI_INSTANCE.user_id, + "expires": BILIBILI_INSTANCE.expires, + "login_at": BILIBILI_INSTANCE.login_time, + }) + + +@blueprint.post("/") +def do_login(): + BILIBILI_INSTANCE.login() + return get_login_info() diff --git a/templates/index.html b/templates/index.html index 984da12..fb1bab7 100644 --- a/templates/index.html +++ b/templates/index.html @@ -180,6 +180,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
上传配置Alpha
视频标题Pattern{{ config.video.title }}
视频描述{{ config.video.desc }}
视频分区{{ config.video.tid }}
视频标签{{ config.video.tags }}
上传人{{ collector.uploader.mid }}
登录时间{{ collector.upload.login_at }}(于{{ collector.upload.expires }}秒后过期)
{% endraw %} @@ -225,6 +259,11 @@ }, living: false }, + uploader: { + mid: 0, + expires: 0, + login_at: 0, + }, }, config: { danmaku: { @@ -265,6 +304,11 @@ }).then((response) => { this.collector.basic = response.data; }) + axios({ + url: "/api/biliuploader/" + }).then((response) => { + this.collector.uploader = response.data; + }) axios({ url: "/api/config/" }).then((response) => { diff --git a/workflow/bilibili.py b/workflow/bilibili.py index 85ccc20..9caa541 100644 --- a/workflow/bilibili.py +++ b/workflow/bilibili.py @@ -1,4 +1,5 @@ import threading +from datetime import datetime from . import LOGGER from .bilibiliupload import core, VideoPart @@ -13,13 +14,16 @@ class Bilibili: self.access_token = "" self.session_id = "" self.user_id = "" + self.expires = 0 + self.login_time = None self.parts = [] def login(self): with open("access_token", "r") as f: self.access_token = f.read(64).strip() - self.session_id, self.user_id, expires = core.login_by_access_token(self.access_token) - LOGGER.info("B站登录,UID【{}】,过期时间【{}】".format(self.user_id, expires)) + self.session_id, self.user_id, self.expires = core.login_by_access_token(self.access_token) + self.login_time = datetime.now() + LOGGER.info("B站登录,UID【{}】,过期时间【{}】".format(self.user_id, self.expires)) def upload(self, parts,