jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/623235 )
Change subject: [FEAT] Add BasePage.has_deleted_revisions() ......................................................................
[FEAT] Add BasePage.has_deleted_revisions()
Also allow passing arguments to site.deletedrevs() in other deleted revision methods via kwargs.
Depends-On: Ie2e8258e9e00170821f9fe817093e03d69a6c706 Change-Id: I91dcfcd00aba6973d21faed38357aa88976f3cf6 --- M pywikibot/page/__init__.py 1 file changed, 11 insertions(+), 4 deletions(-)
Approvals: JJMC89: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/page/__init__.py b/pywikibot/page/__init__.py index bee913d..08dfa29 100644 --- a/pywikibot/page/__init__.py +++ b/pywikibot/page/__init__.py @@ -1869,8 +1869,15 @@ self.text = template + self.text self.save(summary=reason)
+ def has_deleted_revisions(self) -> bool: + """Return True if the page has deleted revisions.""" + if not hasattr(self, '_has_deleted_revisions'): + gen = self.site.deletedrevs(self, total=1, prop=['ids']) + self._has_deleted_revisions = bool(list(gen)) + return self._has_deleted_revisions + @deprecated_args(step=True) - def loadDeletedRevisions(self, total=None): + def loadDeletedRevisions(self, total=None, **kwargs): """ Retrieve deleted revisions for this Page.
@@ -1883,13 +1890,13 @@ """ if not hasattr(self, '_deletedRevs'): self._deletedRevs = {} - for item in self.site.deletedrevs(self, total=total): + for item in self.site.deletedrevs(self, total=total, **kwargs): for rev in item.get('revisions', []): self._deletedRevs[rev['timestamp']] = rev yield rev['timestamp']
@deprecated_args(retrieveText='content') - def getDeletedRevision(self, timestamp, content=False) -> list: + def getDeletedRevision(self, timestamp, content=False, **kwargs) -> List: """ Return a particular deleted revision by timestamp.
@@ -1905,7 +1912,7 @@ return self._deletedRevs[timestamp]
for item in self.site.deletedrevs(self, start=timestamp, - content=content, total=1): + content=content, total=1, **kwargs): # should only be one item with one revision if item['title'] == self.title: if 'revisions' in item:
pywikibot-commits@lists.wikimedia.org