51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
import boto3
|
|
import base64
|
|
import hashlib
|
|
from datetime import datetime
|
|
import os
|
|
import sys
|
|
sys.path.append(os.getcwd())
|
|
from pullTrafficInfo import getTrafficInfo
|
|
|
|
|
|
class sendToSQS(object):
|
|
"""docstring for sendToSQS"""
|
|
def __init__(self, session, queueURL):
|
|
super(sendToSQS, self).__init__()
|
|
self.session = session
|
|
self.sqs = session.client('sqs')
|
|
self.queueURL = queueURL
|
|
|
|
@classmethod
|
|
def createSession(cls, profileName, queueURL):
|
|
session = boto3.Session(profile_name=profileName)
|
|
return cls(session, queueURL)
|
|
|
|
def sendMessage(self, message, messageGroupId, b64=True, dedup=True):
|
|
currentTime = datetime.now().strftime('%H:%M:%S')
|
|
if b64:
|
|
message = (base64.b64encode(message.encode())).decode()
|
|
if dedup:
|
|
dedupId = hashlib.md5((message + currentTime).encode()).hexdigest()
|
|
msg = self.sqs.send_message(QueueUrl=self.queueURL,
|
|
MessageBody=message,
|
|
MessageGroupId=messageGroupId,
|
|
MessageDeduplicationId=dedupId)
|
|
else:
|
|
msg = self.sqs.send_message(QueueUrl=self.queueURL,
|
|
MessageBody=message,
|
|
MessageGroupId=messageGroupId)
|
|
if msg is not None:
|
|
print(msg["MessageId"])
|
|
|
|
|
|
inst = sendToSQS.createSession(profileName='plex-aws',
|
|
queueURL='https://sqs.eu-west-1.amazonaws.com'
|
|
'/745437999005/slack-bot.fifo')
|
|
|
|
instM = getTrafficInfo.getTrafficURL('M62').findIncidents() \
|
|
.getIncidentInformation().generateOutput()
|
|
|
|
for item in instM.output:
|
|
inst.sendMessage(message=item, messageGroupId='slack-bot-M62', dedup=True)
|