random/irc/weechat/banner.pl

333 lines
4.6 KiB
Perl

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);
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'));
my @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');
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 - 1)) }
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;
}