# Based on youtube.pl by Christian Garbs <mitch@cgarbs.de>
# which in turn is
# based on trigger.pl by Wouter Coekaerts <wouter@coekaerts.be>
-# This is helena
+
+
+BEGIN {
+ # Get rid of a (possibly old) version of BettIrssi
+ # This is a hack to prevent having to reload irssi just
+ # because BettIrssi.pm changed
+
+ delete($INC{'BettIrssi.pm'});
+}
use strict;
use Irssi 20020324 qw (command_bind command_runsub signal_add_first signal_add_last);
use XML::Simple;
use Data::Dumper;
use File::Spec;
-delete($INC{'BettIrssi.pm'});
-use BettIrssi qw(_bcb _bcs);
+use BettIrssi 101 qw(_bcb _bcs);
my @grabbers;
my @getters;
signal_add_last(_bcs("message irc own_action" => sub {check_for_link(@_)}));
# For tab completion
+# This does not use BettIrssi (yet)
signal_add_first('complete word', \&sig_complete);
sub push_output {
- unshift(@putputstack, shift);
+ unshift(@outputstack, shift);
}
sub pop_output {
shift(@outputstack);
- unless(@outputstack) @outputstack = (undef);
+ @outputstack = (undef) unless (@outputstack);
}
my $videosite_commands = {
return;
}
+ push_output($event->ewpf);
+
study($message);
# Offer the message to all Grabbers in turn
($m, $p) = $g->get($message);
}
}
+
+ pop_output();
}
sub cmd_save {
write_debug("found $g->{'TYPE'} $g->{'NAME'}");
if ($type eq $g->{'TYPE'}) {
push(@g, $g);
- $g->setio(sub {Irssi::print(shift)});
+ $g->setio(\&write_irssi);
} else {
write_irssi('%s has wrong type (got %s, expected %s)', $p, $g->{'TYPE'}, $type);
delete($INC{$p});
Irssi::command_bind(_bcb('videosite' => \&cmdhandler));
}
- write_irssi('videosite initialized');
+ write_irssi('initialized successfully');
}
sub sig_complete {
my $event = shift;
my ($cmd, @params) = split(/\s+/, $event->message());
+ push_output($event->ewpf);
+
if (exists($videosite_commands->{$cmd})) {
$videosite_commands->{$cmd}->(@params);
}
+
+ pop_output();
}
unshift(@INC, $scriptdir);