Software /
code /
prosody-modules
Diff
mod_slack_webhooks/mod_slack_webhooks.lua @ 3443:284d8c18060e
mod_slack_webhooks: Fix use with 0.11+ MUC API
Copied from mod_muc_badge
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 15 Jan 2019 16:41:58 +0100 |
parent | 3148:8c7b8b2c3237 |
child | 4560:724003f24308 |
line wrap: on
line diff
--- a/mod_slack_webhooks/mod_slack_webhooks.lua Tue Jan 15 15:01:04 2019 +0100 +++ b/mod_slack_webhooks/mod_slack_webhooks.lua Tue Jan 15 16:41:58 2019 +0100 @@ -6,7 +6,6 @@ module:depends"http" -local host_session = prosody.hosts[module.host]; local msg = require "util.stanza".message; local jid = require "util.jid"; local now = require "util.datetime".datetime; @@ -15,13 +14,12 @@ local http = require "net.http"; local dataform = require "util.dataforms"; -local function get_room_from_jid(mod_muc, room_jid) - if mod_muc.get_room_from_jid then - return mod_muc.get_room_from_jid(room_jid); - elseif mod_muc.rooms then - return mod_muc.rooms[room_jid]; -- COMPAT 0.9, 0.10 +local mod_muc = module:depends"muc"; +local rooms = rawget(mod_muc, "rooms"); +local get_room_from_jid = rawget(mod_muc, "get_room_from_jid") or + function (room_jid) + return rooms[room_jid]; end -end local button_ns = "xmpp:prosody.im/community/mod_slack_webhooks#buttons"; local routing = module:get_option("outgoing_webhook_routing") or {}; @@ -34,10 +32,8 @@ function check_message(data) local stanza = data.stanza; - local mod_muc = host_session.muc; - if not mod_muc then return; end - local this_room = get_room_from_jid(mod_muc, stanza.attr.to); + local this_room = get_room_from_jid(stanza.attr.to); if not this_room then return; end -- no such room local from_room_jid = this_room._jid_nick[stanza.attr.from]; @@ -105,8 +101,7 @@ local function route_post(f) return function(event, path) local bare_room = jid.join(path, module.host); - local mod_muc = host_session.muc; - if not get_room_from_jid(mod_muc, bare_room) then + if not get_room_from_jid(bare_room) then module:log("warn", "mod_slack_webhook: invalid JID: %s", bare_room); return 404; end @@ -116,7 +111,6 @@ end local function handle_post(event, path) - local mod_muc = host_session.muc; local request = event.request; local headers = request.headers; @@ -133,7 +127,7 @@ return 422; end local bare_room = jid.join(path, module.host); - local dest_room = get_room_from_jid(mod_muc, bare_room); + local dest_room = get_room_from_jid(bare_room); local from_nick = default_from_nick; if post_body["username"] then from_nick = post_body["username"];