- 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)
49 lines
2.2 KiB
Markdown
49 lines
2.2 KiB
Markdown
# 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_UPDATE` events, 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.
|