# Program to compare OpenAlex and CrossRef Titles

# Use sanitise functions:
#   - clear_tags(): get rid of CrossRef XML tags
#   - add_subtitles(): add subtitles to the title
from sanitise import *

# Unicode block functions
from get_unicode_blocks import *

# OpenAlex API wrapper
from diophila import OpenAlex

# CrossRef API wrapper
from habanero import Crossref

# for cmd line args
import sys

# comparison functions
import compare

# json library
import json

# Process a text file with DOIs
def processText(path, output):
    with open(path, "r", encoding="utf-8") as file:
        for doiFromFile in file:
            compare.compareOnce(doiFromFile)

# Process a JSON file with DOIs
def processJson(path, output):
    dumpedJson = json.load(open(path, "r", encoding="utf-8"))
    equivalenceArray = []

    for dataSegment in dumpedJson["dataArray"]:
        for doi in dataSegment["dois"]:
            equivalenceCheck = compare.compareOnceIntoDictionary(doi)
            equivalenceArray.append(equivalenceCheck)
    json.dump(list(equivalenceArray), output, indent="\t")
    
filePath = sys.argv[1]
outputFile = open("out.json", "w", encoding="utf-8")

if(filePath.endswith('txt')):
    processText(filePath, outputFile)
elif(filePath.endswith('json')):
    processJson(filePath, outputFile)



