diff options
author | Dan Williams <dcbw@redhat.com> | 2006-04-20 16:10:42 (GMT) |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2006-04-20 16:10:42 (GMT) |
commit | dab184ab67e8bcc1c40d80265b9cee8175ee33fa (patch) | |
tree | 98eacdebc6c6944d9b342656acf64becff38a242 /chat | |
parent | f41ce25a65f5f29057600298b4a73e4c055e2188 (diff) |
Removing avahi-python since it's already in the avahi-tools RPM
Diffstat (limited to 'chat')
-rwxr-xr-x | chat/main.py | 16 | ||||
-rw-r--r-- | chat/presence.py | 3 |
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" |