diff --git a/nodes.py b/nodes.py index eb88394..3ec15bf 100644 --- a/nodes.py +++ b/nodes.py @@ -1,5 +1,6 @@ from os import walk from os.path import join, basename, splitext +from re import search converters = { '32_random_bytes_as_base64_for': lambda x: vault.random_bytes_as_base64_for(x, length=32), @@ -10,9 +11,10 @@ converters = { def demagify(data): if isinstance(data, str): - for name, converter in converters.items(): - if data.startswith(f'!{name}:'): - return converter(data[len(name) + 2:]) + match = search(r'^\!([0-9a-zA-Z_-]{,255})\:(.*)$', data) + if match: + magicstring, content = match.groups() + return converters[magicstring](content) else: return data elif isinstance(data, dict):