How zelvarys/whatsapp-bot works
Zelvarys is a Baileys-based WhatsApp bot. Incoming messages pass through the socket event handler and message router, which directs them to command, active-game, lobby, or chatbot handling; commands and game engines produce replies through the WhatsApp socket. The graph preserves the README’s AI, utility, media, user, owner, and game capabilities. Several command and service implementations are unsampled, so their links are shown only where the README or SOURCE INDEX supports them; optional external integrations are dashed where invocation is unverified.
Main entry points: commandRouter.js Command Router · whatsappBot.js Bot Lifecycle · messageRouter.js Message Router · userModel.js User Profiles
Components 34
Bot Runtime
- Application Entry
index.js - Bot Lifecycle
src/core/whatsappBot.js - Socket Connection
src/core/socketConnection.js - Socket Events
src/core/socketEvents.js
Message Routing
- Message Router
src/routing/messageRouter.js - Command Router
src/routing/commandRouter.js - Chatbot Router
src/routing/chatbotRouter.js - Game Router
src/routing/gameRouter.js - Lobby Router
src/routing/lobbyRouter.js
Commands & Features
- AI Commands
src/commands/aiCommands.js - Utility Commands
src/commands/utilityCommands - Media Commands
src/commands/mediaCommands.js - User Commands
src/commands/userCommands.js - Owner Commands
src/commands/ownerCommands.js - Other Commands
src/commands/otherCommands.js - AI Services
src/services/ai - Media Services
src/services/media - External API Clients
src/services/external
Game Systems
- Game Commands
src/commands/gameCommands - Game Registry
src/commands/gameCommands/registry.js - Game Rules
src/utils/gameRules.js - Hangman Engine
src/services/games/hangmanEngine.js - Tic-Tac-Toe Engine
src/services/games/tictactoeEngine.js - Lobby Game Engines
src/services/games - Lobby State
src/utils/lobbyState.js
State & Persistence
- User Profiles
src/models/userModel.js - Game Statistics
src/models/gameStatsModel.js - Bot Settings
src/models/botStateModel.js - JSON Repository
src/models/jsonRepository.js - In-Memory State
src/core/globalState.js - Command & Download State
src/utils/stateHelpers.js
Other components
- WhatsApp User
- WhatsApp / Baileys
- Gemini API
Connections 47
- WhatsApp User → WhatsApp / Baileys: sends messages
- WhatsApp / Baileys → Socket Events: delivers events
src/core/socketEvents.js - Application Entry → Bot Lifecycle: starts
index.js - Application Entry → In-Memory State: initializes
index.js - Application Entry → WhatsApp / Baileys: schedules cleanup
index.js - Bot Lifecycle → Socket Connection: creates
src/core/whatsappBot.js - Bot Lifecycle → Socket Events: registers
src/core/whatsappBot.js - Socket Events → Message Router: routes messages
src/core/socketEvents.js - Message Router → Command Router: routes prefixed text
src/routing/messageRouter.js - Message Router → Game Router: routes game replies
src/routing/messageRouter.js - Message Router → Lobby Router: routes lobby messages
src/routing/messageRouter.js - Message Router → Chatbot Router: routes other text
src/routing/messageRouter.js - Command Router → AI Commands: dispatches AI
src/routing/commandRouter.js - Command Router → Game Registry: dispatches games
src/routing/commandRouter.js - Command Router → Utility Commands: dispatches utilities
src/routing/commandRouter.js - Command Router → Media Commands: dispatches media
src/routing/commandRouter.js - Command Router → User Commands: dispatches user actions
src/routing/commandRouter.js - Command Router → Owner Commands: dispatches owner actions
src/routing/commandRouter.js - Command Router → Other Commands: dispatches other actions
src/routing/commandRouter.js - AI Commands → AI Services: uses AI features
src/commands/aiCommands.js - AI Commands → Media Services: uses speech synthesis
src/commands/aiCommands.js - AI Services → Gemini API: calls model API
- Utility Commands → Media Services: uses media processing
src/commands/utilityCommands/compress.js - Media Commands → Media Services: handles downloads
- User Commands → User Profiles: reads profiles
src/commands/userCommands.js - User Commands → External API Clients: requests crypto data
src/commands/userCommands.js - Game Registry → Game Commands: dispatches game types
src/commands/gameCommands/registry.js - Game Router → Game Rules: checks game rules
src/routing/gameRouter.js - Game Router → Tic-Tac-Toe Engine: handles moves
src/routing/gameRouter.js - Game Router → Hangman Engine: handles guesses
src/routing/gameRouter.js - Game Commands → Tic-Tac-Toe Engine: starts matches
src/commands/gameCommands/duoGames.js - Game Commands → Lobby Game Engines: starts lobby games
src/commands/gameCommands/duoGames.js - Lobby Router → Lobby State: manages lobbies
src/routing/lobbyRouter.js - Hangman Engine → Game Rules: checks and updates
src/services/games/hangmanEngine.js - Hangman Engine → User Profiles: awards points
src/services/games/hangmanEngine.js - Hangman Engine → Game Statistics: records results
src/services/games/hangmanEngine.js - Tic-Tac-Toe Engine → User Profiles: awards points
src/services/games/tictactoeEngine.js - Tic-Tac-Toe Engine → Game Statistics: records results
src/services/games/tictactoeEngine.js - User Profiles → JSON Repository: persists profiles
src/models/userModel.js - Game Statistics → JSON Repository: persists statistics
src/models/gameStatsModel.js - Bot Settings → JSON Repository: persists settings
src/models/botStateModel.js - Command Router → Command & Download State: tracks cooldowns
src/routing/commandRouter.js - Chatbot Router → Bot Settings: checks chatbot mode
src/routing/chatbotRouter.js - Chatbot Router → AI Services: generates replies
src/routing/chatbotRouter.js - Bot Lifecycle → User Profiles: loads user data
src/core/whatsappBot.js - Bot Lifecycle → Game Statistics: loads game stats
src/core/whatsappBot.js - Bot Lifecycle → Bot Settings: loads settings
src/core/whatsappBot.js