Ladsgroup has uploaded a new change for review.
https://gerrit.wikimedia.org/r/156732
Change subject: Add wrapper for new output of Wikidata
......................................................................
Add wrapper for new output of Wikidata
Bug 70069
Change-Id: Ief6649e7e92b627de484aeebde6c152d0afed7e6
---
M wikipedia.py
1 file changed, 32 insertions(+), 7 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/pywikibot/compat
refs/changes/32/156732/1
diff --git a/wikipedia.py b/wikipedia.py
index 2823641..5f281a6 100644
--- a/wikipedia.py
+++ b/wikipedia.py
@@ -4442,6 +4442,26 @@
items = self.get()
return int(self.title()[1:])
+ def wrapper(self):
+ if isinstance(self._contents.get('claims', {}), list):
+ return
+ old_dict = self._contents
+ new_dict = {'links': {}, 'claims': [], 'descriptions': [], 'label': []}
+ for site_name in old_dict.get('sitelinks', []):
+ new_dict['links'][site_name] = {}
+ new_dict['links'][site_name]['name'] =
old_dict['sitelinks'][site_name].get('title')
+ new_dict['links'][site_name]['badges'] =
old_dict['sitelinks'][site_name].get('badges')
+ for claim_name in old_dict.get('claims'):
+ for claim in old_dict['claims'][claim_name]:
+ new_claim = {'m': ['value', int(claim_name[1:])]}
+ new_claim['refs'] = claim.get('references', [])
+ new_claim['g'] = claim['id']
+ new_claim['m'].append(claim.get('mainsnak',
{}).get('datavalue', {}).get('value'))
+ new_dict['claims'].append(new_claim)
+ new_dict['descriptions'] = old_dict['descriptions']
+ new_dict['label'] = old_dict['labels']
+ self._contents = new_dict
+
def setSitelink(self, page, summary=""):
"""Set a Sitelink for a Datapage.
@param page: the site to link to
@@ -5046,14 +5066,18 @@
except AttributeError:
raise SectionError # Page has no section by this name
self._contents = json.loads(pagetext)
- if self._contents['entity'][0] == 'item':
- self._title = "Q"
- elif self._contents['entity'][0] == 'property':
- self._title = "P"
+ if not self._contents.get('id'):
+ if self._contents['entity'][0] == 'item':
+ self._title = "Q"
+ elif self._contents['entity'][0] == 'property':
+ self._title = "P"
+ else:
+ raise RuntimeError("unknown type: %s call User:Ladsgroup to
fix "
+ "this" % self._contents['entity'][0])
+ self._title += str(self._contents['entity'][1])
else:
- raise RuntimeError("unknown type: %s call User:Ladsgroup to fix "
- "this" % self._contents['entity'][0])
- self._title += str(self._contents['entity'][1])
+ self._title = self._contents['id']
+ self.wrapper()
return self._contents
@deprecate_arg("get", None)
@@ -5118,6 +5142,7 @@
else:
pagetext = super(DataPage, self).get(*args, **kwargs)
self._contents = json.loads(pagetext)
+ self.wrapper()
return self._contents
def isEmpty(self):
--
To view, visit https://gerrit.wikimedia.org/r/156732
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ief6649e7e92b627de484aeebde6c152d0afed7e6
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/compat
Gerrit-Branch: master
Gerrit-Owner: Ladsgroup <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits