# test to retrieve subtitles

from habanero import Crossref
from diophila import OpenAlex
import sys, argparse, json

cr = Crossref(mailto="jc550@students.waikato.ac.nz")
oa = OpenAlex("jc550@students.waikato.ac.nz")
dateRegex = "[0-9]{4}-{1}[0-9]+-{1}[0-9]+"

doiToCheck = []

def retrieveDOIsWithSubtitles(num):
    currentDate = "2015-01-01"
    numCounted = 0
    while numCounted < num:
        datasegment = []
        query = cr.works(filter = {'type' : ['journal-article', 'proceedings-article', 'book-chapter']}, progress_bar=True, sample=100)

        items = query["message"]["items"]
        for item in items:
            #print(item["title"][0])
            if "subtitle" in item.keys():
                print("Title: " + item["title"][0] + " | Subtitle: " + item["subtitle"][0] + " | DOI: https://doi.org/" + item["DOI"])
                if item["DOI"] not in doiToCheck:
                    numCounted = numCounted + 1
                    datasegment.append(item["DOI"])

        doiToCheck.append({"dois":datasegment})

def main(argv):
    parser = argparse.ArgumentParser()
    parser.add_argument("numberDOIToGet", type=int, help="the number of DOIs that is wanted")
    parser.add_argument("outputFilePath", help="the output file path")
    args = parser.parse_args()

    outputFile = open(args.outputFilePath, "w", encoding="utf-8")
    retrieveDOIsWithSubtitles(args.numberDOIToGet)
    json.dump({"dataArray": doiToCheck}, outputFile)

if __name__ == "__main__":
    main(sys.argv)