/django-simple-spam-blocker

Simple spam blocker for Django

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Django Simple Spam Blocker

https://secure.travis-ci.org/moqada/django-simple-spam-blocker.png?branch=master

Django Simple Spam Blocker is blocking spam by regular expression.

Filtering the following matters.

  • Author
  • Content
  • Email
  • IP
  • Referer
  • URL
  • UserAgent

And you can edit regular expression, on Django's admin site.

Installation

  1. Add the simplespamblocker directory to your Python path.

  2. Add simplespamblocker to your INSTALLED_APPS.:

    INSTALLED_APPS = (
        # ...
        'simplespamblocker',
        # ...
    )
    
  3. Add the following middleware to your MIDDLEWARE_CLASSES.:

    MIDDLEWARE_CLASSES = (
        # ...
        'simplespamblocker.middleware.SpamBlockMiddleware',
        # ...
    )
    
  4. Add path which you wanto to block spam to SIMPLESPAMBLOCKER_PROFILES on settings.py.:

    SIMPLESPAMBLOCKER_PROFILES = (
        # Sample for django's comment framework
        (r'^/comments/post/$', {
            'method': 'post',
            'author': lambda request: request.POST.get('name', ''),
            'email': lambda request: request.POST.get('email', ''),
            'url': lambda request: request.POST.get('url', ''),
            'content': lambda request: request.POST.get('comment', ''),
        }),
    )
    
  5. Run syncdb.:

    $ python manage.py syncdb
    

    Note: When your project use South, run the following command.:

    $ python manage.py migrate simplespamblocker
    
  6. Run your server, visit admin site and edit regular expression of Option model.

Settings

SIMPLESPAMBLOCKER_PROFILES
The list of tuple -- regular expression of path and block profile --.
SIMPLESPAMBLOCKER_SPAM_TEMPLATE

A path of template file which is rendering after blocking spam This key is generated per Option model.

default: 'simplespamblocker/option/<id>'

SIMPLESPAMBLOCKER_LOGGER_NAME
Python's builtin logger name. This logger logs at blocking spam. Default value is None. (inactive)

Others

This project is Inspired by django-spaminspector.