diff options
Diffstat (limited to 'poezio/user.py')
-rw-r--r-- | poezio/user.py | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/poezio/user.py b/poezio/user.py index 146a70da..602ee2c8 100644 --- a/poezio/user.py +++ b/poezio/user.py @@ -3,7 +3,7 @@ # This file is part of Poezio. # # Poezio is free software: you can redistribute it and/or modify -# it under the terms of the zlib license. See the COPYING file. +# it under the terms of the GPL-3.0+ license. See the COPYING file. """ Define the user class. A user is a MUC participant, not a roster contact (see contact.py) @@ -12,7 +12,6 @@ A user is a MUC participant, not a roster contact (see contact.py) import logging from datetime import timedelta, datetime from hashlib import md5 -from random import choice from typing import Optional, Tuple from poezio import xhtml, colors @@ -38,24 +37,20 @@ class User: status: str, role: str, jid: JID, - deterministic=True, color='') -> None: # The oldest possible time - self.last_talked = datetime(1, 1, 1) # type: datetime + self.last_talked: datetime = datetime(1, 1, 1) self.update(affiliation, show, status, role) self.change_nick(nick) - self.jid = jid # type: JID - self.chatstate = None # type: Optional[str] - self.color = (1, 1) # type: Tuple[int, int] + self.jid: JID = jid + self.chatstate: Optional[str] = None + self.color: Tuple[int, int] = (1, 1) if color != '': - self.change_color(color, deterministic) + self.change_color(color) else: - if deterministic: - self.set_deterministic_color() - else: - self.color = choice(get_theme().LIST_COLOR_NICKNAMES) + self.set_deterministic_color() - def set_deterministic_color(self): + def set_deterministic_color(self) -> None: theme = get_theme() if theme.ccg_palette: # use XEP-0392 CCG @@ -82,14 +77,10 @@ class User: def change_nick(self, nick: str): self.nick = nick - def change_color(self, color_name: Optional[str], deterministic=False): - color = xhtml.colors.get(color_name) + def change_color(self, color_name: Optional[str]): + color = xhtml.colors.get(color_name or '') if color is None: - log.error('Unknown color "%s"', color_name) - if deterministic: - self.set_deterministic_color() - else: - self.color = choice(get_theme().LIST_COLOR_NICKNAMES) + self.set_deterministic_color() else: self.color = (color, -1) @@ -97,7 +88,8 @@ class User: """ time: datetime object """ - self.last_talked = time + if time > self.last_talked: + self.last_talked = time def has_talked_since(self, t: int) -> bool: """ |