http://www.mediawiki.org/wiki/Special:Code/pywikipedia/9900
Revision: 9900 Author: drtrigon Date: 2012-02-16 20:41:18 +0000 (Thu, 16 Feb 2012) Log Message: ----------- bug fix; 'live_version' did not work with e.g. arwiki because of IndexError raised
Modified Paths: -------------- trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2012-02-16 18:02:32 UTC (rev 9899) +++ trunk/pywikipedia/wikipedia.py 2012-02-16 20:41:18 UTC (rev 9900) @@ -7546,14 +7546,18 @@ versionpage = self.getUrl(self.get_address("Special:Version")) htmldata = BeautifulSoup(versionpage, convertEntities="html") # try to find the live version + versionlist = [] # 1st try is for mw < 1.17wmf1 - # 2nd try is for mw 1.17wmf1 + versionlist.append(lambda: htmldata.findAll( + text="MediaWiki")[1].parent.nextSibling ) + # 2nd try is for mw >=1.17wmf1 + versionlist.append(lambda: htmldata.body.table.findAll( + 'td')[1].contents[0] ) # 3rd uses family file which is not live - for versionstring in [htmldata.findAll( - text="MediaWiki")[1].parent.nextSibling, - htmldata.body.table.findAll( - 'td')[1].contents[0], - self.family.version(self.lang)]: + versionlist.append(lambda: self.family.version(self.lang) ) + for versionfunc in versionlist: + try: versionstring = versionfunc() + except: continue m = re.match(PATTERN, str(versionstring).strip()) if m: break else:
pywikipedia-svn@lists.wikimedia.org