NAME
WWW::Opentracker::Stats::Mode - Base module for the different modes
SYNOPSIS
use WWW::Opentracker::Stats::Mode::TPBS;
my $tpbs = WWW::Opentracker::Stats::Mode::TPBS->new(
{
'statsurl' => 'http://localhost:6969/stats',
}
);
my $stats = $tpbs->stats();
printf "%d torrents served", scalar @{$stats->{'files'}};
DESCRIPTION
Provides accessability for fetching and parsing the statistics from Opentracker.
METHODS
new
Args: $class, $args
Constructor. Creates a new instance of the class. This constructor is also used by all sub statistics packages.
It takes a HASH/HASHREF of arguments. - statsurl (mandatory) - useragent (mandatory)
stats
Args: $self
Fetches statistics from the opentracker server over a HTTP channel, decodes the content in the HTTP response and returns the statistics data structure.
It caches the statistics for the entire lifetime of the object. If something is found in the cache, it is returned instead of contacting the server.
parse_stats
Args: $self, $payload
Returns the payload unchanged.
WARNING This method should really, really be implemented by a subclass. It should return a HASHREF with a sane structure of the statistics data.
fetch
Args: $self
Makes a HTTP request to the opentracker statistics service using the implementation (sub) class' mode and format settings.
Returns the content of the response unless there was an error. Dies on errors.
url
Args: $self
Assembles the URL to the opentracker statistics based on the statsurl, format and mode.
Returns the URL as a string.
parse_thousands
Args: $self, $number
Parses a string that represents a number with a thousands delimiter.
_require_impl
Private method
Args: $self
Croaks from the perspect of the caller two steps up the call stack if the method is not called from a subclass implementation.
AUTHOR
Knut-Olav Hoven, <knutolav@gmail.com>
COPYRIGHT AND LICENSE
Copyright (C) 2009 by Knut-Olav Hoven
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.