Skip to content

Instantly share code, notes, and snippets.

@lost-nd-xxx
Last active March 2, 2024 14:37
Show Gist options
  • Save lost-nd-xxx/22830f490d2f18fa4ead1aec8883f64a to your computer and use it in GitHub Desktop.
Save lost-nd-xxx/22830f490d2f18fa4ead1aec8883f64a to your computer and use it in GitHub Desktop.
里々で日の出・日の入り時刻を得る辞書
#里々で日の出・日の入り時刻を得る辞書
#この辞書は後述のAPI利用によって成り立っています。
#私の書いた辞書(このテキストファイルのみ)についてはPublic Domainで公開します。ご自由にお使いください。
################################
#今回はビットラボの「おはこん番地は!? Web API」を使わせて頂きます。
#https://labs.bitmeister.jp/ohakon/index.cgi
#API取扱説明書(必読)
#https://labs.bitmeister.jp/ohakon/readme.html
#このAPIは商業目的での利用が禁止されています。
#また、短時間に大量の情報取得を行うとサーバーに負担をかけてしまうため、控えましょう。
#以下の辞書では、取得済みデータが無いか、日付が変わっていた場合のみ情報取得するようにしています。
#以下、タブ文字を【タブ】と表記しています。
#satori_conf.txtへ以下の3行を加えてください。(その際、先頭の#は消してください)
#$SunRiseAndSetTime_前回取得年月日【タブ】0
#$日の出時刻【タブ】0
#$日の入り時刻【タブ】0
@SunRiseAndSetTime_XML
https://labs.bitmeister.jp/ohakon/api/?mode=sun_rise_set&year=(zen2han、(現在年))&month=(zen2han、(現在月))&day=(zen2han、(現在日))&lat=(SunRiseAndSetTime_緯度)&lng=(SunRiseAndSetTime_経度)
#xmlのURLを作る
@SunRiseAndSetTime_緯度
35.68955113090043
@SunRiseAndSetTime_経度
139.69168076298064
#東京都庁あたりの緯度経度です 沖縄や北海道などの緯度経度だと時刻も変わると思います
#緯度経度はgoogleマップの任意の地点を右クリックして最上段の数値をクリックするとコピペできます
*起動
(SunRiseAndSetTime_InfoRequest)(起動の反応)
#既に「*起動」や「*OnBoot」などがある場合、そこに(SunRiseAndSetTime_InfoRequest)を追加してください
*起動の反応
:(0)ハローだね。
:(10)よろしゅう。
#テスト用です
@SunRiseAndSetTime_InfoRequest
(when、φ
(sprintf、%04d%02d%02d、(現在年)、(現在月)、(現在日))!=φ
(SunRiseAndSetTime_前回取得年月日)、φ
(SunRiseAndSetTime_InfoGetExec)φ
#取得済みデータが無いか、日付が変わっていた場合のみ取得を実行します
@SunRiseAndSetTime_InfoGetExec
\![execute,http-get,(SunRiseAndSetTime_XML),--param-charset=UTF-8,--async=On_SunRiseAndSetTime_InfoGet,--nofile=UTF-8]
#情報取得を実行します
*On_SunRiseAndSetTime_InfoGet
$SunRiseAndSetTime_前回取得年月日【タブ】(sprintf、%04d%02d%02d、(現在年)、(現在月)、(現在日))
$_tmp【タブ】(nop、(split、(R3)、(バイト値、1)、0、0))
$日の出時刻【タブ】(S17)
$日の出時刻【タブ】(erase、(日の出時刻)、<sunrise_hm>)
$日の出時刻【タブ】(erase、(日の出時刻)、</sunrise_hm>)
$日の入り時刻【タブ】(S18)
$日の入り時刻【タブ】(erase、(日の入り時刻)、<sunset_hm>)
$日の入り時刻【タブ】(erase、(日の入り時刻)、</sunset_hm>)
$_tmp【タブ】(nop、(split、(日の出時刻)、:、0、0))
$日の出時刻【タブ】(sprintf、%02d%02d、(S0)、(S1))
$_tmp【タブ】(nop、(split、(日の入り時刻)、:、0、0))
$日の入り時刻【タブ】(sprintf、%02d%02d、(S0)、(S1))
:(0)日の出・日の入り時刻の解析成功。
きょうの日の出時刻は(日の出時刻)、日の入り時刻は(日の入り時刻)。
24時間表記です。
:(10)6時1分なら0601みたいになるで。
>テスト用分岐_闇【タブ】(sprintf、%02d%02d、(現在時)、(現在分))>=(日の入り時刻)
>テスト用分岐_闇【タブ】(sprintf、%02d%02d、(現在時)、(現在分))<(日の出時刻)
>テスト用分岐_光
#解析成功するとここに来ます
#ここで喋らせる必要はないです(テスト用です)
#「:(0)日の出・日の入り時刻の解析成功。」から「>テスト用分岐_光」までを消すと喋らずに済ませてくれます
*On_SunRiseAndSetTime_InfoGetFailure
:(0)日の出・日の入り時刻の解析に失敗。
理由は「\_?(R4)\_?」。
#取得失敗した時にここに来ます
#消すと静かに失敗しているだけになります
*テスト用分岐_闇
:たったいま現在は……、夜。
#テスト用項目です
*テスト用分岐_光
:たったいま現在は……、日中。
#テスト用項目です
*OnMinuteChange
>日の出時刻になった【タブ】(sprintf、%02d%02d、(現在時)、(現在分))==(日の出時刻)
>日の入り時刻になった【タブ】(sprintf、%02d%02d、(現在時)、(現在分))==(日の入り時刻)
#情報利用サンプルです
*日の出時刻になった
:(0)そろそろ日の出です。
#情報利用サンプルです
*日の入り時刻になった
:(0)そろそろ日没です。
#情報利用サンプルです
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment