]>
Commit | Line | Data |
---|---|---|
3f24f7e4 | 1 | use Irssi; |
2 | use vars qw($VERSION %IRSSI); | |
3 | ||
4 | use LWP::UserAgent; | |
5 | my $ua = LWP::UserAgent->new; | |
6 | $ua->agent("SMSHi/1.0 "); | |
7 | ||
8 | $VERSION = "0.1"; | |
9 | %IRSSI = ( | |
10 | authors => "John Runyon", | |
11 | name => "smshi", | |
12 | description => "send highlights via sms", | |
13 | license => 'public domain', | |
14 | url => 'https://github.com/zonidjan/irssi-scripts', | |
15 | contact => 'https://github.com/zonidjan' | |
16 | ); | |
17 | ||
18 | sub msg { | |
19 | return unless Irssi::settings_get_bool('smshi_active'); | |
20 | ||
21 | my ($dest, $text, $stripped) = @_; | |
22 | # my ($server, $msg, $nick, $addr, $target) = @_; | |
23 | my $server = $dest->{server}; | |
24 | return unless ($dest->{level} & MSGLEVEL_HILIGHT); | |
25 | return if (!$server->{usermode_away} && Irssi::settings_get_bool('smshi_away_only')); | |
26 | ||
27 | # $text =~ s/\003\d{0,2}//g; | |
28 | # $text =~ s/\002|\037//g; | |
29 | # $text = substr($text, Irssi::settings_get_int('smshi_skip_first')); | |
30 | my $msg = ''; | |
31 | for my $c (split //, $stripped) { | |
32 | if (ord($c) > 31 && ord($c) < 127) { | |
33 | $msg .= $c; | |
34 | } else { | |
35 | $msg .= '\\x'.sprintf("%02x", ord($c)); | |
36 | } | |
37 | } | |
38 | ||
39 | my $sms = $server->{tag}.$msg; | |
40 | ||
41 | my $sid = Irssi::settings_get_str('smshi_sid'); | |
42 | my $token = Irssi::settings_get_str('smshi_token'); | |
43 | my $from = Irssi::settings_get_str('smshi_from'); | |
44 | my $to = Irssi::settings_get_str('smshi_to'); | |
45 | ||
46 | my $url = "https://$sid:$token\@api.twilio.com/2010-04-01/Accounts/$sid/Messages.json"; | |
47 | my $req = HTTP::Request->new('POST', $url); | |
48 | $req->content_type('application/x-www-form-urlencoded'); | |
49 | $req->content("To=$to&From=$from&Body=$sms"); | |
50 | ||
51 | my $res = $ua->request($req); | |
52 | if ($res->is_success) { | |
53 | print "Good."; | |
54 | } else { | |
55 | print $req->url; | |
56 | print $req->content; | |
57 | print $res->status_line; | |
58 | print $res->content; | |
59 | } | |
60 | } | |
61 | ||
62 | Irssi::settings_add_bool('smshi', 'smshi_active', 0); | |
63 | Irssi::settings_add_bool('smshi', 'smshi_away_only', 1); | |
64 | Irssi::settings_add_str('smshi', 'smshi_sid', ''); | |
65 | Irssi::settings_add_str('smshi', 'smshi_token', ''); | |
66 | Irssi::settings_add_str('smshi', 'smshi_from', ''); | |
67 | Irssi::settings_add_str('smshi', 'smshi_to', ''); | |
68 | Irssi::settings_add_int('smshi', 'smshi_skip_first', 0); | |
69 | ||
70 | Irssi::signal_add('print text', 'msg'); | |
71 | Irssi::print('%G>>%n '.$IRSSI{name}.' '.$VERSION.' loaded'); |