aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xboot.php5
-rw-r--r--include/chat.php16
2 files changed, 21 insertions, 0 deletions
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..9d2341dfa 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,19 @@ 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) {
+ $date_limit = date('Y-m-d H:i:s', time() - 3600 * MAX_CHATROOM_HOURS);
+ $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;
+}