import csv
import os
from urllib import parse
import urllib3

http = urllib3.PoolManager()

OMAS = 'https://ema.crimproject.org/'
CRIM_MEI = 'https://crimproject.org/mei/'

def uniquify(path):
  filename, extension = os.path.splitext(path)
  counter = 1

  while os.path.exists(path):
      path = filename + "_" + str(counter) + extension
      counter += 1

  return path

if not os.path.exists('data/crim_selections'):
  os.makedirs('data/crim_selections')

with open('data/crim.csv') as csvfile:
  crimcsv = csv.reader(csvfile)
  next(crimcsv)
  print('EMA,Status,Output')
  for row in crimcsv:
    output = uniquify('data/crim_selections/'+row[3]+'.mei')
    mei_url = parse.quote_plus(CRIM_MEI + row[3] + '.mei')
    ema_expr = mei_url + '/' + row[2]
    full = OMAS + ema_expr
    output = output
    response = http.request('GET', full)

    selection = response.data.decode('utf-8')
    if (response.status > 400):
      print('"'+full+'",'+str(response.status)+',n/a')
    else:
      f = open(output, 'w')
      f.write(selection)
      f.close()
      print('"'+full+'",200'+','+output)
