fix quoting in AsyncWgetFileGetter again
[videosite.git] / videosite-weechat.pl
index 389a1fb..5bddd1f 100644 (file)
@@ -1,9 +1,14 @@
-#!/usr/bin/perl -w
-
+# shim to connect libvideosite to weechat
+#
+# (c) 2007-2008 by Ralf Ertzinger <ralf@camperquake.de>
+# licensed under GNU GPL v2
 use strict;
 use File::Spec;
 use Module::Load;
 use Data::Dumper;
+use Carp;
+
+$SIG{ __DIE__ } = sub { Carp::confess( @_ ) };
 
 weechat::register(
     "videosite",
@@ -65,9 +70,6 @@ sub config_del {
 sub colorpair {
     my ($fg, $bg) = @_;
 
-    $fg //= 'default';
-    $bg //= 'default';
-
     return weechat::color($fg . ",", $bg);
 }
 
@@ -78,7 +80,8 @@ sub videosite_hook {
     my ($data, $buffer, $args) = @_;
     my %event = (
         message => $args,
-        ewpf => sub { weechat::print($buffer, @_) },
+        io => sub { weechat::print($buffer, @_) },
+        window => $buffer,
     );
 
     libvideosite::handle_command(\%event);
@@ -94,7 +97,8 @@ sub message_hook {
     my ($data, $buffer, $date, $tags, $displayed, $highlight, $prefix, $message ) = @_;
     my %event = (
         message => $message,
-        ewpf => sub { weechat::print($buffer, @_) },
+        io => sub { weechat::print($buffer, @_) },
+        window => $buffer
     );
 
     libvideosite::check_for_link(\%event);
@@ -112,27 +116,23 @@ sub videosite_reset {
         config_get =>  \&config_get,
         config_set => \&config_set,
         config_has => \&config_has,
-        config_save => sub {},
+        config_save => sub { 1 },
         config_del => \&config_del,
         color => \&colorpair,
         module_path => sub { return File::Spec->catfile(weechat::info_get("weechat_dir", ""), 'perl') },
         quote => sub { return $_ },
-        _debug => sub { 1 },
+        reload => sub { weechat::print("", "Please use \"/script reload ...\" to reload") },
     })) {
         weechat::print("", sprintf("videosite API register failed: %s", $libvideosite::error));
-        return;
+        return 0;
     }
 
     unless(libvideosite::init()) {
         weechat::print("", sprintf("videosite init failed: %s", $libvideosite::error));
-        return;
+        return 0;
     }
 
-    weechat::hook_print("", "notify_message", "://", 1, "message_hook", "");
-    weechat::hook_print("", "notify_private", "://", 1, "message_hook", "");
-    weechat::hook_print("", "notify_highlight", "://", 1, "message_hook", "");
-    weechat::hook_print("", "notify_none", "://", 1, "message_hook", "");
-    weechat::hook_command( "videosite", "videosite control functions", "", "", "", "videosite_hook", "");
+    return 1;
 }
 
 sub videosite_init {
@@ -142,7 +142,13 @@ sub videosite_init {
     push(@INC, File::Spec->catfile(weechat::info_get("weechat_dir", ""), 'perl'));
     load 'libvideosite';
 
-    videosite_reset();
+    if (videosite_reset()) {
+        weechat::hook_print("", "notify_message", "://", 1, "message_hook", "");
+        weechat::hook_print("", "notify_private", "://", 1, "message_hook", "");
+        weechat::hook_print("", "notify_highlight", "://", 1, "message_hook", "");
+        weechat::hook_print("", "notify_none", "://", 1, "message_hook", "");
+        weechat::hook_command( "videosite", "videosite control functions", "", "", "", "videosite_hook", "");
+    }
 }
 
 videosite_init();