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

Reply via email to