[PYTHON] [Stada] Un script qui vous appellera à la sortie de Pokemon GO

Des tourbillons Pokemon GO se produisent partout dans le monde. J'ai écrit un script pour le déjeuner qui vous appellera dès la sortie de la version japonaise de Pokemon GO. C'est le Pokémon le plus rapide (・ ㅂ ・) و

スクリーンショット 2016-07-15 15.08.00.png

architecture

Obtenez le statut en interrogeant la page iTunes via la communication HTTP + Appeler avec Twilio

Enquête sur l'état actuel de Pokémon GO

Quand j'ai vérifié Niantic's Pokemon Official HP le 15 juillet, la version iOS n'est pas sortie, et la version Android est déjà sortie. La version Android est filtrée côté logiciel et il semble que les utilisateurs japonais ne puissent pas y jouer.

Détecté à l'ouverture de la page iTunes

appstore.py


# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import requests


def app_store_is_open(_id):
    """
Vrai si l'App Store japonais est ouvert
    :param _id: str
    :rtype: bool
    """
    headers = {'Content-type': 'application/json; charset=utf-8'}
    url_base = "https://itunes.apple.com/jp/app/apple-store/{}?ct=official&mt=8"
    url = url_base.format(_id)
    response = requests.get(url, headers=headers)
    assert response.status_code == 200  #L'état HTTP est 200
    return "Avis des clients" in response.text  #Il existe des éléments d'avis client pour les applications ouvertes

ids = {
    "POKEMON GO": "id1094591345",
    "chat blanc": "id895687962",
    "Puzzle": "id493470467",
    "Saisir": "id852882903",
}

for k, v in ids.items():
    print("{}: {}".format(k, app_store_is_open(v)))

Résultat d'exécution


$ python appstore.py
Saisir: True
POKEMON GO: False
Puzzle: True
chat blanc: True

Passer un appel avec Twilio

Au Japon, nous passons des appels à l'aide de l'API Twilio, une entreprise de téléphonie qui se développe en collaboration avec AU.

tel.py


# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
from twilio.rest import TwilioRestClient

ACCOUNT_SID = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
AUTH_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"

FROM_CALL_NUMBER = "819012341234"
TO_CALL_NUMBER = "819012341234"

client = TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN)
call = client.calls.create(to=TO_CALL_NUMBER, from_=FROM_CALL_NUMBER,
                           url="http://foo.com/call.xml")
print call.sid

Résultat d'exécution


$ python tel.py
CA8b5ea1f08503ee8efc6aXXXXXXXX

J'ai reçu un appel. Le téléphone continue de vibrer pendant environ 30 secondes. upload_thumb.png

Produit fini

Combinez les deux scripts pour terminer le script qui vous appellera lors de la sortie de la version App Store de Pokemon GO.

poke_check.py


# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
import requests
from twilio.rest import TwilioRestClient


def app_store_is_open(_id):
    """
Vrai si l'App Store japonais est ouvert
    :param _id: str
    :rtype: bool
    """
    headers = {'Content-type': 'application/json; charset=utf-8'}
    url_base = "https://itunes.apple.com/jp/app/apple-store/{}?ct=official&mt=8"
    url = url_base.format(_id)
    response = requests.get(url, headers=headers)
    assert response.status_code == 200  #L'état HTTP est 200
    return "Avis des clients" in response.text


def tel():
    ACCOUNT_SID = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    AUTH_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"

    FROM_CALL_NUMBER = "819012341234"
    TO_CALL_NUMBER = "819012341234"

    client = TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN)
    call = client.calls.create(to=TO_CALL_NUMBER, from_=FROM_CALL_NUMBER,
                               url="http://foo.com/call.xml")


def start():
    print("start")
    pokemon_go = "id1094591345"
    if app_store_is_open(pokemon_go):
        print("OPEN")
        tel()
    else:
        print("NOT OPEN")


if __name__ == '__main__':
    start()

Résultat d'exécution


$ python poke_check.py 
start
NOT OPEN

J'espère qu'il ouvrira bientôt

Postscript

Je ne pense pas qu'il y ait des gens qui font la même chose ... http://qiita.com/touyoubuntu/items/af5d8e9e69e099945da1

Recommended Posts

[Stada] Un script qui vous appellera à la sortie de Pokemon GO
C'est une histoire de ferroutage sur le service qui renvoie "Nyan" lorsque vous appuyez sur ping
Que contient cette variable (lorsque le script Python est en cours d'exécution)
Script shell qui numérote les noms en double lors de la création de fichiers
Un mémorandum que vous utiliserez souvent avec Selenium en Python
Écrivez un script dans Shell et Python pour vous avertir dans Slack lorsque le processus est terminé
Qu'est-ce qu'un appel système
Déterminer si la sortie standard est acheminée lors de l'exécution d'un script Python