try:
  import v
  from v import *
except: pass

def hsl_lookup(operator, station, country):
    hdr ={'Cache-Control': 'no-cache',
    'Content-Type':'application/json',
    'digitransit-subscription-key': '0ffeaf42df814cc9bb778e35c29272ea'}

    query = """{stops(name: \"""" + station + """\") {
    gtfsId
    name
    stops {
      gtfsId
      name}}}"""
    
    url = "https://api.digitransit.fi/routing/v1/routers/hsl/index/graphql"
    url = "https://api.digitransit.fi/routing/v2/finland/gtfs/v1"
    data = requests.post(url, headers=hdr, data=json.dumps({"query": query})).text
    #print(data)
    
    data = json.loads(data)
    print(data)
    search_list = {}
    x = 0
    try:
      for i in data["data"]["stops"]:
        x += 1
        #print(i["name"],i["gtfsId"], "\n")
        name = i["name"] + " (" + str(x) + ")"#name = i["name"]
        siteid = i["gtfsId"]
        v.sites[country][operator][name] = siteid
        search_list[name] = siteid
      return search_list
    except Exception as e:
        print("Error: ", e)

def hsl_load_departures(operator, station, country):
    import datetime
    import urllib.request, json
  
    query = """{
    
  stop(id: \"""" + station + """\") {
   
      stoptimesWithoutPatterns {
      
      scheduledDeparture
      realtimeDeparture
      realtimeArrival
      headsign
                trip {
        route {
          shortName
          mode
        }
      }
    }
  }  
}
"""

    hdr ={'Cache-Control': 'no-cache',
    'Content-Type':'application/json',
    'digitransit-subscription-key': '0ffeaf42df814cc9bb778e35c29272ea'}
    #url = "https://api.digitransit.fi/timetables/v1/finkand/index/graphql"
    #url = "https://api.digitransit.fi/routing/v1/routers/hsl/index/graphql"
    #url = "https://api.digitransit.fi/routing/v1/routers/hsl/index/graphql"
    url = "https://api.digitransit.fi/routing/v2/finland/gtfs/v1"
    
    def get_data(query):
      data = requests.post(url, headers=hdr, data=json.dumps({"query": query})).text
      data = json.loads(data)
      print(data, len(data))
      x = data["data"]["stop"]["stoptimesWithoutPatterns"]
      return x
    
    x = get_data(query)
    
    
    
    
    
    results = []
    def parse_result(x, results):
      def convert_seconds_to_datetime(seconds):
        midnight = datetime.datetime.combine(datetime.date.today(), datetime.time(0, 0))
        result = midnight + datetime.timedelta(seconds=seconds)
        #x = str(datetime.datetime.now())
        #if x[11:13] == "00": pass
        #result -= datetime.timedelta(hours=1)
        return result.strftime("%Y-%m-%dT%H:%M:%S")
      
      for departures in x:
 
            name = departures["headsign"]
            line = departures["trip"]["route"]["shortName"]#["shortName"]
            time_in_seconds = int(departures["realtimeDeparture"])
            formatted_time = convert_seconds_to_datetime(time_in_seconds)
            _time = formatted_time
            
            __type = departures["trip"]["route"]["mode"].lower().replace("subway","metro")
            print(__type)
            new_record = {"destination" : name,
                        "direction_code" : "0",
                        "expected" : _time,
                        "line" : {"id": line.replace("-","."), "transport_mode":__type.upper().replace("RAIL","TRAIN")},
                        "deviations": []}
            results.append(new_record)
      return results
    
    results = parse_result(x, results)
    if "_2" in station: 
       query = query.replace("_2", "_1")
       x = get_data(query)
       results = parse_result(x, results)
    results.sort(key=lambda d: d["expected"])
    print("RESULTS:", results)
    if len(results): 
        v.operators[country][operator][station]["departures"] = results
        return results

#import requests
#hsl_load_departures("HSL","digitraffic:KIL_2","fi")
