diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-06-22 03:49:37 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-06-22 03:49:37 (GMT) |
commit | 974ef81c1ed1f23dc208da019eb91242d2b65579 (patch) | |
tree | d22f08031079980113ee03d5e87450327401b4ce /sugar/chat/ActivityChat.py | |
parent | e956f2259705acb7bc81060f7423cf4f2214f615 (diff) |
Get back mesh chat (for the everyone tab)
Diffstat (limited to 'sugar/chat/ActivityChat.py')
-rw-r--r-- | sugar/chat/ActivityChat.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/sugar/chat/ActivityChat.py b/sugar/chat/ActivityChat.py new file mode 100644 index 0000000..6e3c71c --- /dev/null +++ b/sugar/chat/ActivityChat.py @@ -0,0 +1,26 @@ +import logging + +from sugar.chat.GroupChat import GroupChat + +class ActivityChat(GroupChat): + SERVICE_TYPE = "_olpc_activity_chat._udp" + SERVICE_PORT = 6200 + + def __init__(self, activity): + GroupChat.__init__(self) + self._activity = activity + self._pservice.connect('service-appeared', self._service_appeared_cb) + self._pservice.track_service_type(ActivityChat.SERVICE_TYPE) + service = self._pservice.get_activity_service(activity, ActivityChat.SERVICE_TYPE) + if service is not None: + self._service_appeared_cb(self._pservice, None, service) + + def _service_appeared_cb(self, pservice, buddy, service): + if service.get_activity_uid() == self._activity.get_id(): + if service.get_type() == ActivityChat.SERVICE_TYPE: + logging.debug('Group chat service appeared, setup the stream.') + self._setup_stream(service) + + def publish(self): + service = self._pservice.share_activity(self._activity, + stype = ActivityChat.SERVICE_TYPE, port = ActivityChat.SERVICE_PORT) |