# Program to get data from CrossRef, and OpenAlex formatted in a nice JSON file.
# Was supposed to be a replacement for another function pre-mongo.

# Crossref API library
from habanero import Crossref

# diophila seems to work best
from diophila import OpenAlex

# Default JSON library
import json

# For command line interface
import sys, getopt

NUMBER_TO_GET = 100
MAIL_ADDRESS = "jc550@students.waikato.ac.nz"

def main(argv):
    opts, args = getopt.getopt(argv, "h")
    if len(opts) == 0 or opts[0] == "-h":
        print("USAGE: " + argv[0] + " <outputfile>")
        sys.exit()

    outputFile = open(argv[1], "wt", encoding="utf-8")

    # Prepare the clients to retrieve data
    crossrefClient = Crossref(mailto = MAIL_ADDRESS)
    openAlexClient = OpenAlex(MAIL_ADDRESS)

    # Generate and send query to CrossRef (Limited Query = 100)
    query = cr.works(cursor = "*", cursor_max = 5000, filter = {'from_pub_date': '2023', 'type' : ['journal-article', 'proceedings-article', 'book-chapter']})


# Unfinished and not worth continuing

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