diff --git a/CHANGELOG.md b/CHANGELOG.md index d220672..66ab68f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - [MAJOR] Added `apiPathPattern` to `logging.api` - [MAJOR] Added `chainId` to `EthClientInterface` - [MINOR] Added `call` and `multicall` to `EthClientInterface` +- [MINOR] Truncate discord notification messages to fit api ### Changed diff --git a/core/notifications/discord_client.py b/core/notifications/discord_client.py index d3a4b7b..3ea515e 100644 --- a/core/notifications/discord_client.py +++ b/core/notifications/discord_client.py @@ -1,3 +1,4 @@ +from core import logging from core.notifications.notification_client import NotificationClient from core.requester import KibaResponse from core.requester import Requester @@ -9,6 +10,9 @@ def __init__(self, webhookUrl: str, requester: Requester) -> None: self.requester = requester async def post(self, messageText: str) -> KibaResponse: + if len(messageText) > 1000: # noqa: PLR2004 + logging.info('Truncating Discord message to 1000 characters') + messageText = messageText[:997] + '...' data = {'content': messageText} response = await self.requester.post(self.webhookUrl, dataDict=data, headers={'content-type': 'application/json'}) return response diff --git a/core/queues/sqs.py b/core/queues/sqs.py index 0f42c4c..7b1b31d 100644 --- a/core/queues/sqs.py +++ b/core/queues/sqs.py @@ -39,17 +39,18 @@ def from_sqs_message(cls, sqsMessage: RawSqsMessageTypeDef) -> SqsMessage: class SqsMessageQueue(MessageQueue[SqsMessage]): - def __init__(self, region: str, accessKeyId: str, accessKeySecret: str, queueUrl: str) -> None: + def __init__(self, region: str, accessKeyId: str, accessKeySecret: str, queueUrl: str, sessionToken: str | None = None) -> None: self.region = region self._accessKeyId = accessKeyId self._accessKeySecret = accessKeySecret + self._sessionToken = sessionToken self.queueUrl = queueUrl self._exitStack = AsyncExitStack() self._sqsClient: SQSClient | None = None async def connect(self) -> None: session = get_botocore_session() - self._sqsClient = await self._exitStack.enter_async_context(session.create_client('sqs', region_name=self.region, aws_access_key_id=self._accessKeyId, aws_secret_access_key=self._accessKeySecret)) + self._sqsClient = await self._exitStack.enter_async_context(session.create_client('sqs', region_name=self.region, aws_access_key_id=self._accessKeyId, aws_secret_access_key=self._accessKeySecret, aws_session_token=self._sessionToken)) async def disconnect(self) -> None: await self._exitStack.aclose()