How wissa-gamma/whatsapp-bot works
This NestJS service links a WhatsApp account, receives messages, routes private and group traffic through separate handlers, and executes eligible commands. Poll-vote updates can also trigger commands. Session status and a QR code are exposed over HTTP. The README documents session persistence and group permissions; sampled source confirms the auth-state setup and permission checks, but the implementation of unsampled capabilities is not inferred beyond that evidence.
Main entry points: bot.service.ts Bot service · private.handler.ts Private handler · bot.controller.ts Session endpoint · group.handler.ts Group handler
Components 15
WhatsApp connection
- Bot service
src/bot/bot.service.ts - Auth session files
src/bot/bot.service.ts
Message routing
- Group handler
src/bot/handlers/group.handler.ts - Private handler
src/bot/handlers/private.handler.ts - Poll handler
src/bot/handlers/poll.handler.ts - Poll cache
src/bot/bot.service.ts
Command execution
- Command registry
src/bot/commands/command.registry.ts - Command interface
src/bot/commands/command.interface.ts
HTTP session API
- Session endpoint
src/bot/bot.controller.ts - QR encoder
src/bot/bot.controller.ts - Root endpoint
src/app.controller.ts - Root response
src/app.service.ts
Other components
- Chat participants
- Environment config
Connections 19
- Chat participants → WhatsApp: sends messages
- WhatsApp → Bot service: delivers events
- Bot service → WhatsApp: sends replies
- Bot service → Auth session files: loads and saves
- Environment config → Bot service: configures groups
- Bot service → Group handler: dispatches groups
- Bot service → Private handler: dispatches private
- Bot service → Poll handler: dispatches poll updates
- Private handler → Bot service: executes command
- Group handler → Bot service: executes command
- Poll handler → Bot service: executes command
- Bot service → Poll cache: stores poll messages
- Private handler → Poll cache: updates poll cache
- Bot service → Command registry: looks up command
- Command registry → Command interface: implements
- Bot service → Session endpoint: provides session state
- Session endpoint → QR encoder: encodes QR
- Chat participants → Session endpoint: checks session
- Root endpoint → Root response: requests greeting