Mercurial > ift6266
view pycaptcha/Captcha/Visual/Tests.py~ @ 91:6696391273ab
Il y a maintenant une proba 0.2 d'effectuer des permutations. Cette nouvelle fonctionnalite demande un parametre non deterministe, ce qui fait que maintenant, les fonctions 'determined_by_complexity' ont ete abandonees. Le module se comporte comme un module normal
author | SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca> |
---|---|
date | Thu, 11 Feb 2010 09:15:42 -0500 |
parents | 4775b4195b4b |
children |
line wrap: on
line source
""" Captcha.Visual.Tests Visual CAPTCHA tests """ # # PyCAPTCHA Package # Copyright (C) 2004 Micah Dowty <micah@navi.cx> # from Captcha.Visual import Text, Backgrounds, Distortions, ImageCaptcha from Captcha import Words import random __all__ = ["PseudoGimpy", "AngryGimpy", "AntiSpam"] class PseudoGimpy(ImageCaptcha): """A relatively easy CAPTCHA that's somewhat easy on the eyes""" def getLayers(self): word = Words.defaultWordList.pick() self.addSolution(word) return [ # random.choice([ # Backgrounds.CroppedImage(), # Backgrounds.TiledImage(), # ]), Text.TextLayer(word, borderSize=1), Distortions.SineWarp(), ] class AngryGimpy(ImageCaptcha): """A harder but less visually pleasing CAPTCHA""" def getLayers(self): word = Words.defaultWordList.pick() self.addSolution(word) return [ # suppression du background # Backgrounds.TiledImage(), # Backgrounds.RandomDots(), Text.TextLayer(word, borderSize=1), Distortions.SineWarp(periodRange = (0.04, 0.07)) # Distortions.WigglyBlocks(), ] class AntiSpam(ImageCaptcha): """A fixed-solution CAPTCHA that can be used to hide email addresses or URLs from bots""" fontFactory = Text.FontFactory(20, "vera/VeraBd.ttf") defaultSize = (512,50) def getLayers(self, solution="murray@example.com"): self.addSolution(solution) textLayer = Text.TextLayer(solution, borderSize = 2, fontFactory = self.fontFactory) return [ Backgrounds.CroppedImage(), textLayer, Distortions.SineWarp(amplitudeRange = (3, 5)), ] ### The End ###