NHK Program Search

NHK Program Search

文字型データ項目で指定されたキーワードにマッチする番組情報を文字型データ項目に格納し、通信ログを文字型データ項目に格納します

2017-04-11 © Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/nhk-programsearch/

Configs
  • A: Set NHK API KEY *
  • B: Select AREA CODE *
  • C: Select SERVICE ID *
  • D: Select DATE *
  • E: Select SEARCH WORDS CSV *
  • F: Select Access Log *
  • G: Select Match Log *
Script
//// == コンフィグ&参照 / Config & Retrieving ==
// あなたの "NHK番組表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" ) ) + "";
 // 総合"g1",Eテレ"e1",BS1"s1",BSプレ"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 );

Download

  • Nhk-programSearch.xml
    • スクリプトエンジンとして「Rhino(廃止予定)」が指定されているため、アプリにインストールしても設定エラーとなります
    • 利用するには、スクリプトエンジンの変更、およびそれに伴うスクリプト修正が必要です
    • 修正版は準備中です

Capture

Notes

  • * 複数のキーワードを指定する場合は、カンマで区切ってください

See also

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

上部へスクロール