rearrange

This commit is contained in:
jonathan 2022-01-17 10:56:42 +01:00
parent ed4c9fa698
commit 89ced6f746

View File

@ -24,7 +24,6 @@ Missing clips will be replaced by a dummy clip.
import socket import socket
import time import time
from copy import deepcopy from copy import deepcopy
from datetime import timedelta
from pathlib import Path from pathlib import Path
from threading import Thread from threading import Thread
@ -36,6 +35,65 @@ from .utils import (MediaProbe, check_sync, get_date, get_delta,
src_or_dummy, stdin_args, storage, sync_op, valid_json) src_or_dummy, stdin_args, storage, sync_op, valid_json)
def validate_thread(clip_nodes, list_date):
"""
validate json values in new thread
and test if source paths exist
"""
def check_json(clip_nodes, list_date):
error = ''
counter = 0
probe = MediaProbe()
# check if all values are valid
for node in clip_nodes['program']:
source = node.get('source')
probe.load(source)
missing = []
_in = get_float(node.get('in'), 0)
_out = get_float(node.get('out'), 0)
duration = get_float(node.get('duration'), 0)
if probe.is_remote:
if not probe.video[0]:
missing.append(f'Remote file not exist: "{source}"')
elif source is None or not Path(source).is_file():
missing.append(f'File not exist: "{source}", '
f'at "{sec_to_time(counter + playlist.start)}"')
if not type(node.get('in')) in [int, float]:
missing.append(f'No in Value in: "{node}"')
if _out == 0:
missing.append(f'No out Value in: "{node}"')
if duration == 0:
missing.append(f'No duration Value in: "{node}"')
counter += _out - _in
line = '\n'.join(missing)
if line:
error += line + f'\nIn line: {node}\n\n'
if error:
messenger.error(
'Validation error, check JSON playlist, '
f'values are missing:\n{error}'
)
check_length(counter, list_date)
if clip_nodes and clip_nodes.get('program') and \
len(clip_nodes.get('program')) > 0:
validate = Thread(name='check_json', target=check_json,
args=(clip_nodes, list_date))
validate.daemon = True
validate.start()
else:
messenger.error('Validation error: playlist are empty')
def handle_list_init(node): def handle_list_init(node):
""" """
handle init clip, but this clip can be the last one in playlist, handle init clip, but this clip can be the last one in playlist,
@ -137,65 +195,6 @@ def check_length(total_play_time, list_date):
) )
def validate_thread(clip_nodes, list_date):
"""
validate json values in new thread
and test if source paths exist
"""
def check_json(clip_nodes, list_date):
error = ''
counter = 0
probe = MediaProbe()
# check if all values are valid
for node in clip_nodes['program']:
source = node.get('source')
probe.load(source)
missing = []
_in = get_float(node.get('in'), 0)
_out = get_float(node.get('out'), 0)
duration = get_float(node.get('duration'), 0)
if probe.is_remote:
if not probe.video[0]:
missing.append(f'Remote file not exist: "{source}"')
elif source is None or not Path(source).is_file():
missing.append(f'File not exist: "{source}", '
f'at "{sec_to_time(counter + playlist.start)}"')
if not type(node.get('in')) in [int, float]:
missing.append(f'No in Value in: "{node}"')
if _out == 0:
missing.append(f'No out Value in: "{node}"')
if duration == 0:
missing.append(f'No duration Value in: "{node}"')
counter += _out - _in
line = '\n'.join(missing)
if line:
error += line + f'\nIn line: {node}\n\n'
if error:
messenger.error(
'Validation error, check JSON playlist, '
f'values are missing:\n{error}'
)
check_length(counter, list_date)
if clip_nodes and clip_nodes.get('program') and \
len(clip_nodes.get('program')) > 0:
validate = Thread(name='check_json', target=check_json,
args=(clip_nodes, list_date))
validate.daemon = True
validate.start()
else:
messenger.error('Validation error: playlist are empty')
class PlaylistReader: class PlaylistReader:
""" """
Class which read playlists, it checks if playlist got modified, Class which read playlists, it checks if playlist got modified,