Changed tweets, added eca
This commit is contained in:
52
demos/drinks.py
Normal file
52
demos/drinks.py
Normal file
@@ -0,0 +1,52 @@
|
||||
from eca import *
|
||||
import eca.http
|
||||
|
||||
from pprint import pprint
|
||||
|
||||
# This function will be called to set up the HTTP server
|
||||
def add_request_handlers(httpd):
|
||||
# add an event-generating request handler to fire 'order' events
|
||||
# This requires the POST method because the event generation handler only
|
||||
# understands POST requests.
|
||||
httpd.add_route('/api/order', eca.http.GenerateEvent('order'), methods=['POST'])
|
||||
|
||||
# use the library content from the template_static dir instead of our own
|
||||
# this is a bit finicky, since execution now depends on a proper working directory.
|
||||
httpd.add_content('/lib/', 'template_static/lib')
|
||||
httpd.add_content('/style/', 'template_static/style')
|
||||
|
||||
|
||||
@event('order')
|
||||
def order(c, e):
|
||||
# we received an order...
|
||||
|
||||
# ...go an print it
|
||||
print("Received a new order:")
|
||||
pprint(e.data)
|
||||
|
||||
# ...and emit it to all interested browsers
|
||||
# (conceptually, this could also include the Barista's workstation)
|
||||
emit('orders',{
|
||||
'text': str(e.data)
|
||||
});
|
||||
|
||||
|
||||
# Below are some examples of how to handle incoming requests based
|
||||
# on observed qualities.
|
||||
|
||||
# Inform the coffee machine handler that more coffee is required.
|
||||
@event('order')
|
||||
@condition(lambda c,e: e.data['drink'] == 'Coffee')
|
||||
def start_brewing(c,e):
|
||||
print("-> Start the coffee brewer!")
|
||||
|
||||
|
||||
# Check for a very specific order
|
||||
@event('order')
|
||||
@condition(lambda c,e: e.data['drink'] == 'Tea'
|
||||
and not e.data['additives']
|
||||
and e.data['type'].lower() == 'earl grey'
|
||||
and 'hot' in e.data['notes'].lower())
|
||||
def picard_has_arrived(c,e):
|
||||
print("-> Captain Picard has arrived.")
|
||||
|
||||
Reference in New Issue
Block a user