Viquiprojecte:Grup Tècnic/Formació tècnica 2015/codi.py
Aparença
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pwb
import pywikibot
import sys
import codecs
import json
import re
def afegeixLiniaPropietat(nomArticle, propietat, literal, tipus):
if tipus == "Q":
f2.write("{}\t{}\t{}\tS143\tQ1067140\n".format(nomArticle, propietat, literal))
if tipus == "S":
f2.write("{}\t{}\t\"{}\"\tS143\tQ1067140\n".format(nomArticle, propietat, literal))
def formatdataglobal(data, precisio):
data = "%011d" % (int(data))
data = (u'+%s-01-01T00:00:00Z/%s') % (data, precisio)
return data
def formatdata(data):
"""Exemples:
1900
1900-1910
ca. 1900
Ca.1900
s.d
c. 1900
ca. 1945-1949
"""
if data=="s.d" or data=="s.d.":
return ("", "", "")
data = data.replace("c.","ca. ")
has_circa = "ca." in data.lower()
anycreacio = data.lower().replace(" ", "").replace("ca.", "")
anycreacio = anycreacio.split(u"-")
if len(anycreacio) == 1:
return (formatdataglobal(anycreacio[0], u"09"), "", "")
else:
decada = str((int(anycreacio[0])//10)*10)
return (formatdataglobal(anycreacio[0], u"09"), formatdataglobal(anycreacio[1], u"09"), formatdataglobal(decada, u"08"))
try:
f1 = codecs.open('MACBA.json', 'r', 'utf8')
except (OSError, IOError) as e:
print u'No trobo el fitxer o no el sé obrir.'
exit(0)
try:
f2 = codecs.open('MACBAStatement.txt', 'ab', 'utf8')
except (OSError, IOError) as e:
print u'No trobo el fitxer o no el sé obrir.'
exit(0)
txt = f1.read()
f1.close()
jsonObject = json.loads(txt)
for item in jsonObject:
f2.write(u"CREATE\n")
if item["R_"]:
afegeixLiniaPropietat(u"LAST", u"P217", item["R_"], u"S") #inventari
afegeixLiniaPropietat(u"LAST", u"P31", u"Q1067140", u"Q") #quadre
if item["DATA"]:
any_min, any_max, decada = formatdata(item["DATA"])
if any_max:
f2.write("{}\t{}\t{}\t{}\t{}\t{}\t{}\tS143\tQ1067140\n".format(u"LAST", u"P571", decada, u"S1326", any_min, u"S1326", any_max))
elif any_min:
afegeixLiniaPropietat(u"LAST", u"P571", any_min, u"S") #data
afegeixLiniaPropietat(u"LAST", u"Lfr", item["TÍTOL"], u"S") #data
afegeixLiniaPropietat(u"LAST", u"P195", u"Q1067140", "Q") #colleccio
afegeixLiniaPropietat(u"LAST", u"P276", u"Q1067140", "Q") #situat/da