Open plasticadmiral opened 11 months ago
Is there an appropriate syntax to claim an image programmatically to an item ?
When i try doing the following,
site = pwb.Site('localwiki:en') #site.login() token = pwb.data.api.Request(site=site, parameters={'action': 'query', 'meta': 'tokens'}).submit() csrf_token = token['query']['tokens']['csrftoken'] result = pwb.data.api.Request(site=site, parameters={'action': 'wbcreateclaim', 'token': csrf_token, 'entity': 'P1','property': 'P50', 'snaktype': 'value', 'datatype': 'localMedia', 'type': 'statement', 'value': {'value': 'Neo.jpg', 'type': 'localMedia'}}).submit()
I get the following error
APIError: invalid-snak: Invalid snak data. [param: action=wbcreateclaim&entity=P1&property=P50&snaktype=value&datatype=localMedia&type=statement&value=value%7Ctype&assert=user&maxlag=1&format=json&token=6caed2ab16ab837896c5a17b01d6fee7652fb29e%2B%5C; messages: [{'name': 'wikibase-api-invalid-snak', 'parameters': [], 'html': {'*': 'Invalid snak data.'}}];
When i create the claim over the web interface, the json data of the item contains the claim as the following
'claims': <class 'pywikibot.page._collections.ClaimCollection'>( { 'P50': [Claim.fromJSON(DataSite("en", "localwiki"), {'mainsnak': {'snaktype': 'value', 'property': 'P50', 'datatype': 'localMedia', 'datavalue': {'value': 'Jpg3.jpg', 'type': 'localMedia'} }, 'type': 'statement', 'id': 'P1$ceabb6c6-4ba1-f31b-d2e1-b18cdb78050e', 'rank': 'normal'}), Claim(DataSite("en", "localwiki"), 'P50'), Claim(DataSite("en", "localwiki"), 'P50')] } )
I don't recall the specifics, but the format should be the same as for commons media files. I suggest you ask on the Wikibase Telegram or similar support channel.
Is there an appropriate syntax to claim an image programmatically to an item ?
When i try doing the following,
I get the following error
When i create the claim over the web interface, the json data of the item contains the claim as the following