]> iEval git - webservice-strike.git/blobdiff - lib/WebService/Strike/Torrent.pm
Add IMDB support
[webservice-strike.git] / lib / WebService / Strike / Torrent.pm
index 517020850a82aa33b2d098ddf4466573ac2ae7e4..655efed730701574145e57263c6c870bc32f2156 100644 (file)
@@ -12,7 +12,7 @@ use JSON::MaybeXS qw/decode_json/;
 use MIME::Base64;
 use WebService::Strike;
 
 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/);
+__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/);
 
 BEGIN {
        *hash     = *torrent_hash;
 
 BEGIN {
        *hash     = *torrent_hash;
@@ -40,7 +40,7 @@ sub new{
 
 sub torrent{
        my ($self, $file) = @_;
 
 sub torrent{
        my ($self, $file) = @_;
-       my $url = $WebService::Strike::BASE_URL . '/download/?hash=' . $self->hash;
+       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};
        my $ht = WebService::Strike::_ht(); ## no critic (ProtectPrivate)
        my $response = $ht->get($url);
        return unless $response->{success};
@@ -59,13 +59,19 @@ sub torrent{
 sub description{
        my ($self) = @_;
        return $self->{description} if $self->{description};
 sub description{
        my ($self) = @_;
        return $self->{description} if $self->{description};
-       my $url = $WebService::Strike::BASE_URL . '/descriptions/?hash=' . $self->hash;
+       my $url = $WebService::Strike::BASE_URL . '/torrents/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}
 }
 
        my $ht = WebService::Strike::_ht(); ## no critic (ProtectPrivate)
        my $response = $ht->get($url);
        return unless $response->{success};
        $self->{description} = decode_base64 $response->{content}
 }
 
+sub imdb {
+       my ($self) = @_;
+       return unless $self->imdb_id;
+       $self->{imdb} //= WebService::Strike::strike_imdb ($self->imdb_id)
+}
+
 1;
 __END__
 
 1;
 __END__
 
@@ -96,6 +102,13 @@ WebService::Strike::Torrent - Class representing information about a torrent
   $t->torrent('x.torrent'); # Download torrent file to x.torrent
   say $t->description;      # <HTML fragment describing Arch Linux>
 
   $t->torrent('x.torrent'); # Download torrent file to x.torrent
   say $t->description;      # <HTML fragment describing Arch Linux>
 
+  $t = strike 'ED70C185E3E3246F30B2FDB08D504EABED5EEA3F';
+  say $t->title;                          # The Walking Dead S04E15 HDTV x264-2HD
+  say $t->imdb_id;                        # tt1520211
+  my $i = $t->imdb;
+  say $i->{title}, ' (', $i->{year}, ')'; # The Walking Dead (2010)
+  say $i->{genre};                        # Drama, Horror, Thriller
+
 =head1 DESCRIPTION
 
 WebService::Strike::Torrent is a class that represents information
 =head1 DESCRIPTION
 
 WebService::Strike::Torrent is a class that represents information
@@ -170,6 +183,16 @@ Both forms return a true value for success and false for failure.
 The description of the torrent. This method sends an extra request to
 Strike. Successful responses are cached.
 
 The description of the torrent. This method sends an extra request to
 Strike. Successful responses are cached.
 
+=item B<imdb_id>
+
+The IMDB ID of the torrent, or undef if the torrent has no associated
+IMDB ID.
+
+=item B<imdb>
+
+Calls B<strike_imdb> from L<WebService::Strike> on B<imdb_id>. Caches
+the response. Returns undef if the torrent has no associated IMDB ID.
+
 =back
 
 =head1 SEE ALSO
 =back
 
 =head1 SEE ALSO
This page took 0.018845 seconds and 4 git commands to generate.