Revision: 4858 Author: rotem Date: 2008-01-12 16:05:55 +0000 (Sat, 12 Jan 2008)
Log Message: ----------- (feature request 1867327) Adding support for [a]all option on deletion and protection (per site), and several fixes.
Modified Paths: -------------- trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2008-01-12 15:39:27 UTC (rev 4857) +++ trunk/pywikipedia/wikipedia.py 2008-01-12 16:05:55 UTC (rev 4858) @@ -1940,8 +1940,11 @@ reason = input(u'Please enter a reason for the deletion:') reason = reason.encode(self.site().encoding()) answer = 'y' - if prompt: - answer = inputChoice(u'Do you want to delete %s?' % self.aslink(forceInterwiki = True), ['Yes', 'No'], ['y', 'N'], 'N') + if prompt and not hasattr(self.site(), '_noDeletePrompt'): + answer = inputChoice(u'Do you want to delete %s?' % self.aslink(forceInterwiki = True), ['Yes', 'No', 'All'], ['Y', 'N', 'A'], 'N') + if answer in ['a', 'A']: + answer = 'y' + self.site()._noDeletePrompt = True if answer in ['y', 'Y']: host = self.site().hostname() address = self.site().delete_address(self.urlname()) @@ -2079,7 +2082,6 @@ """ if throttle: put_throttle() - output(u'Undeleting...')
address = self.site().undelete_address() self.site().forceLogin(sysop = True) @@ -2099,7 +2101,9 @@
self._deletedRevs = None #TODO: Check for errors below (have we succeeded? etc): - return self.site().postForm(address,formdata,sysop=True) + result = self.site().postForm(address,formdata,sysop=True) + output(u'Page %s undeleted' % self.aslink()) + return result
def protect(self, edit='sysop', move='sysop', create='sysop', unprotect=False, reason=None, prompt=True, throttle=True): @@ -2119,11 +2123,14 @@ if throttle: put_throttle() if reason == None: - reason = input(u'Please enter a reason for the (un)protection:') + reason = input(u'Please enter a reason for the change of the protection level:') reason = reason.encode(self.site().encoding()) answer = 'y' - if prompt: - answer = inputChoice(u'Do you want to (un)protect %s?' % self.aslink(forceInterwiki = True), ['Yes', 'No'], ['y', 'N'], 'N') + if prompt and not hasattr(self.site(), '_noProtectPrompt'): + answer = inputChoice(u'Do you want to change the protection level of %s?' % self.aslink(forceInterwiki = True), ['Yes', 'No', 'All'], ['Y', 'N', 'A'], 'N') + if answer in ['a', 'A']: + answer = 'y' + self.site()._noProtectPrompt = True if answer in ['y', 'Y']: host = self.site().hostname()
@@ -2154,11 +2161,11 @@ data, response = self.site().postForm(address, predata, sysop = True)
if not response: - output(u'Changed protection level of page %s.' % self) + output(u'Changed protection level of page %s.' % self.aslink()) return True else: #Normally, we expect a 302 with no data, so this means an error - output(u'Failed to change protection level of page %s:' % self) + output(u'Failed to change protection level of page %s:' % self.aslink()) output(data) return False