diff --git a/Common.py b/Common.py index d651a28..30e2158 100644 --- a/Common.py +++ b/Common.py @@ -384,3 +384,29 @@ def encodeVideo(name): return False Common.modifyLastEncodeStatus("Encode >{}< Finished".format(name)) uploadQueue.put(_new_name) + + +def collectInfomation(): + return { + "download": downloadStatus, + "encode": encodeStatus, + "encodeQueueSize": encodeQueue.qsize(), + "upload": uploadStatus, + "uploadQueueSize": uploadQueue.qsize(), + "error": errors, + "operation": operations, + "broadcast": { + "broadcaster": broadcaster.__str__(), + "isBroadcasting": isBroadcasting, + "streamUrl": streamUrl, + "updateTime": updateTime, + "delayTime": delay.strftime(dt_format) + }, + "config": { + "forceNotBroadcasting": forceNotBroadcasting, + "forceNotDownload": forceNotDownload, + "forceNotUpload": forceNotUpload, + "forceNotEncode": forceNotEncode, + "downloadOnly": config['dlO'], + }, + } diff --git a/WebMain.py b/WebMain.py index 7a502c0..4c95660 100644 --- a/WebMain.py +++ b/WebMain.py @@ -30,14 +30,14 @@ def writeConfig(): # TODO : 完善 Common.appendOperation("更新配置") Common.reloadConfig() - return jsonify({"message":"ok","code":200,"status":0,"data":request.form}) + return jsonify({"message": "ok", "code": 200, "status": 0, "data": request.form}) @app.route("/force/not/upload", methods=["POST"]) def toggleForceNotUpload(): Common.forceNotUpload = not Common.forceNotUpload Common.appendOperation("将强制不上传的值改为:{}".format(Common.forceNotUpload)) - return jsonify({"message":"ok","code":200,"status":0,"data":{ + return jsonify({"message": "ok", "code": 200, "status": 0, "data": { "forceNotUpload": Common.forceNotUpload, }}) @@ -46,7 +46,7 @@ def toggleForceNotUpload(): def toggleForceNotEncode(): Common.forceNotEncode = not Common.forceNotEncode Common.appendOperation("将强制不编码的值改为:{}".format(Common.forceNotEncode)) - return jsonify({"message":"ok","code":200,"status":0,"data":{ + return jsonify({"message": "ok", "code": 200, "status": 0, "data": { "forceNotEncode": Common.forceNotEncode, }}) @@ -55,7 +55,7 @@ def toggleForceNotEncode(): def toggleForceNotDownload(): Common.forceNotDownload = not Common.forceNotDownload Common.appendOperation("将强制不下载的值改为:{}".format(Common.forceNotDownload)) - return jsonify({"message":"ok","code":200,"status":0,"data":{ + return jsonify({"message": "ok", "code": 200, "status": 0, "data": { "forceNotDownload": Common.forceNotDownload, }}) @@ -63,7 +63,7 @@ def toggleForceNotDownload(): @app.route("/force/not/broadcast", methods=["POST"]) def toggleForceNotBroadcast(): Common.forceNotBroadcasting = not Common.forceNotBroadcasting - return jsonify({"message":"ok","code":200,"status":0,"data":{ + return jsonify({"message": "ok", "code": 200, "status": 0, "data": { "forceNotBroadcasting": Common.forceNotBroadcasting, }}) @@ -72,7 +72,7 @@ def toggleForceNotBroadcast(): def toggleForceStartEncodeThread(): Common.forceStartEncodeThread = True Common.appendOperation("强制运行编码线程") - return jsonify({"message":"ok","code":200,"status":0,"data":{ + return jsonify({"message": "ok", "code": 200, "status": 0, "data": { }}) @@ -80,7 +80,7 @@ def toggleForceStartEncodeThread(): def toggleForceStartUploadThread(): Common.forceStartUploadThread = True Common.appendOperation("强制运行上传线程") - return jsonify({"message":"ok","code":200,"status":0,"data":{ + return jsonify({"message": "ok", "code": 200, "status": 0, "data": { }}) @@ -88,7 +88,7 @@ def toggleForceStartUploadThread(): def startForceCleanDisk(): Common.doClean(True) Common.appendOperation("强制执行清理程序") - return jsonify({"message":"ok","code":200,"status":0,"data":{ + return jsonify({"message": "ok", "code": 200, "status": 0, "data": { }}) @@ -97,9 +97,9 @@ def insertEncode(): if "filename" in request.form and os.path.exists(request.form["filename"]): Common.appendOperation("添加编码文件:{}".format(request.form["filename"])) Common.encodeQueue.put(request.form["filename"]) - return jsonify({"message":"ok","code":200,"status":0}) + return jsonify({"message": "ok", "code": 200, "status": 0}) else: - return jsonify({"message":"no filename specific","code":400,"status":1}) + return jsonify({"message": "no filename specific", "code": 400, "status": 1}) @app.route("/upload/insert", methods=["POST"]) @@ -107,68 +107,33 @@ def insertUpload(): if "filename" in request.form and os.path.exists(request.form["filename"]): Common.appendOperation("添加上传文件:{}".format(request.form["filename"])) Common.uploadQueue.put(request.form["filename"]) - return jsonify({"message":"ok","code":200,"status":0}) + return jsonify({"message": "ok", "code": 200, "status": 0}) else: - return jsonify({"message":"no filename specific","code":400,"status":1}) + return jsonify({"message": "no filename specific", "code": 400, "status": 1}) @app.route("/upload/finish", methods=["POST"]) def finishUpload(): Common.appendOperation("设置当前已完成上传") Common.uploadQueue.put(True) - return jsonify({"message":"ok","code":200,"status":0}) + return jsonify({"message": "ok", "code": 200, "status": 0}) @app.route("/stats", methods=["GET"]) def getAllStats(): - return jsonify({"message":"ok","code":200,"status":0,"data":{ - "download":Common.downloadStatus, - "encode": Common.encodeStatus, - "encodeQueueSize": Common.encodeQueue.qsize(), - "upload": Common.uploadStatus, - "uploadQueueSize": Common.uploadQueue.qsize(), - "error": Common.errors, - "operation": Common.operations, - "broadcast": { - "broadcaster": Common.broadcaster.__str__(), - "isBroadcasting": Common.isBroadcasting, - "streamUrl": Common.streamUrl, - "updateTime": Common.updateTime, - "delayTime": Common.delay - }, - "config": { - "forceNotBroadcasting": Common.forceNotBroadcasting, - "forceNotDownload": Common.forceNotDownload, - "forceNotUpload": Common.forceNotUpload, - "forceNotEncode": Common.forceNotEncode, - "downloadOnly": Common.config['dlO'], - }, - }}) + return jsonify({"message": "ok", "code": 200, "status": 0, "data": Common.collectInfomation()}) @app.route("/stats/device", methods=["GET"]) def getDeviceStatus(): - return jsonify({"message":"ok","code":200,"status":0,"data":{ + return jsonify({"message": "ok", "code": 200, "status": 0, "data": { "status": Common.getCurrentStatus(), }}) -@app.route("/stats/broadcast", methods=["GET"]) -def getBroadcastStats(): - return jsonify({"message":"ok","code":200,"status":0,"data":{ - "broadcast": { - "broadcaster": Common.broadcaster.__str__(), - "isBroadcasting": Common.isBroadcasting, - "streamUrl": Common.streamUrl, - "updateTime": Common.updateTime, - "delayTime": Common.delay - } - }}) - - @app.route("/stats/config", methods=["GET"]) def getConfigStats(): - return jsonify({"message":"ok","code":200,"status":0,"data":{ + return jsonify({"message": "ok", "code": 200, "status": 0, "data": { "config": { "forceNotBroadcasting": Common.forceNotBroadcasting, "forceNotDownload": Common.forceNotDownload, @@ -179,33 +144,10 @@ def getConfigStats(): }}) -@app.route("/stats/download", methods=["GET"]) -def getDownloadStats(): - return jsonify({"message":"ok","code":200,"status":0,"data":{ - "download":Common.downloadStatus, - }}) - - -@app.route("/stats/encode", methods=["GET"]) -def getEncodeStats(): - return jsonify({"message":"ok","code":200,"status":0,"data":{ - "encode": Common.encodeStatus, - "encodeQueueSize": Common.encodeQueue.qsize(), - }}) - - -@app.route("/stats/upload", methods=["GET"]) -def getUploadStats(): - return jsonify({"message":"ok","code":200,"status":0,"data":{ - "upload": Common.uploadStatus, - "uploadQueueSize": Common.uploadQueue.qsize(), - }}) - - @app.route("/account/reLogin", methods=["POST"]) def accountRelogin(): res = Common.loginBilibili(True) - return jsonify({"message":"ok","code":200,"status":0,"data":{"result":res}}) + return jsonify({"message": "ok", "code": 200, "status": 0, "data": {"result": res}}) @app.route("/files/", methods=["GET"]) @@ -216,7 +158,7 @@ def fileIndex(): "name": i, "size": Common.parseSize(os.path.getsize(i)) }) - return render_template("files.html",files=a) + return render_template("files.html", files=a) @app.route("/files/download/", methods=["GET"]) @@ -226,9 +168,10 @@ def fileDownload(path): f.seek(offset) for row in f: yield row + if os.path.exists(path): if "RANGE" in request.headers: - offset = int(request.headers["RANGE"].replace("=","-").split("-")[1].strip()) + offset = int(request.headers["RANGE"].replace("=", "-").split("-")[1].strip()) code = 206 else: offset = 0 @@ -238,7 +181,8 @@ def fileDownload(path): mimetype='application/octet-stream', headers={ "Content-Length": os.path.getsize(path), - "Content-Range": "bytes {}-{}/{}".format(offset,os.path.getsize(path)-1,os.path.getsize(path)), + "Content-Range": "bytes {}-{}/{}".format(offset, os.path.getsize(path) - 1, + os.path.getsize(path)), "Accept-Ranges": "bytes", "Range": "bytes", })