def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_button(props, "button1", "Start", start_pressed) obs.obs_properties_add_button(props, "button2", "Clip Now", clip_pressed) obs.obs_properties_add_button(props, "button3", "Edit Last Clip", clipedit_pressed) p = obs.obs_properties_add_list(props, "source", "CC Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_text(props, "twitchUsername", "Twitch Username", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text(props, "apiClientID", "API Client ID", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text(props, "chromeDriverPath", "Chrome Driver Path", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text(props, "chromeProfilePath", "Chrome Profile Path", obs.OBS_TEXT_DEFAULT) return props
def script_properties(): if debug_mode: print("[CS] 配置已加载。") props = obs.obs_properties_create() obs.obs_properties_add_bool(props, "enabled", "启用该脚本") obs.obs_properties_add_bool(props, "debug_mode", "调试模式") obs.obs_properties_add_int( props, "check_frequency", "检查频率(毫秒)", 150, 10000, 100) obs.obs_properties_add_text( props, "display_text", "显示文本", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_bool(props, "spotify", "Spotify") obs.obs_properties_add_bool(props, "vlc", "VLC") obs.obs_properties_add_bool(props, "yt_firefox", "Youtube for Firefox") obs.obs_properties_add_bool(props, "yt_chrome", "Youtube for Chrome") obs.obs_properties_add_bool(props, "foobar2000", "Foobar2000") obs.obs_properties_add_bool(props, "necloud", "网易云音乐") obs.obs_properties_add_bool(props, 'aimp', 'AIMP') p = obs.obs_properties_add_list( props, "source_name", "使用文本框", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id in ("text_gdiplus", "text_ft2_source"): name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) return props
def script_properties(): props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, "source", "Text Source:", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_text(props, "format", "Text Format:", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_button(props, "reset_button", "Reset/Stop Timer", reset_pressed) obs.obs_properties_add_button(props, "start_button", "Start Timer", start_pressed) obs.obs_properties_add_bool(props, "auto_start", "Start Automatically with Stream/Recording") obs.obs_properties_add_bool(props, "auto_stop", "Stop Automatically with Stream/Recording") obs.obs_properties_add_bool(props, "recording", "Enable for Recording") obs.obs_properties_add_bool(props, "visible", "Text Visible Only While Timer Running") return props
def script_properties(): props = obs.obs_properties_create() # True/False checkbox (checked == True) obs.obs_properties_add_bool(props, "clock_24hr", "Use 24-hour clock") # Text field entry obs.obs_properties_add_text(props, "timezone_text", "Timezone (optional)", obs.OBS_TEXT_DEFAULT) # Drop down menu of Text sources p = obs.obs_properties_add_list(props, "source_name", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) # Button in OBS script menu to interact with script obs.obs_properties_add_button(props, "button", "Refresh", refresh_pressed) return props
def script_properties(): # ui props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) number = obs.obs_properties_add_int(props, "_int", "Number", 1, 100, 1) text_value = obs.obs_properties_add_text(props, "_text", "Additional input:", obs.OBS_TEXT_DEFAULT) obs.obs_property_set_visible(text_value, False) obs.obs_property_set_modified_callback(number, callback) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "counter_text1", "[1]Set counter text", obs.OBS_TEXT_DEFAULT) p1 = obs.obs_properties_add_list( props, "source1", "[1]Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) obs.obs_properties_add_text(props, "counter_text2", "[2]Set counter text", obs.OBS_TEXT_DEFAULT) p2 = obs.obs_properties_add_list( props, "source2", "[2]Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p1, name, name) obs.obs_property_list_add_string(p2, name, name) obs.source_list_release(sources) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "counter_text", "Set counter text", obs.OBS_TEXT_DEFAULT) p = obs.obs_properties_add_list( props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "Refresh", refresh) return props
def fill_category_list(category_list, races: List[Race]): categories = [] for race in races: if race.category.name not in categories: categories.append(race.category.name) obs.obs_property_list_add_string(category_list, race.category.name, race.category.name)
def script_properties(): print('script_properties') props = obs.obs_properties_create() obs.obs_properties_add_text(props, "stream_url", "Stream URL", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_int(props, "interval", "Update Interval (milliseconds)", 1, 500, 1) p = obs.obs_properties_add_list(props, "source", "Media Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) if source_id == "ffmpeg_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) elif source_id == "vlc_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "Refresh", refresh_pressed) return props
def script_properties(): props = obs.obs_properties_create() #campo de directorio obs.obs_properties_add_path(props, "file", "Archivo de frases", obs.OBS_PATH_FILE, "*.txt", "") #campo de lectura d enumeros enteros obs.obs_properties_add_int(props, "interval", "Intervalo de \nactualizacion (segundos)", 5, 3600, 1) #una combo list que meustra todas las fuentes de tipo texto p = obs.obs_properties_add_list(props, "source", "Fuente de texto", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) #un boton que lanza la funcion update_text cuando se presiona obs.obs_properties_add_button(props, "button", "Refrescar", refresh_pressed) return props
def script_properties(): props = obs.obs_properties_create() # obs_property_t *obs_properties_add_text(obs_properties_t *props, const char *name, const char *description, enum obs_text_type type) obs.obs_properties_add_text( props, "api_endpoint", "API Endpoint", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text( props, "jsonpath", "Path to json string (ex menu.state)", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text( props, "format_rule", "Formatting rule (python format)", obs.OBS_TEXT_MULTILINE) # obs_property_t *obs_properties_add_int(obs_properties_t *props, const char *name, const char *description, int min, int max, int step) p = obs.obs_properties_add_list( props, "text_source", "Text Source (old FreeType 2)", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "text_ft2_source": # gdiplus lags!!!!!! if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button( props, "button", "Save/Refresh", save_pressed) return props
def populate_scene_lists(lists): scene_names = obs.obs_frontend_get_scene_names() for l in lists: obs.obs_property_list_clear(l) obs.obs_property_list_add_string(l, "", "") for name in scene_names: obs.obs_property_list_add_string(l, name, name)
def script_properties(): properties = obs.obs_properties_create() obs.obs_properties_add_text(properties, "api_base", "Biliomi's Api base url", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text(properties, "username", "Username", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text(properties, "password", "Password", obs.OBS_TEXT_PASSWORD) obs.obs_properties_add_int(properties, "update_interval", "Update Interval (seconds)", 30, 3600, 1) follower_source = obs.obs_properties_add_list(properties, "latest_follower_source", "Latest Follower Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) obs.obs_properties_add_text(properties, "prefix", "Prefix", obs.OBS_TEXT_DEFAULT) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(follower_source, name, name) obs.source_list_release(sources) return properties
def script_properties(): debug("[CS] Loaded properties.") props = obs.obs_properties_create() obs.obs_properties_add_bool(props, "enabled", "Enabled") obs.obs_properties_add_bool(props, "debug_mode", "Debug Mode") obs.obs_properties_add_int(props, "check_frequency", "Check frequency", 150, 10000, 100) obs.obs_properties_add_text(props, "display_text", "Display text", obs.OBS_TEXT_DEFAULT) for i in filter(lambda x: not x.startswith('_'), calcingfunc.keys()): obs.obs_properties_add_bool(props, globals()[i].id, globals()[i].display_name) p = obs.obs_properties_add_list(props, "source_name", "Text source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id in ("text_gdiplus", "text_ft2_source"): name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) return props
def script_properties(): # ui props = S.obs_properties_create() p = S.obs_properties_add_list( props, "source", "Text Source", S.OBS_COMBO_TYPE_EDITABLE, S.OBS_COMBO_FORMAT_STRING, ) sources = S.obs_enum_sources() if sources is not None: for source in sources: source_id = S.obs_source_get_unversioned_id(source) name = S.obs_source_get_name(source) S.obs_property_list_add_string(p, name, name) S.source_list_release(sources) _p = S.obs_properties_add_list( props, "scene", "Scene", S.OBS_COMBO_TYPE_EDITABLE, S.OBS_COMBO_FORMAT_STRING, ) scenes = S.obs_frontend_get_scenes() for scene in scenes: name = S.obs_source_get_name(scene) S.obs_property_list_add_string(_p, name, name) S.source_list_release(scenes) S.obs_properties_add_button(props, "button", "Duplicate", button_pressed) return props
def script_properties(): """ Create properties for script settings dialog """ props = obs.obs_properties_create() for _k, _v in script_state.properties.items(): if _v.type == script_state.OBS_COMBO: _p = obs.obs_properties_add_list(props, _k, _v.name, _v.type, obs.OBS_COMBO_FORMAT_STRING) for _item in _v.items: obs.obs_property_list_add_string(_p, _item, _item) elif _v.type == script_state.OBS_BOOLEAN: obs.obs_properties_add_bool(props, _k, _v.name) else: obs.obs_properties_add_text(props, _k, _v.name, _v.type) obs.obs_properties_add_button(props, 'reset', 'Reset', reset_button_clicked) script_state.obs_properties = props return props
def script_properties(): # ui props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, "source", "Browser source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) obs.obs_properties_add_button(props, "button1", "Press tab", press_tab) obs.obs_properties_add_button(props, "button2", "Press shift+tab", press_shift_tab) obs.obs_properties_add_button(props, "button3", "Send LMB at [100,200]", click_at) obs.obs_properties_add_button(props, "button4", "Move to 0,0 ", move_mouse0) obs.obs_properties_add_button(props, "button5", "Move to 100,200 ", move_mouse1) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == "browser_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "strftime", "时间格式", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text(props, "prefix", "前缀", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text(props, "suffix", "后缀", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_float(props, "interval", "刷新间隔 (秒)", 0, 3600, 0.5) obs.obs_properties_add_float(props, "time_offset", "时间偏移 (小时)", -24, 24, 1) p = obs.obs_properties_add_list(props, "source", "文本源", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) if source_id.startswith("text"): name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "刷新", refresh_pressed) return props
def script_properties(): """ Called to define user properties associated with the script. These properties are used to define how to show settings properties to a user. """ props = obs.obs_properties_create() mh = obs.obs_properties_add_bool(props, "match_history", "Show Match History") p = obs.obs_properties_add_list(props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_int(props, "blink_rate", "Blink Rate(ms)", 1000, 10000, 1) obs.obs_properties_add_button(props, "button", "Reset Match History", refresh_pressed) return props
def script_properties(): props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, 'source', 'Text Source:', obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == 'text_gdiplus' or source_id == 'text_ft2_source': name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_text(props, 'format', 'Text Format:', obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_int_slider(props, 'seconds_between_lines', 'Seconds Between:', 1, 60, 1) obs.obs_properties_add_button(props, 'start_button', 'Start Cycling', start_pressed) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text( props, "username", "Showdown Username", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_int( props, "interval", "Update interval (seconds)", 5, 3600, 1) p = obs.obs_properties_add_list( props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) if source_id == "text_gdiplus" or source_id == "text_gdiplus_v2" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_text( props, "format", "Format (OU, UU etc.)", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text( props, "str_format", "Text format (see website for details)", obs.OBS_TEXT_DEFAULT) return props
def addConfig(cls, props): devicesList = obs.obs_properties_add_list(props, cls.Keys.port, "MIDI Device", obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING) availablePorts = rtmidi.MidiIn().get_ports() obs.obs_property_list_add_string(devicesList, "None", "") for port in availablePorts: obs.obs_property_list_add_string(devicesList, port, port)
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "host", "MPD Host Address", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_int(props, "port", "Port", 0, 65535, 1) obs.obs_properties_add_text(props, "password", "Password", obs.OBS_TEXT_PASSWORD) obs.obs_properties_add_int(props, "interval", "Update Interval (milliseconds)", 1, 30000, 1) p = obs.obs_properties_add_list(props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "refresh_button", "Refresh", refresh_pressed) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_path(props, "filetowatch", "File to Watch", obs.OBS_PATH_FILE, '*.txt', "") obs.obs_properties_add_path(props, "images_path", "Images Folder", obs.OBS_PATH_DIRECTORY, '', "") obs.obs_properties_add_int(props, "interval", "Update Interval (seconds)", 1, 3600, 1) p = obs.obs_properties_add_list(props, "source", "Image Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) #if source_id == "Image": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "Refresh", refresh_pressed) return props
def script_properties(): props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, 'source', 'Text Source:', obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == 'text_gdiplus' or source_id == 'text_ft2_source': name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_int_slider(props, 'timer_duration', 'Timer Duration (Mins):', 1, 120, 1) obs.obs_properties_add_button(props, 'start_button', 'Start Countdown', start_pressed) return props
def script_properties(): props = obs.obs_properties_create() p = obs.obs_properties_add_list( props, 'source', 'Text Source:', obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_unversioned_id(source) if source_id == 'text_gdiplus' or source_id == 'text_ft2_source': name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_text(props, 'format', 'Text Format:', obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_button(props, 'start_button', 'Start Timer', start_pressed) obs.obs_properties_add_bool(props, 'auto_start', 'Start Automatically with Stream') return props
def fill_entrant_list(race, entrant_list): obs.obs_property_list_clear(entrant_list) obs.obs_property_list_add_string(entrant_list, "", "") if race is not None: for entrant in race.entrants: obs.obs_property_list_add_string(entrant_list, entrant.user.full_name, entrant.user.full_name)
def populate_list_property_with_source_names(list_property): sources = obs.obs_enum_sources() obs.obs_property_list_clear(list_property) obs.obs_property_list_add_string(list_property, "", "") for source in sources: name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(list_property, name, name) obs.source_list_release(sources)
def get_scenes(props, prop): if device_ip is not None and auth_key is not None: nl = Nanoleaf(device_ip, auth_key) s1 = obs.obs_properties_get(props, "scene_on") s2 = obs.obs_properties_get(props, "scene_off") for light_scene in nl.list_effects(): obs.obs_property_list_add_string(s1, light_scene, light_scene) obs.obs_property_list_add_string(s2, light_scene, light_scene) return True
def _add_sources(source_type, prop): sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) if source_id == source_type: name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(prop, name, name) obs.source_list_release(sources)
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "url", "URL", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_int(props, "interval", "Update Interval (seconds)", 5, 3600, 1) p = obs.obs_properties_add_list(props, "source", "Text Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) sources = obs.obs_enum_sources() if sources is not None: for source in sources: source_id = obs.obs_source_get_id(source) if source_id == "text_gdiplus" or source_id == "text_ft2_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "Refresh", refresh_pressed) return props