o
    Nf                     @   sH   d dl mZ d dlmZ d dlmZ dZdZdZdgZ	G dd dZ
d	S )
    )	urlencode)current_app)Markupz'https://www.google.com/recaptcha/api.jszg-recaptchazB
<script src='%s' async defer></script>
<div class="%s" %s></div>
RecaptchaWidgetc                   @   s   e Zd Zdd ZdddZdS )r   c                    s   t jd}|rt|S t jd}t jd}|st}|r&|dt| 7 }t jdi  | d< d fdd	 D }t jd
}|sGt}tt|||f S )NRECAPTCHA_HTMLRECAPTCHA_PARAMETERSRECAPTCHA_SCRIPT?RECAPTCHA_DATA_ATTRSsitekey c                 3   s&    | ]}d | d |  dV  qdS )zdata-z=""N ).0kattrsr   T/home/ubuntu/webapp/venv/lib/python3.10/site-packages/flask_wtf/recaptcha/widgets.py	<genexpr>   s   $ z1RecaptchaWidget.recaptcha_html.<locals>.<genexpr>RECAPTCHA_DIV_CLASS)	r   configgetr   RECAPTCHA_SCRIPT_DEFAULTr   joinRECAPTCHA_DIV_CLASS_DEFAULTRECAPTCHA_TEMPLATE)self
public_keyhtmlparamsscriptsnippet	div_classr   r   r   recaptcha_html   s    zRecaptchaWidget.recaptcha_htmlNc                 K   s2   zt jd }W n ty   tddw | |S )z!Returns the recaptcha input HTML.RECAPTCHA_PUBLIC_KEYz#RECAPTCHA_PUBLIC_KEY config not setN)r   r   KeyErrorRuntimeErrorr#   )r   fielderrorkwargsr   r   r   r   __call__#   s   

zRecaptchaWidget.__call__)N)__name__
__module____qualname__r#   r*   r   r   r   r   r      s    N)urllib.parser   flaskr   
markupsafer   r   r   r   __all__r   r   r   r   r   <module>   s    