MyWeb2.0Betaからはてなに出戻る

さっき取り出したMyWeb2.0Betaのデータをはてなにインポートする。

WebService::SyncSBS::D2HとセットになってるWebService::SyncSBS::Hatenaを使ってポストする。
以下スクリプト。

#!/usr/bin/perl -w
#
# MyWeb2.0 Betaから抽出したdel.icio.us/api/posts/allベースのXMLからはてなBMにポスト
#
# USAGE: perl importer.pl <impor file>
#
use strict;
use FileHandle;
use XML::Simple;
use WebService::SyncSBS::Hatena;
use Data::Dumper;

$| = 1;

my $ROOT_URL    = "http://b.hatena.ne.jp/atom";
my $POST_URI    = $ROOT_URL . "/post/";
my $USER        = "KoshigoeBushou";
my $PASS        = "********";

## Initialize

# Setting hatena
my $param = {
  "user" => $USER,
  "pass" => $PASS
};
my $hatena = WebService::SyncSBS::Hatena->new($param);

# read import file
print "[process] reading import file ...";
local $/; # read from file at once
my $fh  = FileHandle->new( shift ) or die "cannot open import file: $!";
my $xml = $fh->getline;
$fh->close;
print " ok\n";

# parse import file
print "[process] parsing import file...";
my $parsedXML = XML::Simple::XMLin($xml);
print " ok\n";

## POST all
my $bookmarks = $parsedXML->{"post"};
foreach my $bookmark (@$bookmarks) {
  my @tags = split(",", $bookmark->{"tag"});
  my $entry = {
    "tags"        => join(" ", @tags),
    "url"         => $bookmark->{"href"},
    "title"       => $bookmark->{"title"},
    "description" => $bookmark->{"description"}
  };
  print "[process] post: ";
  my $editURI = $hatena->add($entry);
  print $editURI . "\n";
  sleep 1;
}

利用環境ではEncode::encodeの影響で文字化けた。
なので、スクリプトをUTF-8にして無変換で済ませる。
WebService/SyncSBS/Hatena.pmのcreateEntry内該当部分をコメントアウト。

# 1秒間隔でポストってのは危険かな
プロフィール

このブログ記事について

このページは、koshigoeが2005年11月 3日 22:03に書いたブログ記事です。

ひとつ前のブログ記事は「MyWeb2.0Betaのデータをエクスポート〜続き」です。

次のブログ記事は「グループ開発は難しい」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。