my-video-workflow/controller/api/collector_blueprint.py
2022-04-22 17:44:50 +08:00

45 lines
1.2 KiB
Python

import os.path
import platform
import psutil
from flask import Blueprint, jsonify
from config import DANMAKU_FACTORY_EXEC, FFMPEG_EXEC, BILILIVE_RECORDER_DIRECTORY, XIGUALIVE_RECORDER_DIRECTORY
from util.system import check_exec
blueprint = Blueprint("api_collector", __name__, url_prefix="/api/collector")
def _get_disk_info(path):
if os.path.isdir(path):
disk_info = psutil.disk_usage(path)
return {
'exist': True,
'percent': disk_info.percent,
'free': disk_info.free / (1024 ** 2),
'total': disk_info.total / (1024 ** 2)
}
else:
return {
'exist': False,
'percent': 0,
'free': 0,
'total': 0
}
@blueprint.get("/")
def collect_basic_status():
return jsonify({
'disk': {
'bili': _get_disk_info(BILILIVE_RECORDER_DIRECTORY),
'xigua': _get_disk_info(XIGUALIVE_RECORDER_DIRECTORY)
},
'exec': {
'ffmpeg': check_exec(FFMPEG_EXEC),
'danmaku': check_exec(DANMAKU_FACTORY_EXEC),
},
'system': {
'os': platform.system(),
}
})