Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/chat
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2006-04-20 16:10:42 (GMT)
committer Dan Williams <dcbw@redhat.com>2006-04-20 16:10:42 (GMT)
commitdab184ab67e8bcc1c40d80265b9cee8175ee33fa (patch)
tree98eacdebc6c6944d9b342656acf64becff38a242 /chat
parentf41ce25a65f5f29057600298b4a73e4c055e2188 (diff)
Removing avahi-python since it's already in the avahi-tools RPM
Diffstat (limited to 'chat')
-rwxr-xr-xchat/main.py16
-rw-r--r--chat/presence.py3
2 files changed, 16 insertions, 3 deletions
diff --git a/chat/main.py b/chat/main.py
index eeea251..5eff742 100755
--- a/chat/main.py
+++ b/chat/main.py
@@ -33,6 +33,11 @@ class ChatApp(SimpleGladeApp):
realname = "Some Clueless User"
return (nick, realname)
+ def new_service(self, action, interface, protocol, name, stype, domain, flags):
+ if action != 'added' or stype != presence.OLPC_CHAT_SERVICE:
+ return
+ self._pdiscovery.resolve_service(interface, protocol, name, stype, domain, self.service_resolved)
+
def on_buddyList_buddy_selected(self, widget, *args):
(model, aniter) = widget.get_selection().get_selected()
name = self.treemodel.get(aniter,0)
@@ -67,6 +72,12 @@ class ChatApp(SimpleGladeApp):
res[tmp[0]] = ''
return res
+ def service_resolved(self, interface, protocol, name, stype, domain, host, aprotocol, address, port, txt, flags):
+ data = self._pair_to_dict(avahi.txt_array_to_string_array(txt))
+ if len(data) > 0 and 'name' in data.keys():
+ aniter = self.treemodel.insert_after(None,None)
+ self.treemodel.set(aniter, 0, data['name'])
+
def new(self):
self._group_chat_buffer = gtk.TextBuffer()
self.chatView.set_buffer(self._group_chat_buffer)
@@ -86,13 +97,12 @@ class ChatApp(SimpleGladeApp):
self.buddyList.append_column(column)
self._pannounce.register_service(self._realname, 6666, presence.OLPC_CHAT_SERVICE, name=self._nick)
+ self._pdiscovery.add_service_listener(self.new_service)
+ self._pdiscovery.start()
self._gc_controller = network.GroupChatController('224.0.0.221', 6666, self._recv_group_message)
self._gc_controller.start()
- aniter = self.treemodel.insert_after(None,None)
- self.treemodel.set(aniter, 0, data['name'])
-
def cleanup(self):
pass
diff --git a/chat/presence.py b/chat/presence.py
index d20d5a7..55d8011 100644
--- a/chat/presence.py
+++ b/chat/presence.py
@@ -1,3 +1,6 @@
+#!/usr/bin/python -t
+
+
import avahi, dbus, dbus.glib
OLPC_CHAT_SERVICE = "_olpc_chat._udp"