# -*- coding: utf-8 -*-
|
|
#
|
|
# Script Name: aesthetic.py
|
|
# Script Author: Wojciech Siewierski
|
|
# Script License: GPL3
|
|
# Contact: vifon @ irc.freenode.net
|
|
|
|
SCRIPT_NAME = 'aesthetic'
|
|
SCRIPT_AUTHOR = 'Wojciech Siewierski'
|
|
SCRIPT_VERSION = '1.0.6'
|
|
SCRIPT_LICENSE = 'GPL3'
|
|
SCRIPT_DESC = 'Make messages more A E S T H E T I C A L L Y pleasing.'
|
|
|
|
import_ok = True
|
|
|
|
try:
|
|
import weechat
|
|
except ImportError:
|
|
print('This script must be run under WeeChat')
|
|
print('You can obtain a copy of WeeChat, for free, at https://weechat.org')
|
|
import_ok = False
|
|
|
|
weechat_version = 0
|
|
|
|
import shlex
|
|
import sys
|
|
|
|
def aesthetic_(args):
|
|
for arg in args:
|
|
try:
|
|
arg = arg.decode('utf8')
|
|
except AttributeError:
|
|
pass
|
|
yield " ".join(arg.upper())
|
|
for n, char in enumerate(arg[1:]):
|
|
yield " ".join(" "*(n+1)).join(char.upper()*2)
|
|
|
|
def aesthetic(args):
|
|
if sys.version_info < (3,):
|
|
return (x.encode('utf8') for x in aesthetic_(args))
|
|
else:
|
|
return aesthetic_(args)
|
|
|
|
def aesthetic_cb(data, buffer, args):
|
|
for x in aesthetic(shlex.split(args)):
|
|
weechat.command(buffer, x)
|
|
return weechat.WEECHAT_RC_OK
|
|
|
|
if __name__ == "__main__" and import_ok:
|
|
if weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE, SCRIPT_DESC, "", ""):
|
|
weechat_version = weechat.info_get("version_number", "") or 0
|
|
weechat.hook_command(
|
|
"aesthetic",
|
|
"""Format a message like this:
|
|
|
|
E X A M P L E
|
|
X X
|
|
A A
|
|
M M
|
|
P P
|
|
L L
|
|
E E
|
|
|
|
Each argument is formatted separately, use sh-like quotes for grouping. For example '/aesthetic foo bar' will send two such blocks while '/aesthetic "foo bar"' would send one larger one.
|
|
|
|
Use with care to not cause undesirable message spam.""",
|
|
"message", "",
|
|
"",
|
|
"aesthetic_cb", ""
|
|
)
|