//Tropo based news reader
// newsfeed_url = "http://api.feedzilla.com/v1/categories/28/articles.json";
require("tropo-webapi");
var express = require("express");
var app = express();
var http = require("http");
var newsfeed_response ='';
var get_finished = false;
var result_json='';
var message_text= '';
var options_get = {
host : 'api.feedzilla.com',
port : 80,
path : '/v1/categories/28/articles.json',
method : 'get'
};
function getMessageText() {
var reqGet = http.request(options_get, function(res) {
get_finished = false;
newsfeed_response = '';
res.on('data', function(d) {
newsfeed_response += d;
});
res.on('end', function(d) {
console.log("message received");
result_json = JSON.parse(newsfeed_response);
get_finished = true;
message_text = "Current news on internet. Top article is ";
message_text += result_json.articles[0].title;
message_text += "Second best article is ";
message_text += result_json.articles[1].title;
message_text += "Thank you for listening.";
});
});
reqGet.end();
reqGet.on('error', function(e) {console.log(e);});
}
app.post("/", function(req, res) {
console.log("new incoming call");
getMessageText();
console.log("Sending standby");
var tropo = new TropoWebAPI();
tropo.say("Welcome. We are collecting the latest news and will present you the results.");
tropo.on("continue", null, "/continue", true);
res.status(200);
res.set({"Content-Type": "application/json"});
res.send(TropoJSON(tropo));
});
app.post("/continue", function(req,res) {
var tropo = new TropoWebAPI();
if(get_finished=true) {
console.log("Sending message");
console.log(message_text);
console.log("Hanging up");
tropo.say(message_text);
} else {
console.log("Sending standby");
tropo.say("Please stand by");
tropo.on("continue", null, "/continue", true);
}
res.status(200);
res.set({"Content-Type": "application/json"});
res.send(TropoJSON(tropo));
});
app.listen(8000);
console.log("Server started / listing on port 8000");