scripting.qualifier_scripting   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 54
dl 0
loc 68
rs 10
c 0
b 0
f 0
wmc 3

3 Functions

Rating   Name   Duplication   Size   Complexity  
A script_update_qualifier_settings() 0 11 1
A qualifier_toggled() 0 5 1
A script_qualifier_settings() 0 39 1
1
import gettext
2
import os
3
4
import obspython as obs
5
from rtgg_obs import RacetimeObs
6
from . import fill_source_list
7
8
9
def script_qualifier_settings(props, rtgg_obs: RacetimeObs):
10
    lang = gettext.translation(
11
        "racetime-obs", localedir=os.environ['LOCALEDIR'])
12
    _ = lang.gettext
13
14
    p = obs.obs_properties_add_bool(
15
            props, "use_qualifier",
16
            _("Display race results as tournament qualifier?")
17
        )
18
    obs.obs_property_set_modified_callback(p, qualifier_toggled)
19
    qualifier_group = obs.obs_properties_create()
20
    obs.obs_properties_add_group(
21
            props, "qualifier_group", _("Qualifier Mode"),
22
            obs.OBS_GROUP_NORMAL, qualifier_group
23
        )
24
    obs.obs_property_set_visible(
25
        obs.obs_properties_get(props, "qualifier_group"),
26
        rtgg_obs.qualifier.enabled
27
    )
28
    p = obs.obs_properties_add_int_slider(
29
            qualifier_group, "qualifier_cutoff",
30
            _("Use Top X as par time, where X="), 3, 10, 1
31
        )
32
    p = obs.obs_properties_add_list(
33
            qualifier_group,
34
            "qualifier_par_source",
35
            _("Qualifier Par Time Source"),
36
            obs.OBS_COMBO_TYPE_EDITABLE,
37
            obs.OBS_COMBO_FORMAT_STRING
38
        )
39
    fill_source_list(p)
40
    p = obs.obs_properties_add_list(
41
            qualifier_group,
42
            "qualifier_score_source",
43
            _("Qualifier Score Source"),
44
            obs.OBS_COMBO_TYPE_EDITABLE,
45
            obs.OBS_COMBO_FORMAT_STRING
46
        )
47
    fill_source_list(p)
48
49
50
def qualifier_toggled(props, prop, settings):
51
    vis = obs.obs_data_get_bool(settings, "use_qualifier")
52
    obs.obs_property_set_visible(
53
        obs.obs_properties_get(props, "qualifier_group"), vis)
54
    return True
55
56
57
def script_update_qualifier_settings(settings, rtgg_obs: RacetimeObs):
58
    rtgg_obs.qualifier.enabled = obs.obs_data_get_bool(
59
        settings, "use_qualifier")
60
    rtgg_obs.qualifier.qualifier_cutoff = obs.obs_data_get_int(
61
        settings, "qualifier_cutoff")
62
    rtgg_obs.logger.debug(
63
        f"qualifier_cutoff is {rtgg_obs.qualifier.qualifier_cutoff}")
64
    rtgg_obs.qualifier.par_source = obs.obs_data_get_string(
65
        settings, "qualifier_par_source")
66
    rtgg_obs.qualifier.score_source = obs.obs_data_get_string(
67
        settings, "qualifier_score_source")
68