From 3d030fdd0363a30cede15d4bdacbd4d047e0e5b5 Mon Sep 17 00:00:00 2001 From: Richard Chien Date: Mon, 10 Feb 2020 12:43:04 +0800 Subject: [PATCH] Escape *args in render_expression, fix #86 --- nonebot/helpers.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nonebot/helpers.py b/nonebot/helpers.py index a29a2546..b9aa00d2 100644 --- a/nonebot/helpers.py +++ b/nonebot/helpers.py @@ -79,7 +79,8 @@ def render_expression(expr: Expression_T, *args, elif isinstance(expr, Sequence) and not isinstance(expr, str): expr = random.choice(expr) if escape_args: - for k, v in kwargs.items(): - if isinstance(v, str): - kwargs[k] = escape(v) + return expr.format( + *[escape(s) if isinstance(s, str) else s for s in args], + **{k: escape(v) if isinstance(v, str) else v for k, v in kwargs} + ) return expr.format(*args, **kwargs)