Revision: 4734 Author: rotem Date: 2007-12-18 18:09:38 +0000 (Tue, 18 Dec 2007)
Log Message: ----------- (bug 1852173) Fix a problem of a very special case in Allpages, when no pages of the requested type (redirect/non-redirect) are found, and the start parameter remains and gets double-encoded.
Modified Paths: -------------- trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2007-12-18 17:48:42 UTC (rev 4733) +++ trunk/pywikipedia/wikipedia.py 2007-12-18 18:09:38 UTC (rev 4734) @@ -4444,8 +4444,14 @@ if (not includeredirects) or includeredirects == 'only': # Maybe there were only so few because the rest is or is not a redirect R = re.compile('title ?="(.*?)"') - if len(R.findall(returned_html)) < 100: + allLinks = R.findall(returned_html) + if len(allLinks) < 100: break + elif n == 0: + # In this special case, no pages of the requested type + # were found, and "start" will remain and be double-encoded. + # Use the last page as the start of the next page. + start = Page(self, allLinks[-1]).titleWithoutNamespace() + '!' else: break
pywikipedia-l@lists.wikimedia.org