よくチェックするサイトに新着記事が投降されたら、LINE NotifyのAPIを叩いて通知するコードを書いてみました。
#!/bin/bash # LINEのTOKENを定義 TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # WEBページの情報を取得 MSG=`curl https://www.megamouth.info/archive | grep "<a class=\"entry-title-link\"" | sed -e 's/<[^>]*>//g' | nl` # 作業ディレクトリの定義 OPE_DIR=/opt/SCRAPING/megamouth # 実行時のWEBページ情報を記録するファイルを定義 INFO_FILE=$OPE_DIR/info.txt # 前回実行時のWEBページ情報を記録するファイルを定義 PRE_INFO_FILE=$OPE_DIR/pre_info.txt if [ ! -e $OPE_DIR ]; then # ディレクトリの作成 mkdir -p $OPE_DIR fi # 前回実行時の記録ファイルが無ければ作成し通知 if [ ! -e $PRE_INFO_FILE ]; then curl https://www.megamouth.info/archive | grep "<a class=\"entry-title-link\"" | sed -e 's/<[^>]*>//g' | nl > $PRE_INFO_FILE curl -X POST -H "Authorization: Bearer ${TOKEN}" -F "message=${MSG}" https://notify-api.line.me/api/notify exit 0 fi # 今回取得した情報を変数に代入 curl https://www.megamouth.info/archive | grep "<a class=\"entry-title-link\"" | sed -e 's/<[^>]*>//g' | nl > $INFO_FILE # 前回と今回取得した情報を比較 diff -s $INFO_FILE $PRE_INFO_FILE # DIFFの実行結果を変数に代入 DIFF_STATUS=$? if [ ${DIFF_STATUS} -eq 1 ]; then # 前回取得した情報と今回取得した情報に差異があれば通知 curl -X POST -H "Authorization: Bearer ${TOKEN}" -F "message=${MSG}" https://notify-api.line.me/api/notify elif [ ${DIFF_STATUS} -eq 2 ]; then # diff実行時にエラーが発生すればエラーを通知 curl -X POST -H "Authorization: Bearer ${TOKEN}" -F "message=error" https://notify-api.line.me/api/notify fi # 情報ファイルを更新 cp -fp $INFO_FILE $PRE_INFO_FILE
なんだかもっといろいろと使えそうですね。
アラート通知とか。。
↓皆さんもぜひ
LINE Notify