use Date::Parse qw/str2time/;
use JSON::MaybeXS qw/decode_json/;
+use MIME::Base64;
use WebService::Strike;
__PACKAGE__->mk_ro_accessors(qw/torrent_hash torrent_title torrent_category sub_category seeds leeches file_count size upload_date uploader_username file_info file_names file_lengths magnet_uri/);
}
}
+sub description{
+ my ($self) = @_;
+ return $self->{description} if $self->{description};
+ my $url = $WebService::Strike::BASE_URL . '/descriptions/?hash=' . $self->hash;
+ my $ht = WebService::Strike::_ht(); ## no critic (ProtectPrivate)
+ my $response = $ht->get($url);
+ return unless $response->{success};
+ $self->{description} = decode_base64 $response->{content}
+}
+
1;
__END__
say $t->magnet; # magnet:?xt=urn:btih:B425907E5755031BDA4A8D1B6DCCACA97DA14C04&dn=Arch%20Linux%202015.01.01%20%28x86%2Fx64%29
my $tor = $t->torrent; # $torrent contains the torrent file contents
$t->torrent('x.torrent'); # Download torrent file to x.torrent
+ say $t->description; # <HTML fragment describing Arch Linux>
=head1 DESCRIPTION
Both forms return a true value for success and false for failure.
+=item B<description>
+
+The description of the torrent. This method sends an extra request to
+Strike. Successful responses are cached.
+
=back
=head1 SEE ALSO
use Data::Dumper qw/Dumper/;
use Test::RequiresInternet qw/getstrike.net 443/;
-use Test::More tests => 9;
+use Test::More tests => 10;
use Try::Tiny;
BEGIN { use_ok('WebService::Strike') };
is $t1->date, 1420502400, 'date';
is $t2->title, 'FreeBSD 7.1 i386.DVD.iso', 'title';
like $t1->torrent, qr/^d/, 'torrent file starts with d';
+like $t1->description, qr#GNU/Linux#, 'description contains GNU/Linux';
try {
strike 'aaa';