Add activity change

master
Marco Pesenti Gritti 18 years ago
parent c9b5381c16
commit b309da53f6

@ -1,11 +1,11 @@
import random import random
import gobject import gobject
import dbus
from sugar.presence import PresenceService from sugar.presence import PresenceService
from sugar.graphics.iconcolor import IconColor from sugar.graphics.iconcolor import IconColor
from sugar.p2p import Stream from sugar.p2p import Stream
from sugar import util
_PRESENCE_SERVICE_TYPE = "_presence_olpc._tcp" _PRESENCE_SERVICE_TYPE = "_presence_olpc._tcp"
@ -42,11 +42,19 @@ class _BotService(object):
def set_current_activity(self, activity_id): def set_current_activity(self, activity_id):
self._service.set_published_value('curact', dbus.String(activity_id)) self._service.set_published_value('curact', dbus.String(activity_id))
class _ChangeActivityAction(object):
def __init__(self, bot, activity_id):
self._bot = bot
self._activity_id = activity_id
def execute(self):
self._bot._service.set_current_activity(self._activity_id)
class _ShareChatAction(object): class _ShareChatAction(object):
def __init__(self, bot, title): def __init__(self, bot, activity_id, title):
self._bot = bot self._bot = bot
self._title = title self._title = title
self._id = util.unique_id() self._id = activity_id
def execute(self): def execute(self):
name = "%s [%s]" % (self._bot.name, self._id) name = "%s [%s]" % (self._bot.name, self._id)
@ -70,7 +78,7 @@ class _WaitAction(object):
class Bot(object): class Bot(object):
def __init__(self): def __init__(self):
self.name = _nick_names[int(len(_nick_names) * random.random())] self.name = _nick_names[random.randint(0, len(_nick_names))]
self.color = IconColor() self.color = IconColor()
self.icon = None self.icon = None
@ -80,8 +88,12 @@ class Bot(object):
action = _WaitAction(self, seconds) action = _WaitAction(self, seconds)
self._queue.append(action) self._queue.append(action)
def share_chat(self, title): def share_chat(self, activity_id, title):
action = _ShareChatAction(self, 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) self._queue.append(action)
def start(self): def start(self):

@ -3,6 +3,6 @@ from sugar.simulator import Bot
bot = Bot() bot = Bot()
bot.name = 'chaitanya' bot.name = 'chaitanya'
bot.share_chat('All About Giraffes') bot.share_chat('giraffes', 'All About Giraffes')
bot.start() bot.start()

@ -2,4 +2,8 @@ from sugar.simulator import Bot
for i in range(0, 10): for i in range(0, 10):
bot = Bot() bot = Bot()
bot.wait(5)
bot.change_activity('giraffes')
bot.start() bot.start()

@ -3,7 +3,6 @@ from sugar.simulator import Bot
bot = Bot() bot = Bot()
bot.name = 'penelope' bot.name = 'penelope'
bot.wait(20) bot.share_chat('nekkhamma', 'Nekkhamma')
bot.share_chat('Nekkhamma')
bot.start() bot.start()

Loading…
Cancel
Save