All pastes #275075 Raw Edit

send_away.pl

public text v1 · immutable
·published 2006-12-11 05:33 UTC
rendered paste body
use SOAP::Lite;
use Data::Dumper;
use strict;

BEGIN {
	unless (exists $::{"Irssi::"}) {
		require Pod::Usage;
		Pod::Usage::pod2usage(-verbose => 2);
	}
}

use Text::ParseWords;
use vars qw($VERSION %IRSSI);

use Irssi qw(
	command_bind settings_get_bool
	settings_add_bool settings_get_str
	settings_add_str signal_add
);

$VERSION = '0.01';
%IRSSI = (
	authors		=> 'Justin Lee',
	contact		=> 'kool.name@gmail.com',
	name		=> 'googlebot',
	description	=> 'Google script... Just for fun',
	license		=> 'GPL',
);

# Start of man page

=head1 DESCRIPTION

=head2 Methods

=over 5

=item C<< >>

=back

=head1 AUTHOR

Dean <kool.name@gmail.com> - L<http://dean.dnsalias.com/>

=cut

# Start of script

load_globals();

#signal_add('setup changed', 'load_globals');
signal_add('event privmsg', 'irc_privmsg');

sub load_globals {
#	map { $google_active_channels{uc($_)} = 1 }
#		quotewords(',', 0, settings_get_str('google_active_channels'));
}

sub checkTime {
	open(TIMELOG, ">>~/.irssi/.send_away") ||
				die "cannot create/open file: $!";
	my @data = @_;
	unless(<TIMELOG> =~ /$data[0]/g){
		return 1;
	}
	print TIMELOG "$data[0]\n";              # I still have to add the time time...
	close(TIMELOG) ||                       # I think I'll use /proc/uptime to
		die "cannot close file: $!";     # store a time in the file 
	return 0;                                  # then just calc the diff between the
	                                          # file and live /proc/uptime to leave
						 # atleast ten mintutes between messages
}

sub irc_privmsg {
	my ($server, $data, $from, $address) = @_;
	my ($to, $message) = split(/\s+:/, $data, 2);
	my ($mode, $me, $target) = ($server->{'usermode_away'}, $server->{'nick'}, find_target($to, $from));
	if($mode) {
		if($target){
			if(checkTime($target, $server) {
				$server->command("SEND_AWAY $target");
			}
		}
	}
	return 1;
}

sub find_target {
	my ($to, $from) = @_;

	if($to =~ /^#/){
		return; # from a channel
	}
	return $from; # from a private message
}