Do not set up the owner of the presence service if there

is no nick name in the env. I'm not sure this is the best
approach, we need to figure it out.

First go at the new simulator.
This commit is contained in:
Marco Pesenti Gritti
2006-10-09 15:11:15 +02:00
parent 1dd8f78453
commit cbd3a52a68
6 changed files with 92 additions and 5 deletions
+1
View File
@@ -8,6 +8,7 @@ sugar_PYTHON = \
logger.py \
setup.py \
oldsimulator.py \
simulator.py \
TracebackUtils.py \
util.py
+8 -2
View File
@@ -14,10 +14,16 @@ def setup_user(profile):
os.environ['SUGAR_COLOR'] = profile.get_color().to_string()
def get_nick_name():
return os.environ['SUGAR_NICK_NAME']
if os.environ.has_key('SUGAR_NICK_NAME'):
return os.environ['SUGAR_NICK_NAME']
else:
return None
def get_color():
return os.environ['SUGAR_COLOR']
if os.environ.has_key('SUGAR_COLOR'):
return os.environ['SUGAR_COLOR']
else:
return None
def setup_python_path():
for path in sugar_python_path:
+47
View File
@@ -0,0 +1,47 @@
from sugar.presence import PresenceService
from sugar.graphics.iconcolor import IconColor
from sugar.p2p import Stream
from sugar import util
_PRESENCE_SERVICE_TYPE = "_presence_olpc._tcp"
class BotService(object):
def __init__(self, bot):
self._bot = bot
def announce(self):
props = { 'color': self._bot.color.to_string() }
pservice = PresenceService.get_instance()
self._service = pservice.register_service(self._bot.name,
_PRESENCE_SERVICE_TYPE, properties=props)
self._stream = Stream.Stream.new_from_service(self._service)
self._stream.register_reader_handler(
self._handle_buddy_icon_request, "get_buddy_icon")
self._stream.register_reader_handler(
self._handle_invite, "invite")
def _handle_buddy_icon_request(self):
if self._bot.icon:
fd = open(self._bot.icon, "r")
icon_data = fd.read()
fd.close()
if icon_data:
return base64.b64encode(self._icon)
return ''
def _handle_invite(self, issuer, bundle_id, activity_id):
return ''
def set_current_activity(self, activity_id):
self._service.set_published_value('curact', dbus.String(activity_id))
class Bot(object):
def __init__(self):
self.name = util.unique_id()
self.color = IconColor()
self.icon = None
def start(self):
self._service = BotService(self)
self._service.announce()