- discord.py + fluxer.py bots run side-by-side in one asyncio process - messages relay through per-channel incoming webhooks with the original author's name and avatar (suffixed '(Discord)' / '(Fluxer)') - loop protection: bot-authored and webhook-authored messages are ignored - attachments re-uploaded natively both directions (8 MB cap) - emoji mirroring: on-demand upload into the receiving guild with LRU eviction of bridge-created emojis only; pre-existing emojis untouched; to-Discord direction opt-in (50-slot default guild cap)
2.2 KiB
2.2 KiB
itako TODO
Ideas and future work for the Discord <-> Fluxer bridge.
Messaging
- Edit syncing — propagate message edits across the bridge (requires
tracking relayed-message id pairs; both platforms have
MESSAGE_UPDATEevents, but webhooks can only edit their own messages, so the bridge must remember each relayed message's webhook id + token). - Delete syncing — remove a relayed message when the original is deleted (same id-pair tracking as edits).
- Reply threading — show reply context (
referenced_message) as a quoted line instead of dropping it. - Multi-line / long-message handling — split messages that exceed the 2000-char limit on Discord.
- Typing indicator sync — optional; likely noisy.
Media
- Attachment size config — make the 8 MB cap configurable via
.env(Fluxer supports up to 100 MB on some tiers). - Sticker forwarding — stickers currently do not cross the bridge.
- Voice memo / audio attachments — verify they embed inline on Fluxer.
Emoji
Current behavior: no emoji slots are consumed. Tokens whose name exists on the
receiving side render natively; others degrade to plain :name: text.
- Optional opt-in mirroring — a config flag to re-enable uploading
unknown emojis to the other guild, with an LRU eviction policy to stay
under the 500-emoji Fluxer guild cap (Discord's is 50 for non-community
servers, so mirroring into Discord would need care).
(DONE —
EMOJI_MIRROR_*env vars in INSTALL.md; to-Fluxer is on by default with LRU eviction of bridge-created emojis only; to-Discord is opt-in.) - Nitro/animated emoji fallback — render unknown animated emojis as a
small inline image attachment instead of
:name:text.
Operations
- Graceful reconnect logging — alert (or self-heal) when one side drops its gateway connection for more than N minutes.
- Run as a service — Windows scheduled task / NSSM service wrapper or a systemd unit for Linux hosting, with auto-restart.
- Metrics — simple counters (messages relayed per day, failures) in a log file or tiny status page.