2006/12/21

[技術系]   再構築させるスクリプト

at 04:10JST
設定ファイルとコマンドライン引数で指定したブログに対し、直近5件のエントリを再構築させるスクリプト。

#!/usr/bin/perl 

# wrtten in EUC-JP, LF にほんご
# stdout: ShiftJIS

use XMLRPC::Lite;
use Data::Dumper;
use Unicode::Japanese qw(unijp);
use FileHandle;
use Storable;

our $DATA_DIR = 'data';
our $INICONFIG = "$DATA_DIR/heebopath.conf.cgi";
=rem
*CONFIG SAMPLE*
endpoint = http://blog.seesaa.jp/rpc
userid = ユーザーID
password = ユーザーパスワード
=cut

umask 0;

my $blogId = shift( @ARGV );
die 'insufficient_argument'
if ( $blogId eq '' );

our $C = GetIniConfig( $INICONFIG )
or die 'no_config_file';
die 'invalid_config'
if (
!defined $C->{userid} ||
!defined $C->{password} ||
!defined $C->{endpoint}
);

my $refArticles =
GetRecentPosts( $blogId )
or die 'cannot_get_posts';
foreach my $h ( @$refArticles ) {
if ( PublishPost( $h->{postid} ) ) {
print 'o ';
} else {
print 'x ';
}
print
unijp( $h->{title} )->sjis .
"(id:$h->{postid})\n"
;
}

exit 0;


sub Slurp {
my $fn = shift @_;
my $str = do {
local $/;
my $fh = FileHandle->new( $fn, 'r' )
or return undef;
local $_ = <$fh>;
$_;
};
$str =~ s/\x0D\x0A|\x0D|\x0A/\n/g;
return $str;
}

sub GetIniConfig {
my $fn = shift @_;
my $cnt = Slurp( $fn )
or return undef;
my $C;
foreach my $line ( split( /\n/, $cnt ) ) {
$line =~ s/^\s+//;
$line =~ s/\s+$//g;
my( $k, $v ) = split( /\s*=\s*/, $line );
$C->{$k} = $v;
}
return $C;
}

sub PublishPost {
my $postId = shift @_;
return XMLRPC::Lite
->proxy( $C->{endpoint} )
->call(
'mt.publishPost',
$postId,
$C->{userid},
$C->{password},
)->result;
}

sub GetRecentPosts {
my $blogId = shift @_;
return XMLRPC::Lite
->proxy( $C->{endpoint} )
->call(
'mt.getRecentPostTitles',
$blogId,
$C->{userid},
$C->{password},
5,
)->result;
}

[技術系]   テスト

at 00:07JST
ignore me.
ユーザーエージェントを書き換えて投稿するテスト。
さらに過去の記事
2009/04 (1)   2008/12 (3)   2008/11 (9)   2008/10 (10)   2008/09 (20)   2008/08 (2)   2008/07 (23)   2008/06 (16)   2008/05 (22)   2008/04 (11)   2008/03 (21)   2008/02 (20)   2008/01 (21)   2007/12 (32)   2007/11 (37)   2007/10 (46)   2007/09 (63)   2007/08 (33)   2007/07 (41)   2007/06 (81)   2007/05 (173)   2007/04 (168)   2007/03 (113)   2007/02 (123)   2007/01 (92)   2006/12 (111)   2006/11 (185)   2006/10 (20)  

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。