0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ニチアサが放送されるかどうかを告知してくれるシェルスクリプト

Posted at

ニチアサの天敵

全国の大きなお友達の毎週のルーチンワークといえば、日曜朝8時半からのプリキュア・ライダー・戦隊の枠だ。しかし、この枠には年に2,3回だが天敵とも呼べる刺客がやってくる。それは駅伝ワルド、ゴルフワルド、甲子園ワルド(これは関西限定でうちは該当しない)。こいつらが来たら来たでそれに合わせた行動をすればいいのでまぁいいといえばいいのだが、一日の予定に影響を及ぼすので土曜朝、遅くとも日曜朝8時までには知っておきたい。次回予告で分かるものの見落とすこともあり、また毎週毎週番組表を確かめるのも微妙に面倒くさい。どうにか自動的にチェックできないものか。

EPGStationのapiがあるじゃないか

EPGStationのapiを使えば、番組表の文字情報を入手、ニチアサが放送されるかどうかをチェックできるはず。EPGは1週間先までわかるので月曜でも金曜でも通知は可能だが、私は土曜朝でもいいんじゃないかということで、土曜か日曜に実行することで通知が来るようにシェルスクリプトを組んでみた。
普通に bash nichiasacheck.sh で実行してもよいが、cronで土曜朝夕や日曜朝に実行するといいでしょう。なおこのスクリプトは、使うに当たっては、
・aquestalkpiで喋らせるようにしているのでそこをお使いの環境に向けて修正する必要がある
 epgstation実行端末と喋らせる端末は同じでも違っても構わない。
 なので、その部分を例えばLineNotifyによる通知に修正する手もある
・epgstationのURL↓を修正する必要がある
・そもそもTS抜き環境が必須です
ことに留意してください。

nichiasacheck.sh
#!/bin/bash

#● Mirakurun,EPGStationのURL
epgstation_url=http://192.168.1.22:8888/
mirakurun_url=http://192.168.1.22:40772/

datef1=$(date +'%Y')
datef2=$(date +'%m')
datef3=$(date +'%d')
datef3p1=$(($(date +'%d')+1))
nichiasa1p1=$(date +%s --date $datef1'-'$datef2'-'$datef3p1' 8:31:00')
nichiasa1=$(date +%s --date $datef1'-'$datef2'-'$datef3' 8:31:00')
nichiasa2p1=$(date +%s --date $datef1'-'$datef2'-'$datef3p1' 9:01:00')
nichiasa2=$(date +%s --date $datef1'-'$datef2'-'$datef3' 9:01:00')
nichiasa3p1=$(date +%s --date $datef1'-'$datef2'-'$datef3p1' 9:31:00')
nichiasa3=$(date +%s --date $datef1'-'$datef2'-'$datef3' 9:31:00')

nichiasa1name=$(curl -s $epgstation_url"api/schedules?startAt="$nichiasa1p1"000&endAt="$nichiasa1p1"000&isHalfWidth=true&needsRawExtended=false&GR=true&BS=false&CS=false&SKY=false")
if [[ $nichiasa1name == *"プリキュア"* ]]; then
./aquestalkpi/AquesTalkPi -b -s 60 "明日ニチアサプリキュアあるよ" | aplay -D plughw:2,0
else
  if [[ $nichiasa1name == *"全日本大学駅伝"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日のプリキュアの時間は駅伝ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全米オープンゴルフ"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日のプリキュアの時間はゴルフワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全国高校野球選手権"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日のプリキュアの時間は甲子園ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
fi

nichiasa2name=$(curl -s $epgstation_url"api/schedules?startAt="$nichiasa2p1"000&endAt="$nichiasa2p1"000&isHalfWidth=true&needsRawExtended=false&GR=true&BS=false&CS=false&SKY=false")
if [[ $nichiasa2name == *"ライダー"* ]]; then
./aquestalkpi/AquesTalkPi -b -s 60 "明日ニチアサ仮面ライダーあるよ" | aplay -D plughw:2,0
else
  if [[ $nichiasa1name == *"全日本大学駅伝"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日のライダーの時間は駅伝ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全米オープンゴルフ"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日のライダーの時間はゴルフワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全国高校野球選手権"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日のライダーの時間は甲子園ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
fi

nichiasa3name=$(curl -s $epgstation_url"api/schedules?startAt="$nichiasa3p1"000&endAt="$nichiasa3p1"000&isHalfWidth=true&needsRawExtended=false&GR=true&BS=false&CS=false&SKY=false")
if [[ $nichiasa3name == *"戦隊"* ]]; then
./aquestalkpi/AquesTalkPi -b -s 60 "明日ニチアサ戦隊あるよ" | aplay -D plughw:2,0
else
  if [[ $nichiasa1name == *"全日本大学駅伝"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日の戦隊の時間は駅伝ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全米オープンゴルフ"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日の戦隊の時間はゴルフワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全国高校野球選手権"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日の戦隊の時間は甲子園ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
fi

nichiasa1name=$(curl -s $epgstation_url"api/schedules?startAt="$nichiasa1"000&endAt="$nichiasa1"000&isHalfWidth=true&needsRawExtended=false&GR=true&BS=false&CS=false&SKY=false")
if [[ $nichiasa1name == *"プリキュア"* ]]; then
./aquestalkpi/AquesTalkPi -b -s 60 "今日ニチアサプリキュアあるよ" | aplay -D plughw:2,0
else
  if [[ $nichiasa1name == *"全日本大学駅伝"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "今日のプリキュアの時間は駅伝ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全米オープンゴルフ"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "今日のプリキュアの時間はゴルフワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全国高校野球選手権"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "今日のプリキュアの時間は甲子園ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
fi

nichiasa2name=$(curl -s $epgstation_url"api/schedules?startAt="$nichiasa2"000&endAt="$nichiasa2"000&isHalfWidth=true&needsRawExtended=false&GR=true&BS=false&CS=false&SKY=false")
if [[ $nichiasa2name == *"ライダー"* ]]; then
./aquestalkpi/AquesTalkPi -b -s 60 "今日ニチアサ仮面ライダーあるよ" | aplay -D plughw:2,0
else
  if [[ $nichiasa1name == *"全日本大学駅伝"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "今日のライダーの時間は駅伝ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全米オープンゴルフ"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "今日のライダーの時間はゴルフワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全国高校野球選手権"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "今日のライダーの時間は甲子園ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
fi

nichiasa3name=$(curl -s $epgstation_url"api/schedules?startAt="$nichiasa3"000&endAt="$nichiasa3"000&isHalfWidth=true&needsRawExtended=false&GR=true&BS=false&CS=false&SKY=false")
if [[ $nichiasa3name == *"戦隊"* ]]; then
./aquestalkpi/AquesTalkPi -b -s 60 "今日ニチアサ戦隊あるよ" | aplay -D plughw:2,0
else
  if [[ $nichiasa1name == *"全日本大学駅伝"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日の戦隊の時間は駅伝ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全米オープンゴルフ"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日の戦隊の時間はゴルフワルドが占拠するようです" | aplay -D plughw:2,0
  fi
  if [[ $nichiasa1name == *"全国高校野球選手権"* ]]; then
  ./aquestalkpi/AquesTalkPi -b -s 60 "明日の戦隊の時間は甲子園ワルドが占拠するようです" | aplay -D plughw:2,0
  fi
fi
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?