summaryrefslogtreecommitdiffstats
path: root/lib/ASM/Shortener.pm
blob: 8ec7d428a129d1dc8c201ffecc63583942bb9bd7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl

package ASM::Shortener;

use LWP::UserAgent;
use URI::Escape;

sub shorturl
{
  my $module = shift;
  my ($url) = @_;
  if ((!defined($::settings->{web}->{shortener})) ||
      (!defined($::settings->{web}->{shortener}->{domain})) ||
      (!defined($::settings->{web}->{shortener}->{apikey})) ||
      ($::settings->{web}->{shortener}->{domain} eq '') ||
      ($::settings->{web}->{shortener}->{apikey} eq '')) {
    return $url;
  }
  my $apikey = $::settings->{web}->{shortener}->{apikey};
  my $domain = $::settings->{web}->{shortener}->{domain};
  my $secure = $::settings->{web}->{shortener}->{secure};
  my $ua = LWP::UserAgent->new;
  $ua->agent("AntiSpamMeta/13.37 ");
  my $res = $ua->get('http' . ($secure ? 's' : '') . '://' . $domain . '/yourls-api.php?' .
                     'signature=' . $apikey . '&action=shorturl&format=simple&url=' . uri_escape($url) );
  if ($res->is_success) {
      return $res->content;
  }
  else {
      warn $res->status_line;
      return $url;
  }
}

1;