// Provision of information: NHK
//// == Config & Retrieving ==
// Registered apps in your NHK Program Guide API
// http://api-portal.nhk.or.jp/
var nhkKey = configs.get( "conf_DataIdA" );
// http://api-portal.nhk.or.jp
var nhkArea = data.get( configs.get( "conf_DataIdB" ) ) + "";
var nhkService = data.get( configs.get( "conf_DataIdC" ) ) + "";
// Synthesis "g1", ETV "e1", BS1 "s1", BS Pre "s3"
var nhkDate = data.get( configs.get( "conf_DataIdD" ) ) + "";
var searchWordsCsv = data.get( configs.get( "conf_DataIdE" ) ) + "";
var dataIdF = configs.get( "conf_DataIdF" );
var dataIdG = configs.get( "conf_DataIdG" );
//// == Calculating ==
var accessLog = "";
var matchLog = "";
/// -- GET program list --
var uri = "http://api.nhk.or.jp/v2/pg/list/";
uri += nhkArea + "/";
uri += nhkService + "/";
uri += nhkDate + ".json?key=";
uri += nhkKey;
// com.questetra.bpms.core.event.scripttask.HttpClientWrapper
// https://www.questetra.com/ja/tour/m2/m230/
// HttpRequestWrapper
var requestMsg = httpClient.begin();
// HttpResponseWrapper
var responseMsg = requestMsg.get( uri );
accessLog += "---GET--- " + responseMsg.getStatusCode() + " " + responseMsg.getCharset() + "\n";
accessLog += responseMsg.getResponseAsString() + "\n\n";
/// -- Word Search --
var responseObj = JSON.parse( responseMsg.getResponseAsString() );
var searchWords = searchWordsCsv.split(",");
var tmp = "";
for (var i = 0; i < responseObj.list[nhkService].length; i ++) { // Bracket notation
tmp = responseObj.list[nhkService][i].start_time.slice(11, 16) + "\n";
tmp += responseObj.list[nhkService][i].title + "\n";
tmp += responseObj.list[nhkService][i].subtitle + "\n";
tmp += responseObj.list[nhkService][i].content + " ";
tmp += responseObj.list[nhkService][i].act + "\n";
for (var j = 0; j < searchWords.length; j ++) {
if ( tmp.match( searchWords[j] ) ) {
matchLog += tmp + "\n+++ \n\n";
break;
}
}
}
//// == Data Updating ==
retVal.put( dataIdF, accessLog );
retVal.put( dataIdG, matchLog );