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))
def report(self): output(u"{}→ {}… {}/{} ({}%)\r".format( u" "*self.indent, self.statement, self.processed, self.total, self.processed*100/self.total, ))
def report(self): output(u"{}→ {}… {}/{} ({}%)\r".format( u" " * self.indent, self.statement, self.processed, self.total, self.processed * 100 / self.total, ))
def done(self): if self.total: output(u"{}✓ {}. {}/{} ({}%)\n".format( u" "*self.indent, self.statement, self.processed, self.total, self.processed*100/self.total, ))
def done(self): if self.total: output(u"{}✓ {}. {}/{} ({}%)\n".format( u" " * self.indent, self.statement, self.processed, self.total, self.processed * 100 / self.total, ))
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
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
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))
def done(self): output(u"{}✓ {}.\n".format(u" "*self.indent, self.statement))
def report(self): output(u"{}→ {}…\r".format(u" "*self.indent, self.statement))
def report(self): output(u"{}→ {}…\r".format(u" " * self.indent, self.statement))
def done(self): output(u"{}✓ {}.\n".format(u" " * self.indent, self.statement))