def __call__(self, wikiarchivo): puntajes = {} for enlace in self.capturar.finditer(wikiarchivo.html): data = enlace.groupdict() # descartamos por clase y por comienzo del link clase = data['class'] if clase in ('image', 'internal'): continue # decodificamos y unquoteamos lnk = data['href'] try: lnk = unquote(lnk).decode('utf8') except UnicodeDecodeError: print "ERROR: problemas al unquotear/decodear el link", repr(lnk) continue namespace, _ = utiles.separaNombre(lnk) if namespace is not None and not config.NAMESPACES.get(namespace): continue # "/" are not really stored like that in disk, they are replaced # by the SLASH word lnk = lnk.replace("/", "SLASH") puntajes[lnk] = puntajes.get(lnk, 0) + 1 # sacamos el "auto-bombo" if wikiarchivo.url in puntajes: del puntajes[wikiarchivo.url] return (0, puntajes.items())
def __call__(self, wikiarchivo): (namespace, restonom) = utiles.separaNombre(wikiarchivo.url) # print 'Namespace:', repr(namespace) # no da puntaje per se, pero invalida segun namespace if namespace is None or config.NAMESPACES.get(namespace) or \ mustInclude(wikiarchivo.url): # print '[válido]' return (0, []) else: # print '[inválido]' return (None, [])