You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bazarr/libs/knowit/rules/general.py

35 lines
904 B

from logging import NullHandler, getLogger
from trakit.api import trakit
from knowit.core import Rule
logger = getLogger(__name__)
logger.addHandler(NullHandler())
class GuessTitleRule(Rule):
"""Guess properties from track title."""
def execute(self, props, pv_props, context):
"""Language detection using name."""
if 'name' in props:
language = props.get('language')
options = {'expected_language': language} if language else {}
guessed = trakit(props['name'], options)
if guessed:
return guessed
class LanguageRule(Rule):
"""Language rules."""
def execute(self, props, pv_props, context):
"""Language detection using name."""
if 'guessed' not in pv_props:
return
guess = pv_props['guessed']
if 'language' in guess:
return guess['language']