Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/simulator.py
diff options
context:
space:
mode:
Diffstat (limited to 'sugar/simulator.py')
-rw-r--r--sugar/simulator.py226
1 files changed, 113 insertions, 113 deletions
diff --git a/sugar/simulator.py b/sugar/simulator.py
index 7a2d24f..c97f364 100644
--- a/sugar/simulator.py
+++ b/sugar/simulator.py
@@ -33,151 +33,151 @@ _PRESENCE_SERVICE_TYPE = "_presence_olpc._tcp"
_activity_refs = {}
class _NameCollection(object):
- def __init__(self):
- self._names = copy.copy(_nick_names)
+ def __init__(self):
+ self._names = copy.copy(_nick_names)
- def get_name(self):
- i = random.randint(0, len(self._names))
- return self._names.pop(i)
+ def get_name(self):
+ i = random.randint(0, len(self._names))
+ return self._names.pop(i)
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))
+ 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 _JoinActivityAction(object):
- def __init__(self, bot, named_ref):
- self._bot = bot
- self._named_ref = named_ref
+ def __init__(self, bot, named_ref):
+ self._bot = bot
+ self._named_ref = named_ref
- def execute(self):
- activity_id = _activity_refs[self._named_ref]
+ def execute(self):
+ activity_id = _activity_refs[self._named_ref]
- pservice = PresenceService.get_instance()
- activity = pservice.get_activity(activity_id)
- service = activity.get_services()[0]
+ pservice = PresenceService.get_instance()
+ activity = pservice.get_activity(activity_id)
+ service = activity.get_services()[0]
- name = "%s [%s]" % (self._bot.name, activity_id)
- properties = { 'title' : service.get_published_value('title'),
- 'color' : service.get_published_value('color') }
+ name = "%s [%s]" % (self._bot.name, activity_id)
+ properties = { 'title' : service.get_published_value('title'),
+ 'color' : service.get_published_value('color') }
- pservice.register_service(name, service.get_type(),
- properties, service.get_address(),
- service.get_port())
+ pservice.register_service(name, service.get_type(),
+ properties, service.get_address(),
+ service.get_port())
- self._bot._service.set_current_activity(activity_id)
+ self._bot._service.set_current_activity(activity_id)
class _ChangeActivityAction(object):
- def __init__(self, bot, named_ref):
- self._bot = bot
- self._named_ref = named_ref
+ def __init__(self, bot, named_ref):
+ self._bot = bot
+ self._named_ref = named_ref
- def execute(self):
- activity_id = _activity_refs[self._named_ref]
- self._bot._service.set_current_activity(activity_id)
+ def execute(self):
+ activity_id = _activity_refs[self._named_ref]
+ self._bot._service.set_current_activity(activity_id)
class _ShareChatAction(object):
- def __init__(self, bot, named_ref, title):
- self._bot = bot
- self._title = title
- self._id = util.unique_id()
+ def __init__(self, bot, named_ref, title):
+ self._bot = bot
+ self._title = title
+ self._id = util.unique_id()
- _activity_refs[named_ref] = self._id
+ _activity_refs[named_ref] = self._id
- def execute(self):
- name = "%s [%s]" % (self._bot.name, self._id)
- stype = '_GroupChatActivity_Sugar_redhat_com._udp'
- properties = { 'title' : self._title,
- 'color' : self._bot.color.to_string() }
- address = u"232.%d.%d.%d" % (random.randint(0, 254),
- random.randint(1, 254),
- random.randint(1, 254))
+ def execute(self):
+ name = "%s [%s]" % (self._bot.name, self._id)
+ stype = '_GroupChatActivity_Sugar_redhat_com._udp'
+ properties = { 'title' : self._title,
+ 'color' : self._bot.color.to_string() }
+ address = u"232.%d.%d.%d" % (random.randint(0, 254),
+ random.randint(1, 254),
+ random.randint(1, 254))
- pservice = PresenceService.get_instance()
- pservice.register_service(name, stype, properties, address)
+ pservice = PresenceService.get_instance()
+ pservice.register_service(name, stype, properties, address)
class _WaitAction(object):
- def __init__(self, bot, seconds):
- self._bot = bot
- self._seconds = seconds
-
- def execute(self):
- self._bot._pause_queue(self._seconds)
+ def __init__(self, bot, seconds):
+ self._bot = bot
+ self._seconds = seconds
+
+ def execute(self):
+ self._bot._pause_queue(self._seconds)
class Bot(object):
- _name_collection = _NameCollection()
+ _name_collection = _NameCollection()
- def __init__(self):
- self.name = Bot._name_collection.get_name()
- self.color = IconColor()
- self.icon = None
+ def __init__(self):
+ self.name = Bot._name_collection.get_name()
+ self.color = IconColor()
+ self.icon = None
- self._queue = []
+ self._queue = []
- def wait(self, seconds):
- action = _WaitAction(self, seconds)
- self._queue.append(action)
+ def wait(self, seconds):
+ action = _WaitAction(self, seconds)
+ self._queue.append(action)
- def share_chat(self, activity_id, title):
- action = _ShareChatAction(self, activity_id, title)
- self._queue.append(action)
+ def share_chat(self, activity_id, title):
+ action = _ShareChatAction(self, activity_id, title)
+ self._queue.append(action)
- def change_activity(self, activity_id):
- action = _ChangeActivityAction(self, activity_id)
- self._queue.append(action)
+ def change_activity(self, activity_id):
+ action = _ChangeActivityAction(self, activity_id)
+ self._queue.append(action)
- def join_activity(self, activity_id):
- action = _JoinActivityAction(self, activity_id)
- self._queue.append(action)
+ def join_activity(self, activity_id):
+ action = _JoinActivityAction(self, activity_id)
+ self._queue.append(action)
- def start(self):
- self._service = _BotService(self)
- self._service.announce()
+ def start(self):
+ self._service = _BotService(self)
+ self._service.announce()
- self._start_queue()
+ self._start_queue()
- def _idle_cb(self):
- self._next_action()
- return True
+ def _idle_cb(self):
+ self._next_action()
+ return True
- def _pause_done_cb(self):
- self._start_queue()
- return False
+ def _pause_done_cb(self):
+ self._start_queue()
+ return False
- def _start_queue(self):
- self._queue_sid = gobject.idle_add(self._idle_cb)
+ def _start_queue(self):
+ self._queue_sid = gobject.idle_add(self._idle_cb)
- def _pause_queue(self, seconds):
- gobject.source_remove(self._queue_sid)
- gobject.timeout_add(int(seconds * 1000), self._pause_done_cb)
+ def _pause_queue(self, seconds):
+ gobject.source_remove(self._queue_sid)
+ gobject.timeout_add(int(seconds * 1000), self._pause_done_cb)
- def _next_action(self):
- if len(self._queue) > 0:
- action = self._queue.pop(0)
- action.execute()
+ def _next_action(self):
+ if len(self._queue) > 0:
+ action = self._queue.pop(0)
+ action.execute()