Added actor to open url in default browser

This commit is contained in:
Paulus Schoutsen 2013-10-07 18:47:25 -07:00
parent c72dbf0a83
commit 9cfcf43202
2 changed files with 10 additions and 3 deletions

View File

@ -10,6 +10,7 @@ import os
import logging import logging
from datetime import datetime, timedelta from datetime import datetime, timedelta
import re import re
import webbrowser
import dateutil.parser import dateutil.parser
from phue import Bridge from phue import Bridge
@ -26,6 +27,7 @@ LIGHT_TRANSITION_TIME = timedelta(minutes=15)
HUE_MAX_TRANSITION_TIME = 9000 HUE_MAX_TRANSITION_TIME = 9000
EVENT_DOWNLOAD_FILE = "download_file" EVENT_DOWNLOAD_FILE = "download_file"
EVENT_BROWSE_URL = "browse_url"
EVENT_TURN_LIGHT_ON = "turn_light_on" EVENT_TURN_LIGHT_ON = "turn_light_on"
EVENT_TURN_LIGHT_OFF = "turn_light_off" EVENT_TURN_LIGHT_OFF = "turn_light_off"
@ -238,3 +240,7 @@ def setup_file_downloader(eventbus, download_path):
eventbus.listen(EVENT_DOWNLOAD_FILE, download_file) eventbus.listen(EVENT_DOWNLOAD_FILE, download_file)
def setup_webbrowser(eventbus):
""" Listen for browse_url events and opens the url in the default webbrowser. """
eventbus.listen(EVENT_BROWSE_URL, lambda event: webbrowser.open(event.data['url']))

View File

@ -18,7 +18,7 @@ statemachine = StateMachine(eventbus)
# Init observers # Init observers
tomato = observers.TomatoDeviceScanner(config.get('tomato','host'), config.get('tomato','username'), tomato = observers.TomatoDeviceScanner(config.get('tomato','host'), config.get('tomato','username'),
config.get('tomato','password'), config.get('tomato','http_id')) config.get('tomato','password'), config.get('tomato','http_id'))
devicetracker = observers.DeviceTracker(eventbus, statemachine, tomato) devicetracker = observers.DeviceTracker(eventbus, statemachine, tomato)
@ -29,10 +29,11 @@ actors.LightTrigger(eventbus, statemachine, devicetracker, actors.HueLightContro
# If a chromecast is specified, add some chromecast specific event triggers # If a chromecast is specified, add some chromecast specific event triggers
if config.has_option("chromecast", "host"): if config.has_option("chromecast", "host"):
eventbus.listen("start_fireplace", lambda event: play_youtube_video(config.get("chromecast","host"), "eyU3bRy2x44")) eventbus.listen("start_fireplace", lambda event: play_youtube_video(config.get("chromecast","host"), "eyU3bRy2x44"))
eventbus.listen("start_epic_sax", lambda event: play_youtube_video(config.get("chromecast","host"), "kxopViU98Xo")) eventbus.listen("start_epic_sax", lambda event: play_youtube_video(config.get("chromecast","host"), "kxopViU98Xo"))
actors.setup_file_downloader(eventbus, "downloads") actors.setup_file_downloader(eventbus, "downloads")
actors.setup_webbrowser(eventbus)
# Init HTTP interface # Init HTTP interface
HTTPInterface(eventbus, statemachine, config.get("common","api_password")) HTTPInterface(eventbus, statemachine, config.get("common","api_password"))