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=False): currentTime = datetime.now().strftime('%H:%M:%S.%f') if b64: message = (base64.b64encode(message.encode())).decode() if not 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)