diff --git a/mwclient/RELEASE-NOTES.txt b/mwclient/RELEASE-NOTES.txt index 265bac5238ad320bc8bb4973b2a809ca2576d067..3fc892f6fcdb9bf180185ad7507161ce046fbe3f 100644 --- a/mwclient/RELEASE-NOTES.txt +++ b/mwclient/RELEASE-NOTES.txt @@ -6,6 +6,8 @@ This is mwclient 0.6.3. The following are the release notes for this version. Mwclient 0.6.3 is unreleased. * Added domain parameter to login. * Applied edit fix to page_nowriteapi +* Allow arbitrary data to be passed to page.save +* Fix mwclient on WMF wikis == Changes in version 0.6.2 == Mwclient was released on 2 May 2009. diff --git a/mwclient/client.py b/mwclient/client.py index 9c125d63aa5c68ba7c19a86ce9db34185a39a5d1..a901c57ba726a7eb28e5e08c6a1e2847d34e125c 100644 --- a/mwclient/client.py +++ b/mwclient/client.py @@ -96,8 +96,11 @@ class Site(object): if self.site['generator'].startswith('MediaWiki '): version = self.site['generator'][10:].split('.') + # FIXME! Fix those awful two hacks if len(version) == 2 and version[1].endswith('alpha'): self.version = (int(version[0]), int(version[1][:-5]), 'alpha') + elif len(version) == 2 and version[1].endswith('alpha-wmf'): + self.version = (int(version[0]), int(version[1][:-5]), 'alpha-wmf') elif len(version) == 3 and 'rc' in version[2]: self.version = (int(version[0]), int(version[1]), version[2]) elif len(version) == 3: diff --git a/mwclient/page.py b/mwclient/page.py index 3a7675d1e9ee70dce11b74db27f586a52fc1e1c7..58dde4b987d982824ad2930af68be739586bcef5 100644 --- a/mwclient/page.py +++ b/mwclient/page.py @@ -108,7 +108,7 @@ class Page(object): self.edit_time = time.gmtime() return self.text - def save(self, text = u'', summary = u'', minor = False, bot = True): + def save(self, text = u'', summary = u'', minor = False, bot = True, **kwargs): if not self.site.logged_in and self.site.force_login: # Should we really check for this? raise errors.LoginError(self.site) @@ -129,6 +129,8 @@ class Page(object): if self.edit_time: data['starttimestamp'] = time.strftime('%Y%m%d%H%M%S', self.edit_time) if bot: data['bot'] = '1' + data.update(kwargs) + try: result = self.site.api('edit', title = self.name, text = text, summary = summary, token = self.get_token('edit'), @@ -143,6 +145,8 @@ class Page(object): raise errors.ProtectedPageError(self, e.code, e.info) else: raise + if result['edit'] == 'Success': + self.last_rev_time = client.parse_timestamp(result['newtimestamp']) return result['edit'] def get_expanded(self):