How pbew/olp-noir works
OLP-Noir is a Discord bot for operating a hosting/cafe service: staff create and extend customer bills, staff accept jobs, customers pay by sending a slip, and admins verify payment. Separate workflows handle support tickets, VIP purchases and lifecycle, reviews, reminders, and accounting cycles. The graph uses documented capabilities for unsampled cogs; their internal call wiring is not inferred. SQLite is the durable store; Google Sheets is an optional accounting integration.
Main entry points: database.py SQLite state · scheduler.py Reminders and cycles · reception.py Reception bills · vip.py VIP self-service
Components 18
Bot runtime
- Bot entry
bot.py
Service billing
- Reception bills
cogs/reception.py - Request panel
cogs/requestpanel.py - Payment review
cogs/payments.py - Pricing and quotas
core/pricing.py
Support and reviews
- DM routing
cogs/dmrouter.py - Support tickets
cogs/tickets.py - Review moderation
cogs/reviews.py
VIP membership
- VIP self-service
cogs/vip.py - VIP lifecycle
core/vip_logic.py
State and accounting
- Reminders and cycles
cogs/scheduler.py - SQLite state
core/database.py - Sheets client
core/sheets.py
Other components
- Customer
- Staff
- Admin
- Discord
- Google Sheets
Connections 27
- Bot entry → SQLite state: connects
- Bot entry → Sheets client: starts
- Bot entry → Discord: runs on
- Customer → Discord: uses
- Staff → Discord: uses
- Admin → Discord: uses
- Discord → Reception bills: invokes
- Discord → Request panel: invokes
- Discord → VIP self-service: invokes
- Reception bills → Pricing and quotas: quotes
- Reception bills → SQLite state: stores bills
- Reception bills → Payment review: starts payment
- Payment review → SQLite state: updates bills
- Payment review → Sheets client: records paid bills
- DM routing → Payment review: routes slips
- DM routing → Support tickets: relays messages
- Support tickets → SQLite state: stores tickets
- Review moderation → SQLite state: stores reviews
- Review moderation → Discord: posts approved reviews
- VIP self-service → VIP lifecycle: calculates lifecycle
- VIP self-service → SQLite state: stores membership
- VIP self-service → Discord: changes roles
- Reminders and cycles → SQLite state: checks scheduled state
- Reminders and cycles → Review moderation: requests review invite
- Reminders and cycles → Sheets client: starts accounting cycle
- Reminders and cycles → Discord: sends reminders and summaries
- Sheets client → Google Sheets: writes accounting data