Repository navigation
|
Hello! Is there a chance we can have something like that for our Nodyx instance? Something that can have access to message history, message events in text chats, activity in voice chats, etc. - and react accordingly, by posting something, playing something in the voice chat, moderating the community and stuff like that? It would be ideal to have a python library for such bits, but even the existing of the API would be great, I might just publish the library myself in that case. |
Replies: 6 comments 4 replies
|
Hey, thanks for the heads-up about your migration plan, this is exactly the kind of use case we want to support. Short answer: a bot/automation API is on the roadmap and aligned with Nodyx's vision (self-hosted, open). It's not shipped today, but a moderation-focused "Bot API v1" is reasonable to land in the next few weeks. Voice bots will take longer for architectural reasons (more below). What's realistic short-term (Bot API v1, moderation + chat) Most of the plumbing already exists:
What's missing and what we'd add:
With that, your bot can do: auto-delete on banned words, anti-flood, anti-spam links, warn/kick on N strikes, custom commands ( What you can already build on your side XP, leveling, leaderboards, advanced activity metrics: this logic lives in the bot itself. It listens to chat events and writes to its own local DB (SQLite is enough). Nodyx doesn't need to know, so this isn't blocked by us at all. Same for "non-standard text channel logic", once the bot has read+write access, custom flows are yours to design. What's harder and why (voice bots) Voice in Nodyx is WebRTC peer-to-peer mesh, not a centralized voice server. There's no shared audio stream a bot can simply hook into. A Python voice bot would need to act as a real WebRTC peer (e.g. via Timing Your migration is in ~2 weeks, the Bot API v1 won't be ready in that window. Two pragmatic paths:
If you're up for it, I'd love your input on the Bot API v1 spec. You've clearly thought about what a community bot needs to do, and that kind of feedback shapes a better API. I'll open a tracking issue ("RFC: Bot API v1") and ping you, sounds good? |
|
Quick follow-up: I just opened PR #26 with a full spec for OctoGuard, a native moderation bot for Nodyx that came directly out of this thread. 👉 #26 It's a Phase 1 spec only (no implementation yet), covering auto-mod, welcome, custom commands, logs with undo, and an optional outbound webhook. Phase 2 will add XP/leveling/leaderboard, Phase 4 will add the external Bot API + WebRTC voice bot (your custom Python logic + voice mascot lands there). I'd love your eyes on the PR description, especially:
No pressure on timing, your input would just genuinely shape a better v1. |
|
For the migration use case, I would keep two tracks separate:
OctoGuard can cover the common baseline, but the Discord-style custom bot/mascot use case needs an external API contract. Otherwise every community-specific workflow eventually becomes a feature request against core. For Bot API v1, the minimum useful surface is probably: The security model matters more than SDK size: For event delivery, Socket.IO is fine initially, but I would include event IDs from day one: {
"event_id": "...",
"type": "message.created",
"created_at": "...",
"data": {}
}That lets bot authors build idempotency and reconnect handling. Without event IDs, XP/leveling and moderation counters become fragile after reconnects. Voice bots can stay phase 2/4. A good interim design is to expose voice presence/activity metadata first, but not audio. That still unlocks a lot of bot logic: XP for voice participation, moderation alerts, room occupancy rules, and scheduled announcements in text when a voice event happens. For the Python SDK, I would keep it thin: @bot.on("message.created")
async def handle_message(event):
...
await bot.send_message(channel_id, "...")
await bot.warn(user_id, reason="...")The SDK should mostly be typed wrappers around the stable REST + event contract, not a framework that hides the protocol too early. |
|
Hey @yudin-s, first a real thank you. This isn't the kind of comment you toss off in 30 seconds. You clearly thought hard about it. Pointing out event_ids from day one, the voice-metadata-without-audio middle path, and the per-channel scoped security model gave me three things I can actually integrate. That's a gift, not just feedback. And @mrmeloman, thank you too. You're the reason this whole thread started, and the reason the OctoGuard spec exists in the first place. I want to be honest with both of you about where Nodyx is right now. It's a solo project. One person, working on it with care, and I won't pretend otherwise. So when I read your needs I see them clearly: a community to protect, real-world timelines, an existing bot setup that has to keep running. Those needs are legitimate, real, valid. None of this is a "nice to have", I get it. What I can commit to honestly:
What I won't do:
I also want to say something broader. Nodyx isn't trying to race anyone. It's not trying to be a "better Discord" or replace any particular platform. The goal is a free community hub, no dark patterns, no growth hacking, no engagement traps. A project like that moves slower than VC-backed ones, and that's a feature, not a bug. So I'm asking for patience. Not because your needs should wait quietly, but because I would rather build this well with you than sprint and ship something brittle that breaks under you. Every request raised here is welcome. Every idea is legitimate. The thread stays open, your voices shape the spec. Just bear with me. There is only one of me on this side of the screen, and I want to do this right. Thank you, both of you. |
|
Je ferai tout ce qui est en mon pouvoir pour mettre en place votre demande. Mais elle ne pourra pas être honorée en si peu de temps. Sachez que je ferai tout pour répondre à votre satisfaction, dans les limites de mes moyens. Votre demande devient une priorité car je la respecte. Mais oui… mais : « Qui ose gagne1 , croche et tient2 ». Soyons honnêtes : je ne pourrai pas vous donner cela sans votre aide pendant le développement. Je compte sur vous ! *1 => pourquoi pas , et on fera plus ============================== Deepl (❤️) I will do everything in my power to fulfill your request. However, it cannot be completed in such a short time. Please know that I will do my best to meet your expectations, within the limits of my capabilities. Your request is a priority because I take it seriously. But yes… but: “He who dares wins1, seizes, and holds on2.” Let’s be honest: I won’t be able to deliver this without your help during development. I’m counting on you! *1 => why not, and we’ll do more |
|
Quick update OctoGuard Phase 1 is now merged on Full announcement (in French) with the philosophy + module list: https://nodyx.org/forum/annonces/octoguard-la-moderation-automatique-ethique-et-sur-mesure-pour-nodyx-44997e42 What landed in Phase 1 (native, in-core moderation):
What this is not yet:
@mrmeloman, if your migration timeline still holds, the realistic path is: spin up your instance, use OctoGuard for the moderation baseline, and run your custom Discord-bot logic in parallel against a temporary admin token until Phase 4 lands. I'll help you scope what's safe. Thanks again to both of you, the spec is genuinely better because of your input. |

Hey, thanks for the heads-up about your migration plan, this is exactly the kind of use case we want to support.
Short answer: a bot/automation API is on the roadmap and aligned with Nodyx's vision (self-hosted, open). It's not shipped today, but a moderation-focused "Bot API v1" is reasonable to land in the next few weeks. Voice bots will take longer for architectural reasons (more below).
What's realistic short-term (Bot API v1, moderation + chat)
Most of the plumbing already exists:
/api/v1/*already covers the moderation actions (delete message, mute, kick, ban, warn, list users, read message history).