Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/chat.py
diff options
context:
space:
mode:
authorGuillaume Desmottes <cassidy@cass-wks.(none)>2007-04-16 10:49:31 (GMT)
committer Guillaume Desmottes <cassidy@cass-wks.(none)>2007-04-16 10:49:31 (GMT)
commita574074ad7b85bc7be097e83ab72e4b2e18f0dff (patch)
tree910f61f8d88b04acdd777e168392cf112300bf7d /chat.py
parent925ade63e30c51f640ccb8898171f9eabf8e2e2e (diff)
Use existing connection instead of create a new one
Diffstat (limited to 'chat.py')
-rw-r--r--chat.py60
1 files changed, 33 insertions, 27 deletions
diff --git a/chat.py b/chat.py
index 46b4260..0fd11dd 100644
--- a/chat.py
+++ b/chat.py
@@ -27,6 +27,7 @@ from sugar.graphics.entry import Entry
from sugar.graphics.roundbox import RoundBox
from sugar.graphics.button import Button
from sugar.graphics.xocolor import XoColor
+from sugar.presence import presenceservice
tp_name = 'org.freedesktop.Telepathy'
tp_path = '/org/freedesktop/Telepathy'
@@ -57,25 +58,20 @@ class Chat(Activity):
self.owner_color = profile.get_color()
self.owner_nickname = profile.get_nick_name()
- self.add_text(self.owner_nickname, self.make_owner_icon(), 'Hello')
+ #self.add_text(self.owner_nickname, self.make_owner_icon(), 'Hello')
# test long line
- self.add_text(self.owner_nickname, self.make_owner_icon(),
- 'one two three four five six seven eight nine ten ' +
- 'one two three four five six seven eight nine ten ' +
- 'one two three four five six seven eight nine ten ' +
- 'one two three four five six seven eight nine ten')
+ #self.add_text(self.owner_nickname, self.make_owner_icon(),
+ # 'one two three four five six seven eight nine ten ' +
+ # 'one two three four five six seven eight nine ten ' +
+ # 'one two three four five six seven eight nine ten ' +
+ # 'one two three four five six seven eight nine ten')
bus = dbus.Bus()
- cm = bus.get_object(tp_cm_iface + '.gabble', tp_cm_path + '/gabble')
- cm_iface = dbus.Interface(cm, tp_cm_iface)
- name, path = cm_iface.RequestConnection('jabber', {
- 'account': 'test@olpc.collabora.co.uk',
- 'password': 'test'
- })
+ pservice = presenceservice.get_instance()
+ name, path = pservice.get_preferred_connection()
conn = bus.get_object(name, path)
conn_iface = dbus.Interface(conn, tp_conn_iface)
- conn_iface.connect_to_signal('StatusChanged', self.status_changed_cb)
- conn_iface.Connect()
+ #conn_iface.connect_to_signal('StatusChanged', self.status_changed_cb)
self.conn = conn
self.conn_iface = conn_iface
@@ -84,9 +80,15 @@ class Chat(Activity):
self.connect('destroy', self.destroy_cb)
+ status = conn_iface.GetStatus()
+ if status == 0:
+ print "connected"
+ self.join_room ()
+
+
def destroy_cb(self, _):
print 'destroy'
- self.conn_iface.Disconnect()
+ #self.conn_iface.Disconnect()
def received_cb(self, id, timestamp, sender, type, flags, text):
try:
@@ -101,20 +103,24 @@ class Chat(Activity):
except Exception, e:
print e
+ def join_room(self):
+ try:
+ bus = dbus.Bus()
+ chan_handle = self.conn_iface.RequestHandles(2, [room])[0]
+ chan_path = self.conn_iface.RequestChannel(tp_chan_type_text,
+ 2, chan_handle, True)
+ chan = bus.get_object(self.conn_name, chan_path)
+ text_iface = dbus.Interface(chan, tp_chan_type_text)
+ text_iface.connect_to_signal('Received', self.received_cb)
+ self.text_iface = text_iface
+ print "room joined"
+ except Exception, e:
+ print e
+
+
def status_changed_cb(self, status, reason):
if status == 0:
- try:
- print 'connected'
- bus = dbus.Bus()
- chan_handle = self.conn_iface.RequestHandles(2, [room])[0]
- chan_path = self.conn_iface.RequestChannel(tp_chan_type_text,
- 2, chan_handle, True)
- chan = bus.get_object(self.conn_name, chan_path)
- text_iface = dbus.Interface(chan, tp_chan_type_text)
- text_iface.connect_to_signal('Received', self.received_cb)
- self.text_iface = text_iface
- except Exception, e:
- print e
+ self.join_room()
elif status == 2:
print 'disconnected'