86 lines
2.9 KiB
Python
86 lines
2.9 KiB
Python
import os
|
|
import json
|
|
import random
|
|
from .imagefunc import AnyType, log, extract_all_numbers_from_str, extract_numbers, extract_substr_from_str
|
|
from .imagefunc import tokenize_string, find_best_match_by_similarity, remove_empty_lines, remove_duplicate_string
|
|
from .imagefunc import get_files, file_is_extension, is_contain_chinese
|
|
|
|
any = AnyType("*")
|
|
|
|
class LS_TextPreseter:
|
|
def __init__(self):
|
|
self.NODE_NAME = "TextPreseter"
|
|
@classmethod
|
|
def INPUT_TYPES(self):
|
|
return {
|
|
"required":
|
|
{
|
|
"title": ("STRING", {"default": "", "multiline": False}),
|
|
"content": ("STRING", {"default": '', "multiline": True}),
|
|
},
|
|
"optional": {
|
|
"text_preset": ("LS_TEXT_PRESET", ),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("LS_TEXT_PRESET",)
|
|
RETURN_NAMES = ("text_preset",)
|
|
FUNCTION = 'text_preseter'
|
|
CATEGORY = '😺dzNodes/LayerUtility/Data'
|
|
|
|
def text_preseter(self, title, content, text_preset=None):
|
|
|
|
if text_preset is None:
|
|
text_preset = {}
|
|
|
|
if title:
|
|
text_preset[title] = content
|
|
|
|
return (text_preset,)
|
|
|
|
class LS_ChoiceTextPreset:
|
|
def __init__(self):
|
|
self.NODE_NAME = "ChoicePresetText"
|
|
@classmethod
|
|
def INPUT_TYPES(self):
|
|
return {
|
|
"required":
|
|
{ "text_preset": ("LS_TEXT_PRESET", ),
|
|
"choice_title": ("STRING", {"default": '', "multiline": False}),
|
|
"random_choice": ("BOOLEAN", {"default": False}),
|
|
"default": ("INT", {"default": 0, "min": 0, "max": 1e4, "step": 1}),
|
|
"seed": ("INT", {"default": 0, "min": 0, "max": 1e18, "step": 1}),
|
|
},
|
|
"optional": {
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("STRING", "STRING",)
|
|
RETURN_NAMES = ("title", "content",)
|
|
FUNCTION = 'choice_preset_text'
|
|
CATEGORY = '😺dzNodes/LayerUtility/Data'
|
|
|
|
def choice_preset_text(self, text_preset, choice_title, random_choice, default, seed):
|
|
keys = list(text_preset.keys())
|
|
ret_key = keys[default]
|
|
ret_value = ''
|
|
|
|
if choice_title in text_preset and not random_choice:
|
|
ret_key = choice_title
|
|
elif random_choice:
|
|
random.seed(seed)
|
|
ret_key = random.choice(list(text_preset.keys()))
|
|
|
|
ret_value = text_preset[ret_key]
|
|
|
|
return (ret_key, ret_value)
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"LayerUtility: ChoiceTextPreset": LS_ChoiceTextPreset,
|
|
"LayerUtility: TextPreseter": LS_TextPreseter,
|
|
}
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"LayerUtility: ChoiceTextPreset": "LayerUtility: Choice Text Preset",
|
|
"LayerUtility: TextPreseter": "LayerUtility: Text Preseter",
|
|
} |