Initial bridge: Discord <-> Fluxer channel relay via webhooks
- 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)
This commit is contained in:
1 parent
09ce07d403
commit
f3154396fa
9 files changed
+1405
-2
No files matched your search
@@ -0,0 +1,48 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user