Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/chat/ActivityChat.py
diff options
context:
space:
mode:
authorMarco 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)
commit974ef81c1ed1f23dc208da019eb91242d2b65579 (patch)
treed22f08031079980113ee03d5e87450327401b4ce /sugar/chat/ActivityChat.py
parente956f2259705acb7bc81060f7423cf4f2214f615 (diff)
Get back mesh chat (for the everyone tab)
Diffstat (limited to 'sugar/chat/ActivityChat.py')
-rw-r--r--sugar/chat/ActivityChat.py26
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)