Skip to content

Instantly share code, notes, and snippets.

View gtracy's full-sized avatar

Greg Tracy gtracy

View GitHub Profile
class MainHandler(webapp.RequestHandler):
def post(self):
# this handler is intended for admin use only
# only accept calls from my own phone
caller = self.request.get('From')
if caller != '608XXXXXXX':
logging.error('illegal caller %s with message %s' % (caller,self.request.get('Body')))
return
<?xml version="1.0" encodeing="UTF-8"?>
<Response>
    <Say>
What is your favorite kind of pie?
</Say>
    <Record
action="/recording"
transcribe="true"
transcribeCallback="/transcribeHandler"
/>
@gtracy
gtracy / Twilio hold pattern
Created September 7, 2010 04:34
Twilio hold pattern
<?xml version="1.0" encodeing="UTF-8"?>
<Response>
    <Say>
Please wait while we work on your request.
</Say>
    <Play loop=100>
http://mydomain.com/coolmusic.mp3 
</Play>
</Response>
POST https://api.twilio.com/2010-04-01/Account/{AccountSid}/Calls/{CallSid}
   CurrentURL=http://mydomain.com/interrupthandler
<Response>
    <Say>
Press one if you said, I love Fluffernutter Pie. Otherwise, press two.
</Say>
    <Gather
action="/verificationHandler"
/>
</Response>
@gtracy
gtracy / gist:1209748
Created September 11, 2011 16:04
CronHandler for sending SMS to a list of users in the GAE datastore
class CronHandler(webapp.RequestHandler):
def get(self,time_slot=""):
logging.debug('running cron for timeslot %s' % time_slot)
if systemIsOn() is False:
logging.error('bailing... the system is turned off')
return
# grab the row of data out of the spreadsheet
results = getResults(time_slot)
@gtracy
gtracy / gist:1209756
Created September 11, 2011 16:07
Signup handler function for a Twilio SMS interface
class CallHandler(webapp.RequestHandler):
def post(self):
# extract the message and phone
message = self.request.get('Body')
phone = self.request.get('From')
# the first word tells us everything...
first = message.lower().split()[0]
@gtracy
gtracy / posterous-get-posts.js
Created November 4, 2012 21:15
Node app to fetch all public posts from a Posterous site
var request = require('request');
var site_id = 7963;
var grab_post_page = function(page) {
request.get({
url: 'http://posterous.com/api/2/sites/'+site_id+'/posts/public?page='+page,
headers: {
'Content-Type': 'application/json'
}
}, function(error, response, body) {
@gtracy
gtracy / app-engine-redirector.py
Created November 5, 2012 01:24
A tiny redirector app that runs on App Engine
import os
import logging
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
blog_slugs = {
'my-post' : '/12/09/',
'my-second-post' : '/12/12/'
}
@gtracy
gtracy / localized time on App Engine
Created January 12, 2014 03:10
Using pytz, getting localized timestamps with Python on App Engine
def getLocalDatetime():
utc_dt = datetime.datetime.now()
central_tz = pytz.timezone('US/Central')
utc = pytz.utc
ltime = utc.localize(utc_dt).astimezone(central_tz)
return ltime
## end getLocalDatetime