# script to see how subtitles are joined onto titles
import gzip, json
import diophila

CROSSREF_PATH = "/Scratch/jc550/April 2023 Public Data File from Crossref/"
numberFile = 0

VALID_TYPES = ['journal-article', 'proceedings-article', 'book-chapter']
titleList = []

openAlexClient = diophila.OpenAlex("jc550@students.waikato.ac.nz")

def getUnjoinedTitles(number):
    with gzip.open(CROSSREF_PATH + str(number) + ".json.gz", "r") as gzippedFile:
        jsonDictionary = json.load(gzippedFile)
        for item in jsonDictionary["items"]:
            if item["type"] in VALID_TYPES:
                if "subtitle" in item.keys(): 
                    titleList.append({"title" : item["title"][0], "subtitle" : item["subtitle"][0], "DOI" : item["DOI"]})

    differentTitles = []

    for article in titleList:
        oaArticle = openAlexClient.get_single_work("https://doi.org/" + article["DOI"])
        if oaArticle["title"] == article["title"]:
            continue
        if oaArticle["title"].find(article["subtitle"]) == -1:
            continue
        if article["subtitle"] == "":
            continue
        differentTitles.append({"crTitle" : article["title"], "crSubtitle" : article["subtitle"], "oaArticle" : oaArticle["title"], "DOI" : article["DOI"]})
    
    return differentTitles


differentTitles = []
# 0 1 2 3 4
for index in range(1):
    differentTitles += getUnjoinedTitles(index+5)
    print("Got " + str(len(differentTitles)) + " titles")

print(differentTitles)
