ルモーリン
ホーム 更新 Perl ランドナー サービス 雑談 コースガイド 鉄ゲタ 自転車 Linux リンク 連絡先

Radikoの地域判定

2019-04-13

ブラウザ操作が面倒

2日に1回の頻度でRadikoの地域判定が北海道から外れてしまい、その都度地域判定を申請しています。 Radikoの地域判定を申請するのは面倒ですよね。 ヘルプの一番下にある奴です。 これを自動的に申請するプログラムを作りました。
radiko.jp ヘルプ

コード

#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use open IO => ":utf8";

use Encode::Locale;
use LWP::UserAgent;

use feature "say";

binmode STDOUT, ":encoding(console_out)";
binmode STDERR, ":encoding(console_out)";

$| = 1;

use constant AREA_ID_HOKKAIDO => "JP1";

my $ua = LWP::UserAgent->new;

my $res = $ua->get("https://radiko.jp/area");
my $area_id;
if ($res->is_success) {
	my $area = Encode::decode "utf8", $res->content;
	($area_id) = $area =~ /class="([^"]+)"/;
	say "エリアID:$area_id";
} else {
	say "エラー:" . $res->status_line;
}

if (AREA_ID_HOKKAIDO ne $area_id) {
	say "別エリア判定";

	say "申請確認:" . AREA_ID_HOKKAIDO;
	$res = $ua->post("https://radiko.jp/contact3", {
		prefecture => AREA_ID_HOKKAIDO,
		email => 'dummy@dummy.com',
		area_judge_result => $area_id,
		area_id => AREA_ID_HOKKAIDO,
	}, );
	if ($res->is_success) {
		say "確認成功";
	} else {
		say "エラー:" . $res->status_line;
	}

	say "申請...";
	$res = $ua->post("https://radiko.jp/contact3", {
		confirm => "1",
		email => 'dummy@dummy.com',
		area_judge_result => $area_id,
		prefecture => AREA_ID_HOKKAIDO,
		area_id => AREA_ID_HOKKAIDO,
	}, );
	if ($res->is_success) {
		say "申請成功";
	} else {
		say "エラー:" . $res->status_line;
	}
} else {
	say "北海道判定のため終了";
}

実行結果

こんな感じになります。
エリアID:JP13
別エリア判定
申請確認:JP1
確認成功
申請...
申請成功