class WebhookSession(object): def __init__(self, config): self.webhook = Webhooks(config['webhook']['token']) self.base_url = config['webhook']['webhook'] def start(self): logger.info('Session started.') def stop(self): logger.info('Session ended.') def fetch_head(self): logger.info('Fetching head track.') webhook_url = '{0}queues/head/'.format(self.base_url) return self.webhook.get(webhook_url) def pop_head(self, kwargs): logger.info('Removing current head track.') webhook_url = '{0}queues/head/'.format(self.base_url) return self.webhook.delete(webhook_url, **kwargs) def update_head(self, kwargs): logger.info('Updating current head track.') webhook_url = '{0}queues/head/'.format(self.base_url) return self.webhook.patch(webhook_url, **kwargs)
def hue_api_put_light(token, id_num): request_json = flask.request.get_json(force=True) print("PUT {0}/state: {1}".format(id_num, request_json)) # Turn on if 'on' in request_json and request_json['on']: Webhooks.on() return flask.Response(json.dumps([{ 'success': { '/lights/{0}/state/on'.format(id_num): True } }]), mimetype='application/json', status=200) # Turn off if 'on' in request_json and not request_json['on']: Webhooks.off() return flask.Response(json.dumps([{ 'success': { '/lights/{0}/state/on'.format(id_num): False } }]), mimetype='application/json', status=200) # Change brightness if 'bri' in request_json: Webhooks.change_brightness(request_json['bri']) return flask.Response(json.dumps([{ 'success': { '/lights/{0}/state/bri': request_json['bri'] } }]), mimetype='application/json', status=200) print("Unhandled API request: {0}".format(request_json)) flask.abort(500)
def __init__(self, config): self.webhook = Webhooks(config['webhook']['token']) self.base_url = config['webhook']['webhook']