diff options
author | louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13> | 2010-05-11 16:45:14 +0000 |
---|---|---|
committer | louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13> | 2010-05-11 16:45:14 +0000 |
commit | d80a16ac9cc73ce95b62a21892e2055a548e0e44 (patch) | |
tree | 9d224b186430d3e3ad933a9f55329335bfa62166 /src/user.py | |
parent | a14611dbde118b1ffa6f66eb7237ddc0c3c61508 (diff) | |
download | poezio-d80a16ac9cc73ce95b62a21892e2055a548e0e44.tar.gz poezio-d80a16ac9cc73ce95b62a21892e2055a548e0e44.tar.bz2 poezio-d80a16ac9cc73ce95b62a21892e2055a548e0e44.tar.xz poezio-d80a16ac9cc73ce95b62a21892e2055a548e0e44.zip |
Display the status change and/or disconnect for recent-speakers only. fixed #1288
Diffstat (limited to 'src/user.py')
-rw-r--r-- | src/user.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/user.py b/src/user.py index 0dee9e42..6f0f3328 100644 --- a/src/user.py +++ b/src/user.py @@ -19,12 +19,14 @@ from random import randrange from config import config +from datetime import timedelta, datetime class User(object): """ keep trace of an user in a Room """ def __init__(self, nick, affiliation, show, status, role): + self.last_talked = None self.update(affiliation, show, status, role) self.change_nick(nick) self.color = randrange(2, 10) @@ -37,3 +39,23 @@ class User(object): def change_nick(self, nick): self.nick = nick.encode('utf-8') + + def set_last_talked(self, time): + """ + time: datetime object + """ + self.last_talked = time + + def has_talked_since(self, t): + """ + get a int + Return True if the user talked since the last s seconds + """ + from common import debug + if self.last_talked is None: + return False + delta = timedelta(0, t) + debug("Last talk: %s\nDelai:%s\nDelta:%s\n" % (str(self.last_talked), str(t), str(delta))) + if datetime.now() - delta > self.last_talked: + return False + return True |