Passed
Push — master ( 518ae3...863c37 )
by manny
46s queued 12s
created

scripting.setup_scripting.script_setup()   B

Complexity

Conditions 1

Size

Total Lines 46
Code Lines 37

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 37
nop 3
dl 0
loc 46
rs 8.9919
c 0
b 0
f 0
1
import obspython as obs
2
from rtgg_obs import RacetimeObs
3
from scripting import fill_source_list
4
5
6
def script_update_setup_settings(settings, rtgg_obs: RacetimeObs):
7
    rtgg_obs.update_logger(
8
        obs.obs_data_get_bool(settings, "enable_log"),
9
        obs.obs_data_get_bool(settings, "log_to_file"),
10
        obs.obs_data_get_string(settings, "log_file"),
11
        obs.obs_data_get_string(settings, "log_level")
12
    )
13
14
15
def script_setup(props, new_race_selected, new_category_selected):
16
    setup_group = obs.obs_properties_create()
17
    obs.obs_properties_add_group(
18
        props, "initial_setup", "Initial setup - Check to make changes",
19
        obs.OBS_GROUP_CHECKABLE, setup_group
20
    )
21
    p = obs.obs_properties_add_list(
22
        setup_group, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE,
23
        obs.OBS_COMBO_FORMAT_STRING
24
    )
25
    fill_source_list(p)
26
    obs.obs_properties_add_text(
27
        setup_group, "username", "Username", obs.OBS_TEXT_DEFAULT)
28
    logging = obs.obs_properties_add_bool(
29
        setup_group, "enable_log", "Enable logging")
30
    log_levels = obs.obs_properties_add_list(
31
        setup_group, "log_level", "Log lever", obs.OBS_COMBO_TYPE_LIST,
32
        obs.OBS_COMBO_FORMAT_STRING
33
    )
34
    obs.obs_property_list_add_string(log_levels, "Error", "Error")
35
    obs.obs_property_list_add_string(log_levels, "Debug", "Debug")
36
    obs.obs_property_list_add_string(log_levels, "Info", "Info")
37
    obs.obs_property_set_long_description(
38
        logging, "Generally, only log errors unless you are developing or are "
39
        "trying to find a specific problem."
40
    )
41
    obs.obs_properties_add_bool(setup_group, "log_to_file", "Log to file?")
42
    obs.obs_properties_add_path(
43
        setup_group, "log_file", "Log File", obs.OBS_PATH_FILE_SAVE, "*", None)
44
    category_list = obs.obs_properties_add_list(
45
        props, "category_filter", "Filter by Category",
46
        obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING
47
    )
48
    race_list = obs.obs_properties_add_list(
49
        props, "race", "Race",
50
        obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING
51
        )
52
    obs.obs_property_set_modified_callback(
53
        race_list, new_race_selected
54
    )
55
    obs.obs_property_set_modified_callback(
56
        category_list, new_category_selected)
57
58
    p = obs.obs_properties_add_text(
59
        props, "race_info", "Race Desc", obs.OBS_TEXT_MULTILINE)
60
    obs.obs_property_set_enabled(p, False)
61