From e4c4e866a5c99d81f7fa0a0972311a604c6f1af2 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 09 Aug 2006 09:47:17 +0000 Subject: Start refactoring to get back buddy chat to work... --- (limited to 'activities/chat') diff --git a/activities/chat/ChatActivity.py b/activities/chat/ChatActivity.py index 6ced1db..ab661d1 100644 --- a/activities/chat/ChatActivity.py +++ b/activities/chat/ChatActivity.py @@ -1,20 +1,7 @@ -import dbus -import random -import logging - -import gtk -import gobject from gettext import gettext as _ from sugar.activity.Activity import Activity -from sugar.presence import Service -from sugar.chat.Chat import Chat from sugar.chat.BuddyChat import BuddyChat -from sugar.p2p.Stream import Stream -from sugar.presence.PresenceService import PresenceService -import sugar.env - -_CHAT_ACTIVITY_TYPE = "_chat_activity._tcp" class ChatActivity(Activity): def __init__(self, service): @@ -28,62 +15,3 @@ class ChatActivity(Activity): def recv_message(self, message): self._chat.recv_message(message) - -class ChatShellDbusService(dbus.service.Object): - def __init__(self, parent): - self._parent = parent - session_bus = dbus.SessionBus() - bus_name = dbus.service.BusName('com.redhat.Sugar.Chat', bus=session_bus) - object_path = '/com/redhat/Sugar/Chat' - dbus.service.Object.__init__(self, bus_name, object_path) - - @dbus.service.method('com.redhat.Sugar.ChatShell', - in_signature="o", out_signature="") - def open_chat(self, service_path): - self._parent.open_chat_from_path(service_path) - -class ChatListener: - def __init__(self): - ChatShellDbusService(self) - - self._chats = {} - - self._pservice = PresenceService() - self._pservice.register_service_type(BuddyChat.SERVICE_TYPE) - - def start(self): - self._service = self._pservice.register_service(sugar.env.get_nick_name(), - BuddyChat.SERVICE_TYPE) - self._buddy_stream = Stream.new_from_service(self._service) - self._buddy_stream.set_data_listener(self._recv_message) - - def _recv_message(self, address, message): - [nick, msg] = Chat.deserialize_message(message) - buddy = self._pservice.get_buddy_by_name(nick) - if buddy: - if buddy == self._pservice.get_owner(): - return - service = buddy.get_service_of_type(BuddyChat.SERVICE_TYPE) - name = service.get_name() - if service: - if not self._chats.has_key(name): - self.open_chat(service) - self._chats[name].recv_message(message) - else: - logging.error('The buddy %s does not have a chat service.' % (nick)) - else: - logging.error('The buddy %s is not present.' % (nick)) - return - - def open_chat_from_path(self, service_path): - service = self._pservice.get(service_path) - self.open_chat(service) - - def open_chat(self, service): - chat = ChatActivity(service) - self._chats[service.get_name()] = chat - return chat - -def start(): - chat_listener = ChatListener() - chat_listener.start() -- cgit v0.9.1