summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/pylon.lua12
-rw-r--r--main.lua2
-rw-r--r--quaddle/pylon.lua2
-rw-r--r--xmpp/pylon.lua9
4 files changed, 13 insertions, 12 deletions
diff --git a/discord/pylon.lua b/discord/pylon.lua
index ebf185d..c2afc3a 100644
--- a/discord/pylon.lua
+++ b/discord/pylon.lua
@@ -15,7 +15,7 @@ local API_BASE = "https://discord.com/api/v10/"
local Discord = class.extend(BasePylon)
function Discord.init(self)
self:_check_fields "token"
- self.channel_to_webhook = {}
+ self.channels = {}
end
local function identify_payload(token)
@@ -76,14 +76,14 @@ function Discord.add_channel(self, channel)
for _,wh in pairs(webhooks) do
if wh.application_id == self.bot_id then
self.log("Found existing webhook for channel",channel.id)
- self.channel_to_webhook[channel.id] = wh
+ self.channels[channel.id] = {wh=wh}
return
end
end
self.log("Making webhook for channel",channel.id)
local wh = self:_req("channels/"..channel.id.."/webhooks", {
name=self.name:gsub("discord",""):gsub("clyde","").." wilson hook" })
- self.channel_to_webhook[channel.id] = wh
+ self.channels[channel.id] = {wh=wh}
end
function Discord._heartbeating(self, interval_ms)
@@ -121,8 +121,8 @@ function Discord.handle_dispatch(self, event)
if event.t == 'MESSAGE_CREATE' then
self.log:proto('<',d.channel_id,d.author.username,d.content)
if
- self.channel_to_webhook[d.channel_id]
- and d.author.id ~= self.channel_to_webhook[d.channel_id].id
+ self.channels[d.channel_id]
+ and d.author.id ~= self.channels[d.channel_id].wh.id
and d.author.id ~= self.bot_id
then
self.wilson:deliver(Message {
@@ -138,7 +138,7 @@ end
function Discord.sending(self)
for dest_channel, message in self.inbox:iter() do
self.log:proto('>',dest_channel,message.author,message.body)
- local wh = self.channel_to_webhook[dest_channel.id]
+ local wh = self.channels[dest_channel.id].wh
self:_req('webhooks/'..wh.id..'/'..wh.token, {
username = message.author:name_with_shortname(),
content = message.body,
diff --git a/main.lua b/main.lua
index bf9a0b6..c06651f 100644
--- a/main.lua
+++ b/main.lua
@@ -47,7 +47,7 @@ function Wilson.make(cls, conf)
end
function Wilson.add_channels_for(self, pylon)
- if not pylon.add_channel then return end
+ if not pylon.channels then return end
for busname, bus in pairs(self.busses) do
for _, channel in ipairs(bus) do
if channel.pylon == pylon then
diff --git a/quaddle/pylon.lua b/quaddle/pylon.lua
index 86e465a..20eeb3a 100644
--- a/quaddle/pylon.lua
+++ b/quaddle/pylon.lua
@@ -10,6 +10,7 @@ local Thing = require 'thing'
local Quaddle = class.extend(BasePylon)
function Quaddle.init(self)
self:_check_fields "base_url bot_name bot_password"
+ self.channels = {}
end
-- https://codeberg.org/QWD/Quaddle/src/branch/main/doc/api.md
@@ -46,6 +47,7 @@ end
function Quaddle.add_channel(self, channel)
self.log("Subscribing to channel",channel.id)
self.ws:send(json.encode{ op="subscribe", channel_id=channel.id })
+ self.channels[channel.id] = true
end
function Quaddle.recving(self)
diff --git a/xmpp/pylon.lua b/xmpp/pylon.lua
index d00c41b..a3415dd 100644
--- a/xmpp/pylon.lua
+++ b/xmpp/pylon.lua
@@ -13,8 +13,7 @@ local Xmpp = class.extend(BasePylon)
function Xmpp.init(self)
self:_check_fields"server component component_secret"
-
- self.mucs = {}
+ self.channels = {}
end
-- only use on local connections!
@@ -44,13 +43,13 @@ end
function Xmpp.add_channel(self, channel)
local muc = { nick_to_user={}, user_to_nick={} }
- self.mucs[channel.id] = muc
+ self.channels[channel.id] = muc
local bot = {} ; self.bot = bot
bot.user, bot.nick, bot.user_jid, bot.nick_jid = self:ensure_and_get_user(channel.id, "wilson")
end
function Xmpp.ensure_and_get_user(self, muc_jid, nick, source_pylon)
- local muc = assert(self.mucs[muc_jid])
+ local muc = assert(self.channels[muc_jid])
local user = muc.nick_to_user[nick]
if user then
local user_jid = user..'@'..self.component
@@ -101,7 +100,7 @@ function Xmpp.recving(self)
if x.label == 'message' then
local from_bare_jid, from_nick
if x.xarg.from then from_bare_jid, from_nick = x.xarg.from:match"(.*)/(.*)" end
- local muc = self.mucs[from_bare_jid] ; if muc then
+ local muc = self.channels[from_bare_jid] ; if muc then
if
x.xarg.to == 'wilson@'..self.component
and body