[Pywikipedia-l] SVN: [6103] trunk/pywikipedia/interwiki.py
a_engels at svn.wikimedia.org
a_engels at svn.wikimedia.org
Sun Nov 16 11:53:14 UTC 2008
Revision: 6103
Author: a_engels
Date: 2008-11-16 11:53:14 +0000 (Sun, 16 Nov 2008)
Log Message:
-----------
allow giving up on a page when asked about a disambiguation mismatch
Modified Paths:
--------------
trunk/pywikipedia/interwiki.py
Modified: trunk/pywikipedia/interwiki.py
===================================================================
--- trunk/pywikipedia/interwiki.py 2008-11-16 11:29:38 UTC (rev 6102)
+++ trunk/pywikipedia/interwiki.py 2008-11-16 11:53:14 UTC (rev 6103)
@@ -671,7 +671,7 @@
return True
return False
- def disambigMismatch(self, page):
+ def disambigMismatch(self, page, counter):
"""
Checks whether or not the given page has the another disambiguation
status than the origin page.
@@ -699,19 +699,22 @@
wikipedia.output(u"NOTE: Ignoring non-disambiguation page %s for %s because disambiguation page %s has already been found." % (page.aslink(True), self.originPage.aslink(True), self.getFoundDisambig(page.site()).aslink(True)))
return (True, None)
else:
- choice = wikipedia.inputChoice('WARNING: %s is a disambiguation page, but %s doesn\'t seem to be one. Follow it anyway?' % (self.originPage.aslink(True), page.aslink(True)), ['Yes', 'No', 'Add an alternative'], ['y', 'n', 'a'])
+ choice = wikipedia.inputChoice('WARNING: %s is a disambiguation page, but %s doesn\'t seem to be one. Follow it anyway?' % (self.originPage.aslink(True), page.aslink(True)), ['Yes', 'No', 'Add an alternative', 'Give up'], ['y', 'n', 'a', 'g'])
elif not self.originPage.isDisambig() and page.isDisambig():
if self.getFoundNonDisambig(page.site()):
wikipedia.output(u"NOTE: Ignoring disambiguation page %s for %s because non-disambiguation page %s has already been found." % (page.aslink(True), self.originPage.aslink(True), self.getFoundNonDisambig(page.site()).aslink(True)))
return (True, None)
else:
- choice = wikipedia.inputChoice('WARNING: %s doesn\'t seem to be a disambiguation page, but %s is one. Follow it anyway?' % (self.originPage.aslink(True), page.aslink(True)), ['Yes', 'No', 'Add an alternative'], ['y', 'n', 'a'])
+ choice = wikipedia.inputChoice('WARNING: %s doesn\'t seem to be a disambiguation page, but %s is one. Follow it anyway?' % (self.originPage.aslink(True), page.aslink(True)), ['Yes', 'No', 'Add an alternative', 'Give up'], ['y', 'n', 'a', 'g'])
if choice == 'n':
return (True, None)
elif choice == 'a':
newHint = wikipedia.input(u'Give the alternative for language %s, not using a language code:' % page.site().language())
alternativePage = wikipedia.Page(page.site(), newHint)
return (True, alternativePage)
+ elif choice == 'g':
+ self.makeForcedStop(counter)
+ return (True, None)
# We can follow the page.
return (False, None)
@@ -821,7 +824,7 @@
#except wikipedia.SectionError:
# wikipedia.output(u"NOTE: section %s does not exist" % page.aslink())
else:
- (skip, alternativePage) = self.disambigMismatch(page)
+ (skip, alternativePage) = self.disambigMismatch(page, counter)
if skip:
wikipedia.output(u"NOTE: ignoring %s and its interwiki links" % page.aslink(True))
if page in self.done: #XXX: Ugly bugfix - the following line has reportedly thrown "ValueError: list.remove(x): x not in list"
More information about the Pywikipedia-l
mailing list