From 32d56a896ce9242099e2f06287c09dda8ea9d2a3 Mon Sep 17 00:00:00 2001 From: Olivier Bagot Date: Wed, 20 Nov 2013 17:37:28 +0100 Subject: [PATCH] Added APIs: clear_cache, clear_snapshots, ears_mode, radio_list, reset_install_flag. --- README.md | 8 ++++ handlers.js | 128 ++++++++++++++++++++++++++++++++++++++++++++-------- index.js | 6 +++ karotz.js | 10 ++++ 4 files changed, 134 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 9eae039..8baf343 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,18 @@ Current version 0.1.0 is still in development but usable. OpenKarotz can be found [here](http://openkarotz.filippi.org/). The following APIs are currently available: +- clear_cache +- clear_snapshots - ears +- ears_mode - ears_random - ears_reset +- get_free_space +- get_version - leds +- radios_list - reboot +- reset_install_flag - sleep - snapshot - snapshot_ftp (no FTP upload) @@ -23,6 +30,7 @@ The following APIs are currently available: - sound_control - sound_list - status +- tts - voice_list - wakeup diff --git a/handlers.js b/handlers.js index f7d52f3..2a379d8 100644 --- a/handlers.js +++ b/handlers.js @@ -49,28 +49,54 @@ function homepage(res, req) { + '' + '' + '

OpenKarotz Emulator

' - + '

API

' + + '

Status

' + '' + + '

Leds

' + + '' + + '

Ears

' + + '' + + '

Sound

' + + '' + + '

Speech

' + + '' + + '

Photos

' + + '' + + '
' + + '

' + + 'Copyright © 2013 - ' + + 'OpenKarotz Emulator - ' + + 'MIT License' + + '

' + '' + ''; @@ -249,6 +275,24 @@ function ears(res, req) { } exports.ears = ears; +function ears_mode(res, req) { + log.trace('ears_mode: begin'); + + var mode = getParameter(req, "disable", 0); + mode = (mode == 0 ? 0 : 1); + if (mode == 1) { + karotz.disableEars(); + } else { + karotz.enableEars(); + } + + var data = '{"return":"0","disabled":"' + mode + '"}'; + + sendResponse(res, data); + log.trace('ears_mode: end'); +} +exports.ears_mode = ears_mode; + function ears_reset(res, req) { log.trace('ears_reset: begin'); @@ -461,20 +505,68 @@ exports.snapshot_get = snapshot_get; function voice_list(res, req) { log.trace('voice_list: begin'); - var data = '{ "voices": [' - + '{ "id":"alice","lang":"fr"},' - + '{ "id":"claire","lang":"fr"},' - + '{ "id":"julie","lang":"fr"},' - + '{ "id":"justine","lang":"fr"},' - + '{ "id":"margaux","lang":"fr"},' - + '{ "id":"louise","lang":"fr"},' - + '{ "id":"antoine","lang":"fr"},' - + '{ "id":"bruno","lang":"fr"},' - + '{ "id":"heather","lang":"us"},' - + '{ "id":"ryan","lang":"us"}' - + '], "return":"0" }'; + var data = '{"voices":[' + + '{"id":"alice","lang":"fr"},' + + '{"id":"claire","lang":"fr"},' + + '{"id":"julie","lang":"fr"},' + + '{"id":"justine","lang":"fr"},' + + '{"id":"margaux","lang":"fr"},' + + '{"id":"louise","lang":"fr"},' + + '{"id":"antoine","lang":"fr"},' + + '{"id":"bruno","lang":"fr"},' + + '{"id":"heather","lang":"us"},' + + '{"id":"ryan","lang":"us"}' + + '],"return":"0"}'; sendResponse(res, data); log.trace('voice_list: end'); } exports.voice_list = voice_list; + +function radios_list(res, req) { + log.trace('radios_list: begin'); + + // Only a few ones... + var data = '{"streams":[' + + '{"id":1,"name":"Rire & Chanson","url":"http://mp3.live.tv-radio.com/rire_et_chansons/all/rir_124629.mp3"},' + + '{"id":2,"name":"RTL","url":"http://streaming.radio.rtl.fr/rtl-1-44-96"},' + + '{"id":3,"name":"RMC","url":"http://vipicecast.yacast.net/rmc"},' + + '{"id":4,"name":"Europe 1","url":"http://vipicecast.yacast.net/europe1"},' + + '{"id":5,"name":"RTL2","url":"http://streaming.radio.rtl2.fr/rtl2-1-44-96"}' + + '],"return":"0"}'; + + sendResponse(res, data); + log.trace('radios_list: end'); +} +exports.radios_list = radios_list; + +function reset_install_flag(res, req) { + log.trace('reset_install_flag: begin'); + + var data = '{"return":"0"}'; + + sendResponse(res, data); + log.trace('reset_install_flag: end'); +} +exports.reset_install_flag = reset_install_flag; + +function clear_cache(res, req) { + log.trace('clear_cache: begin'); + + var data = '{"return":"0"}'; + + sendResponse(res, data); + log.trace('clear_cache: end'); +} +exports.clear_cache = clear_cache; + +function clear_snapshots(res, req) { + log.trace('clear_snapshots: begin'); + + var data = '{"return":"0"}'; + + sendResponse(res, data); + log.trace('clear_snapshots: end'); +} +exports.clear_snapshots = clear_snapshots; + diff --git a/index.js b/index.js index e735303..0790479 100644 --- a/index.js +++ b/index.js @@ -35,13 +35,19 @@ var handlers = require('./handlers'); var handle = {}; handle['/'] = handlers.homepage; handle['/cgi-bin'] = handlers.homepage; + +handle['/cgi-bin/clear_cache'] = handlers.clear_cache; +handle['/cgi-bin/clear_snapshots'] = handlers.clear_snapshots; handle['/cgi-bin/ears'] = handlers.ears; +handle['/cgi-bin/ears_mode'] = handlers.ears_mode; handle['/cgi-bin/ears_random'] = handlers.ears_random; handle['/cgi-bin/ears_reset'] = handlers.ears_reset; handle['/cgi-bin/get_free_space'] = handlers.get_free_space; handle['/cgi-bin/get_version'] = handlers.get_version; handle['/cgi-bin/leds'] = handlers.leds; +handle['/cgi-bin/radios_list'] = handlers.radios_list; handle['/cgi-bin/reboot'] = handlers.reboot; +handle['/cgi-bin/reset_install_flag'] = handlers.reset_install_flag; handle['/cgi-bin/sleep'] = handlers.sleep; handle['/cgi-bin/snapshot'] = handlers.snapshot; handle['/cgi-bin/snapshot_ftp'] = handlers.snapshot_ftp; diff --git a/karotz.js b/karotz.js index d594ae3..480075c 100644 --- a/karotz.js +++ b/karotz.js @@ -115,3 +115,13 @@ function ears(left, right) { if (right) earsRight = right; } exports.ears = ears; + +function enableEars() { + earsDisabled = false; +} +exports.enableEars = enableEars; + +function disableEars() { + earsDisabled = true; +} +exports.disableEars = disableEars;