Skip to content

Instantly share code, notes, and snippets.

@Abbe98
Last active May 25, 2019 18:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Abbe98/67f6702478a4b556609cb186162a60a6 to your computer and use it in GitHub Desktop.
Save Abbe98/67f6702478a4b556609cb186162a60a6 to your computer and use it in GitHub Desktop.
import csv
import datetime
import requests
import pywikibot
site = pywikibot.Site('wikidata', 'wikidata')
repo = site.data_repository()
endpoint='https://sync.nm.delorean.se/objects?id='
def today_as_WbTime():
"""
Get todays date as a WbTime object.
@return: Todays date correctly formated
@rtype: pywikibot.WbTime
"""
today = datetime.date.today()
date = pywikibot.WbTime(year=today.year,
month=today.month,
day=today.day)
return date
def create_statement(item, iiif, source):
claim = pywikibot.Claim(repo, 'P6108')
claim.setTarget(iiif)
item.addClaim(claim, summary='Adding iiif manifest link')
ref_url = pywikibot.Claim(repo, 'P854')
ref_url.setTarget(source)
retrieved = pywikibot.Claim(repo, u'P813')
retrieved.setTarget(today_as_WbTime())
claim.addSources([ref_url, retrieved], summary='Adding source to iiif mainfest link')
with open('query.csv') as csvfile:
spamreader = csv.reader(csvfile)
for row in spamreader:
url = endpoint + row[1]
print(url)
data = requests.get(url)
json_data = data.json()
if json_data['data'][0]['iiif']:
print(json_data['data'][0]['iiif'])
iiif = json_data['data'][0]['iiif'] + 'manifest.json'
item = pywikibot.ItemPage(repo, row[0][31:])
item.get()
if 'P6108' not in item.claims:
create_statement(item, iiif, url)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment