{ "info": { "author": "Christopher Grebs", "author_email": "cg@webshox.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "Nobot\n=====\n\n**Django reCAPTCHA form field/widget integration app.**\n\n\n.. image:: https://travis-ci.org/EnTeQuAk/nobot.svg?branch=master\n :target: https://travis-ci.org/EnTeQuAk/nobot\n\n.. image:: https://badge.fury.io/py/nobot.png\n :target: http://badge.fury.io/py/nobot\n\n.. image:: https://pypip.in/d/nobot/badge.png\n :target: https://pypi.python.org/pypi/nobot\n\n\nInstallation\n------------\n\n#. Install or add ``nobot`` to your Python path.\n\n#. Add ``nobot`` to your ``INSTALLED_APPS`` setting.\n\n#. Add a ``NOBOT_RECAPTCHA_PUBLIC_KEY`` setting to the project's ``settings.py`` file. This is your public API key as provided by reCAPTCHA, i.e.::\n\n NOBOT_RECAPTCHA_PUBLIC_KEY = '76wtgdfsjhsydt7r5FFGFhgsdfytd656sad75fgh'\n\n This can be seperately specified at runtime by passing a ``public_key`` parameter when constructing the ``ReCaptchaField``, see field usage below.\n\n#. Add a ``NOBOT_RECAPTCHA_PRIVATE_KEY`` setting to the project's ``settings.py`` file. This is your private API key as provided by reCAPTCHA, i.e.::\n\n NOBOT_RECAPTCHA_PRIVATE_KEY = '98dfg6df7g56df6gdfgdfg65JHJH656565GFGFGs'\n\n This can be seperately specified at runtime by passing a ``private_key`` parameter when constructing the ``ReCaptchaField``, see field usage below.\n\n\nUsage\n-----\n\nField\n~~~~~\n\nThe quickest way to add reCAPTHCA to a form is to use the included ``ReCaptchaField`` field type. A ``ReCaptcha`` widget will be rendered with the field validating itself without any further action required from you. For example::\n\n from django import forms\n from nobot.fields import ReCaptchaField\n\n class FormWithCaptcha(forms.Form):\n captcha = ReCaptchaField()\n\nThe reCAPTCHA widget supports several `Javascript options variables `_ customizing the behaviour of the widget, such as ``theme`` and ``lang``. You can forward these options to the widget by passing an ``attr`` parameter containing a dictionary of options to ``ReCaptchaField``, i.e.::\n\n captcha = ReCaptchaField(attrs={'theme' : 'clean'})\n\nThe captcha client takes the key/value pairs and writes out the RecaptchaOptions value in JavaScript.\n\nTesting\n~~~~~~~\n\nTo obtain a valid form containing a reCAPTCHA field **offline** one can mock the verify method of ReCaptchaClient or HumanCaptchaClient, i.e.::\n\n import mock\n from nobot.client import RecaptchaResponse\n\n class MyTestClass:\n\n @mock.patch('nobot.client.HumanCaptchaClient.verify')\n def test_with_valid_form(self, nobot_mock):\n nobot_mock.return_value = RecaptchaResponse(is_valid=True, error_code=None)\n\n # ...\n # Test your form or view\n # recaptcha won't 'spoil' test validation offline now\n\n\nCredits\n-------\n\nOriginally developed under the name `django-recaptcha `_ by Praekelt Consulting. Forked for better testability and extensibility.\nAuthors\n=======\n\n``nobot`` was previously developed under the name `django-recaptcha` and under the\nCopyright of Praekelt Foundation. The following copyright notice holds true for\nreleases before the renaming: \"Copyright (c) by Praekelt Foundation\n\nPackage Maintainer\n------------------\n* Christopher Grebs\n\nPraekelt Consulting\n-------------------\n* Shaun Sephton\n* Peter Pistorius\n* Hedley Roos\n\nbTaylor Design\n--------------\n* `Brandon Taylor `_\n\nOther\n-----\n* Brooks Travis\n* `Denis Mishchishin `_\n* `Joshua Peper `_\n* `Rodrigo Primo `_\n* `snnwolf `_\n* `Adriano Orioli `_\n* `cdvv7788 `_\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/EnTeQuak/nobot", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "nobot", "package_url": "https://pypi.org/project/nobot/", "platform": "", "project_url": "https://pypi.org/project/nobot/", "project_urls": { "Homepage": "https://github.com/EnTeQuak/nobot" }, "release_url": "https://pypi.org/project/nobot/0.5/", "requires_dist": null, "requires_python": "", "summary": "Django recaptcha form field/widget app.", "version": "0.5" }, "last_serial": 4025724, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "8d87b84018c1aded6df04b7a43f6d58f", "sha256": "1cc588e0b00d178529cb57aeff52b7dbafec83b52fdd51369f0fee6e6006558e" }, "downloads": -1, "filename": "nobot-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d87b84018c1aded6df04b7a43f6d58f", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 13532, "upload_time": "2015-02-19T14:34:04", "url": "https://files.pythonhosted.org/packages/e3/b5/59a0059c0a2047d2c4e818ef6f9e8375bbd7bfaf874d6df5ab36b235dd81/nobot-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9006b88fd28c038a641bae607a81410b", "sha256": "ab154f033dbdd712f64e91aadda9304f0165c8eebc5f2d02960d8b288c795dc0" }, "downloads": -1, "filename": "nobot-0.1.tar.gz", "has_sig": false, "md5_digest": "9006b88fd28c038a641bae607a81410b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11652, "upload_time": "2015-02-19T14:34:02", "url": "https://files.pythonhosted.org/packages/bc/bd/52da1497f430d821839f2d7f1f69c2ca5a4eeb4737f8df005a017959021a/nobot-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "7e7ef1ee677b8c7de525b4113adaa4c5", "sha256": "2ffdc098e0ca9a08dddb59aa6583a5eed3e06964c1c27f757bab2d1b1288158c" }, "downloads": -1, "filename": "nobot-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e7ef1ee677b8c7de525b4113adaa4c5", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 11897, "upload_time": "2015-02-19T14:35:29", "url": "https://files.pythonhosted.org/packages/92/70/d71a247438d167a69d7c5c4ad86c5d8249186c6c31aa56a585ad1ca87c5a/nobot-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d460bdb74bd570585d9069dba5ce654", "sha256": "8127c7438ef0f05e97717c5a875e2203f7abd7d5c71806938905b21f56d81fef" }, "downloads": -1, "filename": "nobot-0.2.tar.gz", "has_sig": false, "md5_digest": "2d460bdb74bd570585d9069dba5ce654", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10662, "upload_time": "2015-02-19T14:35:26", "url": "https://files.pythonhosted.org/packages/60/61/4f3fe3877185a661df191f20fa930a020883ee00a6de3817c3ca38291de0/nobot-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "1369b4dc3275af107bc529ac5c18f4f6", "sha256": "c46ef4063f2ba8281eec81a83e7449305d93b404bf48313a7ebc4f9e361a3918" }, "downloads": -1, "filename": "nobot-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1369b4dc3275af107bc529ac5c18f4f6", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 11906, "upload_time": "2015-11-06T06:37:54", "url": "https://files.pythonhosted.org/packages/e8/19/041f7447feba722ecf4782d611c7ca468b6b8f9dad87a77358169df8c835/nobot-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03b4375a8de0f05061944fdadbc2ab28", "sha256": "e140cd75bb4bff1478d7e0ae54fbeb7ffbc4f4ddd00a11cf498c17e19b762ee7" }, "downloads": -1, "filename": "nobot-0.3.tar.gz", "has_sig": false, "md5_digest": "03b4375a8de0f05061944fdadbc2ab28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9080, "upload_time": "2015-11-06T06:37:47", "url": "https://files.pythonhosted.org/packages/aa/35/ceeddfcec6b9ad36b4d88875be67211165307ff89db664facd6eb4a8c4e0/nobot-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "edd2432bdde38724d210ef829b1f1f4d", "sha256": "8784e1b1baa62324534944f04cb2821185687ee6a1b3f4db7a1cedbc435f8a95" }, "downloads": -1, "filename": "nobot-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "edd2432bdde38724d210ef829b1f1f4d", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 11964, "upload_time": "2016-01-20T12:46:03", "url": "https://files.pythonhosted.org/packages/6a/1b/44b8a936eb1724d67ab8dff517b74fff7f7a5ab537cd82fc174c29f73957/nobot-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad9370b9338fe56ec52cb6dfe4844f9c", "sha256": "c9d5841d01d1d14f49ca8f9f808240b0781e6dcc1d78bfa980a17d8c69e6151f" }, "downloads": -1, "filename": "nobot-0.4.tar.gz", "has_sig": false, "md5_digest": "ad9370b9338fe56ec52cb6dfe4844f9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9210, "upload_time": "2016-01-20T12:45:28", "url": "https://files.pythonhosted.org/packages/9d/dc/bac7d862c3af57217472874abde76e3b0d77bdbce3fc1c1c08f63a68e341/nobot-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "c3e863e782431e2cdfbc1e1de85fb91f", "sha256": "e835abfe9b813fe5697475e8fc0dfbaf9c7572f4574e3d2d7e5114bc84f4cf0b" }, "downloads": -1, "filename": "nobot-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c3e863e782431e2cdfbc1e1de85fb91f", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 12075, "upload_time": "2016-01-20T17:54:21", "url": "https://files.pythonhosted.org/packages/94/82/836bfc1f2c1a62ae34008c1b0003ac44bfab8843aa38b4c581b8843fc14a/nobot-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4780470c7aec24dd6c45d1986797d2b", "sha256": "bae7bc785e81d4edcc7e7e66457697995c47475e0a2aba405b3a5cb82697e880" }, "downloads": -1, "filename": "nobot-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c4780470c7aec24dd6c45d1986797d2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9328, "upload_time": "2016-01-20T17:54:12", "url": "https://files.pythonhosted.org/packages/62/73/e83242cfa8ca0229b54b397bfe995c1a4690ff278b5555f31556d07117b8/nobot-0.4.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "ed476a34a350435002c10f146ea7e5be", "sha256": "fa0582d81f562cd5b61e241005feb3f51548fe3fc165aed292952ff78676e28a" }, "downloads": -1, "filename": "nobot-0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ed476a34a350435002c10f146ea7e5be", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12528, "upload_time": "2018-07-03T10:55:12", "url": "https://files.pythonhosted.org/packages/1b/69/415515fb6d632916dd2a3f410345b43fbf652ddb3641e5fee4caa99fc0be/nobot-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a67abf6e2800de0b1208e2fbcd8e0ac6", "sha256": "0a1c43a74f1c55f06cf2eb98cb472762dbdd7df5eb693d438c9fb42cfcfe79e5" }, "downloads": -1, "filename": "nobot-0.5.tar.gz", "has_sig": false, "md5_digest": "a67abf6e2800de0b1208e2fbcd8e0ac6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9623, "upload_time": "2018-07-03T10:55:09", "url": "https://files.pythonhosted.org/packages/f8/45/e3240d9674c5d7cf20f3773a7aff549f9cdc6efeb65ce107bdf458985b76/nobot-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ed476a34a350435002c10f146ea7e5be", "sha256": "fa0582d81f562cd5b61e241005feb3f51548fe3fc165aed292952ff78676e28a" }, "downloads": -1, "filename": "nobot-0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ed476a34a350435002c10f146ea7e5be", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12528, "upload_time": "2018-07-03T10:55:12", "url": "https://files.pythonhosted.org/packages/1b/69/415515fb6d632916dd2a3f410345b43fbf652ddb3641e5fee4caa99fc0be/nobot-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a67abf6e2800de0b1208e2fbcd8e0ac6", "sha256": "0a1c43a74f1c55f06cf2eb98cb472762dbdd7df5eb693d438c9fb42cfcfe79e5" }, "downloads": -1, "filename": "nobot-0.5.tar.gz", "has_sig": false, "md5_digest": "a67abf6e2800de0b1208e2fbcd8e0ac6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9623, "upload_time": "2018-07-03T10:55:09", "url": "https://files.pythonhosted.org/packages/f8/45/e3240d9674c5d7cf20f3773a7aff549f9cdc6efeb65ce107bdf458985b76/nobot-0.5.tar.gz" } ] }