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 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');