summaryrefslogtreecommitdiff
path: root/cowsay_weechat
diff options
context:
space:
mode:
Diffstat (limited to 'cowsay_weechat')
-rw-r--r--cowsay_weechat/cowsay.lua150
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