AnyEvent-Gmail-Feed

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Revision history for Perl extension AnyEvent::Gmail::Feed

0.02  Fri Jul 24 15:00:34 PDT 2009
        - use AnyEvent->timer rather than sleep(2)

0.01  Thu Jul 23 23:40:07 2009
        - original version

lib/AnyEvent/Gmail/Feed.pm  view on Meta::CPAN


    my $self = bless {}, $class;

    my $auth = MIME::Base64::encode( join(":", $username, $password) );
    my $headers = {Authorization => "Basic $auth"};
    my $uri = 'https://mail.google.com/mail/feed/atom/';
    $uri .= $label . '/' if $label; ## 'unread' or whatever

    my %seen;

    my $timer;
    my $checker; $checker = sub {
        http_get $uri, headers => $headers, sub {
            my ($body, $hdr) = @_;
            return unless $body;
            my $feed = XML::Atom::Feed->new(\$body) or return;
            for my $e ($feed->entries) {
                unless ($seen{$e->id}) {
                    ($args{on_new_entry} || sub {})->($e);
                };
                $seen{$e->id}++;
            }
            $timer = AnyEvent->timer( after => $interval, cb => $checker);
        };
    };
    $checker->();
    return $self;
}

1;
__END__

=encoding utf-8



( run in 0.986 second using v1.01-cache-2.11-cpan-49f99fa48dc )