今日のメモ by [MM] をはてなに貼る

最近ネットサーフィンしてて面白いページを見つけたらメモっておくって作業が慣習化してきました。それを後から見直すかどうかとかあんまり考えずに、とにかく面白かったらメモするってなりました。で、僕にとってメモがどういう位置づけかというと、日記に書くほどじゃないけど気になった情報って感じでしょうか。メモに載ってる情報はそこまで深く突っ込むわけじゃないですけど、気軽に貼れる分情報は早いです。見つけた瞬間に更新できるので。情報は早さって点では物凄い物があると思います。
で、まあ自分のメモる楽しさが半分で、もう半分は他の人がメモった内容を見ることなのでみんなメモ機能やればいいと思います。


mm2hw.pl を一応書いておきます。

#!/usr/local/bin/perl

use strict;
use XML::Feed;
use Data::Dumper;
use Encode;
use FileHandle;

my $id = 29;
my $mmhome = "http://1470.net/mm";

if (@ARGV == 0 || $ARGV[0] !~ /([?d]{4}-[?d]{2}-[?d]{2}).*/) {
	print "usage: $0 yyyy-mm-dd?n";
	exit();
}

my $date = $1;
my $url = "$mmhome/mylist.html/$id?mode=rss&date=$date";

print "get: " . $url . "?n";
my $feed = XML::Feed->parse(URI->new($url)) or die XML::Feed->errstr;

my $output = "*t*<a href=?"$mmhome/mylist.html/$id?date=$date?">今日のメモ</a>"
		. " by [<a href=?"$mmhome/?">MM</a>]?n";

for my $entry ($feed->entries) {
	my $title = Encode::encode("sjis", $entry->{'entry'}->{'title'});
	my $link = Encode::encode("sjis", $entry->{'entry'}->{'link'});
	my $encoded = Encode::encode("sjis", $entry->{'entry'}
			->{'http://purl.org/rss/1.0/modules/content/'}->{'encoded'});

	$encoded =~ s/?n//mg;
	$encoded =~ s/?t//mg;

	my $text = "";
	my $asin = "";
	my $url = "";
	my $expat = "";

	if ($encoded =~ /(http:?/?/.*[^?"]).*<span class=?"url?">(.*)<?/span>(.*)/) {
		$expat = $1;
		$text = $3;

		my $tmp = $2;
		if ($tmp =~ /.*ASIN?/([0-9A-Z]+)?/.*/) {
			$asin = $1;
		} else {
			$url = $tmp;
		}

		if ($expat =~ /.*(http:?/?/1470?.net?/bm?/.+?/[0-9]+).*/) {
			$expat = $1;
		} else {
			$expat = '';
		}

		if ($text =~ /<p class="memo_text">(.*)<?/p>/) {
			$text = $1;
		} else {
			$text = '';
		}

		my $content = "<a href=?"$link?">■</a> ";
		$content .= ($asin eq '') ? "<a href=?"$url?">$title</a>" : "『asin:$asin:title』";
		$content .= " <a href=?"$expat?"><span class=?"smallpt?">[more]</span></a>?n";
		$content .= "asin:$asin:image:small?n" if ($asin ne '');
		$content .= "<span class=?"smallpt?">$text</span>" if ($text ne '');
		$content .= "?n";

		$output .= $content;
	}
}
my $filename = "$date_mm.txt";
my $fh = new FileHandle "> $filename" or die "Couldn't open $filename for writing: $!";
$fh->print($output);
$fh->close();

後ろ半分はかなり力技。きゃー恥ずかしい。