banner.pl

This commit is contained in:
wowaname 2016-10-23 03:14:15 +00:00
parent 9b109be00e
commit 52ceae386f

428
scripts/banner.pl Normal file
View File

@ -0,0 +1,428 @@
use strict;
use warnings;
no strict 'subs';
my $SCRIPT_NAME = 'banner';
my $SCRIPT_AUTHOR = 'The Krusty Krab <wowaname@volatile.ch>';
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;
}