from pydenticon import Generator import hashlib # ----------------------------------------------------------------------------------------------------------------- # Typing notifications # ----------------------------------------------------------------------------------------------------------------- class BaseTypingNotificationHandler: DEFAULT_HANDLER = None def __init__(self): pass def send(self, tox, is_typing): pass class FriendTypingNotificationHandler(BaseTypingNotificationHandler): def __init__(self, friend_number): super().__init__() self._friend_number = friend_number def send(self, tox, is_typing): tox.self_set_typing(self._friend_number, is_typing) BaseTypingNotificationHandler.DEFAULT_HANDLER = BaseTypingNotificationHandler() # ----------------------------------------------------------------------------------------------------------------- # Identicons support # ----------------------------------------------------------------------------------------------------------------- def generate_avatar(public_key): foreground = ['rgb(45,79,255)', 'rgb(185, 66, 244)', 'rgb(185, 66, 244)', 'rgb(254,180,44)', 'rgb(252, 2, 2)', 'rgb(109, 198, 0)', 'rgb(226,121,234)', 'rgb(130, 135, 124)', 'rgb(30,179,253)', 'rgb(160, 157, 0)', 'rgb(232,77,65)', 'rgb(102, 4, 4)', 'rgb(49,203,115)', 'rgb(141,69,170)'] generator = Generator(5, 5, foreground=foreground, background='rgba(42,42,42,0)') digest = hashlib.sha256(public_key.encode('utf-8')).hexdigest() identicon = generator.generate(digest, 220, 220, padding=(10, 10, 10, 10)) return identicon