VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

23
VOICEMAIL ROB – GONZEE.TV

Transcript of VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

Page 1: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

VOICEMAIL

ROB – GONZEE.TV

Page 2: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

HI

Page 3: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

I’M ROB! (yet again)

Page 4: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

FIRST APP ON BOXEE

Page 5: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

LAUGH-O-TRON

Page 6: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

SCOPE THIS MY NINJA

(totally demoing Laugh-o-Tron)

Page 7: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

WHERE O’ WHERE

Page 8: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

TELEVISION

Page 9: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

BOXEE FTW!

(totally demoing voicemail app)

Page 10: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

LAUGHOTRON VOICEMAIL

ResourcesIntro to Boxee GUIIntro to Twilio REST APICODE

oh snap!

Page 11: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

GET MACGUYVER ON IT

List Containerhttp://developer.boxee.tv/List_Container

Twilio Python modulehttp://www.twilio.com/docs/libraries/

ElementTree (or your XML parser of choice)http://effbot.org/zone/element-index.htm

Page 12: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

HOW IT WORKS

REST

XML

Page 13: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

THE CAKE IS A LIE

Page 14: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

BOXEE GUI

XML Driven Controls Python

Events<?xml version="1.0"?><window type="window" id="14000">

<defaultcontrol always="true">111</defaultcontrol>

<allowoverlay>yes</allowoverlay><controls>

<control type="group"></control>

</controls></window>

Page 15: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

LIST CONTAINER

<control type="list" id="111“><onright>-</onright><posx>160</posx><posy>60</posy><width>960</width><height>570</height><orientation>vertical</orientation><itemlayout></itemlayout><focusedlayout width="960" height="80"></focusedlayout><content type="action"></content>

</control>

Page 16: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

ONLOAD EVENT

<?xml version="1.0"?><window type="window" id="14000">

<onload lang="python"><![CDATA[#TOTALLY PUT YOUR CODE HERE]]></onload>

<defaultcontrol always="true">111</defaultcontrol><allowoverlay>yes</allowoverlay><controls>

<control type="group"></control>

</controls></window>

Page 17: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

CODE!

import twilioimport elementtree.ElementTree as ET

# Twilio REST API versionAPI_VERSION = '2008-08-01'

# Twilio AccountSid and AuthTokenACCOUNT_SID = ‘INSERTACCOUNTSID'ACCOUNT_TOKEN = ‘INSERTSECRETTOKEN'

# Create a Twilio REST account object using your Twilio account ID and tokenaccount = twilio.Account(ACCOUNT_SID, ACCOUNT_TOKEN)

Page 18: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

MORE CODE!

# Use the Recording resource to get all the recordings from our accounttry: response = account.request('/%s/Accounts/%s/Recordings' % (API_VERSION, ACCOUNT_SID), 'GET')except Exception, e: print e print e.read()

# Parse resultresponse = ET.fromstring(response)

Page 19: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

WAIT – THAT’S NOT MUCH CODE?

container = mc.ListItems()for recording in response.findall("*/Recording"):

newitem = mc.ListItem(mc.ListItem.MEDIA_AUDIO_SPEECH)newitem.SetLabel(recording.findtext('DateCreated'))newitem.SetDuration( int(recording.findtext('Duration')) )newitem.SetThumbnail("http://apps.gonzee.tv/laughotronvoicemail/

images/thumb.png")newitem.SetProperty("Sid", recording.findtext('Sid'))newitem.SetProperty("AccountSid", recording.findtext('AccountSid'))newitem.SetProperty("CallSid", recording.findtext('CallSid'))newitem.SetProperty("DateUpdated", recording.findtext('DateUpdated'))newitem.SetPath('https://api.twilio.com/%s/Accounts/%s/Recordings/' %

(API_VERSION, ACCOUNT_SID) + recording.findtext('Sid') + ".mp3")container.append(newitem)

list = mc.GetWindow(14000).GetList(111).SetItems(container)

Page 20: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

DONE

Page 21: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

QUESTIONS?

Page 22: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

10001110111

Downloadhttp://dir.gonzee.tv/download/tv.gonzee.laughotronvoicemail.zip

Checkout svn checkout http://twilio-boxee-hackathon.googlecode.com/svn/trunk/voicemail/ twilio-boxee-hackathon-read-only

Page 23: VOICEMAIL ROB – GONZEE.TV. HI IM ROB! (yet again)

KTHX