diff options
Diffstat (limited to 'ports-mgmt/portscout/files/files-Portscout-SiteHandler-PyPI.pm')
-rw-r--r-- | ports-mgmt/portscout/files/files-Portscout-SiteHandler-PyPI.pm | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/ports-mgmt/portscout/files/files-Portscout-SiteHandler-PyPI.pm b/ports-mgmt/portscout/files/files-Portscout-SiteHandler-PyPI.pm deleted file mode 100644 index 071a8fabb27d..000000000000 --- a/ports-mgmt/portscout/files/files-Portscout-SiteHandler-PyPI.pm +++ /dev/null @@ -1,146 +0,0 @@ -#------------------------------------------------------------------------------ -# Copyright (C) 2015, Jasper Lievisse Adriaanse <jasper@openbsd.org> -# -# Permission to use, copy, modify, and distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -# -#------------------------------------------------------------------------------ - -package Portscout::SiteHandler::PyPI; - -use JSON qw(decode_json); -use LWP::UserAgent; - -use Portscout::Const; -use Portscout::Config; - -use strict; - -require 5.006; - - -#------------------------------------------------------------------------------ -# Globals -#------------------------------------------------------------------------------ - -push @Portscout::SiteHandler::sitehandlers, __PACKAGE__; - -our %settings; - - -#------------------------------------------------------------------------------ -# Func: new() -# Desc: Constructor. -# -# Args: n/a -# -# Retn: $self -#------------------------------------------------------------------------------ - -sub new -{ - my $self = {}; - my $class = shift; - - $self->{name} = 'PyPI'; - - bless ($self, $class); - return $self; -} - - -#------------------------------------------------------------------------------ -# Func: CanHandle() -# Desc: Ask if this handler (package) can handle the given site. -# -# Args: $url - URL of site. -# -# Retn: $res - true/false. -#------------------------------------------------------------------------------ - -sub CanHandle -{ - my $self = shift; - - my ($url) = @_; - - return ($url =~ /https?:\/\/pypi\.python\.org\//); -} - - -#------------------------------------------------------------------------------ -# Func: GetFiles() -# Desc: Extract a list of files from the given URL. Simply query the API. -# -# Args: $url - URL we would normally fetch from. -# \%port - Port hash fetched from database. -# \@files - Array to put files into. -# -# Retn: $success - False if file list could not be constructed; else, true. -#------------------------------------------------------------------------------ - -sub GetFiles -{ - my $self = shift; - - my ($url, $port, $files) = @_; - - my ($pypi, $package, $resp, $query, $ua); - $pypi = 'https://pypi.python.org/pypi/'; - - # Strip all the digits at the end to keep the stem of the module. - if ($port->{distname} =~ /(.*?)-(\d+)/) { - $package = $1; - } - - $query = $pypi . $package . '/json'; - - _debug("GET $query"); - $ua = LWP::UserAgent->new; - $ua->agent(USER_AGENT); - $resp = $ua->request(HTTP::Request->new(GET => $query)); - if ($resp->is_success) { - my ($json, $urls); - - $json = decode_json($resp->decoded_content); - $urls = $json->{urls}; - foreach my $url (@$urls) { - push(@$files, $url->{filename}); - } - } else { - _debug("GET failed: " . $resp->code); - return 0; - } - - return 1; -} - - -#------------------------------------------------------------------------------ -# Func: _debug() -# Desc: Print a debug message. -# -# Args: $msg - Message. -# -# Retn: n/a -#------------------------------------------------------------------------------ - -sub _debug -{ - my ($msg) = @_; - - $msg = '' if (!$msg); - - print STDERR "(" . __PACKAGE__ . ") $msg\n" if ($settings{debug}); -} - -1; |