From 87f5544f1f41aa67b03ee6b8810e235a4ee909bd Mon Sep 17 00:00:00 2001 From: Paolo Tacconi Date: Tue, 29 Jul 2014 09:06:04 +0200 Subject: Chatroom lines are deleted after MAX_CHATROOM_HOURS or the chat becomes slow to load --- boot.php | 5 +++++ include/chat.php | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/boot.php b/boot.php index af395f30b..d5afbb855 100755 --- a/boot.php +++ b/boot.php @@ -358,6 +358,11 @@ define ( 'MAX_LIKERS', 10); define ( 'ZCURL_TIMEOUT' , (-1)); +/** + * Hours before chat lines are deleted + */ + +define ( 'MAX_CHATROOM_HOURS' , 36); /** * email notification options diff --git a/include/chat.php b/include/chat.php index 4c79319ee..2a978ed7c 100644 --- a/include/chat.php +++ b/include/chat.php @@ -152,6 +152,8 @@ function chatroom_enter($observer_xchan,$room_id,$status,$client) { dbesc($status), dbesc($client) ); + + chatroom_flush($room_id,$xchan); return $r; } @@ -224,5 +226,18 @@ function chat_message($uid,$room_id,$xchan,$text) { ); $ret['success'] = true; + chatroom_flush($room_id,$xchan); return $ret; } + +/** + * Reduces the number of lines shown in chat by removing those older than MAX_CHATROOM_HOURS + */ + +function chatroom_flush($room_id,$xchan) { + $d = q("delete from chat where chat_room = %d and chat_xchan = '%s' and created < '%s'", + intval($room_id), + dbesc($xchan), + datetime_convert('','', $date_limit)); + return true; +} -- cgit v1.2.3