Distributed.net」タグアーカイブ

Distributed.netのXMLをTwitterに投稿する

Distributed.netでは各個人の成績をXMLで入手することが出来ます.

このXMLをTwitterに投げるスクリプトを書いてみました.

use strict;
use XML::TreePP;
use Net::Twitter;

# IDとProject IDを設定.
# Project ID:RC5-72="8" OGR-25="25"
my $id = "347113";
my $project_id = "25";

# TwitterのIDとパスワードを設定.
my $twitter_username = "nagitsuki";
my $twitter_password = "***********";

my $stats_uri = "http://stats.distributed.net/participant/psummary_xml.php?id=" . $id . "&project_id=" . $project_id;

my $tpp = XML::TreePP->new();
my $tree = $tpp->parsehttp( GET => $stats_uri ) or die "Can't parse page\n";

my $stats_text;

#XMLから,登録名と昨日の順位,昨日の処理ノード数を取り込み.
my $participant_name = $tree->{'participant-summary'}->{'name'}, "\n";
my $yesterday_rank = $tree->{'participant-summary'}->{'stats'}->{'stat'}->[1]->{'-value'}, "\n";
my $yesterday_value = $tree->{'participant-summary'}->{'stats'}->{'stat'}->[3]->{'-value'}, "\n";

# Twitterに投稿するテキストを作成(OGR-25専用になってますね)
$stats_text = "Dnet stats(OGR-25p2):" . $participant_name . " Yesterday Rank:" . $yesterday_rank . " " . $yesterday_value . "Gnodes/sec";

$print $stats_text;

# Net::Twitterを使用して投稿.
my $twit = Net::Twitter->new(
          username=>$twitter_username
        , password=>$twitter_password
      );

#my $result = $twit->update($stats_text);

久しぶりにプログラムというものを書いてみたので(しかもPerlなんてほとんど始めて)なにか変かもしれません.
XML::TreePPとNet::Twitterを使用することでほとんどコードを書かなくても作ることが出来ました.これが高速道路ってやつか.

ツインテール関係ないじゃんって話もありますが,もともとD.netのページなので問題なし.

追記 2008/6/23

タイトルにスペルミスがあったので修正しました。