From 1d909a0993ca112bb3e6df8a355b2d201821e68f Mon Sep 17 00:00:00 2001 From: syeopite Date: Mon, 17 Feb 2025 22:47:48 -0800 Subject: [PATCH 1/2] Fix routes using render wrapper being synchronous The render wrapper function wasn't made asynchronous. Oops. --- src/helpers/render.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/render.py b/src/helpers/render.py index 8adc8b9..fb9d312 100644 --- a/src/helpers/render.py +++ b/src/helpers/render.py @@ -5,7 +5,7 @@ import sanic_ext # Wrapper around sanic_ext.render -def render_template( +async def render_template( template: str = "", context: Optional[Dict[str, Any]] = None, **kwargs @@ -42,7 +42,7 @@ def render_template( template = f"{template}.jinja" - return sanic_ext.render( + return await sanic_ext.render( template, context=jinja_context, app=request.app, From cf403444d8ab253d302441c3918e5579420ef8da Mon Sep 17 00:00:00 2001 From: syeopite Date: Mon, 17 Feb 2025 22:49:19 -0800 Subject: [PATCH 2/2] Make all routes use wrapper for sanic_ext.render --- .../error_handlers/extractor_errors.py | 12 ++++++------ .../error_handlers/miscellaneous_errors.py | 16 ++++++++-------- src/routes/priviblur/misc.py | 4 ++-- src/routes/settings.py | 12 ++++++------ 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/exceptions/error_handlers/extractor_errors.py b/src/exceptions/error_handlers/extractor_errors.py index 0a7e21c..f39c5fe 100644 --- a/src/exceptions/error_handlers/extractor_errors.py +++ b/src/exceptions/error_handlers/extractor_errors.py @@ -8,8 +8,8 @@ @extractor_errors.register(priviblur_exceptions.TumblrLoginRequiredError) async def tumblr_error_login_walled(request, exception): - return await sanic_ext.render( - "misc/msg_error.jinja", + return await request.app.ctx.render( + "misc/msg_error", context={ "app": request.app, "exception": exception, @@ -22,8 +22,8 @@ async def tumblr_error_login_walled(request, exception): @extractor_errors.register(priviblur_exceptions.TumblrRestrictedTagError) async def tumblr_error_restricted_tag(request, exception): - return await sanic_ext.render( - "misc/msg_error.jinja", + return await request.app.ctx.render( + "misc/msg_error", context={ "app": request.app, "exception": exception, @@ -36,8 +36,8 @@ async def tumblr_error_restricted_tag(request, exception): @extractor_errors.register(priviblur_exceptions.TumblrBlogNotFoundError) async def tumblr_error_unknown_blog(request, exception): - return await sanic_ext.render( - "misc/msg_error.jinja", + return await request.app.ctx.render( + "misc/msg_error", context={ "app": request.app, "exception": exception, diff --git a/src/exceptions/error_handlers/miscellaneous_errors.py b/src/exceptions/error_handlers/miscellaneous_errors.py index 6683fb9..0b549d5 100644 --- a/src/exceptions/error_handlers/miscellaneous_errors.py +++ b/src/exceptions/error_handlers/miscellaneous_errors.py @@ -12,8 +12,8 @@ @miscellaneous_errors.register(asyncio.TimeoutError) async def request_timeout(request, exception): - return await sanic_ext.render( - "misc/msg_error.jinja", + return await request.app.ctx.render( + "misc/msg_error", context={ "app": request.app, "exception": exception, @@ -26,8 +26,8 @@ async def request_timeout(request, exception): @miscellaneous_errors.register(sanic.exceptions.NotFound, IsADirectoryError) async def error_404(request, exception): - return await sanic_ext.render( - "misc/msg_error.jinja", + return await request.app.ctx.render( + "misc/msg_error", context={ "app": request.app, "exception": exception, @@ -40,8 +40,8 @@ async def error_404(request, exception): @miscellaneous_errors.register(exceptions.TumblrInvalidRedirect) async def invalid_redirect(request, exception): - return await sanic_ext.render( - "misc/msg_error.jinja", + return await request.app.ctx.render( + "misc/msg_error", context={ "app": request.app, "exception": exception, @@ -55,8 +55,8 @@ async def invalid_redirect(request, exception): async def generic_error(request, exception): name, message, context = _base.create_user_friendly_error_message(request, exception) - return await sanic_ext.render( - "misc/generic_error.jinja", + return await request.app.ctx.render( + "misc/generic_error", context={ "app": request.app, "exception": exception, diff --git a/src/routes/priviblur/misc.py b/src/routes/priviblur/misc.py index 9605190..228667d 100644 --- a/src/routes/priviblur/misc.py +++ b/src/routes/priviblur/misc.py @@ -6,8 +6,8 @@ @misc_bp.get("/licences") async def licences(request): - return await sanic_ext.render( - "misc/licenses.jinja", + return await request.app.ctx.render( + "misc/licenses", context={ "app": request.app, } diff --git a/src/routes/settings.py b/src/routes/settings.py index 98a02a2..1e201ef 100644 --- a/src/routes/settings.py +++ b/src/routes/settings.py @@ -8,8 +8,8 @@ @settings.get("/") async def settings_page(request): - return await sanic_ext.render( - "settings.jinja", + return await request.app.ctx.render( + "settings", context={ "app": request.app, } @@ -20,8 +20,8 @@ async def settings_page(request): async def settings_post(request): request.ctx.preferences = request.ctx.preferences.replace_from_forms(request) - response = await sanic_ext.render( - "settings.jinja", + response = await request.app.ctx.render( + "settings", context={ "app": request.app, } @@ -39,8 +39,8 @@ async def settings_post(request): async def settings_restore(request): request.ctx.preferences = request.ctx.preferences.replace_from_query(request) - response = await sanic_ext.render( - "settings.jinja", + response = await request.app.ctx.render( + "settings", context={ "app": request.app, }