feat(bot): add manual-share cog forwarding channel messages to #inbox

This commit is contained in:
pyr0ball 2026-07-13 14:00:56 -07:00
parent 9971632cd1
commit 8d8761a79d
2 changed files with 42 additions and 0 deletions

View file

View file

@ -0,0 +1,42 @@
import discord
from discord.ext import commands
from chorus_bot.modality_map import modality_for_channel
from chorus_bot.ping import build_ping_embed
class ManualShareCog(commands.Cog):
"""Watches per-modality channels; forwards any new message as a ping in #inbox."""
def __init__(self, bot: commands.Bot, config):
self.bot = bot
self.config = config
@commands.Cog.listener()
async def on_message(self, message: discord.Message):
if message.author.bot:
return
if message.channel.id == self.config.inbox_channel_id:
return # inbox itself is not a source channel
modality = modality_for_channel(message.channel.name)
if modality is None:
return
content = message.content or "(attachment only — see original message)"
snippet = content if len(content) <= 120 else content[:117] + "..."
embed = build_ping_embed(
modality=modality,
sender_id=None,
snippet=snippet,
raw_content=content,
captured_at=message.created_at,
)
inbox = self.bot.get_channel(self.config.inbox_channel_id)
role_mention = f"<@&{self.config.triage_role_id}>"
await inbox.send(content=role_mention, embed=embed)
async def setup(bot: commands.Bot, config):
await bot.add_cog(ManualShareCog(bot, config))