WWW::Opentracker::Stats::Mode::Peer - WWW::Opentracker::Stats::Mode::Peer documentation


WWW-Opentracker-Stats documentation Contained in the WWW-Opentracker-Stats distribution.

Index


Code Index:

NAME

Top

WWW::Opentracker::Stats::Mode::Peer

DESCRIPTION

Top

Parses the Peer statistics from opentracker.

METHODS

Top

parse_stats

 Args: $self, $payload

Decodes the plain text data retrieved from the peer statistics of opentracker.

The payload looks like this (no indentation): 3 3 opentracker serving 2 torrents opentracker

SEE ALSO

Top

WWW::Opentracker::Stats::Mode

AUTHOR

Top

Knut-Olav Hoven, <knutolav@gmail.com>

COPYRIGHT AND LICENSE

Top


WWW-Opentracker-Stats documentation Contained in the WWW-Opentracker-Stats distribution.
package WWW::Opentracker::Stats::Mode::Peer;

use strict;
use warnings;

use parent qw/
    WWW::Opentracker::Stats::Mode
    Class::Accessor::Fast
/;


__PACKAGE__->_format('txt');
__PACKAGE__->_mode('peer');

__PACKAGE__->mk_accessors(qw/_stats/);


sub parse_stats {
    my ($self, $payload) = @_;

    # To support thousand delimiters
    my ($raw_peers, $raw_seeds, $raw_torrents) = $payload =~ m{\A
                        ([\d\'\.]+) \s
                        ([\d\'\.]+) \s
                        opentracker \s serving \s ([\d\'\.]+) \s torrents \s
                        opentracker
                }xms
        or die "Unable to parse payload: $payload";

    my %stats = (
        'peers'     => $self->parse_thousands($raw_peers),
        'seeds'     => $self->parse_thousands($raw_seeds),
        'torrents'  => $self->parse_thousands($raw_torrents),
    );

    return \%stats;
}


1;