From 8cf45fac19848dd781ddc2a0805597bf7e3bf53f Mon Sep 17 00:00:00 2001 From: Olivier Bagot Date: Wed, 20 Nov 2013 18:28:29 +0100 Subject: [PATCH] Added Apps: clock, moods. --- README.md | 6 +++++- handlers.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ index.js | 5 +++++ 3 files changed, 58 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8baf343..acbaa58 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ 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: +The following APIs are available: - clear_cache - clear_snapshots - ears @@ -34,6 +34,10 @@ The following APIs are currently available: - voice_list - wakeup +The following Apps are available: +- clock +- moods + ### Usage ### diff --git a/handlers.js b/handlers.js index 2a379d8..2ddbd78 100644 --- a/handlers.js +++ b/handlers.js @@ -91,6 +91,11 @@ function homepage(res, req) { + '
  • snapshot_get, snapshot_get(thumbnail)
  • ' + '
  • clear_snapshots
  • ' + '' + + '

    Apps

    ' + + '' + '
    ' + '

    ' + 'Copyright © 2013 - ' @@ -570,3 +575,46 @@ function clear_snapshots(res, req) { } exports.clear_snapshots = clear_snapshots; +function clock(res, req) { + log.trace('clock: begin'); + + var data = ''; + if (karotz.isSleeping()) { + data = '{"return":"1","msg":"Unable to perform action, rabbit is sleeping."}'; + } else { + var hour = getParameter(req, "hour"); + if (hour === undefined) { + hour = new Date().getHours(); + } + if (hour >= 0 && hour <= 23) { + data = '{"return":"0","hour":"' + hour + '"}'; + } else { + data = '{"return":"1","hour":"' + hour + '"}'; + } + } + + sendResponse(res, data); + log.trace('clock: end'); +} +exports.clock = clock; + +function moods(res, req) { + log.trace('moods: begin'); + + var data = ''; + if (karotz.isSleeping()) { + data = '{"return":"1","msg":"Unable to perform action, rabbit is sleeping."}'; + } else { + var mood = getParameter(req, "id"); + //var lang = getParameter(req, "lang"); // Unused + if (mood === undefined) { + mood = Math.floor((Math.random() * 300) + 1); + } + + data = '{"moods":"' + mood + '","return":"0"}'; + } + + sendResponse(res, data); + log.trace('moods: end'); +} +exports.moods = moods; diff --git a/index.js b/index.js index 0790479..3b5ef73 100644 --- a/index.js +++ b/index.js @@ -36,6 +36,7 @@ var handle = {}; handle['/'] = handlers.homepage; handle['/cgi-bin'] = handlers.homepage; +// API handle['/cgi-bin/clear_cache'] = handlers.clear_cache; handle['/cgi-bin/clear_snapshots'] = handlers.clear_snapshots; handle['/cgi-bin/ears'] = handlers.ears; @@ -61,5 +62,9 @@ handle['/cgi-bin/tts'] = handlers.tts; handle['/cgi-bin/voice_list'] = handlers.voice_list; handle['/cgi-bin/wakeup'] = handlers.wakeup; +// APPS +handle['/cgi-bin/apps/clock'] = handlers.clock; +handle['/cgi-bin/apps/moods'] = handlers.moods; + log.info('OpenKarotz Emulator'); server.start(router.route, handle);