はてなグループにキーワードを登録する準備
30分プログラム、その630。はてなグループに大量にキーワードを登録したくなったので、その準備をしてみた。
はてなグループにはCSV形式でキーワードをインポートできる。
CSVファイルは
word,body "リンク集","- [http://g.hatena.ne.jp/:title] - [http://g.hatena.ne.jp/help:title=ヘルプ] "
みたいな形になっていて、改行が含まれていることを除けばそれほど難しくない。
難しくはないんだけど、練習がてらPerlでクラスを作ってみた。
使い方
my $keyword = HatenaKeyword->new(); # hogeの登録 $keyword->add('hoge',"hogeの説明"); # 説明は省略できる $keyword->add('hoge2'); # CSVの出力 print $keyword->to_string,"\n";
これで、パイプでキーワード一覧を受け取って、CSVファイルを作るスクリプトが簡単に作れる。
my $keyword = HatenaKeyword->new(); while(<>){ chop; $keyword->add("$_","[[AVM2 Opcode]]\n$_の説明を書く"); } print $keyword->to_string,"\n";
ソースコード
#! /usr/bin/perl # -*- mode:perl; coding:utf-8 -*- # # hatena_keyword.pl - # # Copyright(C) 2009 by mzp # Author: MIZUNO Hiroki / mzpppp at gmail dot com # http://howdyworld.org # # Timestamp: 2009/07/31 22:07:35 # # This program is free software; you can redistribute it and/or # modify it under MIT Lincence. # use strict; use warnings; use Data::Dumper; { package HatenaKeyword; sub new{ my $class = shift; return bless {},$class; } sub add{ my ($self,$word,$body) = @_; $body ||= $word; $self->{$word} = $body; } sub to_string{ my ($self) = @_; join "\n","word,body",map { qq($_,"$self->{$_}") } keys %$self; } } sub example{ my $keyword = HatenaKeyword->new(); $keyword->add('hoge',"foo\nbar"); $keyword->add('hoge2'); print $keyword->to_string,"\n"; } my $keyword = HatenaKeyword->new(); while(<>){ chop; $keyword->add("$_","$_の説明を書く"); } print $keyword->to_string,"\n";