jenkins-bot submitted this change.

View Change

Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[IMPR] Allow querying deleted revs without the deletedhistory right

API restiction revised in MW 1.34
I84dc138aa310b601423161d1140891d47f8c64d8

Login not required after T71283

Change-Id: Ie2e8258e9e00170821f9fe817093e03d69a6c706
---
M pywikibot/site/__init__.py
1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/pywikibot/site/__init__.py b/pywikibot/site/__init__.py
index 8a4200e..64789b5 100644
--- a/pywikibot/site/__init__.py
+++ b/pywikibot/site/__init__.py
@@ -4771,19 +4771,25 @@
old_props.append('token')
return old_props

+ # set default properties
+ prop = kwargs.pop('prop',
+ ['ids', 'user', 'comment', 'flags', 'timestamp'])
+ if content:
+ prop.append('content')
+
if start and end:
self.assert_valid_iter_params('deletedrevs', start, end, reverse)

- if not self.logged_in():
- self.login()
-
err = ('deletedrevs: User:{} not authorized to '
.format(self.user()))
if not self.has_right('deletedhistory'):
- raise Error(err + 'access deleted revisions.')
- if content:
- if not self.has_right('undelete'):
- raise Error(err + 'view deleted content.')
+ if self.mw_version < '1.34':
+ raise Error(err + 'access deleted revisions.')
+ if 'comment' in prop or 'parsedcomment' in prop:
+ raise Error(err + 'access comments of deleted revisions.')
+ if ('content' in prop and not (self.has_right('deletedtext')
+ or self.has_right('undelete'))):
+ raise Error(err + 'view deleted content.')

revids = kwargs.pop('revids', None)
if not (bool(titles) ^ (revids is not None)):
@@ -4809,14 +4815,7 @@

gen.request[pre + 'start'] = start
gen.request[pre + 'end'] = end
-
- # handle properties
- prop = kwargs.pop('prop',
- ['ids', 'user', 'comment', 'flags', 'timestamp'])
- if content:
- prop.append('content')
- prop = handle_props(prop)
- gen.request[pre + 'prop'] = prop
+ gen.request[pre + 'prop'] = handle_props(prop)

# handle other parameters like user
for k, v in kwargs.items():

To view, visit change 623226. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ie2e8258e9e00170821f9fe817093e03d69a6c706
Gerrit-Change-Number: 623226
Gerrit-PatchSet: 9
Gerrit-Owner: JJMC89 <JJMC89.Wikimedia@gmail.com>
Gerrit-Reviewer: Matěj Suchánek <matejsuchanek97@gmail.com>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged