XZise has uploaded a new change for review. https://gerrit.wikimedia.org/r/247555
Change subject: [FEAT] site: Dynamically determine Wikibase repo ...................................................................... [FEAT] site: Dynamically determine Wikibase repo Instead of statically defining the Wikibase repository in the family, it can query the API to determine the repository without user input. Bug: T85331 Change-Id: I5568d848a369c8af36a40c193e2409071e23a5fb --- M pywikibot/site.py 1 file changed, 16 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core refs/changes/55/247555/1 diff --git a/pywikibot/site.py b/pywikibot/site.py index 16d3e99..f67da05 100644 --- a/pywikibot/site.py +++ b/pywikibot/site.py @@ -2654,10 +2654,22 @@ def data_repository(self): """Return Site object for data repository e.g. Wikidata.""" - code, fam = self.shared_data_repository() - if bool(code or fam): - return pywikibot.Site(code, fam, self.username(), - interface="DataSite") + def handle_warning(mod, warning): + return (mod == 'query' and + warning == "Unrecognized value for parameter 'meta': " + "wikibase") + + req = self._simple_request(action='query', meta='wikibase') + req._warning_handler = handle_warning + data = req.submit() + if 'query' in data and 'wikibase' in data['query']: + data = data['query']['wikibase']['repo']['url'] + return pywikibot.Site( + url=data['base'] + data['scriptpath'] + '/index.php', + user=self.username(), interface='DataSite') + else: + assert 'warnings' in data + return None def is_image_repository(self): """Return True if Site object is the image repository.""" -- To view, visit https://gerrit.wikimedia.org/r/247555 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5568d848a369c8af36a40c193e2409071e23a5fb Gerrit-PatchSet: 1 Gerrit-Project: pywikibot/core Gerrit-Branch: master Gerrit-Owner: XZise <commodorefabia...@gmx.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits