Added Lua example
This commit is contained in:
@@ -3,7 +3,7 @@ profanity-plugins
|
|||||||
|
|
||||||
Plugin support for Profanity is currently in development at the `plugins` branch.
|
Plugin support for Profanity is currently in development at the `plugins` branch.
|
||||||
|
|
||||||
Currently supported languages for writing plugins are Python, Ruby and C.
|
Currently supported languages for writing plugins are C, Python, Ruby and Lua.
|
||||||
|
|
||||||
Building Profanity with plugin support
|
Building Profanity with plugin support
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
@@ -12,6 +12,7 @@ You will need a few more dependencies installed on your system:
|
|||||||
|
|
||||||
```
|
```
|
||||||
python-dev
|
python-dev
|
||||||
|
lua-dev
|
||||||
ruby-dev
|
ruby-dev
|
||||||
libtool
|
libtool
|
||||||
autoconf-archive
|
autoconf-archive
|
||||||
@@ -58,6 +59,7 @@ Whilst the API is being developed, the following test plugins are a good referen
|
|||||||
```
|
```
|
||||||
python-test.py
|
python-test.py
|
||||||
RubyTest.rb
|
RubyTest.rb
|
||||||
|
luatest.lua
|
||||||
test-c-plugin/*
|
test-c-plugin/*
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
105
luatest.lua
Normal file
105
luatest.lua
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
local luatest = {}
|
||||||
|
|
||||||
|
local function cmd_lua(msg)
|
||||||
|
if msg then
|
||||||
|
prof_cons_show("luatest: /lua command called, arg = " .. msg)
|
||||||
|
else
|
||||||
|
prof_cons_show("luatest: /lua command called with no arg")
|
||||||
|
end
|
||||||
|
prof_cons_alert()
|
||||||
|
prof_notify("luatest: notify", 8000, "Plugins")
|
||||||
|
prof_send_line("/account list")
|
||||||
|
prof_cons_show("luatest: sent \"/account list\" command")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function timer_test()
|
||||||
|
prof_cons_show("luatest: timer fired.")
|
||||||
|
recipient = prof_get_current_recipient()
|
||||||
|
if recipient then
|
||||||
|
prof_cons_show(" current recipient = " .. recipient)
|
||||||
|
end
|
||||||
|
prof_cons_alert()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function handle_bracket(win, line)
|
||||||
|
prof_win_show(win, "(" .. line .. ")")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function cmd_bracket(line)
|
||||||
|
win_tag = "Parenthesise echo";
|
||||||
|
if prof_win_exists(win_tag) == false then
|
||||||
|
prof_win_create(win_tag, handle_bracket);
|
||||||
|
end
|
||||||
|
|
||||||
|
prof_win_focus(win_tag);
|
||||||
|
|
||||||
|
if line then
|
||||||
|
prof_win_process_line(win_tag, line);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_init(version, status)
|
||||||
|
prof_cons_show("luatest: init, " .. version .. ", " .. status)
|
||||||
|
prof_register_command("/lua", 0, 1, "/lua", "luatest", "luatest", cmd_lua)
|
||||||
|
prof_register_command("/bracket", 0, 1, "/bracket", "Parenthesise input string", "Parenthesise input string", cmd_bracket);
|
||||||
|
prof_register_timed(timer_test, 10)
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_on_start()
|
||||||
|
prof_cons_show("luatest: on_start")
|
||||||
|
prof_log_debug("luatest: logged debug");
|
||||||
|
prof_log_info("luatest: logged info");
|
||||||
|
prof_log_warning("luatest: logged warning");
|
||||||
|
prof_log_error("luatest: logged error");
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_on_connect(account_name, fulljid)
|
||||||
|
prof_cons_show("luatest: on_connect, " .. account_name .. ", " .. fulljid)
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_on_disconnect(account_name, fulljid)
|
||||||
|
prof_cons_show("luatest: on_disconnect, " .. account_name .. ", " .. fulljid)
|
||||||
|
prof_log_info("luatest: on_disconnect, " .. account_name .. ", " .. fulljid)
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_on_message_received(jid, message)
|
||||||
|
prof_cons_show("luatest: on_message_received, " .. jid .. ", " .. message)
|
||||||
|
prof_cons_alert()
|
||||||
|
return message .. "[LUA]"
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_on_room_message_received(room, nick, message)
|
||||||
|
prof_cons_show("luatest: on_room_message_received, " .. room .. ", " .. nick .. ", " .. message)
|
||||||
|
prof_cons_alert()
|
||||||
|
return message .. "[LUA]"
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_on_private_message_received(room, nick, message)
|
||||||
|
prof_cons_show("luatest: on_private_message_received, " .. room .. ", " .. nick .. ", " .. message)
|
||||||
|
prof_cons_alert()
|
||||||
|
return message .. "[LUA]"
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_on_message_send(jid, message)
|
||||||
|
prof_cons_show("luatest: on_message_send, " .. jid .. ", " .. message)
|
||||||
|
prof_cons_alert()
|
||||||
|
return message .. "[LUA]"
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_on_private_message_send(room, nick, message)
|
||||||
|
prof_cons_show("luatest: on_private_message_send, " .. room .. ", " .. nick .. ", " .. message)
|
||||||
|
prof_cons_alert()
|
||||||
|
return message .. "[LUA]"
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_on_room_message_send(room, message)
|
||||||
|
prof_cons_show("luatest: on_room_message_send, " .. room .. ", " .. message)
|
||||||
|
prof_cons_alert()
|
||||||
|
return message .. "[LUA]"
|
||||||
|
end
|
||||||
|
|
||||||
|
function luatest.prof_on_shutdown()
|
||||||
|
prof_log_info("luatest: on_shutdown")
|
||||||
|
end
|
||||||
|
|
||||||
|
return luatest
|
||||||
Reference in New Issue
Block a user