jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/623226 )
Change subject: [IMPR] Allow querying deleted revs without the deletedhistory right ......................................................................
[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(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
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():