【コピペで作る】伺か ゴーストに天気予報を教えてもらう。【yaya】

ukagaka

環境

できること

こんな感じで、気象庁が公開している情報を引っ張ってこれるようにします。
ukagaka_weather.png

必要なもの

ファイル構成

dllフォルダを作成し、DLしてきたファイルを解凍したら以下のようにします。

ghost名/ghost/master 
    ├─yaya.dll 
    ├─dll 
    │  ├─proxy_ex.dll 
    │  └─ukagakaExe_getWeather.exe 
    └─profile 

新規で辞書ファイルを追加する。

今回はdic_Weather.ukaを作成し、yaya.txtに登録しました。

weather_menu { 
    "\_q/ 
    \n[half]/ 
    \![*]\q[今の天気,CallWeather]\n/ 
    \![*]\q[天気の設定,setting_weather]\n/ 
    \![*]\q[天気設定の確認,weather_check]\n/ 
    \![*]\q[天気設定の削除,delete_weather]\n/ 
    \![*]\q[特にない,]\n/ 
    \n[half]\e" 
} 

CallWeather { 
    _WeatherText = "\n今日の天気はね~ .... \n\n" + getWeather + "\n" + "だってさ。\n" 
    _WeatherText 
} 

getWeather { 
    if ( ISVAR( "UserLocationNumber" ) ) { 
        FUNCTIONEX("./dll/proxy_ex.dll" ,  "/charset" , "UTF-8"  ) 
        _weatherText = FUNCTIONEX( "./dll/proxy_ex.dll" , "./ukagakaExe_getWeather.exe" , UserLocationNumber ) 
        "\1\b[3]%( _weatherText )\0" 
    } else { 
        "地域設定がされてないよ~" 
    } 
} 


setting_weather { 
    "\_q\s[%(FaceControl)]/ 
    \n[half]/ 
    \![*]\q[北海道,setUserLocationNumber,011000]\n/ 
    \![*]\q[青森県,setUserLocationNumber,020000]\n/ 
    \![*]\q[岩手県,setUserLocationNumber,030000]\n/ 
    \![*]\q[宮城県,setUserLocationNumber,040000]\n/ 
    \![*]\q[秋田県,setUserLocationNumber,050000]\n/ 
    \![*]\q[山形県,setUserLocationNumber,060000]\n/ 
    \![*]\q[福島県,setUserLocationNumber,070000]\n/ 
    \![*]\q[茨城県,setUserLocationNumber,080000]\n/ 
    \![*]\q[栃木県,setUserLocationNumber,090000]\n/ 
    \![*]\q[群馬県,setUserLocationNumber,100000]\n/ 
    \![*]\q[埼玉県,setUserLocationNumber,110000]\n/ 
    \![*]\q[千葉県,setUserLocationNumber,120000]\n/ 
    \![*]\q[東京都,setUserLocationNumber,130000]\n/ 
  \![*]\q[神奈川県,setUserLocationNumber,140000]\n/ 
    \![*]\q[新潟県,setUserLocationNumber,150000]\n/ 
    \![*]\q[富山県,setUserLocationNumber,160000]\n/ 
    \![*]\q[石川県,setUserLocationNumber,170000]\n/ 
    \![*]\q[福井県,setUserLocationNumber,180000]\n/ 
    \![*]\q[山梨県,setUserLocationNumber,190000]\n/ 
    \![*]\q[長野県,setUserLocationNumber,200000]\n/ 
    \![*]\q[岐阜県,setUserLocationNumber,210000]\n/ 
    \![*]\q[静岡県,setUserLocationNumber,220000]\n/ 
    \![*]\q[愛知県,setUserLocationNumber,230000]\n/ 
    \![*]\q[三重県,setUserLocationNumber,240000]\n/ 
    \![*]\q[滋賀県,setUserLocationNumber,250000]\n/ 
    \![*]\q[京都府,setUserLocationNumber,260000]\n/ 
    \![*]\q[大阪府,setUserLocationNumber,270000]\n/ 
    \![*]\q[兵庫県,setUserLocationNumber,280000]\n/ 
    \![*]\q[奈良県,setUserLocationNumber,290000]\n/ 
  \![*]\q[和歌山県,setUserLocationNumber,300000]\n/ 
    \![*]\q[鳥取県,setUserLocationNumber,310000]\n/ 
    \![*]\q[島根県,setUserLocationNumber,320000]\n/ 
    \![*]\q[岡山県,setUserLocationNumber,330000]\n/ 
    \![*]\q[広島県,setUserLocationNumber,340000]\n/ 
    \![*]\q[山口県,setUserLocationNumber,350000]\n/ 
    \![*]\q[徳島県,setUserLocationNumber,360000]\n/ 
    \![*]\q[香川県,setUserLocationNumber,370000]\n/ 
    \![*]\q[愛媛県,setUserLocationNumber,380000]\n/ 
    \![*]\q[高知県,setUserLocationNumber,390000]\n/ 
    \![*]\q[福岡県,setUserLocationNumber,400000]\n/ 
    \![*]\q[佐賀県,setUserLocationNumber,410000]\n/ 
    \![*]\q[長崎県,setUserLocationNumber,420000]\n/ 
    \![*]\q[熊本県,setUserLocationNumber,430000]\n/ 
    \![*]\q[大分県,setUserLocationNumber,440000]\n/ 
    \![*]\q[宮崎県,setUserLocationNumber,450000]\n/ 
  \![*]\q[鹿児島県,setUserLocationNumber,460100]\n/ 
    \![*]\q[沖縄県,setUserLocationNumber,471000]\n/ 
    \n[half]\e" 
} 


setUserLocationNumber { 
    UserLocationNumber = Global_arg1 
    "都道府県コード : %(UserLocationNumber) が設定されたよ。" 
} 


weather_check { 
    "都道府県コード : %(UserLocationNumber) が設定されているよ。" 
} 


delete_weather { 
    ERASEVAR( 'UserLocationNumber' ) 
    "地域設定を削除したよ" 
} 

setting_weatherは気象台の情報を登録しています。
基本的に都道府県コード+0000で運用できますが、北海道・鹿児島・沖縄などは広い県は少し変わってきます。

こちらから必要な気象台の番号を拾ってくると間違いありません。
気象台関係のjson

前回作成したメニューに機能を追加する。

天気関係の項目を追加しました。

DoubleClickMenu { 
    "\_q/ 
    \n[half]/ 
     【機能】\n/ 
    \![*]\q[テストメニューA,TestMenuA]\n/ 
    \![*]\q[テストメニューB,TestMenuB]\n/ 
    \![*]\q[テストメニューC,TestMenuC]\n/ 
    \![*]\q[天気関係,weather_menu]\n/ 
    \![*]\q[特にない,]\n/ 
    \n[half]\e" 
} 

天気関係からさらにメニューが開くようになっていると思います。
天気の設定から現在の地域を指定したのち、今の天気を選択してみてください。
ukagaka_weather3.png
天気予報の実装はここまでです。

次回予定

次回は起動トークのバリエーションを充実させたいと思います。
【コピペで作る】伺か 起動トークを今の時間や曜日で分岐させる。【YAYA】