- Remove Irssi deps from plugins
authorRalf Ertzinger <sun@lain.camperquake.de>
Tue, 15 Apr 2008 18:23:58 +0000 (20:23 +0200)
committerRalf Ertzinger <sun@lain.camperquake.de>
Tue, 15 Apr 2008 18:23:58 +0000 (20:23 +0200)
videosite.pl
videosite/Base.pm

index c970e98..3ae1e83 100644 (file)
@@ -302,6 +302,7 @@ sub ploader {
         write_debug(undef, "found $g->{'TYPE'} $g->{'NAME'}");
         if ($type eq $g->{'TYPE'}) {
             push(@g, $g);
+            $g->setio(sub {Irssi::print(shift)});
         } else {
             write_irssi(undef, '%s has wrong type (got %s, expected %s)', $p, $g->{'TYPE'}, $type);
             delete($INC{$p});
index 51b091c..2db4969 100644 (file)
@@ -4,12 +4,11 @@
 package Base;
 
 use strict;
-use Irssi;
 use Data::Dumper;
 
 sub new {
     my $class = shift;
-    my $self = {'_DEBUG' => 0};
+    my $self = {'_DEBUG' => 0, '_OUT' => sub {}};
 
     bless($self, $class);
 
@@ -24,7 +23,7 @@ sub error {
 
     $t = sprintf(shift(@_), @_);
     $t =~ s/%/%%/g;
-    Irssi::print($t);
+    $self->{'_OUT'}->($t);
 }
 
 sub debug {
@@ -85,6 +84,13 @@ sub setval {
     }
 }
 
+sub setio {
+    my $self = shift;
+    my $io = shift;
+
+    $self->{'_OUT'} = $io;
+}
+
 sub getconfstr {
     my $self = shift;
     my $s = 'Options for ' . $self->{'NAME'} . ":\n";