Bio-Das-ProServer
view release on metacpan or search on metacpan
lib/Bio/Das/ProServer/SourceAdaptor/Transport/wgetz.pm view on Meta::CPAN
#########
# Author: ak
# Maintainer: $Author: zerojinx $
# Created: 2004
# Last Modified: $Date: 2010-11-02 11:37:11 +0000 (Tue, 02 Nov 2010) $
# Id: $Id: wgetz.pm 687 2010-11-02 11:37:11Z zerojinx $
# Source: $Source$
# $HeadURL: https://proserver.svn.sourceforge.net/svnroot/proserver/trunk/lib/Bio/Das/ProServer/SourceAdaptor/Transport/wgetz.pm $
#
package Bio::Das::ProServer::SourceAdaptor::Transport::wgetz;
use strict;
use warnings;
use base qw(Bio::Das::ProServer::SourceAdaptor::Transport::generic);
use LWP::UserAgent;
use Carp;
use Readonly;
our $VERSION = do { my ($v) = (q$Revision: 687 $ =~ /\d+/mxsg); $v; };
Readonly::Scalar our $TIMEOUT => 30;
sub _useragent {
# Caching an LWP::UserAgent instance within the current
# object.
my $self = shift;
if (!defined $self->{_useragent}) {
$self->{_useragent} = LWP::UserAgent->new(
env_proxy => 1,
keep_alive => 1,
timeout => $TIMEOUT,
);
}
return $self->{_useragent};
}
sub init {
my $self = shift;
return $self->_useragent();
}
sub query {
my ($self, @args) = @_;
my $swgetz = $self->config->{wgetz} || 'http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz';
my $query = my $squery = join q(+), @args;
#########
# Remove characters not allowed in transport.
#
$swgetz =~ s/[^\w.\/:-]//mxs;
#########
# Remove characters not allowed in query.
#
$squery =~ s/[^\w[\](){}.><:'"\ |+-]//mxs;
if ($squery ne $query) {
carp "Detainted '$squery' != '$query'";
}
my $reply = $self->_useragent()->get("$swgetz?$squery+-ascii");
if (!$reply->is_success()) {
carp "wgetz request failed: $swgetz?$squery+-ascii\n";
}
return $reply->content();
}
1;
__END__
=head1 NAME
Bio::Das::ProServer::SourceAdaptor::Transport::wgetz - A ProServer transport module for wgetz (SRS web access)
=head1 VERSION
$LastChangedRevision: 687 $
=head1 SYNOPSIS
=head1 DESCRIPTION
=head1 SUBROUTINES/METHODS
=head2 _useragent
=head2 init
( run in 0.702 second using v1.01-cache-2.11-cpan-39bf76dae61 )