Example #1
0
    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())
Example #2
0
    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, [])