Add message limit

This commit is contained in:
Joscha 2016-05-11 19:45:37 +02:00
parent b03c7c75a4
commit f38c62e8db
2 changed files with 18 additions and 6 deletions

View file

@ -7,7 +7,14 @@ class Messages():
Message storage class which preserves thread hierarchy.
"""
def __init__(self):
def __init__(self, message_limit=500):
"""
message_limit - maximum amount of messages that will be stored at a time
None - no limit
"""
self.message_limit = message_limit
self._by_id = {}
self._by_parent = {}
@ -46,6 +53,9 @@ class Messages():
if not mes.parent in self._by_parent:
self._by_parent[mes.parent] = []
self._by_parent[mes.parent].append(mes)
if self.message_limit and len(self._by_id) > self.message_limit:
self.remove(self.get_oldest().id)
def remove(self, mid):
"""