#!/usr/bin/perl -w use strict; use Jcode; use XMLRPC::Lite; my $site_uri = 'http://sugaken.net/note/'; my $site_name = 'Sugaken\'s Web Page[note]'; # my $site_rss = 'http://sugaken.net/note/rss/'; print "Content-Type: text/html; charset=EUC-JP\n\n"; print "Ping Completed\n"; print "

Ping Completed

\n"; # Ping Server => XML-RPC Interface URI my %ping_server_uri = ( 'ping.bloggers.jp' => 'http://ping.bloggers.jp/rpc/', 'Myblog_japan' => 'http://ping.myblog.jp/', 'BlogPeople' => 'http://www.blogpeople.net/servlet/weblogUpdates', 'Bulkfeeds' => 'http://bulkfeeds.net/rpc', 'cocolog' => 'http://ping.cocolog-nifty.com/xmlrpc', 'goo BLOG' => 'http://blog.goo.ne.jp/XMLRPC', 'blogdb' => 'http://blogdb.jp/xmlrpc', 'debug' => 'local', 'Pine' => 'http://www.trackbackcenter.com/cgi-bin/receive.cgi' , 'pine2' => 'http://www.trackbackcenter.com/cgi-bin/i/102' , ); # Select servers to send update ping my @ping_servers = ('ping.bloggers.jp','Myblog_japan','BlogPeople','Bulkfeeds','cocolog','goo BLOG', 'blogdb', 'Pine', 'pine2'); my %mtime; my $all_results = ''; #if (&check_mtime()) { foreach my $ping_server_name (@ping_servers) { my $result = &send_ping( rpc => $ping_server_uri{$ping_server_name}, blog_name => Jcode::convert($site_name, 'utf8', 'euc'), blog_url => $site_uri, # blog_rss => $site_rss, ); $all_results .= &as_string($result); } #} else { # $all_results = "Aborted ping."; #} print scalar localtime(time()), qq(
\n); print qq(Ping: @ping_servers
$all_results); # sub check_mtime { # # 30 min. check # return undef if ((time() - $mtime{'blog'}) > 1800); # return undef if ((time() - $mtime{'lastping'}) < 1800); # return 1; # } #&send_ping(rpc => $, blog_name => $, blog_url => $, blog_rss => $); sub send_ping { my %arg = @_; my $rpc_uri = $arg{rpc}; my $blog_name = $arg{blog_name}; my $blog_url = $arg{blog_url}; # my $blog_rss = $arg{blog_rss}; if ($rpc_uri !~ /^http/) { return { filerror => 0, message => 'local echo mode', name => $blog_name, uri => $blog_url, # rss => $blog_rss, } } # send ping my $result = eval { XMLRPC::Lite ->proxy($rpc_uri) ->call( 'weblogUpdates.ping', $blog_name, $blog_url, # $blog_rss, ) ->result; }; if ($@) { return $@; } return $result; } sub as_string { my $v = shift; if (not ref $v) { return $v; } elsif (ref $v eq 'SCALAR') { return $$v; } elsif (ref $v eq 'ARRAY') { return join("
\n", @$v); } elsif (ref $v eq 'HASH') { my $ret = ''; foreach (sort keys %$v) { $ret .= "$_ => $v->{$_}
\n"; } return $ret; } else { return undef; } } print "
\n"; print "
\n";
#print "$send_ping(result)";
print "
\n"; print "\n";