はじめに
過去にIngressのスキャナのVer.upを誰よりも速く知る方法 v2を公開していました。
が、2018/03/30の日本時間の08:15頃でしょうか。Androidアプリのダウンロードサイトのレイアウトに大幅な変更があったようです。
これに伴い、ずーっと問題なく動作していたスクリプトに不具合が発生したため、修正版をリリースします。
していたこと
・cronで15分毎に以下のWebページをチェックしていました
・Android版
https://play.google.com/store/apps/details?id=com.nianticproject.ingress&hl=ja
・iOS版
https://itunes.apple.com/jp/app/ingress/id576505181?mt=8
つまり、
0,15,30,45 * * * * /home/nuwaa/scanner_chk/go
ってことです。
で、goの中身はというと、
cd /home/nuwaa/scanner_chk
wget -q -O ANDROID "https://play.google.com/store/apps/details?id=com.nianticproject.ingress&hl=ja"
AV=`cat ANDROID | sed "s/</\n</g" |grep "AF_initDataCallback" | grep "ds:5" | sed -e "s/<[^>]*>//g" | cut -d, -f5 | sed -e "s/\"//g"`
echo `date +"%Y/%m/%d %H:%M:%S "`$AV >> android
OLD=`tail -n 2 android | head -n 1 | awk '{print $3}'`
NOW=`tail -n 1 android | awk '{print $3}'`
if [ $OLD != $NOW ]; then
echo "Android" | mail -s "Scanner Update" **自分のメールアドレス**
fi
wget -q -O IOS "https://itunes.apple.com/jp/app/ingress/id576505181?mt=8"
IV=`cat IOS | grep "バージョン" | sed -e "s/<[^>]*>//g" | awk '{ sub("{\"data\".*$",""); print $0; }' | awk '{print $2}'`
echo `date +"%Y/%m/%d %H:%M:%S "`$IV >> ios
OLD=`tail -n 2 ios | head -n 1 | awk '{print $3}'`
NOW=`tail -n 1 ios | awk '{print $3}'`
if [ $OLD != $NOW ]; then
echo "iOS" | mail -s "Scanner Update" **自分のメールアドレス**
fi
rm ANDROID IOS
となります。
上記スクリプトは前半がAndroidアプリのパーションの差異を、後半がiOSアプリのバージョンの差異をチェックして、差異があったらメールするようにしていますので、仕組みに興味がある方は、過去の記事と見比べてみてください。
蛇足
現在の私は、通知はメールで飛ばすのではなく、telegramに飛ばしています。
また、この方法はスクレイピングですが、ゲーム内の情報の収集ではなく、ゲームそのもののバージョン情報を取得しているだけとなりますので、問題はないと認識しております。
問題があるとしたら「15分毎のチェック頻度をもうちょっと減らすべきでは」といった見方があるかも知れませんね。。。