Beispiel #1
0
    def parse(self, pages):

        reporter = ProgressReporter(u"Analizando o contido das páxinas", len(pages))
        pageContentLoader = PageContentLoader(pages)
        for page, content, source in pageContentLoader.run():
            for entry in self.parsePageContent(page, content, source):
                yield entry
            reporter.increase()
        reporter.done()
        self.pagesWithoutContent = self.pagesWithoutContent.union(pageContentLoader.pagesWithoutContent())

        reporter = ProgressReporter(u"Analizando a última versión das páxinas con contido problemático na caché", len(self.pagesWithWrongContentInCache))
        pageContentLoader = PageContentLoader(self.pagesWithWrongContentInCache, forceWiki=True)
        for page, content, source in pageContentLoader.run():
            for entry in self.parsePageContent(page, content, source):
                yield entry
            reporter.increase()
        reporter.done()

        pageNamesWithWrongContentOnline = set()
        for entry in TitleParser().parse(self.pagesWithWrongContentOnline, u"Obtendo o nome das páxinas con contido problemático na súa última versión"):
            yield entry
            pageNamesWithWrongContentOnline.add(entry)
        for pageName in pageNamesWithWrongContentOnline:
            output(u"  • {}\n".format(pageName))

        pageNamesWithoutContent = set()
        for entry in TitleParser().parse(self.pagesWithoutContent, u"Obtendo o nome das páxinas sen contido"):
            yield entry
            pageNamesWithoutContent.add(entry)
        for pageName in pageNamesWithoutContent:
            output(u"  • {}\n".format(pageName))
Beispiel #2
0
 def report(self):
     output(u"{}→ {}… {}/{} ({}%)\r".format(
         u" "*self.indent,
         self.statement,
         self.processed,
         self.total,
         self.processed*100/self.total,
     ))
Beispiel #3
0
 def report(self):
     output(u"{}→ {}… {}/{} ({}%)\r".format(
         u" " * self.indent,
         self.statement,
         self.processed,
         self.total,
         self.processed * 100 / self.total,
     ))
Beispiel #4
0
 def done(self):
     if self.total:
         output(u"{}✓ {}. {}/{} ({}%)\n".format(
             u" "*self.indent,
             self.statement,
             self.processed,
             self.total,
             self.processed*100/self.total,
         ))
Beispiel #5
0
 def done(self):
     if self.total:
         output(u"{}✓ {}. {}/{} ({}%)\n".format(
             u" " * self.indent,
             self.statement,
             self.processed,
             self.total,
             self.processed * 100 / self.total,
         ))
Beispiel #6
0
    def run(self):

        if self.ignoreCategoryNames:
            output(u"• Obtendo unha lista de páxinas a ignorar…\n")
            for categoryName in self.ignoreCategoryNames:
                if categoryName not in self.visitedCategoryNames:
                    reporter = TaskInProgressReporter(u"Cargando o contido da categoría «{}»".format(categoryName), indent=2)
                    self.loadPagesFromCategoryIntoIgnoreList(pywikibot.Category(self.site, categoryName))
                    reporter.done()

        if self.categoryNames:
            output(u"• Obtendo páxinas da lista de categorías…\n")
            for categoryName in self.categoryNames:
                if categoryName not in self.visitedCategoryNames:
                    reporter = TaskInProgressReporter(u"Cargando o contido da categoría «{}»".format(categoryName), indent=2)
                    for page in self.loadPagesFromCategory(pywikibot.Category(self.site, categoryName), reporter):
                        yield page

        if self.categoryOfPagesNames:
            output(u"• Obtendo páxinas da lista de categorías de páxinas…\n")
            for categoryName in self.categoryOfPagesNames:
                reporter = TaskInProgressReporter(u"Cargando o contido da categoría «{}»".format(categoryName), indent=2)
                category = pywikibot.Category(self.site, categoryName)
                for page in self.loadPagesFromCategory(category, reporter):
                    yield page

        if self.categoryOfCategoriesNames:
            output(u"• Obtendo páxinas da lista de categorías de categorías…\n")
            for categoryName in self.categoryOfCategoriesNames:
                for subcategory in pywikibot.Category(self.site, categoryName).subcategories():
                    subcategoryName = subcategory.title(withNamespace=False)
                    if subcategoryName not in self.visitedCategoryNames:
                        reporter = TaskInProgressReporter(u"Cargando o contido da categoría «{}»".format(subcategoryName), indent=2)
                        for page in self.loadPagesFromCategory(subcategory, reporter):
                            yield page
Beispiel #7
0
    def run(self):

        if self.ignoreCategoryNames:
            output(u"• Obtendo unha lista de páxinas a ignorar…\n")
            for categoryName in self.ignoreCategoryNames:
                if categoryName not in self.visitedCategoryNames:
                    reporter = TaskInProgressReporter(
                        u"Cargando o contido da categoría «{}»".format(
                            categoryName),
                        indent=2)
                    self.loadPagesFromCategoryIntoIgnoreList(
                        pywikibot.Category(self.site, categoryName))
                    reporter.done()

        if self.categoryNames:
            output(u"• Obtendo páxinas da lista de categorías…\n")
            for categoryName in self.categoryNames:
                if categoryName not in self.visitedCategoryNames:
                    reporter = TaskInProgressReporter(
                        u"Cargando o contido da categoría «{}»".format(
                            categoryName),
                        indent=2)
                    for page in self.loadPagesFromCategory(
                            pywikibot.Category(self.site, categoryName),
                            reporter):
                        yield page

        if self.categoryOfPagesNames:
            output(u"• Obtendo páxinas da lista de categorías de páxinas…\n")
            for categoryName in self.categoryOfPagesNames:
                reporter = TaskInProgressReporter(
                    u"Cargando o contido da categoría «{}»".format(
                        categoryName),
                    indent=2)
                category = pywikibot.Category(self.site, categoryName)
                for page in self.loadPagesFromCategory(category, reporter):
                    yield page

        if self.categoryOfCategoriesNames:
            output(
                u"• Obtendo páxinas da lista de categorías de categorías…\n")
            for categoryName in self.categoryOfCategoriesNames:
                for subcategory in pywikibot.Category(
                        self.site, categoryName).subcategories():
                    subcategoryName = subcategory.title(withNamespace=False)
                    if subcategoryName not in self.visitedCategoryNames:
                        reporter = TaskInProgressReporter(
                            u"Cargando o contido da categoría «{}»".format(
                                subcategoryName),
                            indent=2)
                        for page in self.loadPagesFromCategory(
                                subcategory, reporter):
                            yield page
Beispiel #8
0
    def parse(self, pages):

        reporter = ProgressReporter(u"Analizando o contido das páxinas",
                                    len(pages))
        pageContentLoader = PageContentLoader(pages)
        for page, content, source in pageContentLoader.run():
            for entry in self.parsePageContent(page, content, source):
                yield entry
            reporter.increase()
        reporter.done()
        self.pagesWithoutContent = self.pagesWithoutContent.union(
            pageContentLoader.pagesWithoutContent())

        reporter = ProgressReporter(
            u"Analizando a última versión das páxinas con contido problemático na caché",
            len(self.pagesWithWrongContentInCache))
        pageContentLoader = PageContentLoader(
            self.pagesWithWrongContentInCache, forceWiki=True)
        for page, content, source in pageContentLoader.run():
            for entry in self.parsePageContent(page, content, source):
                yield entry
            reporter.increase()
        reporter.done()

        pageNamesWithWrongContentOnline = set()
        for entry in TitleParser().parse(
                self.pagesWithWrongContentOnline,
                u"Obtendo o nome das páxinas con contido problemático na súa última versión"
        ):
            yield entry
            pageNamesWithWrongContentOnline.add(entry)
        for pageName in pageNamesWithWrongContentOnline:
            output(u"  • {}\n".format(pageName))

        pageNamesWithoutContent = set()
        for entry in TitleParser().parse(
                self.pagesWithoutContent,
                u"Obtendo o nome das páxinas sen contido"):
            yield entry
            pageNamesWithoutContent.add(entry)
        for pageName in pageNamesWithoutContent:
            output(u"  • {}\n".format(pageName))
Beispiel #9
0
 def done(self):
     output(u"{}✓ {}.\n".format(u" "*self.indent, self.statement))
Beispiel #10
0
 def report(self):
     output(u"{}→ {}…\r".format(u" "*self.indent, self.statement))
Beispiel #11
0
 def report(self):
     output(u"{}→ {}…\r".format(u" " * self.indent, self.statement))
Beispiel #12
0
 def done(self):
     output(u"{}✓ {}.\n".format(u" " * self.indent, self.statement))