]> iEval git - webservice-strike.git/blobdiff - lib/WebService/Strike/Torrent.pm
Bump version and update Changes
[webservice-strike.git] / lib / WebService / Strike / Torrent.pm
index 0ac15da98ab7571ed27bde46d2dc4e29664ad8f7..71fb52666f2cbeccf0b7289aab2ce49a27efc6ba 100644 (file)
@@ -5,14 +5,14 @@ use strict;
 use warnings;
 use parent qw/Class::Accessor::Fast/;
 
-our $VERSION = '0.004002';
+our $VERSION = 0.005;
 
-use Date::Parse qw/str2time/;
 use JSON::MaybeXS qw/decode_json/;
 use MIME::Base64;
+use URI::Escape;
 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 imdb_id/);
+__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 imdb_id/);
 
 BEGIN {
        *hash     = *torrent_hash;
@@ -23,14 +23,19 @@ BEGIN {
        *uploader = *uploader_username;
        *names    = *file_names;
        *lengths  = *file_lengths;
-       *magnet   = *magnet_uri;
 };
 
+sub magnet{
+       my ($self) = @_;
+       my $hash = uri_escape $self->hash; # uri_escape is not exactly needed here
+       my $title = uri_escape $self->title;
+       "magnet:?xt=urn:btih:$hash&dn=$title"
+}
+
 sub new{
        my ($self, @args) = @_;
        $self = $self->SUPER::new(@args);
        $self->{torrent_hash} = uc $self->hash;
-       $self->{upload_date} = str2time $self->date, 'UTC';
        if ($self->file_info) {
                $self->{file_names} = $self->file_info->{file_names};
                $self->{file_lengths} = $self->file_info->{file_lengths};
@@ -40,21 +45,7 @@ sub new{
 }
 
 sub torrent{
-       my ($self, $file) = @_;
-       my $url = $WebService::Strike::BASE_URL . '/torrents/download/?hash=' . $self->hash;
-       my $ht = WebService::Strike::_ht(); ## no critic (ProtectPrivate)
-       my $response = $ht->get($url);
-       return unless $response->{success};
-       $response = decode_json $response->{content};
-       $url = $response->{message};
-
-       if (defined $file) {
-               $response = $ht->mirror($url, $file);
-               return $response->{success}
-       } else {
-               $response = $ht->get($url);
-               return $response->{success} && $response->{content}
-       }
+       die "This API call was removed in Strike API V2.1\n"
 }
 
 sub description{
@@ -69,7 +60,7 @@ sub description{
 
 sub imdb {
        my ($self) = @_;
-       return unless $self->imdb_id;
+       return if !$self->imdb_id || $self->imdb_id eq 'none';
        $self->{imdb} //= WebService::Strike::strike_imdb ($self->imdb_id)
 }
 
@@ -99,8 +90,6 @@ WebService::Strike::Torrent - Class representing information about a torrent
   say @{$t->names};         # archlinux-2015.01.01-dual.iso
   say @{$t->lengths};       # 615514112
   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>
 
   $t = strike 'ED70C185E3E3246F30B2FDB08D504EABED5EEA3F';
@@ -173,6 +162,9 @@ Magnet link for the torrent.
 
 =item B<torrent>([I<$filename>])
 
+B<THIS METHOD WAS REMOVED IN STRIKE API V2.1>. Therefore, it simply
+dies. Below is the previous documentation of the method.
+
 Downloads the torrent from Strike. With no arguments, returns the
 contents of the torrent file. With an argument, stores the torrent in
 I<$filename>.
@@ -206,7 +198,7 @@ Marius Gavrilescu, E<lt>marius@ieval.roE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (C) 2015 by Marius Gavrilescu
+Copyright (C) 2015-2016 by Marius Gavrilescu
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself, either Perl version 5.20.2 or,
This page took 0.025174 seconds and 4 git commands to generate.