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():

--
To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/623226
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ie2e8258e9e00170821f9fe817093e03d69a6c706
Gerrit-Change-Number: 623226
Gerrit-PatchSet: 9
Gerrit-Owner: JJMC89 <[email protected]>
Gerrit-Reviewer: Matěj Suchánek <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits

Reply via email to