Software /
code /
prosody-modules
File
mod_private_adhoc/mod_private_adhoc.lua @ 3499:a1fc677d0cc8
muc_mam_markers: store chat markers in the Group Chat archives
By enabling this module, messages containing XEP-0333 Chat Markers
addressed to a Group Chat, will get stored in the archive.
author | marc0s <marcos.devera@quobis.com> |
---|---|
date | Fri, 29 Mar 2019 17:04:45 +0100 |
parent | 1461:deb79c2357bb |
line wrap: on
line source
-- Prosody IM -- Copyright (C) 2008-2010 Matthew Wild -- Copyright (C) 2008-2010 Waqas Hussain -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- -- Module by Thomas Raschbacher 2014 -- lordvan@lordvan.com module:depends"adhoc"; local dataforms_new = require "util.dataforms".new; local st = require "util.stanza"; local jid_split = require "util.jid".split; local private_storage = module:open_store("private"); local private_adhoc_result_layout = dataforms_new{ { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/admin" }; { name = "privatexmldata", type = "text-multi", label = "Private XML data" }; }; function private_adhoc_command_handler (self, data, state) local username, hostname = jid_split(data.from); local data, err = private_storage:get(username); local dataString = ""; if not data then dataString = "No data found."; if err then dataString = dataString..err end; else for key,value in pairs(data) do dataString = dataString..tostring(st.deserialize(value)):gsub("><",">\n<") dataString = dataString.."\n\n"; end end return { status = "completed", result= { layout = private_adhoc_result_layout, values = {privatexmldata=dataString.."\n"}} }; end local adhoc_new = module:require "adhoc".new; local descriptor = adhoc_new("Query private data", "private_adhoc", private_adhoc_command_handler, "local_user"); module:add_item ("adhoc", descriptor);