tweak
[mw] / src / mw / clicommands.py
index b6770042c2feba4a327bff064982a6152acf2ba7..1f90be43acd0e26f14a20faa1699704fa2ddf121 100644 (file)
@@ -186,7 +186,7 @@ class PullCommand(CommandBase):
             for pageid in response.keys():
                 pagename = response[pageid]['title']
                 
-                # is the revisions list a sorted one, should I use [0] or [-1]?
+                # XXX is the revisions list a sorted one, should I use [0] or [-1]?
                 last_wiki_rev_comment = response[pageid]['revisions'][0]['comment']
                 last_wiki_rev_user = response[pageid]['revisions'][0]['user']
                 
@@ -319,6 +319,11 @@ class CommitCommand(CommandBase):
                 if self.options.bot:
                     data['bot'] = 'bot'
                 response = self.api.call(data)
+                if 'error' in response:
+                    if 'code' in response['error']:
+                        if response['error']['code'] == 'permissiondenied':
+                            print 'Permission denied -- try running "mw login"'
+                            return
                 if response['edit']['result'] == 'Success':
                     if 'nochange' in response['edit']:
                         print 'warning: no changes detected in %s - ' \
@@ -341,6 +346,12 @@ class CommitCommand(CommandBase):
                     response = self.api.call(data)['query']['pages']
                     self.metadir.pages_add_rv(int(pageid),
                                               response[pageid]['revisions'][0])
+                    # need to write latest rev to file too, as text may be changed
+                    # such as a sig, e.g., -~ =>  -[[User:Reagle|Reagle]]
+                    with file(full_filename, 'w') as fd:
+                        data = response[pageid]['revisions'][0]['*']
+                        data = data.encode('utf-8')
+                        fd.write(data)
                     if file_num != len(status) - 1:
                         print 'waiting 3s before processing the next file'
                         time.sleep(3)

Benjamin Mako Hill || Want to submit a patch?