From a5453326e04363c5ac86a54037d3fabb7b0c66c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre=20Mazi=C3=A8re?= Date: Fri, 4 Nov 2011 10:11:32 +0100 Subject: [PATCH] Add MappedVirtKeyboard class MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is useful for virtual keyboard based on the usemap attribute of an IMG tag Signed-off-by: Pierre Mazière --- weboob/tools/captcha/virtkeyboard.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/weboob/tools/captcha/virtkeyboard.py b/weboob/tools/captcha/virtkeyboard.py index bcf99a36..72ab98a3 100644 --- a/weboob/tools/captcha/virtkeyboard.py +++ b/weboob/tools/captcha/virtkeyboard.py @@ -122,3 +122,19 @@ class VirtKeyboard(object): matrix[x,y]=self.pixar[self.coords[i][0]+x,self.coords[i][1]+y] img.save(dir+"/"+self.md5[i]+".png") +class MappedVirtKeyboard(VirtKeyboard): + def __init__(self,file,document,img_element,color): + map_id=img_element.attrib.get("usemap")[1:] + map=document.find("//map[@id='"+map_id+"']") + if map is None: + map=document.find("//map[@name='"+map_id+"']") + + coords={} + for area in map.getiterator("area"): + code=area.attrib.get("onclick") + area_coords=[] + for coord in area.attrib.get("coords").split(','): + area_coords.append(int(coord)) + coords[code]=tuple(area_coords) + + VirtKeyboard.__init__(self,file,coords,color)