Software /
code /
prosody-modules
File
mod_muc_ping/mod_muc_ping.lua @ 4282:281a864e7472
mod_pubsub_feeds: Don't skip publishing items after an existing one
I encountered a feed which was backwards, such that older entries were
considered first and then it would skip newer entries.
This may however run into trouble if the feed contains more items than
what's persisted in pubsub.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 30 Nov 2020 15:17:29 +0100 |
parent | 3647:a0ca5d0a49ba |
line wrap: on
line source
local st = require "util.stanza"; local jid_bare = import("util.jid", "bare"); local mod_muc = module:depends"muc"; local rooms = rawget(mod_muc, "rooms"); if not rooms then module:log("warn", "mod_%s is compatible with Prosody up to 0.10.x", module.name); return; end module:hook("iq/full", function (event) local origin, stanza = event.origin, event.stanza; if stanza.attr.type ~= "get" or not stanza:get_child("ping", "urn:xmpp:ping") then return; end local from = stanza.attr.from; local room_nick = stanza.attr.to; local room_jid = jid_bare(room_nick); local room = rooms[room_jid]; if not room then return; end if room._jid_nick[from] == room_nick then origin.send(st.reply(stanza)); return true; end end); module:hook("muc-disco#info", function(event) event.reply:tag("feature", {var="urn:xmpp:ping"}):up(); event.reply:tag("feature", {var = "http://jabber.org/protocol/muc#self-ping-optimization"}):up(); end);