2006/11/29

[技術系]   管理blogの一覧とカテゴリ一覧を取得する

at 12:08JST
 
けっこうめんどうだな、おい。というか、perlのハッシュの使い方で混乱して泣きそうになっただけなんだけど。

これを永続化しておいて使う、簡単な投稿フロントエンド画面をつくろう。

#!/usr/bin/perl

# in EUC-JP, LF にほんご

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

#eval {
my $C = GetIniConfig( 'showcats.ini' );
#die( "No config file" );

# 管理blog一覧取得
my $refBlogs = XMLRPC::Lite
->proxy( $C->{endpoint} )
->call(
'blogger.getUsersBlogs',
'nonesense', # APIkey
$C->{userid},
$C->{password},
)->result;
my $blogs;
foreach my $h ( @$refBlogs ) {
my $id = $h->{blogid};
$blogs->{ $id }->{name} = unijp( $h->{blogName} )->euc;
$blogs->{ $id }->{url} = $h->{url};
# カテゴリ取得
my $refCategories = XMLRPC::Lite
->proxy( $C->{endpoint} )
->call(
'mt.getCategoryList',
$id,
$C->{userid},
$C->{password},
)->result;
foreach my $i ( @{$refCategories} ) {
$i->{categoryName} = unijp( $i->{categoryName} )->euc;
}
$blogs->{ $id }->{cats} = $refCategories;
# @{$blogs->{ $id }->{cats}}
# = [ { categoryId, categoryName } ... ]
}
#keys( %{$blogs} )
#};
if ( $@ ) {
print "ERROR: $@\n";
}
exit( 0 );

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

sub GetIniConfig {
my $fn = shift @_;
my $cnt = Slurp( $fn );
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 );
}

関連しそうな過去記事:
さらに過去の記事
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)  
×

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