読者です 読者をやめる 読者になる 読者になる

Filter::Mork

Plagger

Mozilla/Firefox の history.dat(履歴を保存している) を読む File::Mork というモジュールが CPAN にあるので、それを使って……

package Plagger::Plugin::Filter::Mork;
use strict;
use base qw( Plagger::Plugin );
use File::Mork;

sub register {
    my($self, $context) = @_;
    $context->register_hook(
        $self,
        'update.feed.fixup' => \&update,
    );
}

sub update {
    my($self, $context, $args) = @_;

    my $mork = File::Mork->new( $self->conf->{filename} );

    foreach my $entry ($args->{feed}->entries) {
      MORK: foreach my $m_entry ( $mork->entries ) {
	  if($entry->permalink eq $m_entry->{URL}){
	      $entry->meta->{first_visit_date} = $m_entry->{FirstVisitDate};
	      $entry->meta->{last_visit_date}  = $m_entry->{LastVisitDate};
	      last MORK;
	  }
      }
    }
}
1;
  - module: Filter::Mork
    config:
      filename: /home/fujiwara/.mozilla/firefox/xxxxxxx/history.dat

いつ自分の Mozilla/Firefox で読んだかが分かる。……使い道があるのかどうかは謎。

mork の FirstVisitDate / LastVisitDate は UNIX time の数値が入っているので、とりあえずそのまま入れてしまったが、適当にフォーマットしないと読みにくいな。