diff --git a/WAS_Node_Suite.py b/WAS_Node_Suite.py index 480d578..ae77d6b 100644 --- a/WAS_Node_Suite.py +++ b/WAS_Node_Suite.py @@ -9707,6 +9707,40 @@ class WAS_Search_and_Replace: import re text = re.sub(find, replace, text) return text + + +# Text Shuffle + +class WAS_Text_Shuffle: + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "text": (TEXT_TYPE, {"forceInput": (True if TEXT_TYPE == 'STRING' else False)}), + "separator": ("STRING", {"default": ',', "multiline": False}), + "seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}), + } + } + + RETURN_TYPES = (TEXT_TYPE,) + FUNCTION = "shuffle" + + CATEGORY = "WAS Suite/Text/Operations" + + def shuffle(self, text, separator, seed): + + if seed is not None: + random.seed(seed) + + text_list = text.split(separator) + random.shuffle(text_list) + new_text = separator.join(text_list) + + return (new_text, ) + # Text Search and Replace @@ -13252,6 +13286,7 @@ NODE_CLASS_MAPPINGS = { "Text Random Line": WAS_Text_Random_Line, "Text Random Prompt": WAS_Text_Random_Prompt, "Text String": WAS_Text_String, + "Text Shuffle": WAS_Text_Shuffle, "Text to Conditioning": WAS_Text_to_Conditioning, "Text to Console": WAS_Text_to_Console, "Text to Number": WAS_Text_To_Number,