#はじめに
2016/05/18の日本時間の5時頃、Android版、iOS版ともに、Ingressのスキャナ 1.100.0 がリリースされました。
隠していたわけではありませんが、常日頃から私はどうやってスキャナのVer.upを把握していたのか、その方法を紹介します。
#していたこと
・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
つまり、
```ってことです。
で、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 "softwareVersion" | 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 | awk '$0 ~ /<li><span class="label">バージョン: <\/span>.*<\/li>/' | sed "s/li>/li>\n/g" | grep "バージョン" | sed -e "s/<[^>]*>//g" | 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
って内容で、バージョンの数値を引っ張り出してチェックしていました。
汚い記述ですけれど、実際に数年間これを稼働してきました。
このスクリプトは、15分毎のチェックの際にログも残してくれます。
一部抜粋しますと、
```text:android
2016/05/18 04:15:02 1.99.1
2016/05/18 04:30:02 1.99.1
2016/05/18 04:45:01 1.99.1
2016/05/18 05:00:01 1.100.0
2016/05/18 05:15:02 1.100.0
2016/05/18 05:30:01 1.100.0
2016/05/18 04:15:02 1.99.1
2016/05/18 04:30:02 1.99.1
2016/05/18 04:45:02 1.99.1
2016/05/18 05:00:02 1.100.0
2016/05/18 05:15:02 1.100.0
2016/05/18 05:30:02 1.100.0
という具合です。
なので、いつ頃にどのバージョンがリリースされたのかを振り返ることが可能となっております。
#もちろん。。。
たとえば、こういう書き方でも同じようなことはできます。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from selenium import webdriver
from bs4 import BeautifulSoup
driver = webdriver.PhantomJS()
driver.get("https://itunes.apple.com/jp/app/ingress/id576505181?mt=8")
data = driver.page_source.encode('utf-8')
soup = BeautifulSoup(data, "html.parser")
a = soup.find_all("li", class_="release-date")
b = a[0].find_next_sibling("li")
b.span.decompose()
itunes_ver = b.text.strip()
print (itunes_ver)
driver.close()
ですけれど、動作の軽快さとかからすると、シェルで組んでしまったほうが手っ取り早かったりします。
#というわけで、
緑でも青でも、イングレスやっていなくても、スクレイピングの方法だとか、シェルでの自動化とかに興味を持っていただけると、これまた、違う側面から
The world around you is not what it seems.
(あなたの周りの世界は、見たままのものとは限らない)
ってことになりますよ。
#参考
・http://osanai.org/50/
ingress-ios-chk.pyを組むに当たって、参考にさせていただきました。