Mercurial > prosody-modules
view mod_admin_probe/mod_admin_probe.lua @ 3258:85e3117b2b60
mod_pubsub_github/README: Note that it might work with Gitlab as well
Guess based on looking at this documentation:
https://developer.github.com/v3/activity/events/types/#pushevent
https://docs.gitlab.com/ee/system_hooks/system_hooks.html#push-events
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 24 Aug 2018 16:28:48 +0200 |
parents | f78661861e98 |
children |
line wrap: on
line source
-- Prosody IM -- Copyright (C) 2014 Florian Zeitz -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- local presence = module:depends("presence"); local send_presence_of_available_resources = presence.send_presence_of_available_resources; local hosts = prosody.hosts; local core_post_stanza = prosody.core_post_stanza; local st = require "util.stanza"; local is_admin = require "core.usermanager".is_admin; local jid_split = require "util.jid".split; module:hook("presence/bare", function(data) local origin, stanza = data.origin, data.stanza; local to, from, type = stanza.attr.to, stanza.attr.from, stanza.attr.type; local node, host = jid_split(to); if type ~= "probe" then return; end if not is_admin(from, module.host) then return; end if 0 == send_presence_of_available_resources(node, host, from, origin) then core_post_stanza(hosts[host], st.presence({from=to, to=from, type="unavailable"}), true); end return true; end, 10);