diff --git a/modules/Bitly.pm b/modules/Bitly.pm new file mode 100644 index 0000000..95a68d6 --- /dev/null +++ b/modules/Bitly.pm @@ -0,0 +1,88 @@ +# Auto IRC Bot. An advanced, lightweight and powerful IRC bot. +# Copyright (C) 2010-2011 Xelhua Development Team (doc/CREDITS) +# This program is free software; rights to this code are stated in doc/LICENSE. +package m_Bitly; +use strict; +use warnings; +use API::Std qw(cmd_add cmd_del conf_get err); +use API::IRC qw(privmsg); +use LWP::UserAgent; + +sub _init { + + if (!(conf_get('bitly_user'))[0][0] or !(conf_get('bitly_key'))[0][0]) { + err(2, "Please verify that you have bitly_user and bitly_key defined in your configuration file", 0); + return 0; + } + cmd_add("SHORTEN", 0, "Shorten a URL", "This command shortens a URL using bit.ly\nSyntax: SHORTEN ", \&m_Shorten::shorten); + cmd_add("REVERSE", 0, "Reverses a URL", "This command reverses a bit.ly URL\nSyntax: REVERSE ", \&m_Shorten::reverse); + return 1; + +} + +sub _void { + + cmd_del("SHORTEN"); + cmd_del("REVERSE"); + return 1; + +} + +sub shorten { + + my (%data) = @_; + my $ua = LWP::UserAgent->new(); + $ua->agent('Auto IRC Bot'); + $ua->timeout(2); + my @args = @ { $data{args} }; + my ($surl, $user, $key) = ($args[0], (conf_get('bitly_user'))[0][0], (conf_get('bitly_key'))[0][0]); + my $url = "http://api.bit.ly/v3/shorten?version=3.0.1&longUrl=".$surl."&apiKey=".$key."&login=".$user."&format=txt"; + my $response = $ua->get($url); + + if ($response->is_success) + { + my $d = $response->decoded_content; + chomp $d; + if ($d =~ m/bit.ly/i) { + privmsg($data{svr}, $data{chan}, $d); + } + else { + dbug($d); + privmsg($data{svr}, $data{chan}, "An error occured while shortening your URL."); + } + } + else { + privmsg($data{svr}, $data{chan}, "An error occured while reversing your URL."); + } + + + return 1; + +} + +sub reverse { + + my (%data) = @_; + my $ua = LWP::UserAgent->new(); + $ua->agent('Auto IRC Bot'); + $ua->timeout(2); + my @args = @ { $data{args} }; + my ($surl, $user, $key) = ($args[0], (conf_get('bitly_user'))[0][0], (conf_get('bitly_key'))[0][0]); + my $url = "http://api.bit.ly/v3/expand?version=3.0.1&shortURL=".$surl."&apiKey=".$key."&login=".$user."&format=txt"; + my $response = $ua->get($url); + + if ($response->is_success) + { + my $d = $response->decoded_content; + chomp $d; + privmsg($data{svr}, $data{chan}, $d); + } + else { + privmsg($data{svr}, $data{chan}, "An error occured while reversing your URL."); + } + + return 1; +} + + +API::Std::mod_init("Bitly", "Xelhua", "0.1", "3.0d", __PACKAGE__);