Revision: 7851 Author: xqt Date: 2010-01-04 09:16:51 +0000 (Mon, 04 Jan 2010)
Log Message: ----------- Skip empty pages if they are not categories (fix for #2905091)
Modified Paths: -------------- trunk/pywikipedia/interwiki.py
Modified: trunk/pywikipedia/interwiki.py =================================================================== --- trunk/pywikipedia/interwiki.py 2010-01-02 12:59:20 UTC (rev 7850) +++ trunk/pywikipedia/interwiki.py 2010-01-04 09:16:51 UTC (rev 7851) @@ -1233,11 +1233,13 @@
# Register this fact at the todo-counter. counter.minus(page.site()) + # Now check whether any interwiki links should be added to the # todo list.
if not page.exists(): - pywikibot.output(u"NOTE: %s does not exist" % page.aslink(True)) + if not globalvar.quiet or pywikibot.verbose: + pywikibot.output(u"NOTE: %s does not exist. Skipping." % page.aslink(True)) if page == self.originPage: # The page we are working on is the page that does not exist. # No use in doing any work on it in that case. @@ -1254,9 +1256,11 @@ except pywikibot.InvalidTitle: # MW considers #redirect [[en:#foo]] as a redirect page, # but we can't do anything useful with such pages - pywikibot.output(u"NOTE: %s redirects to an invalid title" % page.aslink(True)) + if not globalvar.quiet or pywikibot.verbose: + pywikibot.output(u"NOTE: %s redirects to an invalid title" % page.aslink(True)) continue - pywikibot.output(u"NOTE: %s is redirect to %s" % (page.aslink(True), redirectTargetPage.aslink(True))) + if not globalvar.quiet or pywikibot.verbose: + pywikibot.output(u"NOTE: %s is redirect to %s" % (page.aslink(True), redirectTargetPage.aslink(True))) if page == self.originPage: if globalvar.initialredirect: if globalvar.contentsondisk: @@ -1274,25 +1278,38 @@ counter.minus(site, count) self.todo = PageTree() elif not globalvar.followredirect: - pywikibot.output(u"NOTE: not following redirects.") + if not globalvar.quiet or pywikibot.verbose: + pywikibot.output(u"NOTE: not following redirects.") elif page.site().family == redirectTargetPage.site().family \ and not self.skipPage(page, redirectTargetPage, counter): if self.addIfNew(redirectTargetPage, counter, page): if config.interwiki_shownew or pywikibot.verbose: pywikibot.output(u"%s: %s gives new redirect %s" % (self.originPage.aslink(), page.aslink(True), redirectTargetPage.aslink(True))) - continue + + # must be behind the page.isRedirectPage() part + # otherwise a redirect error would be raised + if page.isEmpty() and not page.isCategory(): + if not globalvar.quiet or pywikibot.verbose: + pywikibot.output(u"NOTE: %s is empty. Skipping." % page.aslink(True)) + if page == self.originPage: + for site, count in self.todo.siteCounts(): + counter.minus(site, count) + self.todo = PageTree() + self.done = PageTree() + continue
elif page.section(): + if not globalvar.quiet or pywikibot.verbose: + pywikibot.output(u"NOTE: %s is a page section. Skipping." % page.aslink(True)) continue
- # Page exists, isnt a redirect, and is a plain link (no section) - try: iw = page.interwiki() except pywikibot.NoSuchSite: - pywikibot.output(u"NOTE: site %s does not exist" % page.site()) + if not globalvar.quiet or pywikibot.verbose: + pywikibot.output(u"NOTE: site %s does not exist" % page.site()) continue
(skip, alternativePage) = self.disambigMismatch(page, counter) @@ -1347,7 +1364,8 @@ sys.exit() iw = () elif page.isEmpty() and not page.isCategory(): - pywikibot.output(u"NOTE: %s is empty; ignoring it and its interwiki links" % page.aslink(True)) + if not globalvar.quiet or pywikibot.verbose: + pywikibot.output(u"NOTE: %s is empty; ignoring it and its interwiki links" % page.aslink(True)) # Ignore the interwiki links self.done.remove(page) iw = ()