From aa5580da91f4e6b4425315f3b823c394e6b8ba74 Mon Sep 17 00:00:00 2001 From: Nicolas Aravena Date: Tue, 8 Aug 2017 18:04:40 -0400 Subject: [PATCH] Added support for language and options for async and defer --- CHANGELOG | 4 ++++ README.md | 8 +++++++- flask_recaptcha.py | 18 +++++++++++++++--- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 9fb88ed..627fa6a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +- 0.5.0 + - Added support for laguages + - Added support for async and defer options + - 0.4.1 - Added Py.Test - more refactoring diff --git a/README.md b/README.md index 1d5ae44..731367f 100644 --- a/README.md +++ b/README.md @@ -103,13 +103,19 @@ The following are **Optional** arguments. **RECAPTCHA_TABINDEX**: Int - Tabindex of the widget can be used, if the page uses tabidex, to make navigation easier. Defaults to 0 +**RECAPTCHA_LANGUAGE**: String - You can choose one from the [languages available](https://developers.google.com/recaptcha/docs/language). Default is 'en' + +**RECAPTCHA_ASYNC_DEFER**: Bool - Set scripts opcions async and defer available. Default is True + RECAPTCHA_ENABLED = True RECAPTCHA_SITE_KEY = "" RECAPTCHA_SECRET_KEY = "" RECAPTCHA_THEME = "dark" RECAPTCHA_TYPE = "image" RECAPTCHA_SIZE = "compact" - RECAPTCHA_RTABINDEX = 10 + RECAPTCHA_TABINDEX = 10 + RECAPTCHA_LANGUAGE = "es" + RECAPTCHA_ASYNC_DEFER = False --- diff --git a/flask_recaptcha.py b/flask_recaptcha.py index d2c2648..cadd876 100644 --- a/flask_recaptcha.py +++ b/flask_recaptcha.py @@ -23,6 +23,8 @@ class DEFAULTS(object): TYPE = "image" SIZE = "normal" TABINDEX = 0 + LANGUAGE = "en" + ASYNC_DEFER = True class ReCaptcha(object): @@ -41,6 +43,8 @@ def __init__(self, app=None, site_key=None, secret_key=None, is_enabled=True, ** self.type = kwargs.get('type', DEFAULTS.TYPE) self.size = kwargs.get('size', DEFAULTS.SIZE) self.tabindex = kwargs.get('tabindex', DEFAULTS.TABINDEX) + self.language = kwargs.get('language', DEFAULTS.LANGUAGE) + self.async_defer = kwargs.get('async_defer', DEFAULTS.ASYNC_DEFER) elif app: self.init_app(app=app) @@ -52,7 +56,9 @@ def init_app(self, app=None): theme=app.config.get("RECAPTCHA_THEME", DEFAULTS.THEME), type=app.config.get("RECAPTCHA_TYPE", DEFAULTS.TYPE), size=app.config.get("RECAPTCHA_SIZE", DEFAULTS.SIZE), - tabindex=app.config.get("RECAPTCHA_TABINDEX", DEFAULTS.TABINDEX)) + tabindex=app.config.get("RECAPTCHA_TABINDEX", DEFAULTS.TABINDEX), + language=app.config.get("RECAPTCHA_LANGUAGE", DEFAULTS.LANGUAGE), + async_defer=app.config.get("RECAPTCHA_ASYNC_DEFER", DEFAULTS.ASYNC_DEFER)) @app.context_processor def get_code(): @@ -64,10 +70,16 @@ def get_code(self): :return: """ return "" if not self.is_enabled else (""" - +
- """.format(SITE_KEY=self.site_key, THEME=self.theme, TYPE=self.type, SIZE=self.size, TABINDEX=self.tabindex)) + """.format(SITE_KEY=self.site_key, + THEME=self.theme, + TYPE=self.type, + SIZE=self.size, + TABINDEX=self.tabindex, + LANGUAGE=self.language, + ASYNC_DEFER="async defer" if self.async_defer else "")) def verify(self, response=None, remote_ip=None): if self.is_enabled: