diff options
-rw-r--r-- | cowsay_weechat/cowsay.lua | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/cowsay_weechat/cowsay.lua b/cowsay_weechat/cowsay.lua new file mode 100644 index 0000000..d29614b --- /dev/null +++ b/cowsay_weechat/cowsay.lua @@ -0,0 +1,150 @@ +--[[ +cowsay.lua - say and show ascii art + +Prerequisites + The Lua plugin for weechat must be installed and enabled + +Usage: + /cowsay - without params will show all commands avalible + /cowsay nerd [ARG1] - show nerd with name ARG1 + /cowsay goat [ARG1] - show goat saying ARG1 + /cowsay shoot [ARG1] - show shooting at lying ARG1 + /cowsay juice [ARG1] [ARG2] - show juice box with first line ARG1 and +second line ARG2 + +]] + +-------------------------------------------------------------------------------- +-- my drawing +function ascii_nerd( name ) + local s = "" + s = s .. [[ +\ | | / +| o o | + \ O / + | | +]] + local l = string.len(name) + for i=1,l+4 do s = s .. "+" end + s = s .. "\n| " .. name .. " |\n" + for i=1,l+4 do s = s .. "+" end + return s +end + +-------------------------------------------------------------------------------- +--from beej.us +function ascii_goat( text ) + local s = "" + s = s .. [[ )_) + ___|oo) ]] + s = s .. text .. "\n" + s = s .. [['| |\_| + |||| # + ````]] + return s +end + +-------------------------------------------------------------------------------- +--http://ascii.co.uk/art/shoot +function ascii_shoot( name ) + local s = "" + if name == nil then name = "" else + name = "("..name..")" end + s = s .. [[ + O + <\==- - - - - - - --- + ./ \ _/\_\O ]] .. name .. [[ +]] + return s +end + +-------------------------------------------------------------------------------- +--http://ascii.co.uk/art/juice +function ascii_juice( name1, name2 ) + local s = "" + if name1 == nil then name1 = "" end + if name2 == nil then name2 = "" end + local l1 = string.len( name1 ) + local l2 = string.len( name2 ) + + if l1 > 5 then + name1 = string.sub( name1, 1, 5 ) + elseif l1 < 5 then + while string.len(name1) < 5 do + name1 = name1 .. ' ' + end + end + + if l2 > 5 then + name2 = string.sub( name2, 1, 5 ) + elseif l2 < 5 then + while string.len( name2 ) < 5 do + name2 = name2 .. ' ' + end + end + + s = s .. [[ + __ + /.- + ______ // + /______'/| + [ ]| + [ ]] .. name1 .. [[ ]| + [ ]] .. name2 .. [[ ]| + [ _\_ ]| + [ ::: ]| + [ :' ]/ + '-------']] + return s +end + +function cs_print_list() + weechat.print("","buf "..weechat.current_buffer()) + weechat.print(weechat.current_buffer(),"/msg #mainlv br br") +end + +function cs_command( cmd, args ) + cmd = string.lower(cmd) + weechat.print("",cmd..":"..args) + if cmd == "nerd" then + --weechat.print("",ascii_nerd(arg1)) + weechat.command( weechat.current_buffer(), ascii_nerd(args) ) + elseif cmd == "goat" then + weechat.command( weechat.current_buffer(), ascii_goat(args) ) + elseif cmd == "shoot" then + weechat.command( weechat.current_buffer(), ascii_shoot(args) ) + else + weechat.print(weechat.current_buffer(), "Unknown command") + end +end + +-- +-- Main entry point +-- +function cowsay_init(data, buffer, args) + local cmd, params = string.match(args, "(%a+)%s*(.*)") + if not cmd or cmd == "" then + cs_print_list() + return weechat.WEECHAT_RC_OK + end + + cs_command( cmd, params ) + + return weechat.WEECHAT_RC_OK +end + + +-- +-- Register with weechat +-- +weechat.register("cowsay", "FreeArtMan", "0.0.1", "Beerware", "ASCII drawing in commanline", "", "") +weechat.hook_command("cowsay", + "cowsay", -- description + "[shoot <name>, goat <name>, juice <line1> <line2>, nerd <name>", -- args + " list: \n".. + " add: \n".. + " del: \n\n".. + "If no command is given, all phrases are listed.", + "nerd|juice|goat|shoot", -- completion + "cowsay_init", + "")
\ No newline at end of file |