From 606a60b1c075a4125c3623041179255a487fc2bf Mon Sep 17 00:00:00 2001 From: mwiegand Date: Wed, 17 Aug 2022 23:48:32 +0200 Subject: [PATCH] faster demagify --- nodes.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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):