Merged c0ffee's MIME signal patch.
[silc.git] / apps / irssi / scripts / mime-test.pl
diff --git a/apps/irssi/scripts/mime-test.pl b/apps/irssi/scripts/mime-test.pl
new file mode 100644 (file)
index 0000000..23e3840
--- /dev/null
@@ -0,0 +1,43 @@
+use Irssi;\r
+use MIME::Base64;\r
+\r
+sub sig_mime {\r
+\r
+  my ($server, $channel, $blob, $enc, $type, $nick) = @_;\r
+\r
+  Irssi::print("$enc - $type - $blob->{octets}");\r
+\r
+  if (($enc eq "base64") && ($type eq "image/png")) {\r
+    # just stores the image in /tmp/$nick.png\r
+    open OFILE, '>', "/tmp/" . $nick . ".png";\r
+    print OFILE decode_base64($blob->{data});\r
+    close OFILE;\r
+    Irssi::signal_stop();\r
+  }\r
+\r
+}\r
+\r
+sub cmd_scribble {\r
+\r
+  my ($data, $server, $channel) = @_;\r
+\r
+  return if $server->{chat_type} !~ /^silc$/i;\r
+\r
+  # let's hope, $data is a png image...\r
+  open IFILE, $data;\r
+\r
+  read IFILE, $image, 0xffff;\r
+\r
+  close IFILE;\r
+\r
+  $data = encode_base64($image);\r
+  $octets = length($data);\r
+  Irssi::print($octets);\r
+\r
+  Irssi::signal_emit("mime-send", $server, $channel, $data, \$octets,\r
+       "base64", "image/png");\r
+}\r
+\r
+Irssi::signal_add("mime", "sig_mime");\r
+# /scribble path/to/image.png\r
+Irssi::command_bind("scribble", "cmd_scribble");\r