From 52ceae386fdc1c33d591ab13f4e6228eb5f301aa Mon Sep 17 00:00:00 2001 From: wowaname Date: Sun, 23 Oct 2016 03:14:15 +0000 Subject: [PATCH] banner.pl --- scripts/banner.pl | 428 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 428 insertions(+) create mode 100644 scripts/banner.pl diff --git a/scripts/banner.pl b/scripts/banner.pl new file mode 100644 index 0000000..f85dc84 --- /dev/null +++ b/scripts/banner.pl @@ -0,0 +1,428 @@ +use strict; +use warnings; +no strict 'subs'; + +my $SCRIPT_NAME = 'banner'; +my $SCRIPT_AUTHOR = 'The Krusty Krab '; +my $SCRIPT_VERSION = '1.0'; +my $SCRIPT_LICENCE = 'Public domain'; +my $SCRIPT_DESC = 'Banner text'; +our (%queue, %timer); + +our @chars = (' +````````^', +' +XX``XXXXX', +' +``````XXX +````````` +``````XXX', +' +``X```X`` +XXXXXXXXX +``X```X`` +XXXXXXXXX +``X```X``', +' +`````XX`` +`X``X``X` +XX``X``XX +`X``X``X` +``XX`````', +' +```X```XX +XX``X``XX +XX```X```', +' +```X`X``` +X`X`X`X`X +``X```X``', +' +``````XXX', +' +`XXXXXXX` +X```````X', +' +X```````X +`XXXXXXX`', +' +``````X`X +```````X` +``````X`X', +' +````X```` +```XXX``` +````X````', +' +X```````` +`XX``````', +' +````X```^ +````X````', +' +X````````', +' +XXX`````` +```XXX``` +``````XXX', +' +`XXXXXXX` +X```````X +`XXXXXXX`', +' +X``````X` +XXXXXXXXX +X````````', +' +XXX````X` +X``XX```X +X````XXX`', +' +`X`````X` +X```X```X +`XXX`XXX`', +' +````XXX`` +````X``X` +XXXXXXXXX', +' +X```XXXXX +X```X```X +`XXX````X', +' +`XXXXXXX` +X```X```X +`XXX`````', +' +XXX`````X +```XXX``X +``````XXX', +' +`XXX`XXX` +X```X```X +`XXX`XXX`', +' +`````XXX` +X```X```X +`XXXXXXX`', +' +``XX`XX``', +' +`X``````` +``XX`XX``', +' +````X```` +```X`X``` +``X```X``', +' +```X`X``` +```X`X``^ +```X`X```', +' +``X```X`` +```X`X``` +````X````', +' +```````X` +XX``X```X +`````XXX`', +' +`XXXXXXX` +X``XXX``X +X`X```X`X +X`XXXXXXX', +' +XXXXXXXX` +````X```X +XXXXXXXX`', +' +XXXXXXXXX +X```X```X +`XXX`XXX`', +' +`XXXXXXX` +X```````X +`X`````X`', +' +XXXXXXXXX +X```````X +`XXXXXXX`', +' +XXXXXXXXX +X```X```X +X```````X', +' +XXXXXXXXX +````X```X +````````X', +' +`XXXXXXX` +X```````X +`XXX```X`', +' +XXXXXXXXX +````X```` +XXXXXXXXX', +' +X```````X +XXXXXXXXX +X```````X', +' +`X``````X +X```````X +`XXXXXXXX', +' +XXXXXXXXX +````X```` +```X`X``` +XXX```XXX', +' +XXXXXXXXX +X````````', +' +XXXXXXXXX +``````XX` +``XXXX``` +``````XX` +XXXXXXXXX', +' +XXXXXXXXX +``````XX` +```XXX``` +`XX`````` +XXXXXXXXX', +' +XXXXXXXXX +X```````X +XXXXXXXXX', +' +XXXXXXXXX +````X```X +`````XXX`', +' +`XXXXXXXX +XX``````X +XXXXXXXXX +X````````', +' +XXXXXXXXX +````X```X +XXXX`XXX`', +' +`X```XXX` +X```X```X +`XXX```X`', +' +````````X +XXXXXXXXX +````````X', +' +XXXXXXXXX +X```````` +XXXXXXXXX', +' +```XXXXXX +XXX`````` +```XXXXXX', +' +`XXXXXXXX +X```````` +`XXXX```` +X```````` +`XXXXXXXX', +' +XXX```XXX +```XXX``` +XXX```XXX', +' +`````XXXX +XXXXX```` +`````XXXX', +' +XXX`````X +X``XXX``X +X`````XXX', +' +XXXXXXXXX +X```````X', +' +``````XXX +```XXX``` +XXX``````', +' +X```````X +XXXXXXXXX', +' +```````X` +````````X +```````X`', +' +X```````` +X```````^ +X````````', +' +````````X +```````X`', +' +`X``X```` +X`X`X```` +XXXX`````', +' +XXXXXXXXX +X```X```` +`XXX`````', +' +`XXX````` +X```X```` +X```X````', +' +`XXX````` +X```X```` +XXXXXXXXX', +' +`XXX````` +X`X`X```` +X`XX`````', +' +XXXXXXXX` +````X```X', +' +X``X````` +X`X`X```` +`XXXX````', +' +XXXXXXXXX +````X```` +XXXX`````', +' +XXXXX``X`', +' +X```````` +`XXXX``X`', +' +XXXXXXXXX +````X```` +XXXX`X```', +' +X```````X +XXXXXXXXX +X````````', +' +XXXXX```` +````X```` +XXXX````` +````X```` +XXXX`````', +' +XXXXX```` +````X```` +XXXX`````', +' +XXXXX```` +X```X```` +XXXXX````', +' +XXXXX```` +`X``X```` +``XX`````', +' +``XX````` +`X``X```` +XXXXX````', +' +XXXXX```` +````X````', +' +X``X````` +X`X`X```` +`X``X````', +' +`XXXXXXX` +X```X````', +' +`XXXX```` +X```````` +XXXXX````', +' +``XXX```` +XX``````` +``XXX````', +' +`XXXX```` +X```````` +`XXX````` +X```````` +`XXXX````', +' +XX`XX```` +``X`````` +XX`XX````', +' +X``XX```` +X`X`````` +`XXXX````', +' +XX``X```` +X`X`X```` +X``XX````', +' +````X```` +XXXX`XXXX +X```````X', +' +XXXXXXXXX', +' +X```````X +XXXX`XXXX +````X````', +' +```````X` +````````X +```````X` +````````X'); + +if (weechat::register($SCRIPT_NAME, $SCRIPT_AUTHOR, $SCRIPT_VERSION, + $SCRIPT_LICENCE, $SCRIPT_DESC, '', '')) { + weechat::hook_command('banner', 'Banner text', + "[-nick|-key|-limit] text", + "-nick: send to /nick command\n". + "-key: send as /mode +k (doesn't work on all ircds)\n". + "-limit: send as /mode +l\n", + '', 'cmd_banner', ''); +} + +sub cmd_banner +{ + my ($buffer, $cmd) = ($_[1], $_[2]); + my ($flag, $text) = $cmd =~ /^(-nick|-key|-limit|) *(.*)$/; + my @output; + my $prefix = '/msg *'; + my $nick = weechat::info_get('irc_nick', + weechat::buffer_get_string($buffer, 'localvar_server')); + + for ($flag) { + /-nick/ and $prefix = '/nick', last; + /-key/ and $prefix = '/mode +k', last; + /-limit/ and $prefix = '/mode +l', last; + } + + if ($flag eq '-limit') { @chars[$_] =~ y/`X/18/ for (0 .. @chars) } + else { @chars[$_] =~ y/18/`X/ for (0 .. @chars) } + + for my $char (split //, $text) { + push @output, $flag eq '-limit' ? '111111111' : '`````````'; + push @output, split /\n/, $chars[ord($char) - 0x20]; + } + + weechat::command($buffer, "$prefix $_") for @output; + + for ($flag) { + /-nick/ and weechat::command($buffer, "/nick $nick"), last; + /-key/ and weechat::command($buffer, "/mode +k `````````"), + weechat::command($buffer, "/mode -k `````````"), + last; + /-limit/ and weechat::command($buffer, "/mode -l"), last; + } + + return weechat::WEECHAT_RC_OK; +}