Metadata-Version: 2.1
Name: django-puzzlecaptcha
Version: 0.1.1
Summary: PuzzleCaptcha: Simplified Math CAPTCHA Using Pillow Image Library
License: MIT
Keywords: django,recaptcha,captcha,pillow,django-captcha
Author: Suraj Singh Bisht
Author-email: surajsinghbisht054@gmail.com
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: django (>=4.2)
Requires-Dist: numpy (>=2)
Requires-Dist: pillow (>=10)
Description-Content-Type: text/markdown

# django-puzzlecaptcha
PuzzleCaptcha: Simplified Math CAPTCHA Using Pillow Image Library

![Preview](https://raw.githubusercontent.com/SSB-054/django-puzzlecaptcha/main/img/preview.png)



## Features

- Easy integration with Django projects
- Use pillow & numpy to generate image
- Customizable configuration

## Installation

### 1. Install the Package

```bash
pip install django-puzzlecaptcha
```

### 2. Configure Django Settings

Add `puzzlecaptcha` to your `INSTALLED_APPS`:

```python
INSTALLED_APPS = [
    ...
    'puzzlecaptcha',
    ...
]
```

### 3. Configuration
In your `settings.py`, you can customize the puzzlecaptcha behavior:
```
PUZZLECAPTCHA = {
    "CAPTCHA_FONT_SIZE": 35,
    "CAPTCHA_IMAGE_SIZE": (150, 50),
    "CAPTCHA_NOISE_LINES": 20,
    "CAPTCHA_NOISE_LINES_WIDTH": 2,
    "CAPTCHA_NOISE_COLOR": "black",
    "CAPTCHA_FOREGROUND_COLOR": "black",
    "CAPTCHA_BACKGROUND_COLOR": "white",
    "CAPTCHA_CACHE_PREFIX": "puzzlecaptcha",
    "CAPTCHA_CACHE_BACKEND": "default",
    "CAPTCHA_TIMEOUT": 300,
}
```

### 4. To Enable on Admin Login Form (Optional)
In your project's `urls.py`:

```python
from puzzlecaptcha.forms import AdminAuthenticationForm

admin.site.login_form = AdminAuthenticationForm
admin.site.login_template = 'puzzlecaptcha/admin_login.html'

urlpatterns = [
    path("admin/", admin.site.urls),
    ....
]
```

## Usage Example

```python
from puzzlecaptcha.field import MathCaptchaField

class AuthenticationForm(form.Form):
    captcha = MathCaptchaField()
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

MIT License

## Support

If you encounter any issues or have questions, please [open an issue](https://github.com/SSB-054/django-puzzlecaptcha/issues) on GitHub.

