From b8c926c88fceec5b73d0a06f054601db183af813 Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Sun, 13 Oct 2019 00:02:43 +0100 Subject: [PATCH 1/5] updating load results --- .../pullTrafficInfo.cpython-37.pyc | Bin 5090 -> 5034 bytes .../__pycache__/receiveFromSQS.cpython-37.pyc | Bin 4282 -> 4226 bytes .../prd/__pycache__/sendToSQS.cpython-37.pyc | Bin 1648 -> 1592 bytes slack-bot/traffic-scraper/prd/loadResults.py | 15 ++++++++++++--- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/slack-bot/traffic-scraper/prd/__pycache__/pullTrafficInfo.cpython-37.pyc b/slack-bot/traffic-scraper/prd/__pycache__/pullTrafficInfo.cpython-37.pyc index 826c4f4340bd6938f071e911daaa46f10ad0f5fe..747d9556709e0e5a919533092d467dc4d493e4ec 100644 GIT binary patch delta 309 zcmaE)zDk|TiI+Psy086%_Q zj8c=MxgM~|0QD5fPIly$5|sxrdEo>fh$T0Vh}-z8BH|V__GlsTB}GvC6x#^Va!gJf!$fXJF&ACTjw1t z>?Ea+VK+@g(9%Z`_e#(yzB!k3=Ny=)+I!8~w{2@8IiJmEYtC%nxo0th*!5%-23*9E za65t>0>5EogPijq;4~!dqxJ*7R@=dwH8GLKV+9^Pgj4P#za zbKk~-s#tG3rKAfM6I|FnlU*t$@XLW@P73m95rqARX;fvkmw##COKk!bKGW%d30OuC zqqNzJ20}XNafB*OebxWn6fm9bbK%h-81LxpRnp8r08!VO;_%4+NE?n?FYLN{GM3Pn zJY>Jwki(WLqJmgKtRnE+prIZLtqeg~$0Ri>jAoZ`EF&DmCZeTYXYTWBD4U3F7N-^!>!+0D=jLSQ73b&a`{$*)6lIpBD(EVN wXXfN&Cgv)50BHsPqV&YP%;Ln7%=|nBpUm9MlGGG^-^677^vsg@O-xOE0JvZvBme*a diff --git a/slack-bot/traffic-scraper/prd/__pycache__/sendToSQS.cpython-37.pyc b/slack-bot/traffic-scraper/prd/__pycache__/sendToSQS.cpython-37.pyc index 9f810049b29f19042a8695c96a3cbed7303aa5b3..a5e001e5dd66b05080e0baf77dfd8a441d2f30e4 100644 GIT binary patch delta 41 vcmeysvxA4riIo delta 97 zcmdnN^MQxUiI 2: + for files in listOfFiles: + os.remove(files) From c1b5045815316b03f57293eb3c8ecb5027ae3c96 Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Sun, 13 Oct 2019 00:16:06 +0100 Subject: [PATCH 2/5] updating pulltraffic info for pulling out --- slack-bot/traffic-scraper/prd/loadResults.py | 4 ++-- slack-bot/traffic-scraper/prd/pullTrafficInfo.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/slack-bot/traffic-scraper/prd/loadResults.py b/slack-bot/traffic-scraper/prd/loadResults.py index b735143..b8e01db 100644 --- a/slack-bot/traffic-scraper/prd/loadResults.py +++ b/slack-bot/traffic-scraper/prd/loadResults.py @@ -13,5 +13,5 @@ with open(latestFile, 'r') as jsonFile: listOfFiles.remove(latestFile) if len(listOfFiles) > 2: - for files in listOfFiles: - os.remove(files) + for files in listOfFiles: + os.remove(files) diff --git a/slack-bot/traffic-scraper/prd/pullTrafficInfo.py b/slack-bot/traffic-scraper/prd/pullTrafficInfo.py index f44ec19..5c7fd0f 100644 --- a/slack-bot/traffic-scraper/prd/pullTrafficInfo.py +++ b/slack-bot/traffic-scraper/prd/pullTrafficInfo.py @@ -172,7 +172,7 @@ class getTrafficInfo(object): f'There are currently' f' {self.incidentCount[i]} reported' f' {self.incidentTypes[i]} incidents' - f' reported on the {self.motorway}' + f' on the {self.motorway}' f' :scream:', use_aliases=True, ) From e86e8652d32a19e805e66c160618f3c53ae76188 Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Sun, 13 Oct 2019 22:51:08 +0100 Subject: [PATCH 3/5] initial slack-bot --- .../prd/12-10-2019_03:23:21.json | 1 - .../prd/12-10-2019_16:13:43.json | 1 - .../pullTrafficInfo.cpython-37.pyc | Bin 5034 -> 5589 bytes .../traffic-scraper/prd/pullTrafficInfo.py | 28 +++-- slack-bot/traffic-scraper/prd/slackBot.py | 109 ++++++++++++++++++ slack-bot/traffic-scraper/prd/test.py | 30 +++++ 6 files changed, 158 insertions(+), 11 deletions(-) delete mode 100644 slack-bot/traffic-scraper/prd/12-10-2019_03:23:21.json delete mode 100644 slack-bot/traffic-scraper/prd/12-10-2019_16:13:43.json create mode 100644 slack-bot/traffic-scraper/prd/slackBot.py create mode 100644 slack-bot/traffic-scraper/prd/test.py diff --git a/slack-bot/traffic-scraper/prd/12-10-2019_03:23:21.json b/slack-bot/traffic-scraper/prd/12-10-2019_03:23:21.json deleted file mode 100644 index 93970fb..0000000 --- a/slack-bot/traffic-scraper/prd/12-10-2019_03:23:21.json +++ /dev/null @@ -1 +0,0 @@ -["START", "START", "START", "START", "START", "START", "START", "START", "START", "START", "START", "START", "Did someone say M62!? \ud83d\ude27 Let's check the latest updates from Highways England as of 03:23:20! \ud83d\ude93\ud83d\udea8", "There are currently no reported congestion incidents on the M62 \ud83e\udd14", "There are currently no reported accident incidents on the M62 \ud83e\udd14", "Hey Andy, have you thought about getting the train? \ud83d\ude85", "END"] \ No newline at end of file diff --git a/slack-bot/traffic-scraper/prd/12-10-2019_16:13:43.json b/slack-bot/traffic-scraper/prd/12-10-2019_16:13:43.json deleted file mode 100644 index 4929ad2..0000000 --- a/slack-bot/traffic-scraper/prd/12-10-2019_16:13:43.json +++ /dev/null @@ -1 +0,0 @@ -["START", "Did someone say M62!? \ud83d\ude27 Let's check the latest updates from Highways England as of 16:13:42! \ud83d\ude93\ud83d\udea8", "There are currently no reported congestion incidents on the M62 \ud83e\udd14", "There are currently 1 reported accident incidents reported on the M62 \ud83d\ude31", "Location : The M62 westbound between junctions J22 and J21 . \nLane Closures : The hard shoulder and lane 1 are closed. \nReason : Road traffic collision. \nStatus : Currently Active. \nTime To Clear : The event is expected to clear between 17:00 and 17:15 on 12 October 2019. \nReturn To Normal : Normal traffic conditions are expected between 17:00 and 17:15 on 12 October 2019. \nLanes Closed : There is one of three lanes closed.", "Hey Andy, maybe flying would be quicker? \ud83d\ude81", "END"] \ No newline at end of file diff --git a/slack-bot/traffic-scraper/prd/__pycache__/pullTrafficInfo.cpython-37.pyc b/slack-bot/traffic-scraper/prd/__pycache__/pullTrafficInfo.cpython-37.pyc index 747d9556709e0e5a919533092d467dc4d493e4ec..07d4ba9b680bfea6fabf6b7e9c5ac90209a1ff18 100644 GIT binary patch delta 1504 zcmZux&2Jk;6rY*h^{&_U#$WkxAk?IFQ^!f&kF=;!p)I5#NHkGf(hnnI7SGz*#NJJ2 z#|g4h^^l035G2C|K~XGj91v0uhzmyq5|xk;m%SkM58%WJ35ho*rB%hO-fy1Xyf<(5 z&HK$)W51QGR}%>n!8r5Dm+$o1iMyc2GrgA~Z*JYV6=`T+tnaMya`jK#zhRqj9N=3?3b&{d52V`kdr` zs*CEF4$`3=TuI+UDyn3zqvG&`3;2;Tcdxt{I4mer?zft*7x-Rz!E*C;BXw#HnKGXnxbbsg+Q%wl3ak}2ucDs`IG z>Pfkw3V^VII|B`ezs2l&-L1Xh)&1i=C-H^$Cq5%Y^yjYAr#3SOcIg6LXiuvieLoy-{P)R_ts?9lb-)nQH zNLWlRjY>%T2bR=c1Xvd5W8aR;=ul&}*Kk6m>3HmjT+jEcHNWlgqH?f}7>SQzPh5`w zaO{Z>VNR&mU60z$=7DFZufZ7{=CM&(7%`g|#2aEMv4AV$>%`j=oUAC+gfd4zLo~L9 z0ps^Is!;Vq(uE6n|3@xYV?0h1;*yoCCRPdirFShxFV+Ix+EQ`|BKr>ZNj|;9`rcFC zDbQmF-s%5|%!u!-k+DP$Q4pE`CR*Q95l^m~A7geNLnB~x8*H~g#NXDC3SE&Eg}z6^ zO8#L*^V30%Id*Hhm|-O`kvcUMDxSX?8Ubf@?zWs>F^Z($^nLe*b$yik=Jg(_{g)>t2yA9tDx zowmGGG5t1QYx7yR={(cup(!(Qf5r_~zlXq}_t4=aw(u|>CY{_f^nBtCyiUtZSz)J7 z-C!wsm{_f82SLl>%RXf}X^96Mo}Ai&NfMSxlCr}RB*|Dw!U+j40ffX4!U!a-ZBq8K z_%%H_E;$+u0~jx;BpxwTg5ze~iYE=zh!}>U8<&^{%f+}jnmOA)2`W1!;jDyd2{WRR PIh{>{8prZ89)HR|u%KS1 delta 1018 zcmZ9L&rj1}7{~jz>(;ehSH=bmgiR2)@*^M+4jdE_&=?~|P_#nKvbVrsbolNyqK;rP zqFyvEZ#)=(1mewj6olsI9Y7O;%HYXbHQ@?rTdqVTiR~uaAX`QZ=oWxy^at2 zu(Bp_t#IwfYFYcShV?apwV-D8f#4DB;J9GbY|f$`$sFsN%Pl%xOIc^RYc@kWSxFv2 z7W*n&?5X!R>SYgoFHn%RDt*XgwlbIu^X^ClPzz81fjtczL|`RQ`v0AY5SH^lsd%aDM_OZQ8sRjA;Ml8 z*H*E*fsjxT=Fz%B#d!&9T>GC3ST7*Xz)KlR*z-sP*YYQ-@?DMU*q{Nfj3O$EMR8b| zemffm_Jjng?Ne#ajl$ft>uS{$&Yk@Le= zHA%8>RXu&SlmIo!l?uD9TcX>2F z#33LBc_mRaBoXl?h9v{(h`kS45?p_TVtxyeAU9ej!{MI6EiIi*<@1XUoy%cT!#B3{ zJWbI|x)Oo`CNQ)l4uDA{NkBWGoBa%T9))i6kgGI#L|qk;uIh$vDyrgD6vanmzGbQG bRHR>PgRD+K7keD(HFYj^-kQ!E=cn`+tMuZI diff --git a/slack-bot/traffic-scraper/prd/pullTrafficInfo.py b/slack-bot/traffic-scraper/prd/pullTrafficInfo.py index 5c7fd0f..a7614d1 100644 --- a/slack-bot/traffic-scraper/prd/pullTrafficInfo.py +++ b/slack-bot/traffic-scraper/prd/pullTrafficInfo.py @@ -4,6 +4,8 @@ from datetime import datetime import re import emoji import random +import json +import os class getTrafficInfo(object): @@ -44,9 +46,9 @@ class getTrafficInfo(object): self.motorway = motorway self.incidentTypes = ['congestion', 'accident'] - # def __del__(self): - # print('Quitting') - # self.browser.quit() + def __del__(self): + print('Quitting') + self.browser.quit() @classmethod def getTrafficURL(cls, motorway, driver='chrome'): @@ -140,7 +142,7 @@ class getTrafficInfo(object): ), ] currentTime = datetime.now().strftime('%H:%M:%S') - self.output.append('START') + # self.output.append('START') self.output.append( emoji.emojize( f'Did someone say {self.motorway}!?' @@ -182,11 +184,19 @@ class getTrafficInfo(object): except IndexError: pass self.output.append(random.choice(self.sarcasticMessage)) - self.output.append('END') + # self.output.append('END') return self + def savetoDisk(self, path=os.getcwd()): + self.timeNow = datetime.now().strftime('%d-%m-%Y_%H:%M:%S') + if len(self.output) > 0: + with open(f'{path}/{self.timeNow}.json', 'w+') as outputFile: + json.dump(self.output, outputFile) + else: + print('No messages to save') -inst = getTrafficInfo.getTrafficURL('M62').findIncidents() \ - .getIncidentInformation().generateOutput() -for i in inst.output: - print(i) + +# inst = getTrafficInfo.getTrafficURL('M62').findIncidents() \ +# .getIncidentInformation().generateOutput() +# for i in inst.output: +# print(i) diff --git a/slack-bot/traffic-scraper/prd/slackBot.py b/slack-bot/traffic-scraper/prd/slackBot.py new file mode 100644 index 0000000..aa5c438 --- /dev/null +++ b/slack-bot/traffic-scraper/prd/slackBot.py @@ -0,0 +1,109 @@ +import json +import os +import glob +import sys +from datetime import datetime +sys.path.append(os.getcwd()) +import pullTrafficInfo +import http.client + +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: + 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}') + +conn = http.client.HTTPConnection("hooks,slack,com") + +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}""" + + +timeNow = datetime.now().timestamp() + +jsonPayload = json.loads(payload) +print(jsonPayload) + +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']) diff --git a/slack-bot/traffic-scraper/prd/test.py b/slack-bot/traffic-scraper/prd/test.py new file mode 100644 index 0000000..7641918 --- /dev/null +++ b/slack-bot/traffic-scraper/prd/test.py @@ -0,0 +1,30 @@ +import json +from datetime import datetime + +payload = """{\"attachments\": [\n {\n \"title\": \"{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\": \"{congestionTitle}\",\n\t\t \"value\": \"{congestionMessage}\",\n\t\t \"short\": false\n\t\t \t},\n\t\t \t{\n\t\t \"title\": \"{accidentTitle}\",\n\t\t \"value\": \"{accidentMessage}\",\n\t\t \"short\": false\n\t\t \t},\n\t \t\t{\n\t\t \"title\": \"\",\n\t\t \"value\": \"{end} \",\n\t\t \"short\": false\n\t\t \t}\n\t \t]\n }\n ]\n}""" + +timeNow = datetime.now().timestamp() + +jsonPayload = json.loads(payload) +print(jsonPayload) + +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']) From ae9df823a4a96d11b5a7e3a80551c0e39692a1aa Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Mon, 14 Oct 2019 01:31:18 +0100 Subject: [PATCH 4/5] updating initial slackBot --- .../pullTrafficInfo.cpython-37.pyc | Bin 5589 -> 5549 bytes .../traffic-scraper/prd/jsonPayload.json | 1 + .../traffic-scraper/prd/pullTrafficInfo.py | 2 - slack-bot/traffic-scraper/prd/slackBot.py | 71 +++++++++++++----- slack-bot/traffic-scraper/prd/slackURL.json | 1 + slack-bot/traffic-scraper/prd/test.py | 43 +++++------ 6 files changed, 72 insertions(+), 46 deletions(-) create mode 100644 slack-bot/traffic-scraper/prd/jsonPayload.json create mode 100644 slack-bot/traffic-scraper/prd/slackURL.json diff --git a/slack-bot/traffic-scraper/prd/__pycache__/pullTrafficInfo.cpython-37.pyc b/slack-bot/traffic-scraper/prd/__pycache__/pullTrafficInfo.cpython-37.pyc index 07d4ba9b680bfea6fabf6b7e9c5ac90209a1ff18..d299a84455a540fe63abb6fd87b3e340623133e4 100644 GIT binary patch delta 636 zcmZvZ-%Aux6vywmvySWha(8qiqa<}RSKAHJB4R7FB7NDQ9xTY9yo01UgSRXGV8vkH zgd#XEK`bajPxTN!7W5SO5A@J|C|`rf$X6f?&p3v=leYjbH0qc8}TQ6-(lwY z_Gx!!`Moc)p!a0<4IDXPiqbMDSu#ty!$4!j`2oFn)IG5KsMwFc-D8C!N&hbbQUh4_ zJ`9sdx5b~lzvw26k!c(46eghi3!LPHKxA*x5->~Xjcne(an;vXu6`!|+Prka< z!_2h6=)l~a&9=j-OI!cAb4ELpNmK6aWdZDp9sEjTYh zjsc_ho~hk6XPTusmER7H%Ip9o>g*0Hb=B5KC!@8K<1xB94OO)BU!jZ#`H3q1KRHA= zO(+qD3AD=AqGZJ=?M%fYTD>7bS$K^*nZ3^;K+k!KUZ7OF zdb}9bl9hDiD1Ps%!AGogzZyJ6o&iFcaE@@vK=b6Ow&x->yCUQ`{_MU5SFu{STsTXP PF~UW{6~ZLGDBS!5dO(&D delta 626 zcmZ3heN~&+iIOIe|pfWIe8z zjIxs@xF4{|g9H^O|KpYtRRS@2;RGLur8rraXSWte(Jj`Z#Ju#>Tg*ABc||H9IR&t2 za(-!E3D9(IkdV@3A>Mav5ZTFWe2R=plQsCN7^5aH=1Zz)$l{#MkiuQV2qbytvZgSn zu=Fx5WMpKhI8nk?!;r;Y!jr;V!V6^aH8VCdH8Z&|#IA{9s%5HWu3<{y&1NdP0F+}~ zz)`}K#hk(iQdh$)$pAEsAIJuoEr4ul;Upy0f;9|sS=>;3dQ-ksrh-S3dM<) z3RPZ;_6k}Vr3xa{L4*c~07YPt&SW_u zapfqsvP*wRx=lFL(yY$qQP d@n>|LEFx+vstZzK1R~5pgcXQznVcr-4gfITll%Yx diff --git a/slack-bot/traffic-scraper/prd/jsonPayload.json b/slack-bot/traffic-scraper/prd/jsonPayload.json new file mode 100644 index 0000000..f634ee5 --- /dev/null +++ b/slack-bot/traffic-scraper/prd/jsonPayload.json @@ -0,0 +1 @@ +{"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} diff --git a/slack-bot/traffic-scraper/prd/pullTrafficInfo.py b/slack-bot/traffic-scraper/prd/pullTrafficInfo.py index a7614d1..7d6d765 100644 --- a/slack-bot/traffic-scraper/prd/pullTrafficInfo.py +++ b/slack-bot/traffic-scraper/prd/pullTrafficInfo.py @@ -145,8 +145,6 @@ class getTrafficInfo(object): # self.output.append('START') self.output.append( emoji.emojize( - f'Did someone say {self.motorway}!?' - ' :anguished:' ' Let\'s check the latest updates' ' from Highways England as of' f' {currentTime}!' diff --git a/slack-bot/traffic-scraper/prd/slackBot.py b/slack-bot/traffic-scraper/prd/slackBot.py index aa5c438..8e75786 100644 --- a/slack-bot/traffic-scraper/prd/slackBot.py +++ b/slack-bot/traffic-scraper/prd/slackBot.py @@ -3,9 +3,11 @@ import os import glob import sys from datetime import datetime +import requests +import base64 + sys.path.append(os.getcwd()) import pullTrafficInfo -import http.client inst = ( pullTrafficInfo.getTrafficInfo.getTrafficURL('M62') @@ -70,40 +72,71 @@ 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}') +# 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}') -conn = http.client.HTTPConnection("hooks,slack,com") - -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}""" +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 = json.loads(payload) -print(jsonPayload) jsonPayload['attachments'][0]['title'] = f'{messageTitle}' -print(jsonPayload['attachments'][0]['title']) +# print(jsonPayload['attachments'][0]['title']) jsonPayload['attachments'][0]['ts'] = timeNow -print(jsonPayload['attachments'][0]['ts']) +# print(jsonPayload['attachments'][0]['ts']) jsonPayload['attachments'][0]['fields'][0]['title'] = f'{congestionTitle}' -print(jsonPayload['attachments'][0]['fields'][0]['title']) +# print(jsonPayload['attachments'][0]['fields'][0]['title']) jsonPayload['attachments'][0]['fields'][0]['value'] = f'{congestionMessage}' -print(jsonPayload['attachments'][0]['fields'][0]['value']) +# print(jsonPayload['attachments'][0]['fields'][0]['value']) jsonPayload['attachments'][0]['fields'][1]['title'] = f'{accidentTitle}' -print(jsonPayload['attachments'][0]['fields'][1]['title']) +# print(jsonPayload['attachments'][0]['fields'][1]['title']) jsonPayload['attachments'][0]['fields'][1]['value'] = f'{accidentMessage}' -print(jsonPayload['attachments'][0]['fields'][1]['value']) +# print(jsonPayload['attachments'][0]['fields'][1]['value']) jsonPayload['attachments'][0]['fields'][2]['value'] = f'{end}' -print(jsonPayload['attachments'][0]['fields'][2]['value']) +# 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) diff --git a/slack-bot/traffic-scraper/prd/slackURL.json b/slack-bot/traffic-scraper/prd/slackURL.json new file mode 100644 index 0000000..3096d32 --- /dev/null +++ b/slack-bot/traffic-scraper/prd/slackURL.json @@ -0,0 +1 @@ +"aHR0cHM6Ly9ob29rcy5zbGFjay5jb20vc2VydmljZXMvVDAyRDExQjRLL0JQQkFGUFA3WC9kTk8xRTBCaVg1WUlHMWgxblZtU0E3c28=" diff --git a/slack-bot/traffic-scraper/prd/test.py b/slack-bot/traffic-scraper/prd/test.py index 7641918..5ede8c9 100644 --- a/slack-bot/traffic-scraper/prd/test.py +++ b/slack-bot/traffic-scraper/prd/test.py @@ -1,30 +1,23 @@ -import json -from datetime import datetime +import requests -payload = """{\"attachments\": [\n {\n \"title\": \"{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\": \"{congestionTitle}\",\n\t\t \"value\": \"{congestionMessage}\",\n\t\t \"short\": false\n\t\t \t},\n\t\t \t{\n\t\t \"title\": \"{accidentTitle}\",\n\t\t \"value\": \"{accidentMessage}\",\n\t\t \"short\": false\n\t\t \t},\n\t \t\t{\n\t\t \"title\": \"\",\n\t\t \"value\": \"{end} \",\n\t\t \"short\": false\n\t\t \t}\n\t \t]\n }\n ]\n}""" +url = "https://hooks.slack.com/services/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" -timeNow = datetime.now().timestamp() +querystring = {"":""} -jsonPayload = json.loads(payload) -print(jsonPayload) +payload = "{\"attachments\": [\n {\n \"title\": \"Let's check the latest updates from Highways England as of 22:30:12! \\ud83d\\ude93\\ud83d\\udea8\",\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\": \"There are currently 1 reported congestion incidents on the M62 😱\",\n\t\t \"value\": \"Location : The M62 westbound exit slip at junction J32 .\\n Reason : Congestion.\\n Status : Currently Active.\\n Return To Normal : Normal traffic conditions are expected between 23:00 and 23:15 on 12 October 2019.\\n Delay : There are currently delays of 10 minutes against expected traffic.\",\n\t\t \"short\": false\n\t\t \t},\n\t\t \t{\n\t\t \"title\": \"Accident Incidents\",\n\t\t \"value\": \"There are currently no reported accident incidents on the M62 \\ud83e\\udd14\",\n\t\t \"short\": false\n\t\t \t},\n\t \t\t{\n\t\t \"title\": \"\",\n\t\t \"value\": \"Hey Andy, have you thought about getting the train? \\ud83d\\ude85 \",\n\t\t \"short\": false\n\t\t \t}\n\t \t]\n }\n ]\n}" +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" + } -jsonPayload['attachments'][0]['title'] = f'{messageTitle}' -print(jsonPayload['attachments'][0]['title']) +response = requests.request("POST", url, data=payload.encode(), headers=headers, params=querystring) -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']) +print(response.text) From 4e64da696aeeaf36acd09a3774f696d920205367 Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Mon, 14 Oct 2019 10:54:02 +0100 Subject: [PATCH 5/5] updating slackbot --- slack-bot/traffic-scraper/prd/slackBot.py | 1 + 1 file changed, 1 insertion(+) diff --git a/slack-bot/traffic-scraper/prd/slackBot.py b/slack-bot/traffic-scraper/prd/slackBot.py index 8e75786..d632adc 100644 --- a/slack-bot/traffic-scraper/prd/slackBot.py +++ b/slack-bot/traffic-scraper/prd/slackBot.py @@ -59,6 +59,7 @@ for i, message in zip(range(0, length), data): accidentMessage = message elif 'accident incidents on the M62 😱' in message: + congestionMessageEnd = i accidentTitle = message accidentMessageStart = i + 1 accidentMessageEnd = length - 1