Files
Bjornulf_custom_nodes/write_text.py
justumen d0b40589ea 0.22
2024-09-12 17:23:11 +02:00

44 lines
1.3 KiB
Python

import re
import random
import time
class WriteText:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"text": ("STRING", {"multiline": True}),
},
"hidden": {
"seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}),
"control_after_update": ("INT", {"default": 0})
},
}
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("text",)
FUNCTION = "write_text"
OUTPUT_NODE = True
CATEGORY = "Bjornulf"
def write_text(self, text, seed=None, control_after_update=None):
# If seed is not provided, generate a new one
if seed is None:
seed = int(time.time() * 1000)
# Use the seed to initialize the random number generator
random.seed(seed)
def replace_random(match):
options = match.group(1).split('|')
return random.choice(options)
pattern = r'\{([^}]+)\}'
result = re.sub(pattern, replace_random, text)
return (result,)
@classmethod
def IS_CHANGED(s, text, seed=None, control_after_update=None):
# This method is called to determine if the node needs to be re-executed
return float("nan") # Always re-execute to ensure consistency