Software /
code /
verse
File
plugins/presence.lua @ 186:bb34b8bc00ae
plugins.groupchat: Extra options. Route join presence through the room. Option to stamp from attr on outgoing stanzas (useful for components).
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 19 Jan 2011 20:41:53 +0100 |
parent | 177:0ffb565fcfd6 |
child | 191:e0664081654c |
line wrap: on
line source
local st = require "util.stanza" function verse.plugins.presence(stream) stream.last_presence = nil; stream:hook("presence-out", function (presence) if not presence.attr.to then stream.last_presence = presence; -- Cache non-directed presence end end, 1); function stream:resend_presence() if last_presence then stream:send(last_presence); end end -- Becase I didn't find util.stanza in the client code. -- And, then the name fits better :) -- // Zash function stream:set_status(opts) local p = st.presence(); if type(opts) == "table" then if opts.show then p:tag("show"):text(opts.show):up(); end if opts.prio then p:tag("priority"):text(opts.priority):up(); end if opts.msg then p:tag("status"):text(opts.msg):up(); end end -- TODO maybe use opts as prio if it's a int, -- or as show or status if it's a string? stream:send(p); end end