mirror of https://github.com/morpheus65535/bazarr
34 lines
1005 B
Python
34 lines
1005 B
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
from ...rule import Rule
|
|
|
|
|
|
class AtmosRule(Rule):
|
|
"""Atmos rule."""
|
|
|
|
@classmethod
|
|
def _redefine(cls, props, name, index):
|
|
actual = props.get(name)
|
|
if isinstance(actual, list):
|
|
value = actual[index]
|
|
if value is None:
|
|
del props[name]
|
|
else:
|
|
props[name] = value
|
|
|
|
def execute(self, props, pv_props, context):
|
|
"""Execute the rule against properties."""
|
|
codecs = props.get('codec') or []
|
|
# TODO: handle this properly
|
|
if 'atmos' in {codec.lower() for codec in codecs if codec}:
|
|
index = None
|
|
for i, codec in enumerate(codecs):
|
|
if codec and 'atmos' in codec.lower():
|
|
index = i
|
|
break
|
|
|
|
if index is not None:
|
|
for name in ('channels_count', 'sampling_rate'):
|
|
self._redefine(props, name, index)
|