diff --git a/src/talemate/game/engine/nodes/string.py b/src/talemate/game/engine/nodes/string.py index f76e0db5..367c93f3 100644 --- a/src/talemate/game/engine/nodes/string.py +++ b/src/talemate/game/engine/nodes/string.py @@ -108,10 +108,14 @@ class Split(Node): self.set_property("max_splits", -1) async def run(self, state: GraphState): - string = self.get_input_value("string") + string:str = self.get_input_value("string") delimiter = self.get_input_value("delimiter") max_splits = self.get_property("max_splits") + # handle escaped newline delimiter + if delimiter == "\\n": + delimiter = "\n" + parts = string.split(delimiter, maxsplit=max_splits) self.set_output_values({"parts": parts}) @@ -154,6 +158,10 @@ class Join(Node): strings = self.get_input_value("strings") delimiter = self.get_input_value("delimiter") + # handle escaped newline delimiter + if delimiter == "\\n": + delimiter = "\n" + if not all(isinstance(s, str) for s in strings): raise InputValueError(self, "strings", "All items must be strings")