Mercurial > prosody-modules
view mod_atom/mod_atom.lua @ 2608:362ca94192ee
mod_smacks: Add resumed session to event "smacks-hibernation-end"
Older versions of this event only have the "intermediate" session
in event.session (the one used to resume the existing session),
but not the resumed one.
This adds event.resumed which contains the resumed one alongside
to event.session.
author | tmolitor <thilo@eightysoft.de> |
---|---|
date | Sat, 11 Mar 2017 01:37:28 +0100 |
parents | 4915b8223b07 |
children | 4b52cafd5811 |
line wrap: on
line source
-- HTTP Access to PEP -> microblog -- By Kim Alvefur <zash@zash.se> module:depends"http"; module:depends"pep"; local nodeprep = require "util.encodings".stringprep.nodeprep; local st = require "util.stanza"; local host, hosts = module.host, hosts; local function handle_request(event, path) local response = event.response; local user = nodeprep(path); if not user then return 400 end local jid = user .. "@" .. host; local pep_data = hosts[host].modules.pep.module.save(); if not pep_data.data[jid] or not pep_data.data[jid]["urn:xmpp:microblog:0"] then return 404; end local microblogdata = pep_data.data[jid]["urn:xmpp:microblog:0"][2]:get_child("entry", "http://www.w3.org/2005/Atom"); if not microblogdata then return 404; end local feed = st.stanza("feed", { xmlns="http://www.w3.org/2005/Atom" } ); local source = microblogdata:get_child("source"); if source then for i = 1,#source do feed:add_child(source[i]):up(); end for i = 1,#microblogdata do if microblogdata[i].name == "source" then table.remove(microblogdata, i); break end end end feed:add_child(microblogdata); response.headers.content_type = "application/atom+xml"; return "<?xml version='1.0' encoding='utf-8'?>" .. tostring(feed) .. "\n"; end module:provides("http", { route = { ["GET /*"] = handle_request; }; });