X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=videosite.pl;h=cf47cc6f1a4c3e8c30a0dfc280ad00fea102fe71;hb=ee65b016c8edb3a4ef52d4170504b27fcdbf27f0;hp=3f3b086a6ab32d7e3c56db9c31ddec30e6e3a074;hpb=8067b7d719813f025726ba956041d980d088a713;p=videosite.git diff --git a/videosite.pl b/videosite.pl index 3f3b086..cf47cc6 100644 --- a/videosite.pl +++ b/videosite.pl @@ -6,7 +6,15 @@ # Based on youtube.pl by Christian Garbs # which in turn is # based on trigger.pl by Wouter Coekaerts -# 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); @@ -14,8 +22,7 @@ use vars qw($VERSION %IRSSI); 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; @@ -51,16 +58,17 @@ signal_add_last(_bcs("message irc action" => sub {check_for_link(@_)})); 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 = { @@ -154,6 +162,8 @@ sub check_for_link { return; } + push_output($event->ewpf); + study($message); # Offer the message to all Grabbers in turn @@ -180,6 +190,8 @@ sub check_for_link { ($m, $p) = $g->get($message); } } + + pop_output(); } sub cmd_save { @@ -372,7 +384,7 @@ sub ploader { 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}); @@ -446,7 +458,7 @@ sub init_videosite { Irssi::command_bind(_bcb('videosite' => \&cmdhandler)); } - write_irssi('videosite initialized'); + write_irssi('initialized successfully'); } sub sig_complete { @@ -497,9 +509,13 @@ sub cmdhandler { 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);