Hoppa till innehållet

Projekt:Wikidata 2014/Testcase/ref

Från Wikimedia

"references": [
{
 "snaks": {
   "P248": [
     {
       "snaktype": "value",
       "property": "P248",
       "datatype": "wikibase-item",
       "datavalue": {
         "value": {
           "entity-type": "item",
           "numeric-id": 17373699
         },
         "type": "wikibase-entityid"
       }
     }
   ],
   "P813": [
     {
       "snaktype": "value",
       "property": "P813",
       "datatype": "time",
       "datavalue": {
         "value": {
           "time": "+00000002014-04-13T00:00:00Z",
           "timezone": 0,
           "before": 0,
           "after": 0,
           "precision": 11,
           "calendarmodel": "http://www.wikidata.org/entity/Q1985727"
         },
         "type": "time"
       }
     }
   ]
 },
 "snaks-order": [
   "P248",
   "P813"
 ]
}
]

Pywikipedia

Här har även P813 byts ut mot P577
# -*- coding: utf-8  -*-
def addRef(claim):
    statedin = pywikibot.Claim(repo, u'P248')
    itis = pywikibot.ItemPage(repo, "Q17373699")
    statedin.setTarget(itis)
    
    if hasRef(u'P248', itis, claim):
        return False
    
    retrieved = pywikibot.Claim(repo, u'P577')
    date = pywikibot.WbTime(year=2014, month=04, day=13)
    retrieved.setTarget(date)
    
    claim.addSources([statedin, retrieved]) #writes to database
    return True

def hasRef(prop, itis, claim):
    if claim.sources:
        if prop in claim.sources[0].keys():
            for s in claim.sources[0][prop]:
                if s.getTarget() == itis:
                    return True
    return False