コード例 #1
0
ファイル: bot-plantages.py プロジェクト: hay/bot-projects
def parse():
    for feature in coords["features"]:
        pid = feature["properties"]["id"]
        coord = feature["geometry"]["coordinates"]
        coord.reverse()
        plantage = get_plantage(pid)
        qid = plantage["qid"]
        name = plantage["name"]

        if not qid:
            continue

        print()
        print("---" * 20)
        print(pid, coord, name, qid)

        item = WikidataItem(qid)
        claims = item.get_claims()

        if Props.COORDINATES in claims:
            print("Already has coordinates, skipping!")
            continue

        item.add_coordinate(Props.COORDINATES,
                            coord,
                            references=get_refs(item, pid))
コード例 #2
0
ファイル: bot-reliwiki.py プロジェクト: hay/bot-projects
def create_new():
    items = Knead(PATH + "/data/reliwiki/new-churches.csv",
                  has_header=True).data()
    CITY = "Amsterdam"

    for church in items:
        print()
        print(f"Creating new church", church)
        pageid = church["pageid"]

        # Last, final check if this church doesn't exist
        if claim_exists(Props.RELIWIKI, f'"{pageid}"'):
            print(f"This Reliwiki ID exists, skipping")
            continue

        name = church["name"]

        item = WikidataItem(
            summary=f"Creating new item for Dutch church with name {name}",
            labels={
                "en": name,
                "nl": name
            },
            descriptions={
                "de": f"Kirche in {CITY} (Niederlande)",
                "en": f"church in {CITY}, the Netherlands",
                "es": f"iglesia en {CITY} (Holanda)",
                "fr": f"Église d'{CITY} (Pays-Bas)",
                "nl": f"kerk in {CITY}"
            })

        item.add_item_claim(Props.INSTANCE_OF, Items.CHURCH_BUILDING)
        item.add_string_claim(Props.RELIWIKI, pageid)
        item.add_item_claim(Props.COUNTRY, Items.NETHERLANDS)
        item.add_item_claim(Props.LOCATED_IN, church["admin_qid"])

        if church["sonneveld"] != "":
            item.add_string_claim(Props.SONNEVELD,
                                  church["sonneveld"],
                                  references=get_refs(item, pageid))

        if church["coordinates"] != "":
            coord = church["coordinates"].split(",")
            item.add_coordinate(Props.COORDINATES,
                                coord,
                                references=get_refs(item, pageid))

        if church["zipcode"] != "":
            item.add_string_claim(Props.ZIP,
                                  church["zipcode"],
                                  references=get_refs(item, pageid))

        if church["address"] != "":
            item.add_monoling_claim(Props.STREET_ADDRESS,
                                    church["address"],
                                    "nl",
                                    references=get_refs(item, pageid))

        if church["denomination_qid"] != "":
            item.add_item_claim(Props.RELIGION,
                                church["denomination_qid"],
                                references=get_refs(item, pageid))

        if church["year_use"] != "":
            if "s" in church["year_use"]:
                decade = int(church["year_use"].replace("s", ""))
                time = WbTime(year=decade, precision="decade")
            else:
                time = WbTime(year=int(church["year_use"]))

            item.add_time_claim(Props.INCEPTION,
                                time,
                                references=get_refs(item, pageid))

        print()

        break
コード例 #3
0
ファイル: bot-kosnijmegen.py プロジェクト: hay/bot-projects
def add_item(data):
    print("----" * 20)
    print()
    print(data)

    title = data["title"]
    url = data["url"]
    kid = data["id"]

    # if kid != "50":
    #     return

    print(f"Handling {title}")

    if skiplist.has(kid):
        print(f"In skiplist, skipping")
        return

    creator = data["creator"]

    if creator == "":
        desc_nl = "kunstwerk in de openbare ruimte te Nijmegen"
        desc_en = "public artwork in Nijmegen, the Netherlands"
    elif creator == "Onbekend":
        desc_nl = "kunstwerk in de openbare ruimte van een onbekende maker te Nijmegen"
        desc_en = "public artwork by an unknown artist in Nijmegen, the Netherlands"
    else:
        desc_nl = f"kunstwerk van {creator} in de openbare ruimte te Nijmegen"
        desc_en = f"public artwork by {creator} in Nijmegen, the Netherlands"

    item = WikidataItem(
        summary = f"public artwork '{title}' in Nijmegen, the Netherlands",
        labels = {
            "nl" : title
        }
    )

    item.edit_descriptions({
            "de" : f"Kunst im öffentlichen Raum in Nijmegen (Niederlande)",
            "en" : desc_en,
            "es" : f"arte público en Nijmegen (Holanda)",
            "fr" : f"art public à Nimègue (Pays-Bas)",
            "nl" : desc_nl
    })

    item.edit_aliases({
        "en" : title
    })

    # Basics
    item.add_item_claim(Props.INSTANCE_OF, Items.SCULPTURE)
    item.add_item_claim(Props.COUNTRY, Items.NETHERLANDS)
    item.add_item_claim(Props.LOCATED_IN_ADMIN, Items.NIJMEGEN_MUNIP)
    item.add_item_claim(Props.GENRE, Items.PUBLIC_ART)


    # Actual data
    coord = [data["lat"], data["lon"]]
    item.add_coordinate(
        Props.COORDINATES, coord, references = get_refs(item, url)
    )

    item.add_string_claim(
        Props.INVENTORY_NR, kid,
        qualifiers = [
            item.get_item_claim(Props.COLLECTION, Items.PUBLIC_ART_IN_NIJMEGEN)
        ],
        references = get_refs(item, url)
    )

    item.add_string_claim(
        Props.DESCRIBED_AT_URL,
        url,
        qualifiers = [
            item.get_item_claim(Props.LANGUAGE_WORK, Items.DUTCH)
        ]
    )

    if data["year"] != "":
        year = int(data["year"])
        item.add_time_claim(
            Props.INCEPTION, WbTime(year = year), references = get_refs(item, url)
        )

    if data["creator_qid"] != "":
        item.add_item_claim(
            Props.CREATOR, data["creator_qid"], references = get_refs(item, url)
        )
    elif data["creator"] == "Onbekend":
        item.add_item_claim(
            Props.CREATOR, "somevalue", references = get_refs(item, url)
        )

    if data["owner"] == "gemeente":
        item.add_item_claim(
            Props.COLLECTION, Items.NIJMEGEN_MUNIP, references = get_refs(item, url)
        )
    elif data["owner"] == "particulier":
        item.add_item_claim(
            Props.COLLECTION, Items.PRIVATE_COLLECTION, references = get_refs(item, url)
        )

    if data["location_clean"] != "":
        item.add_monoling_claim(
            Props.STREET_ADDRESS, data["location_clean"], "nl", references = get_refs(item, url)
        )

    skiplist.add(kid)