twitter.pl
use strict;
use vars qw($VERSION %IRSSI);
use Irssi;
use URI::Escape;
$VERSION = '1.02';
%IRSSI = (
authors => 'Jared Burke',
contact => 'Jared@anal0g.org',
name => 'twitter',
description => 'Posts topics and !twitter <tweet> to twitter.',
license => 'Public Domain',
url => 'http://anal0g.org/dev/',
changed => 'Tue Jun 17 07:14 CET 2008',
);
my $user = "twitter_user";
my $pass = "twitter_pass";
my $channel = "#channel";
sub topic {
my ($server, $args, $nick, $uh) = @_;
my ($chan, $topic) = split(/ :/, $args);
if ($chan eq $channel) {
my $tweet = "Topic: " . $topic;
twitter($tweet);
}
}
sub public {
my ($server, $msg, $nick, $address, $target) = @_;
if ($target eq $channel) {
if ($msg =~ /^!twitter .*/i) {
$msg =~ s/^!twitter //;
my $tweet = $nick . ": " . $msg;
twitter($tweet);
}
}
}
sub twitter {
my $status = uri_escape(@_);
$status =~ s/\x03\d?\d?(,\d?\d?)?|\x02|\x1f|\x16|\x06|\x07//g;
`wget -q -O /dev/null --user=$user --password=$pass --post-data="status=$status" http://twitter.com/statuses/update.xml`;
}
Irssi::signal_add("message public", "public");
Irssi::signal_add('event topic', 'topic');