45 lines
1.2 KiB
Python
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(),
|
|
}
|
|
})
|