def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_path(props, "configFile", "JSON Config File", obs.OBS_PATH_FILE, "*.json", None) obs.obs_properties_add_button(props, "connectSocket", "Connect to test server", connect) 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(): global props props = obs.obs_properties_create() checkbox = obs.obs_properties_add_bool(props, "use_user_config", "Use Saved Config") obs.obs_property_set_modified_callback(checkbox, is_user_config) del (checkbox) obs.obs_properties_add_path( props, "user_config", "Saved Config Path", obs.OBS_PATH_FILE, "*.json", os.path.join(os.path.dirname(__file__), 'config')) obs.obs_properties_add_editable_list(props, "score_names", "Scores To Track", obs.OBS_EDITABLE_LIST_TYPE_STRINGS, "", "") obs.obs_properties_add_int(props, "score_count", "Count per Score", 0, 10, 1) obs.obs_properties_add_font(props, "font", "Scores Font") obs.obs_properties_add_color(props, "fgcolor", "Text Color") obs.obs_properties_add_color(props, "bgcolor", "Background Color") obs.obs_properties_add_button(props, "deploy", "Deploy Browser Source Server", deploy_browser_source_server) obs.obs_properties_add_button(props, "remove", "Remove Browser Source Server", remove_browser_source_server) obslog(obs.LOG_INFO, "properties loaded") #TODO checkbox to add to create browser source #TODO browser source name 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.obs_properties_add_text(props, "file_name", "File Name", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_path(props, "file_path", "File Path", obs.OBS_PATH_DIRECTORY, "", None) return props
def script_properties(): global Debug_Mode if Debug_Mode: print("Calling properties") props = obs.obs_properties_create() obs.obs_properties_add_bool(props, "enabled", "Enabled") obs.obs_properties_add_path(props, "interval_path", "Interval Path Txt") return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_path(props, "filePath", "Pfad für Logfile wählen: ", obs.OBS_PATH_DIRECTORY, '', "") obs.obs_properties_add_button(props, "button", "Starte Keylogger", keylogger_pressed) obs.obs_properties_add_button(props, "button2", "Beende Keylogger", stop_pressed) return props
def script_properties(): props = obs.obs_properties_create() scenes = obs.obs_frontend_get_scene_names() scene_select = obs.obs_properties_add_list(props, "template_scene_name", "Scene to use as a template", obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING) for scene in scenes: obs.obs_property_list_add_string(scene_select, scene, scene) obs.obs_properties_add_path(props, 'image_directory', 'Image directory', obs.OBS_PATH_DIRECTORY, '', '') obs.obs_properties_add_button(props, "button", "Import", run_import) return props
def script_properties(): # print('script_properties') props = obs.obs_properties_create() model_p = obs.obs_properties_add_path(props, 'live2d_model', 'Live2D Model', obs.OBS_PATH_FILE, 'Live2D Model(*.json)', '') level_p = obs.obs_properties_add_int(props, 'root_level', 'Server Root Level', 1, total_levels(LIVE2D_FULL_PATH), 1) port_p = obs.obs_properties_add_int(props, 'port', 'Server Port', 1024, 65535, 1) ws_port_p = obs.obs_properties_add_int(props, 'ws_port', 'Websocket Port', 1024, 65535, 1) info_p = obs.obs_properties_add_text(props, 'info', 'Info', obs.OBS_TEXT_MULTILINE) obs.obs_property_set_enabled(info_p, False) obs.obs_properties_add_button(props, 'start', 'Apply Settings', apply_settings) obs.obs_property_set_modified_callback(model_p, prop_modified) obs.obs_property_set_modified_callback(level_p, prop_modified) obs.obs_property_set_modified_callback(port_p, prop_modified) obs.obs_property_set_modified_callback(ws_port_p, prop_modified) return props
def _add(self, props, on_changed): t = _obs.OBS_PATH_FILE if self.save_file: t = _obs.OBS_PATH_FILE_SAVE elif self.open_directory: t = _obs.OBS_PATH_DIRECTORY p = _obs.obs_properties_add_path(props, self.name, self.text, t, self.filter, self.default) super()._add(p, on_changed)
def script_media_player_settings(props, rtgg_obs: RacetimeObs, media_player_toggled): lang = gettext.translation("racetime-obs", localedir=os.environ['LOCALEDIR']) _ = lang.gettext p = obs.obs_properties_add_bool(props, "use_media_player", _("Enable sounds?")) obs.obs_property_set_modified_callback(p, media_player_toggled) media_player_group = obs.obs_properties_create() obs.obs_properties_add_group(props, "media_player_group", _("Media Player Mode"), obs.OBS_GROUP_NORMAL, media_player_group) obs.obs_property_set_visible( obs.obs_properties_get(props, "media_player_group"), rtgg_obs.media_player.enabled) monitoring_list = obs.obs_properties_add_list(media_player_group, "monitoring_type", _("Monitoring Type"), obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_INT) obs.obs_property_list_add_int(monitoring_list, _("Listen Only"), obs.OBS_MONITORING_TYPE_MONITOR_ONLY) obs.obs_property_list_add_int(monitoring_list, _("Stream Only"), obs.OBS_MONITORING_TYPE_NONE) obs.obs_property_list_add_int(monitoring_list, _("Listen and Stream"), obs.OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT) p = obs.obs_properties_add_bool(media_player_group, "use_chat_pings", _("Chat Pings")) obs.obs_property_set_long_description( p, _("Enable this and set choose a sound file to play when a bot posts" " or when someone @s you in racetime.gg chat")) p = obs.obs_properties_add_path(media_player_group, "chat_ping_sound", _("Chat media file"), obs.OBS_PATH_FILE, "Audio Files (*.mp3 *.aac *.wav *.wma)", None) obs.obs_properties_add_path(media_player_group, "first_place_sound", _("First Place Sound"), obs.OBS_PATH_FILE, "Audio Files (*.mp3 *.aac *.wav *.wma)", None) obs.obs_property_set_long_description( p, _("Sound file to play when you finish first."))
def script_properties(): props = obs.obs_properties_create() winlist = obs.obs_properties_add_list( props, "windowlist", "Window ID", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) obs.obs_properties_add_path(props, "title_end", "Suffix list", obs.OBS_PATH_FILE, "*.txt;;*.*", "~/") obs.obs_properties_add_int( props, "update", "Update (ms)", 500, 60000, 10) for i in get_windows(): hex_id = i[0] name = i[3] obs.obs_property_list_add_string(winlist, hex_id, hex_id) text_source = 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) text_object = ( "text_gdiplus" , "text_ft2_source" ) if source_id in text_object: name = obs.obs_source_get_name(source) obs.obs_property_list_add_string( text_source, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "btn_update", "Update", force_update) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text(props, "calendar_url", "Calendar ID", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_path(props, "client_secret_file", "Client Secret File", obs.OBS_PATH_FILE, '*.json', "") obs.obs_properties_add_path(props, "images_path", "Images Folder", obs.OBS_PATH_DIRECTORY, '', "") obs.obs_properties_add_int(props, "interval", "Update Interval (seconds)", 5, 3600, 1) obs.obs_properties_add_int(props, "max_events", "Max Number of Events", 1, 15, 1) for x in range(0, max_events): p = obs.obs_properties_add_list(props, "source_{}".format(x), "Text Source {}".format(x + 1), obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING) img_p = obs.obs_properties_add_list(props, "img_source_{}".format(x), "Image Source {}".format(x + 1), 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) if source_id == "image_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(img_p, name, name) obs.source_list_release(sources) obs.obs_properties_add_button(props, "button", "Refresh", refresh_pressed) return props
def media_trigger_settings(props, rtgg_obs: RacetimeObs, index: int): lang = gettext.translation("racetime-obs", localedir=os.environ['LOCALEDIR']) _ = lang.gettext media_player_group = obs.obs_properties_create() name = f"media_trigger_#{index}" obs.obs_properties_add_group(props, name, _("Media Trigger #") + f"{index}", obs.OBS_GROUP_NORMAL, media_player_group) obs.obs_property_set_visible( obs.obs_properties_get(props, "media_player_group"), rtgg_obs.media_player.enabled) obs.obs_properties_add_path(media_player_group, f"media_path_#{index}", _("Sound File"), obs.OBS_PATH_FILE, "Audio Files (*.mp3 *.aac *.wav *.wma)", None) p = obs.obs_properties_add_list(media_player_group, f"trigger_type_#{index}", _("Type of Trigger"), obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING) obs.obs_property_list_add_string(p, "", "") obs.obs_property_list_add_string(p, _("Chat"), "chat") obs.obs_property_list_add_string(p, _("Finish Place"), "finish") obs.obs_property_list_add_string(p, _("Timer"), "time") obs.obs_property_set_modified_callback(p, media_type_changed) p = obs.obs_properties_add_list(media_player_group, f"monitoring_type_#{index}", _("Monitoring Type"), obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_INT) obs.obs_property_list_add_int(p, _("Only Listen"), obs.OBS_MONITORING_TYPE_MONITOR_ONLY) obs.obs_property_list_add_int(p, _("Only Stream"), obs.OBS_MONITORING_TYPE_NONE) obs.obs_property_list_add_int(p, _("Listen and Stream"), obs.OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT)
def script_properties(): props = obs.obs_properties_create() source_list = obs.obs_properties_add_list(props, "text_source_list", "Source List", 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": source_name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(source_list, source_name, source_name) obs.obs_properties_add_path(props, "path", "List of reproduction folder", obs.OBS_PATH_DIRECTORY, None, None) obs.obs_properties_add_text(props, "scene", "Target scene", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_text(props, "group", "Target group name", obs.OBS_TEXT_DEFAULT) obs.obs_properties_add_button(props, "refresh", "Refresh folder", button_handler) obs.source_list_release(sources) return props
def script_properties(): props = obs.obs_properties_create() rep = ['replays', 'Replays folder', obs.OBS_PATH_DIRECTORY, '', None] dol = [ 'dolphin', 'Dolphin.exe (Slippi)', obs.OBS_PATH_FILE, '*.exe', os.getenv('APPDATA') + '\\Slippi Launcher\\dolphin\\Dolphin.exe' ] ml = ['melee', 'Melee 1.02 .ISO', obs.OBS_PATH_FILE, '*.iso', None] obs.obs_properties_add_path(props, *rep) obs.obs_properties_add_path(props, *dol) obs.obs_properties_add_path(props, *ml) obs.obs_properties_add_button(props, 'start', 'Start', start) obs.obs_properties_add_button(props, 'stop', 'Stop', stop) return props
def script_properties(): """Sets up the properties section of the "Scripts" window. This is a built-in OBS function. It sets up the properties part of the "Scripts" screen for this script. Returns: properties """ # Declare the properties object for us to mess with properties = obs.obs_properties_create() # Put a boolean checkbox for if this should be running or not obs.obs_properties_add_bool(properties, "run_boolean", "Run?") # Integer for how often (in seconds) this checks for changes obs.obs_properties_add_int(properties, "check_interval_int", "Update Interval (seconds)", 1, 120, 1) # Width and height obs.obs_properties_add_int(properties, "sprite_height", "Height (pixels)", 1, 1000, 1) obs.obs_properties_add_int(properties, "sprite_width", "Width (pixels)", 1, 1000, 1) # Add in a file path property for the team.json file obs.obs_properties_add_path(properties, "json_file", "Team JSON File", obs.OBS_PATH_FILE, "*.json", None) # Set up the sprite style dropdown sprite_style = obs.obs_properties_add_list(properties, "sprite_style", "Sprite Style", obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING) obs.obs_property_list_add_string(sprite_style, "", "") obs.obs_property_list_add_string(sprite_style, "showdown", "showdown") # Team image locations. # Set up the settings and add in a blank value as the first value slot1_sprite_image_source = obs.obs_properties_add_list( properties, "slot1_sprite_image_source", "Slot 1 Image Source", obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING) obs.obs_property_list_add_string(slot1_sprite_image_source, "", "") slot2_sprite_image_source = obs.obs_properties_add_list( properties, "slot2_sprite_image_source", "Slot 2 Image Source", obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING) obs.obs_property_list_add_string(slot2_sprite_image_source, "", "") slot3_sprite_image_source = obs.obs_properties_add_list( properties, "slot3_sprite_image_source", "Slot 3 Image Source", obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING) obs.obs_property_list_add_string(slot3_sprite_image_source, "", "") slot4_sprite_image_source = obs.obs_properties_add_list( properties, "slot4_sprite_image_source", "Slot 4 Image Source", obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING) obs.obs_property_list_add_string(slot4_sprite_image_source, "", "") slot5_sprite_image_source = obs.obs_properties_add_list( properties, "slot5_sprite_image_source", "Slot 5 Image Source", obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING) obs.obs_property_list_add_string(slot5_sprite_image_source, "", "") slot6_sprite_image_source = obs.obs_properties_add_list( properties, "slot6_sprite_image_source", "Slot 6 Image Source", obs.OBS_COMBO_TYPE_LIST, obs.OBS_COMBO_FORMAT_STRING) obs.obs_property_list_add_string(slot6_sprite_image_source, "", "") # Iterate through each source in OBS, grabbing and adding the image ones in # to the list for each of the team member sources 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 == "image_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(slot1_sprite_image_source, name, name) obs.obs_property_list_add_string(slot2_sprite_image_source, name, name) obs.obs_property_list_add_string(slot3_sprite_image_source, name, name) obs.obs_property_list_add_string(slot4_sprite_image_source, name, name) obs.obs_property_list_add_string(slot5_sprite_image_source, name, name) obs.obs_property_list_add_string(slot6_sprite_image_source, name, name) # Apparently we have to release the list of sources once we are done with # them obs.source_list_release(sources) # Finally, return the properties so they show up return properties
def add_path(self, name, description): obs.obs_properties_add_path(self.prop_obj, name, description, obs.OBS_PATH_DIRECTORY, "", os.path.expanduser("~"))
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_path(props, 'configPath', 'Configuration path', obs.OBS_PATH_FILE, '*.ini', None) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_text( props, "scripted_text", "Scripted text", obs.OBS_TEXT_MULTILINE ) bool = obs.obs_properties_add_bool(props, "use_file", "Use file(UTF-8)") bool2 = obs.obs_properties_add_bool(props, "reload_file", "Auto reload file") fp = obs.obs_properties_add_path( props, "file_path", "Select file", obs.OBS_PATH_FILE, "*.*", std.path ) obs.obs_property_set_visible(fp, std.use_file) obs.obs_property_set_visible(bool2, std.use_file) obs.obs_property_set_modified_callback(bool, check_file_use) obs.obs_property_set_modified_callback(bool2, check_file_use) obs.obs_properties_add_int( props, "refresh_rate", "Refresh rate(ms)", 15, 5 * 1000, 1 ) obs.obs_properties_add_int(props, "duration", "Duration shown(s)", 1, 3600, 1) p = obs.obs_properties_add_list( props, "source", "<h2>Text Source</h2>", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) sp = obs.obs_properties_add_list( props, "playsound", "Media Source", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) tp = obs.obs_properties_add_list( props, "text_effect", "Text effect", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) lp = obs.obs_properties_add_list( props, "layer", "Layer(img,video,gif,etc..)", obs.OBS_COMBO_TYPE_EDITABLE, obs.OBS_COMBO_FORMAT_STRING, ) obs.obs_property_set_long_description( tp, "<h1>Description of current text effect</h1>" ) for i in std.txt_efcts.keys(): obs.obs_property_list_add_string(tp, i, i) obs.obs_property_set_modified_callback(tp, show_tooltip) sources = obs.obs_enum_sources() if sources is not None: for source in sources: # exclude Desktop Audio and Mic/Aux by their capabilities capability_flags = obs.obs_source_get_output_flags(source) if ( capability_flags & obs.OBS_SOURCE_DO_NOT_SELF_MONITOR ) == 0 and capability_flags != ( obs.OBS_SOURCE_AUDIO | obs.OBS_SOURCE_DO_NOT_DUPLICATE ): 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) if source_id == "ffmpeg_source": name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(sp, name, name) else: name = obs.obs_source_get_name(source) obs.obs_property_list_add_string(lp, name, name) obs.source_list_release(sources) scenes = obs.obs_frontend_get_scenes() # for layered scene source for scene in scenes: name = obs.obs_source_get_name(scene) obs.obs_property_list_add_string(lp, name, name) obs.source_list_release(scenes) obs.obs_properties_add_button( props, "button1", "PREVIEW", lambda *props: std.hotkey_hook() ) obs.obs_properties_add_button( props, "button2", "RESET", lambda *props: std.reset_duration() ) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_path(props, "configFile", "JSON Config File", obs.OBS_PATH_FILE, "*.json", None) return props
def script_properties(): # Display YAML file path property props = obs.obs_properties_create() obs.obs_properties_add_path(props, 'file_path', 'File Path', obs.OBS_PATH_FILE, 'YAML file (*.yml)', None) return props
def script_properties(): props = obs.obs_properties_create() obs.obs_properties_add_path(props, file_path_setting, "File Path", obs.OBS_PATH_DIRECTORY, "", None) return props