#!/usr/bin/env python3

import argparse, sys, re
from datetime import datetime
from collections import namedtuple


parser = argparse.ArgumentParser()
#parser.add_argument('-d', '--doublesideband', '-doublesideband', help="Double sideband", action="store_true")
#parser.add_argument('-p', '--plot', '-plot', help="Plot results", action="store_true")
#parser.add_argument('-azel', '--azel', help="Output AzEl", action="store_true")
parser.add_argument('parkes')
parser.add_argument('atca')

args = parser.parse_args()


Exper = namedtuple('Exper', 'start stop name')



reEXPER = re.compile("Directors|Maintenance|P737|VLBI")
#reEXPER = re.compile("VLBI")

count = -1

def readSched(filename):
    sched = []

    # 2021-07-10, 18:00, 2021-07-11, 02:00, Directors time
    with open(filename, "r") as f:
        for l in f:
            line = l.strip()

            vals = re.split(" *, *", line)
            if len(vals)<5 or len(vals)>6:
                print("Could not match: {}".format(line))
                continue
            if reEXPER.search(vals[4]):
                start_time = datetime.strptime(vals[0]+" "+vals[1], "%Y-%m-%d %H:%M")
                stop_time = datetime.strptime(vals[2]+" "+vals[3], "%Y-%m-%d %H:%M")
                sched.append(Exper(start_time, stop_time, vals[4]))

    return sched

                

atca = readSched(args.atca)
parkes = readSched(args.parkes)

for a in atca:  # Would be better to "nibble at the ends" of each list, rather than loop over each
    for p in parkes:
        if (a.start>=p.start and a.start<=p.stop) or (a.stop>=p.start and a.stop<=p.stop):
            interval_start = max(a.start, p.start)
            interval_stop = min(a.stop, p.stop)
            print("Overlap:  ", interval_start, interval_stop, p.name, a.name)
