+sub shorten {
+ my $data = shift;
+
+ my $provider = Irssi::settings_get_str("short_url_provider");
+ if ( &too_long( $data, 1 ) and $provider )
+ {
+ my @args;
+ if ($provider eq 'Bitly') {
+ @args[1,2] = split ',', Irssi::settings_get_str("short_url_args"), 2;
+ unless (@args == 3) {
+ &ccrap("WWW::Shorten::Bitly requires a username and API key.",
+ "Set short_url_args to username,API_key or change your",
+ "short_url_provider.");
+ return $data;
+ }
+ }
+
+ foreach my $url ( $data =~ /(https?:\/\/\S+[\w\/])/g ) {
+ eval {
+ $args[0] = $url;
+ my $short = makeashorterlink(@args);
+ if ($short) {
+ $data =~ s/\Q$url/$short/g;
+ } else {
+ ¬ice("Failed to shorten $url!");
+ }
+ };
+ }
+ }
+
+ return $data;
+}
+