Page MenuHomePhabricator

followup_patch.patch

Authored By
bzimport
Nov 22 2014, 2:31 AM
Size
3 KB
Referenced Files
None
Subscribers
None

followup_patch.patch

Index: wikipedia.py
===================================================================
--- wikipedia.py (Revision 8985)
+++ wikipedia.py (Arbeitskopie)
@@ -4081,13 +4081,12 @@
def headerDone(self, header):
# Verify version
- version = header.generator
- p = re.compile('^MediaWiki (.+)$')
- m = p.match(version)
- if m:
- version = m.group(1)
+ try:
+ version = self.site.live_version(header)
if version != self.site.version():
output(u'WARNING: Family file %s contains version number %s, but it should be %s' % (self.site.family.name, self.site.version(), version))
+ except Error:
+ pass
# Verify case
if self.site.nocapitalize:
@@ -7240,7 +7239,7 @@
"""
return self.family.versionnumber(self.lang)
- def live_version(self):
+ def live_version(self, header=None):
"""Return the 'real' version number found on [[Special:Version]]
Return value is a tuple (int, int, str) of the major and minor
@@ -7249,18 +7248,24 @@
"""
global htmldata
if not hasattr(self, "_mw_version"):
- PATTERN = r"^(?:: )?([0-9]+)\.([0-9]+)(.*)$"
- versionpage = self.getUrl(self.get_address("Special:Version"))
- htmldata = BeautifulSoup(versionpage, convertEntities="html")
+ PATTERN = r"^(?:MediaWiki )?(?:: )?([0-9]+)\.([0-9]+)(.*)$"
# try to find the live version
# 1st try is for mw < 1.17wmf1
# 2nd try is for mw 1.17wmf1
- # 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)]:
+ # 3rd uses generator meta tag from page
+ # 4rd uses family file which is not live
+ if header is None:
+ versionpage = self.getUrl(self.get_address("Special:Version"))
+ htmldata = BeautifulSoup(versionpage, convertEntities="html")
+ versionlist = [htmldata.findAll(
+ text="MediaWiki")[1].parent.nextSibling,
+ htmldata.body.table.findAll(
+ 'td')[1].contents[0],
+ htmldata.header.generator,
+ self.family.version(self.lang)]
+ else:
+ versionlist = [header.generator,]
+ for versionstring in versionlist:
m = re.match(PATTERN, str(versionstring).strip())
if m: break
else:
Index: botlist.py
===================================================================
--- botlist.py (Revision 8985)
+++ botlist.py (Arbeitskopie)
@@ -88,7 +88,7 @@
pywikibot.put_throttle() # It actually is a get, but a heavy one.
m1 = True
offset = ''
- if site.versionnumber == 17:
+ if site.versionnumber >= 17:
PATTERN = u'<li>(.*?) *\((.*?),\s(.*?)\)(?:.*?)</li>'
else:
PATTERN = u'<li>(.*?) *\((.*?),\s(.*?)\)</li>'

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
11910
Default Alt Text
followup_patch.patch (3 KB)

Event Timeline