import json
import os
import glob
import sys
from datetime import datetime
import requests
import base64

sys.path.append(os.getcwd())
import pullTrafficInfo

inst = (
    pullTrafficInfo.getTrafficInfo.getTrafficURL('M62')
    .findIncidents()
    .getIncidentInformation()
    .generateOutput()
    .savetoDisk()
)

listOfFiles = glob.glob(f'{os.getcwd()}/*.json')
latestFile = max(listOfFiles, key=os.path.getctime)
# latestFile = (f'{os.getcwd()}/12-10-2019_03:23:21.json')
# latestFile = (f'{os.getcwd()}/12-10-2019_16:13:43.json')

with open(latestFile, 'r') as jsonFile:
    data = json.load(jsonFile)

# print(data)

congestionMessage = None
accidentMessage = None
congestionMessageStart = None
congestionMessageEnd = None
accidentMessageStart = None
accidentMessageEnd = None

messageTitle = data[0]
end = data[-1]

length = len(data)
for i, message in zip(range(0, length), data):
    if (
        'There are currently no reported congestion incidents on the M62 🤔'
        in message
    ):
        congestionTitle = 'Congestion Incidents'
        congestionMessage = message

    elif 'congestion incidents on the M62 😱' in message:
        congestionTitle = message
        congestionMessageStart = i + 1

    if (
        'There are currently no reported accident incidents on the M62 🤔'
        in message
    ):
        congestionMessageEnd = i
        accidentTitle = 'Accident Incidents'
        accidentMessage = message

    elif 'accident incidents on the M62 😱' in message:
        congestionMessageEnd = i
        accidentTitle = message
        accidentMessageStart = i + 1
        accidentMessageEnd = length - 1


if congestionMessage is None:
    congestionMessage = data[congestionMessageStart:congestionMessageEnd]
    congestionMessage = ''.join(congestionMessage)

if accidentMessage is None:
    accidentMessage = data[accidentMessageStart:accidentMessageEnd]
    accidentMessage = ''.join(accidentMessage)

# print(f'messageTitle: {messageTitle}' + '\n')
# print(f'congestionTitle: {congestionTitle}' + '\n')
# print(f'congestionMessage: {congestionMessage}' + '\n')
# print(f'accidentTitle: {accidentTitle}' + '\n')
# print(f'accidentMessage: {accidentMessage}' + '\n')
# print(f'end: {end}')

payload = """{\"attachments\": [\n        {\n            \"title\": \"\",\n            \"pretext\": \"Did someone say M62!? \\ud83d\\ude27\",\n            \"text\": \"\",\n            \"mrkdwn_in\": [\"text\", \"pretext\"],\n            \"footer\": \"ec2-54-246-210-90.eu-west-1.compute.amazonaws.com\",\n            \"footer_icon\": \"https://i.imgur.com/ADsI87O.png\",\n            \"ts\": \"1570917914\",\n            \"fields\": [\n\t\t    \t{\n\t\t        \"title\": \"\",\n\t\t        \"value\": \"\",\n\t\t        \"short\": false\n\t\t    \t},\n\t\t    \t{\n\t\t        \"title\": \"\",\n\t\t        \"value\": \"\",\n\t\t        \"short\": false\n\t\t    \t},\n\t    \t\t{\n\t\t        \"title\": \"\",\n\t\t        \"value\": \" \",\n\t\t        \"short\": false\n\t\t    \t}\n\t    \t]\n        }\n    ]\n}"""

jsonPayload = json.loads(payload)

timeNow = datetime.now().timestamp()


jsonPayload['attachments'][0]['title'] = f'{messageTitle}'
# print(jsonPayload['attachments'][0]['title'])

jsonPayload['attachments'][0]['ts'] = timeNow
# print(jsonPayload['attachments'][0]['ts'])

jsonPayload['attachments'][0]['fields'][0]['title'] = f'{congestionTitle}'
# print(jsonPayload['attachments'][0]['fields'][0]['title'])

jsonPayload['attachments'][0]['fields'][0]['value'] = f'{congestionMessage}'
# print(jsonPayload['attachments'][0]['fields'][0]['value'])

jsonPayload['attachments'][0]['fields'][1]['title'] = f'{accidentTitle}'
# print(jsonPayload['attachments'][0]['fields'][1]['title'])

jsonPayload['attachments'][0]['fields'][1]['value'] = f'{accidentMessage}'
# print(jsonPayload['attachments'][0]['fields'][1]['value'])

jsonPayload['attachments'][0]['fields'][2]['value'] = f'{end}'
# print(jsonPayload['attachments'][0]['fields'][2]['value'])

newJsonPayload = json.dumps(jsonPayload)
# print(newJsonPayload)

with open(f'{os.getcwd()}/slackURL.json', 'r') as slackURL:
    url = json.load(slackURL)

url = base64.b64decode(url.encode()).decode()

querystring = {"": ""}

headers = {
    'Content-Type': 'application/json',
    'User-Agent': 'PostmanRuntime/7.17.1',
    'Accept': '*/*',
    'Cache-Control': 'no-cache',
    'Postman-Token': 'a4b63f2d-43b1-4ce7-898a-2fd03952ad7d,46ba7deb-472c-4328'
    '-a261-9c2000da2f11',
    'Host': 'hooks.slack.com',
    'Accept-Encoding': 'gzip, deflate',
    'Content-Length': '1277',
    'Connection': 'keep-alive',
    'cache-control': 'no-cache',
}

response = requests.request(
    'POST',
    url,
    data=newJsonPayload.encode(),
    headers=headers,
    params=querystring,
)

print(response.text)
