Robots
"events": [
{
"type": "WAVELET_SELF_ADDED",
"modifiedBy": "pamela.fox@wavesandbox.com",
"timestamp": 1269400482868,
"properties": {
"blipId": "b+FYYeTpCXJ"
}
}
],
"wavelet": {
"creationTime": 1269400451853,
"lastModifiedTime": 1269400482868,
"version": 14,
"participants": [
"pamela.fox@wavesandbox.com",
"wave-skimmy@appspot.com"
],
"creator": "pamela.fox@wavesandbox.com",
"rootBlipId": "b+FYYeTpCXJ",
"title": "Dear Diary,",
"waveId": "wavesandbox.com!w+FYYeTpCXI",
"waveletId": "wavesandbox.com!conv+root"
},
{"params": {
"blipId": "b+FYYeTpCXJ",
"waveletId": "wavesandbox.com!conv+root",
"waveId": "wavesandbox.com!w+FYYeTpCXI",
"modifyAction": {
"modifyHow": "REPLACE",
"elements": [
{
"type": "IMAGE",
"properties": {
"url": "http://wave-skimmy.appspot.com/smile.gif"
}
}
]
},
"modifyQuery": {
"textMatch": ":)",
"maxRes": -1
}
},
"method": "document.modify",
"id": "op2"
}
Events
Operations
Robot
Wave
Wave
WAVELET_BLIP_CREATED
WAVELET_BLIP_REMOVED
WAVELET_PARTICIPANTS_CHANGED
WAVELET_SELF_ADDED
WAVELET_SELF_REMOVED
WAVELET_TITLE_CHANGED
BLIP_CONTRIBUTORS_CHANGED
BLIP_SUBMITTED
DOCUMENT_CHANGED
FORM_BUTTON_CLICKED
GADGET_STATE_CHANGED
ANNOTATED_TEXT_CHANGED
wavelet.appendBlip
wavelet.setTitle
wavelet.participant.add
wavelet.datadoc.set
wavelet.modifyTag
blip.createChild
blip.delete
document.appendMarkup
document.inlineBlip.insert
document.modify
robot.createWavelet
robot.fetchWave
robot.notifyCapabilitiesHash
Google Wave
import logging
from waveapi import appengine_robot_runner
from waveapi import element
from waveapi import events
from waveapi import ops
from waveapi import robot
anim_base = 'http://wave-skimmy.appspot.com'
anim_ext = '.gif'
emoticons = {
':)' : 'smile',
':(' : 'frown',
'(heart)': 'heart'
}
def ProcessBlip(event, wavelet):
blip = event.blip
for emoticon in emoticons:
r = blip.all(emoticon)
if r:
r.replace(element.Image(anim_base + emoticons[emoticon] + anim_ext))
pass
if __name__ == '__main__':
skimmy = robot.Robot('Skimmy',
image_url='http://wave-skimmy.appspot.com/public/half.png',
profile_url='http://wave-skimmy.appspot.com/public/menu.htm')
skimmy.register_handler(events.BlipSubmitted, ProcessBlip)
skimmy.register_handler(events.WaveletSelfAdded, ProcessBlip)
appengine_robot_runner.run(skimmy, debug=True)
Context
Filters
Events
Operations
Proxying-For
Active
robot.register_handler(
event.BlipSubmitted,
onBlipSubmit,
context = event.Context.ALL)
ROOT
SELF
PARENT
CHILDREN
SIBLINGS
ALL
robot.register_handler(
event.DocumentChanged,
onNewMatch,
filter="\[\[.*\]\]")
robot.setup_oauth(credentials.CONSUMER_KEY,
credentials.CONSUMER_SECRET,
server_rpc_base='http://sandbox.gmodules.com/api/rpc')
wave = robot.new_wave(domain='wavesandbox.com',
participants=['someguy@wavesandbox.com',])
wave.title = 'Some wave'
robot.submit(wave)
wave = self._sinky.fetch_wavelet(wave.wave_id, wave.wavelet_id)
wavelet.proxyFor('douwe').reply('\n').append('Hello');
robot.register_profile_handler(ProfileHandler)
def ProfileHandler(name):
if name == 'douwe':
return {'name': 'Douwe',
'imageUrl': 'http://twitter.com/douwe.gif',
'profileUrl': 'http://douweosinga.com'}
robot.register_handler(event.BlipCreated)
robot.register_handler(event.BlipRemoved)
robot.register_handler(event.WaveletParticipantsChanged)
robot.register_handler(event.WaveletSelfAdded)
robot.register_handler(event.WaveletSelfRemoved)
robot.register_handler(event.WaveletTitleChanged)
robot.register_handler(event.BlipContributorsChanged)
robot.register_handler(event.BlipSubmitted)
robot.register_handler(event.DocumentChanged)
robot.register_handler(event.FormButtonClicked)
robot.register_handler(event.GadgetStateChanged)
robot.register_handler(event.AnnotatedTextChanged)
http://wave-skimmy.appspot.com/_wave/robot/jsonrpc
wavelet.reply('Hi')
wavelet.title = 'Sad Story'
wavelet.participants.add('public@a.gwave.com')
wavelet.data_documents['MYDATA'] = 'yes'
wavelet.tags.append('emotions')
blip.reply('bai')
blip.delete()
blip.append_markup('<b>hi</b>')
blip.insert_inline_blip()
blip.at(5).insert('new info')
robot.new_wave(domain, participants)
robot.fetch_wave(waveid, waveletid)
Ferry
Poker
Tasky
ExamplesMore presentations by Pamela Fox
Popular presentations
Academy: 10 ways to say it with prezi
Adam Somlai-Fischer on
Prezi is simple: You Write, Zoom, Arrange.Using these simple means, you can express many things - with great impact.Here are some basic examples such as ...
More popular prezis in Explore>