Help us understand the problem. What is going on with this article?

Pokemon Goのリリースに悶々とするのが嫌だからリリースを検知してツイートするスクリプトをつくった話

More than 3 years have passed since last update.

結果...

自分のスクリプトの通知が来る前にリリースをTwitterで検知してしまい、普通に手動でツイートするはめになりました。
僕の方法と、もうひとつhaminikuさんの方法の両方のスクリプトを動かしてみたのですが、どちらもリリースを検知するには至りませんでした。残念......

(なお完全に検知できないわけではなく、検索上位にあがってくるようになった現在ではしっかりGotchaしてくれます)

きっかけ

Twitterで見ているとそろそろ日本でリリースなのかどうなのかみたいな感じで、いろんな情報が錯綜してその度AppStoreで検索して無くてみたいなことを延々と繰り返さなければならず、悶々としてしまうのでスクリプトで通知できないかと思ったのがキッカケです。

追記:
こちらの記事を参考にリリースされたら僕のTwitterアカウント(@touyoubuntu)でリンクをつぶやくようにしています。ぜひ!(現在はpyenvの闇に飲まれています汗)→完成しました!

アプリケーションが有効になるまでしばらく時間がかかるためテストツイートを確認するのが大変でしたが、どうやら大丈夫なようです。具体的には以下のような関数を下のGotchaのところで呼び出しています。

tweet.py
def tweet():
    twitter = OAuth1Session(CONSUMER_KEY, client_secret=CONSUMER_SECRET, resource_owner_key=ACCESS_TOKEN, resource_owner_secret=ACCESS_TOKEN_SECRET)
    params = {"status": "日本でついにPokemon Goがリリースされたっぽい! http://itunes.apple.com/jp/app/pokemon-go/id1094591345?mt=8"}
    req = twitter.post("https://api.twitter.com/1.1/statuses/update.json", params=params)
    print req.status_code

仕組み

基本的にiTunesSearchAPIを利用します。開発元はNiantic, Inc.とわかっているのでIngressのsellerNameをコピーして活用しました。

(よく規約を読んでいないのでビクビクしつつ)30秒に一回、pokemon goでサーチしその中にNiantic, Inc.の製品がないかを探しています。

pokemon_go_alert.py
import urllib
import urllib2
import json
import time

url = 'https://itunes.apple.com/search?term=pokemon+go&country=jp&media=software&entity=software&lang=ja_jp'

def func():
    while True:
        try:
            r = urllib2.urlopen(url)
            root = json.loads(r.read())
            for data in root['results']:
                if u'Niantic, Inc.' in data[u'sellerName']:
                    print "Gotcha!"
                    tweet()
                    return
            print "has not been released yet in Japan"
        finally:
            r.close()
        time.sleep(30.0)

func()

mainメソッドにしなかったのはノリです。こうすることによって30秒ごとにhas not been released yetかGotcha!を表示しあった場合はスクリプトを終了します。

このGotchaの部分をTwitterでつぶやくようになどと変えたりしてもうちょっと間隔短くすればPokemon Goリリース最速検知も夢ではないですね。

まとめ

ひさしぶりにPythonを書いてみました。iTunesAPIで調べるとあるとされているsellerUrlがなかったのが精度を上げる点で惜しかったなと思います笑

なにか問題とかさらなる改善案があれば気軽にコメントください。

Pokemon Goまだかなぁ...

参考

追記

電話をかけてくれる処理を埋め込んでおなじことをしている人がいました笑
【スタダ】ポケモンGOがリリースされたら電話掛かってくるスクリプト

RubyでSlackに通知するようにした人
Pokemon Go を iTunes で検索するのつらすぎるので crontab 仕込んだ

みんな同じような時間に記事つくってるのめっちゃ面白いですね笑

touyoubuntu
Life is Tech! iPhoneメンター / UTokyo / IS17er, CS19er [ http://twitter.com/touyou_dev ], [ https://github.com/touyou ]
https://touyou.dev/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした