120 lines
3.5 KiB
Python
120 lines
3.5 KiB
Python
import configparser
|
|
import os.path
|
|
|
|
# [danmaku]
|
|
# exec
|
|
DANMAKU_FACTORY_EXEC = "DanmakuFactory"
|
|
# speed
|
|
DANMAKU_SPEED = 12
|
|
# font
|
|
DEFAULT_FONT_NAME = "Sarasa Term SC"
|
|
# resolution
|
|
VIDEO_RESOLUTION = "1280x720"
|
|
# [ffmpeg]
|
|
# exec
|
|
FFMPEG_EXEC = "ffmpeg"
|
|
# gpu
|
|
FFMPEG_USE_GPU = False
|
|
# bitrate
|
|
VIDEO_BITRATE = "2.5M"
|
|
# [video]
|
|
# title
|
|
VIDEO_TITLE = "【永恒de草薙直播录播】直播于 {}"
|
|
# [clip]
|
|
# each_sec
|
|
VIDEO_CLIP_EACH_SEC = 6000
|
|
# overflow_sec
|
|
VIDEO_CLIP_OVERFLOW_SEC = 5
|
|
# [recorder]
|
|
# bili_dir
|
|
BILILIVE_RECORDER_DIRECTORY = "./"
|
|
# xigua_dir
|
|
XIGUALIVE_RECORDER_DIRECTORY = "./"
|
|
# [web]
|
|
# host
|
|
WEB_HOST = "0.0.0.0"
|
|
# port
|
|
WEB_PORT = 5000
|
|
|
|
|
|
def load_config():
|
|
if not os.path.exists("config.ini"):
|
|
write_config()
|
|
return False
|
|
config = configparser.ConfigParser()
|
|
if config.has_section("danmaku"):
|
|
section = config['danmaku']
|
|
global DANMAKU_FACTORY_EXEC, DANMAKU_SPEED, DEFAULT_FONT_NAME, VIDEO_RESOLUTION
|
|
DANMAKU_FACTORY_EXEC = section.get('exec', DANMAKU_FACTORY_EXEC)
|
|
DANMAKU_SPEED = section.getfloat('speed', DANMAKU_SPEED)
|
|
DEFAULT_FONT_NAME = section.get('font', DEFAULT_FONT_NAME)
|
|
VIDEO_RESOLUTION = section.get('resolution', VIDEO_RESOLUTION)
|
|
if config.has_section("video"):
|
|
section = config['video']
|
|
global VIDEO_TITLE
|
|
VIDEO_TITLE = section.get('title', VIDEO_TITLE)
|
|
if config.has_section("clip"):
|
|
section = config['clip']
|
|
global VIDEO_CLIP_EACH_SEC, VIDEO_CLIP_OVERFLOW_SEC
|
|
VIDEO_CLIP_EACH_SEC = section.get('each_sec', VIDEO_CLIP_EACH_SEC)
|
|
VIDEO_CLIP_OVERFLOW_SEC = section.get('overflow_sec', VIDEO_CLIP_OVERFLOW_SEC)
|
|
if config.has_section("ffmpeg"):
|
|
section = config['ffmpeg']
|
|
global FFMPEG_EXEC, FFMPEG_USE_GPU, VIDEO_BITRATE
|
|
FFMPEG_EXEC = section.get('exec', FFMPEG_EXEC)
|
|
FFMPEG_USE_GPU = section.getboolean('gpu', FFMPEG_USE_GPU)
|
|
VIDEO_BITRATE = section.get('bitrate', VIDEO_BITRATE)
|
|
if config.has_section("recorder"):
|
|
global BILILIVE_RECORDER_DIRECTORY, XIGUALIVE_RECORDER_DIRECTORY
|
|
section = config['recorder']
|
|
BILILIVE_RECORDER_DIRECTORY = section.get('bili_dir', BILILIVE_RECORDER_DIRECTORY)
|
|
XIGUALIVE_RECORDER_DIRECTORY = section.get('xigua_dir', XIGUALIVE_RECORDER_DIRECTORY)
|
|
if config.has_section("web"):
|
|
global WEB_HOST, WEB_PORT
|
|
section = config['web']
|
|
WEB_HOST = section.get('host', WEB_HOST)
|
|
WEB_PORT = section.getint('port', WEB_PORT)
|
|
return True
|
|
|
|
|
|
def get_config():
|
|
config = {
|
|
'danmaku': {
|
|
'exec': DANMAKU_FACTORY_EXEC,
|
|
'speed': DANMAKU_SPEED,
|
|
'font': DEFAULT_FONT_NAME,
|
|
'resolution': VIDEO_RESOLUTION,
|
|
},
|
|
'video': {
|
|
'title': VIDEO_TITLE,
|
|
},
|
|
'clip': {
|
|
'each_sec': VIDEO_CLIP_EACH_SEC,
|
|
'overflow_sec': VIDEO_CLIP_OVERFLOW_SEC,
|
|
},
|
|
'ffmpeg': {
|
|
'exec': FFMPEG_EXEC,
|
|
'gpu': FFMPEG_USE_GPU,
|
|
'bitrate': VIDEO_BITRATE,
|
|
},
|
|
'recorder': {
|
|
'bili_dir': BILILIVE_RECORDER_DIRECTORY,
|
|
'xigua_dir': XIGUALIVE_RECORDER_DIRECTORY,
|
|
},
|
|
'web': {
|
|
'host': WEB_HOST,
|
|
'port': WEB_PORT,
|
|
}
|
|
}
|
|
return config
|
|
|
|
|
|
def write_config():
|
|
config = configparser.ConfigParser()
|
|
_config = get_config()
|
|
for _i in _config:
|
|
config[_i] = _config[_i]
|
|
with open("config.ini", "w", encoding="utf-8") as f:
|
|
config.write(f)
|
|
return True
|