~Описание captcha :

  Автор -- Andrey Orlov

  Версия -- $Id: captcha.txt 35228 2007-11-28 10:54:43Z anton $

  URL -- $URL: https://code.keysolutions.ru/svn/ks.captcha/trunk/src/ks/captcha/captcha.txt $

  Аннотация:

        Продукт для реализации captchas

  Идея реализации:

      У продукта есть набор методов для реализации captchas::

        -- getkey - генерит случайное число, и, если его нет в словаре,
           использует в качестве ключа. Второе случайное число используется в
           качестве значения

        -- decrypt - возвращает по ключу значение из словаря

        -- banner - рисует картинку с текстом который возвращает decrypt

        -- check - проверяет, соответствуют ли входные данные данным, которые
             возвращает decrypt. Заодно удаляет ключ из словаря

    # Не так. Ключ генерится всегда, равно как и значение. Но ключ генерится
    # _новый_ т.е. такой, какого в словаре нет.
    # идея примерно такая: randomchoice(set(range(self.min,self.max)) - set(d.keys()))


      Итак принцип работы, перед рисованием картинки генерируется ключ с помощью
      getkey ну и его значение если ключа такого еще не существует.
      Затем генерится картинка с помощью banner. Пользователь видит картинку
      вводит значение которое видит на ней и пытается отправить сообщения,
      зарегестрироваться или еще чего там. Метод check проверяет соответсвие, в
      зависмости от результата проверки осуществляется нужное действие.

      # еще надо при новых обращениях прибивать ключи, которым более часа времени, время лучше
      # указывать как дополнительный параметр "interval"

      # Да, еще, словарь должен быть создан в пространстве имен модуля. НЕ В КЛАССЕ и НЕ В ОБЪЕКТЕ!

      # добавь параметр mode :), умолчание - RGB

  Интерфейсы:

      По сути у продукта он один - ICaptcha. Кроме вышеописанных методов в нем
      существуют атрибуты для настройки продукта.

        -- width - ширина картинки

        -- height - высота картинки

        -- noise - уровень зашумленности картинки

        -- secret - не применяется и зарезервирован

        -- fontsize - размер шрифта на картинке

        -- font - полный или относителный путь к шрифту

        -- format - формат картинки

        -- mimetype - mime тип картики

        -- min - минимальное значение ключа

        -- max - максимальное значение ключа

  Состав:

      нет

  Виды:

        captcha - собственно картинка

        edit.html - редактирование параметров

        addcaptcha.html - форма добавления
