WebService::SyncSBS::D2H - del.icio.us and hatena bookmark sync


WebService-SyncSBS-D2H documentation Contained in the WebService-SyncSBS-D2H distribution.

Index


Code Index:

NAME

Top

WebService::SyncSBS::D2H - del.icio.us and hatena bookmark sync

SYNOPSIS

Top

  use WebService::SyncSBS::D2H;

  my $sbsync = WebService::SyncSBS::D2H->new({
    delicious_user => $delicious_user,
    delicious_pass => $delicious_pass,
    hatena_user => $hatena_user,
    hatena_pass => $hatena_pass,
    delicious_recent_num => $delicious_recent_num,
  });
  $sbsync->sync;

DESCRIPTION

Top

EXPORT

SEE ALSO

Top

examples/sbssync.pl

use Encode; use HTTP::Request; use XML::Atom; use Net::Delicious;

AUTHOR

Top

Kazuhiro Osawa <ko@yappo.ne.jp>

COPYRIGHT AND LICENSE

Top


WebService-SyncSBS-D2H documentation Contained in the WebService-SyncSBS-D2H distribution.

package WebService::SyncSBS::D2H;

use strict;
require Exporter;

our @ISA = qw(Exporter);
our $VERSION = '0.03';

use WebService::SyncSBS::Delicious;
use WebService::SyncSBS::Hatena;


sub new {
    my $class = shift;
    my $args  = shift;

    $args->{delicious_recent_num} = 20 unless $args->{delicious_recent_num} =~ /^\d+$/;
    $args->{delicious_recent_num} = 20 if $args->{delicious_recent_num} > 100;

    my $self = bless {
	delicious => WebService::SyncSBS::Delicious->new({
	    user => $args->{delicious_user},
	    pass => $args->{delicious_pass},
	    recent_num => $args->{delicious_recent_num},
							 }),
	hatena    => WebService::SyncSBS::Hatena->new({
	    user => $args->{hatena_user},
	    pass => $args->{hatena_pass},
	}),
    }, $class;

    return $self;
}

sub sync {
    my $self = shift;

    my $delicious = $self->{delicious}->get_recent;
    my $hatena = $self->{hatena}->get_recent;

    #del.icio.us to hatena
    foreach (keys %$delicious) {
	unless ($hatena->{$_}->{url}) {
	    $self->{hatena}->add($delicious->{$_});
	}
    }

    #hatena to del.icio.us
    foreach (keys %$hatena) {
	unless ($delicious->{$_}->{url}) {
	    $self->{delicious}->add($hatena->{$_});
	}
    }
}

sub add {
}

sub delete {
    my $self = shift;
    my $url  = shift;

    $self->{delicious}->delete($url);
    $self->{hatena}->delete($url);
}

1;
__END__