Mercurial > nix
diff libs/utils.lua @ 0:0d4d8b432980 default tip master
Initial commit.
author | Kooda <kooda@upyum.com> |
---|---|
date | Fri, 27 Aug 2010 17:00:32 +0200 |
parents | |
children |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/libs/utils.lua @@ -0,0 +1,54 @@ +-- +-------------------------------------------------------------------------------- +-- FILE: utils.lua +-- USAGE: ./utils.lua +-- DESCRIPTION: A couple of functions +-- OPTIONS: --- +-- REQUIREMENTS: --- +-- BUGS: --- +-- NOTES: --- +-- AUTHOR: Adrien Ramos (M), <adrien.ramos@upyum.com> +-- COMPANY: +-- VERSION: 1.0 +-- CREATED: 07/08/2010 23:40:24 CEST +-- REVISION: --- +-------------------------------------------------------------------------------- +-- + +local verse = require("verse"); +local st = require("util.stanza"); + +-- Lit le fichier de configuration (par défaut config.lua) et stocke la configuration +-- dans la table config +function config_load(filename) + local filename = filename or "config.lua" + -- Config loading + local chunk, err = loadfile(filename); + if not chunk then + print("File or syntax error:", err); + return 1; + end + + local config = {}; + setfenv(chunk, setmetatable(config, {__index = _G})); + local ok, err = pcall(chunk); + if not ok then + print("Error while processing config:", err); + return 1; + end + setmetatable(config, nil) + return config; +end + +function room_join(stream, room, nick) + if not nick or not room or not stream then + error("room_join needs the following arguments : stream room nick"); + end + s = st.presence{from=stream.username.."@"..stream.host.."/"..stream.resource, to = room.jid.."/"..nick}; + s:tag("x", {xmlns="http://jabber.org/protocol/muc"}); + if room.password then + s:tag("password"):text(room.password); + end + print("XML OUT:", s); + stream:send(s); +end