K1's ManiYac Blog
徹底的に無料で使えて実用的なフリーソフトの紹介です
随時更新が面倒なのでBlog形式で更新いたします

 
徹底的に無料で使えて実用的なフリーソフトの紹介です
k1s - Perl 覚書 - 2010年3月の記事
>>このカテゴリーの記事一覧

2010年 3月 19日 (金)

ブログの更新通知(Update.ping)を受信するperlのスクリプトです

by k1s

http://naoya.dyndns.org/~naoya/mt/archives/000423.html
に公開されているサンプルを参考に指定件数(30件)ほどpingを受信して
textファイルに保存するスクリプトをかきました。
rssファイルを読みに行かないとタイトル等まで拾えないのですが、
どなたか書き加えていただけないでしょうか?

みようみまねなのでperlの記述は綺麗にかけません。

##################################

#!/usr/bin/perl
#######################
# Ping 受信プログラム #
#######################
#txt file に保存する件数
my $max = 30;
my $guest_file = './ping.txt';
use strict;
use warnings;
use XMLRPC::Transport::HTTP;
XMLRPC::Transport::HTTP::CGI->dispatch_to('weblogUpdates')->handle;
package weblogUpdates;
sub ping {
my $self = shift;
my ($name, $url,$surl,$catname) = @_;
my $LT;
my $LLT;
my $sec;
my $min;
my $hour;
my $mday;
my $mon;
my $year;
my $wday;
my $yday;
my $isdst;
my $month;
my $Xyear;
my $Xmon;
my $Xday;
my $Xmday;
my $count;
my $value;
my @DATA;

$LT = time;
$LLT = $LT +86400*$a;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($LLT);
$month = ($mon + 1);
$Xyear = $year + 1900;
if ($month < 10 ){$Xmon = "0".$month} else {$Xmon = $month}
if ($mday < 10 ){$Xday = "0".$mday} else {$Xday = $mday}
if ($hour < 10) { $hour = "0$hour"; }
if ($min < 10) { $min = "0$min"; }
if ($sec < 10) { $sec = "0$sec"; }

open(NOTE,"$guest_file");
@DATA = ;
close(NOTE);

$count = @DATA;
if ($count > $max) { pop (@DATA); }
$value = "$Xyear/$Xmon/$Xday,$hour:$min:$sec,$name,$url,$surl,$catname\n";
unshift (@DATA,$value);
open (NOTE, ">$guest_file");
print NOTE @DATA;
close(NOTE);

# 書込み処理

return { flerror => XMLRPC::Data->type('boolean', 0),
message => "Thanks for the ping" };
exit;
}












RSS


RingBlog v3.22