Subscribed unsubscribe Subscribe Subscribe

半自動

人間のチカラ - すぎゃーんメモで学んだ。
Anpi - Shiny Cleaning Tip ではAPIを提供してくれているので、ある程度自動で情報を収集することができる。
Anpi - Shiny Cleaning Tip
情報量の多さではやはりGoogle Person Finderが強いと思う。
少しでも両者で情報を共有できれば、と思いスクリプトを用意した。

#!/usr/bin/env perl
use strict;
use warnings;

use utf8;
use Encode 'encode_utf8';
use Devel::CheckOS 'os_is';
use Furl;
use HTTP::Request::Common;
use JSON::XS 'decode_json';

my $furl = Furl->new;
my $uri = URI->new('http://anpi.tv/api/list');
while ($uri) {
    my $res = $furl->get($uri);
    if ($res->is_success) {
        my $data = decode_json($res->content);
        $uri = $data->{next_page};
        for my $entry (@{ $data->{entries} }) {
            print encode_utf8($entry->{person_name}), "\n";
            my @names = split(/[ 、, ]/, $entry->{person_name});
            my $name = shift @names;
            if (@names && length($name) <= 2) {
                $name .= shift @names;
            }
            if (os_is('MacOSX')) {
                my $finder_uri = URI->new('http://japan.person-finder.appspot.com/results');
                $finder_uri->query_form(
                    role  => 'seek',
                    query => $name,
                );
                qx#open '$finder_uri'#;
                qx#open 'http://anpi.tv/entry/$entry->{id}'#;
            }
            print 'next ?';
            readline;
        }
    }
    else {
        die join(': ', $res->code, $res->message);
    }
}

anpi.tvのAPIから安否情報を取得、名前でPerson Finderを検索した結果のページをブラウザで開く(Macのみ)。
該当している安否情報があれば元のTweetにリプライし、なければそのままPerson Finderに新しく登録する。情報源は多ければ多い方が良い。
自動化できる部分だけ自動化し、できないことは手動でやる。何もしないよりは全然良いと思う。