Perl
PokemonGo
ポケモン

ポケモンGOの配信チェック(Perl版)

More than 1 year has passed since last update.

はじめに

ポケモン赤緑以来、かれこれ二十年くらいポケモンやってないのに、いつ日本で配信されるのかとApp Storeをちょくちょく確認している自分がいます。
アメリカでめっちゃ流行ってますね。任天堂の株価も気になりますね。

そんななか、、、

_人人人人人人人人_
> なんだこれは! <
 ̄Y^Y^Y^Y^Y^Y^Y ̄

コレは面白い、、、
ということで早速、パクらせていただきました\(^o^)/

実装してみる

久しぶりにPerlを使ってみました。myとか懐かしいw

#!/usr/bin/perl
use strict;
use warnings;
use Encode;
use LWP::Simple;
use Mail::Sendmail;

main();

# sudo cpan install Mozilla::CA
# sudo cpan install Mail::Sendmail
sub main {
    my $url = 'https://itunes.apple.com/jp/app/apple-store/id1094591345?mt=8';
    my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 1 });
    my $response = $ua->get($url);
    if ($response->is_success) {
        if (index($response->content, 'カスタマーレビュ') > 0) {
            my %mail = (
                'Content-Type' => 'text/plain; charset="iso-2022-jp"',
                'From' => 'pokemon-get-daze@example.com',
                'To' => 'pokemon@exapmple.com',
                'Subject' => encode('MIME-Header-ISO_2022_JP', 'Pokemon GO was released in Japan!'),
                'message' => encode('iso-2022-jp', "Pokemon Go!\n$url")
            );
            sendmail(%mail) or die $Mail::Sendmail::error;
            print "OK. Log says:\n", $Mail::Sendmail::log;
        } else {
            print "not released\n";
        }
    }
}

cpanモジュールをインストール

そういえば、Perlってcpanってものがありましたね。インストールしないと動きませんよ。

$ sudo cpan install Mozilla::CA
$ sudo cpan install Mail::Sendmail

Macでメールを送る

Postfixを起動。

sudo postfix start

実行

とりあえず手動実行。cronに登録したらいいと思いますよ。

$ yokoyama@MBAY:~/perl/pokemonGo (master)$ perl pokemonGo.pl 
OK. Log says:
Mail::Sendmail v. 0.79 - Fri Jul 22 00:41:03 2016
Date: Fri, 22 Jul 2016 00:41:03 +0900
Server: localhost Port: 25
From: pokemon-get-daze@example.com
Subject: Pokemon GO was released in Japan!
To: pokemon@exapmple.com

Result: 250 2.0.0 Ok: queued as 6524065FD5FAy

ソースはこちら

https://github.com/tatsuya-yokoyama/pokemonGo