From 902948bb4ed378d4f49be279f26056728b81f558 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 24 Jan 2022 00:10:57 +0100 Subject: [PATCH] add CHAT_LIMIT_HOURS and limit chat queryset in time --- app/settings.py | 5 +++-- teleforma/ws/chat.py | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/settings.py b/app/settings.py index 7df91150..2e741da3 100644 --- a/app/settings.py +++ b/app/settings.py @@ -53,8 +53,6 @@ CHANNEL_LAYERS = { }, } -ENABLE_CHAT = True - DATABASES = { 'default': { # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. @@ -504,6 +502,9 @@ if DEBUG_TOOLBAR: USE_WEBPACK_DEV_SERVER = False WEBPACK_DEV_SERVER_URL = "http://172.24.104.152:3000/" +ENABLE_CHAT = True +CHAT_LIMIT_HOURS = 72 + ################## # LOCAL SETTINGS # diff --git a/teleforma/ws/chat.py b/teleforma/ws/chat.py index 4dfd56e9..fa909243 100644 --- a/teleforma/ws/chat.py +++ b/teleforma/ws/chat.py @@ -4,6 +4,7 @@ from teleforma.models.chat import ChatMessage from django.conf import settings from channels.generic.websocket import AsyncJsonWebsocketConsumer from channels.db import database_sync_to_async +from datetime import datetime, timedelta @log_consumer_exceptions @@ -54,8 +55,10 @@ class ChatConsumer(AsyncJsonWebsocketConsumer): @database_sync_to_async def get_messages_list(self): + limit_hours = getattr(settings, 'CHAT_LIMIT_HOURS', 72) + limit_datetime = datetime.now() - timedelta(hours=limit_hours) messages = [message.to_dict() for message in ChatMessage.objects.filter( - room_name=self.room_name).order_by('-created')[:100]] + room_name=self.room_name).filter(created__gte=limit_datetime).order_by('-created')] messages = messages[::-1] return messages -- 2.39.5