3.8 Emacs Lisp reCAPTCHA library ================================ This library allows interaction with Google's reCAPTCHA service -=******************************************************************+- :%@@@@@@#*@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@%: :%@@@@*.-**.=+@@@@@@@@%%-.*@@@@@@@@@@@@@@@@@@@##@%#%@@@@@@@@@@@@@@@@%: :%@@@@*:+=#=+:++%++%+++*--*@@@@@@@@@@@@@@@##@@%+@*++@+*%@@@@@@@@@@@@%: :%@@@@%@@@@@@@#+#==*#*%@@@@@@@@@@@@@@@@@@@+**##+##**@=#=@@@@@@@@@@@@%. :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@+#@@@@@@@@@@@@@%. :+#########################################%#####%#####%############*. :=+************************************=..:--:.....:-:................ .#%%@%***##*#*##**%*****%****###**%%%%@#.:=++=:.:**+=*#=.............. .*#%%%%%%%%%%%%%%%%%%###%#%###%%##%%%%%*.:-++=:.##.---===---==::...... .*#*#%@#%#%%%%%%%%%#@@@@@@@@@@@@@@@@@@%*.:-++=:.+%----+-::----:::.:... .*@%%%@%%%%%%%%@%%%#@@@@@@@@@@@@@@@@@@@*.:-*#=:..-++++=..::::.--::-:.. --++++=+++++++++++++==================+-..:::::...........:::.:..:.:.: • reCAPTCHA: verifies that the user as correctly introduced the CAPTCHA. • reCAPTCHA mailhide: used to encrypt email addresses in webpages, and decrypt them after a successful CAPTCHA. The main entry points are: • recaptcha-html: outputs the HTML code that needs to be included in a webpage to display the CAPTCHA. • recaptcha-verify: takes as input the challenge (i.e. what the user wrote) and validates the CAPTCHA. • recaptcha-mailhide-html: outputs the HTML to show an email address. It was written primarily to be used with Elnode (1), a non-blocking webserver written in Emacs Lisp: ;; The following code can be used to quickly test the code, it is ;; based on elnode (and thus requires it of course). After evaluating ;; it http://localhost:8009/recaptcha and http://localhost:8009/mailhide/ ;; are listening, each testing a particular functionality. ;; ;; (defun root-handler (httpcon) ;; (elnode-hostpath-dispatcher httpcon '(("^.*//recaptcha/\\(.*\\)" . recaptcha-handler) ;; ("^.*//mailhide/\\(.*\\)" . mailhide-handler)))) ;; ;; (elnode-start 'root-handler :port 8009) For the code, go to the GitHub repository (2). ---------- Footnotes ---------- (1) Elnode (https://www.emacswiki.org/emacs/Elnode) (2) GitHub repository (https://github.com/fsmunoz/recaptcha)