comparison frontends/src/quick_frontend/quick_chat.py @ 2024:01aff34e8873

quick frontends, primitivus: messageState signal handling
author Goffi <goffi@goffi.org>
date Tue, 02 Aug 2016 23:11:44 +0200
parents 88c41a195728
children cdb2591d0b8b
comparison
equal deleted inserted replaced
2023:224c8b0886bc 2024:01aff34e8873
53 self.message = msg 53 self.message = msg
54 self.subject = subject 54 self.subject = subject
55 self.type = type_ 55 self.type = type_
56 self.extra = extra 56 self.extra = extra
57 self.nick = self.getNick(from_jid) 57 self.nick = self.getNick(from_jid)
58 self._status = None
58 # own_mess is True if message was sent by profile's jid 59 # own_mess is True if message was sent by profile's jid
59 self.own_mess = (from_jid.resource == self.parent.nick) if self.parent.type == C.CHAT_GROUP else (from_jid.bare == self.host.profiles[profile].whoami.bare) 60 self.own_mess = (from_jid.resource == self.parent.nick) if self.parent.type == C.CHAT_GROUP else (from_jid.bare == self.host.profiles[profile].whoami.bare)
60 # is user mentioned here ? 61 # is user mentioned here ?
61 if self.parent.type == C.CHAT_GROUP and not self.own_mess: 62 if self.parent.type == C.CHAT_GROUP and not self.own_mess:
62 for m in msg.itervalues(): 63 for m in msg.itervalues():
109 if self.parent.type == C.CHAT_GROUP or entity in contact_list.getSpecials(C.CONTACT_SPECIAL_GROUP): 110 if self.parent.type == C.CHAT_GROUP or entity in contact_list.getSpecials(C.CONTACT_SPECIAL_GROUP):
110 return entity.resource or "" 111 return entity.resource or ""
111 if entity.bare in contact_list: 112 if entity.bare in contact_list:
112 return contact_list.getCache(entity, 'nick') or contact_list.getCache(entity, 'name') or entity.node or entity 113 return contact_list.getCache(entity, 'nick') or contact_list.getCache(entity, 'name') or entity.node or entity
113 return entity.node or entity 114 return entity.node or entity
115
116 @property
117 def status(self):
118 return self._status
119
120 @status.setter
121 def status(self, status):
122 self._status = status
123 for w in self.widgets:
124 w.updated(["status"])
114 125
115 126
116 class Occupant(object): 127 class Occupant(object):
117 """Occupant metadata""" 128 """Occupant metadata"""
118 129
466 self.occupants[nick].state = state 477 self.occupants[nick].state = state
467 except KeyError: 478 except KeyError:
468 log.warning(u"{nick} not found in {room}, ignoring new chat state".format( 479 log.warning(u"{nick} not found in {room}, ignoring new chat state".format(
469 nick=nick, room=self.target.bare)) 480 nick=nick, room=self.target.bare))
470 481
482 def onMessageState(self, uid, status, profile):
483 try:
484 mess_data = self.messages[uid]
485 except KeyError:
486 pass
487 else:
488 mess_data.status = status
489
471 490
472 quick_widgets.register(QuickChat) 491 quick_widgets.register(QuickChat)