Add activity change

This commit is contained in:
Marco Pesenti Gritti 2006-10-09 18:29:54 +02:00
parent c9b5381c16
commit b309da53f6
4 changed files with 24 additions and 9 deletions

View File

@ -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):

View File

@ -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()

View File

@ -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()

View File

@ -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()