ToiletTracker
Track bowel movements through WhatsApp messages using simple emoji commands. Export your WhatsApp chat, run it through ToiletTracker, and get structured data with timezone support.
Features
- No app needed - Use WhatsApp, which you already have
- Travel-friendly - Full timezone support for globetrotters
- Flexible input - Log now, log past events, add metadata
- Multiple exports - JSON, CSV, or formatted tables
- Privacy first - Your data stays on your device
Why?
Tracking health data shouldn't require a dedicated app. WhatsApp is already on your phone, always synced, and easy to use. Just send a 💩 to a chat (or yourself) whenever nature calls, and this gem turns those messages into analyzable data.
Quick Start
gem install toilet_tracker
Export your WhatsApp chat and run:
toilet_tracker parse whatsapp_export.zip
How It Works
Send emoji commands in any WhatsApp chat:
| Command | What it does |
|---|---|
💩 |
Log an event right now |
💩 14:30 |
Log an event at a specific time |
🚽 +2 |
Set your timezone offset to +2 hours |
🚽 Europe/Rome |
Set timezone by name |
See the full message specification for all supported formats.
Timezone Support
Traveling? Just update your timezone:
🚽 +5:30 # Flying to India
💩 # Logged with +5:30 offset
🚽 Europe/Rome # Back home
💩 # Logged with Rome timezone
Metadata
Add extra context with additional emojis:
💩 🩸 # Flag something unusual
💩 🧱 # Note the consistency
💩 ☕ 🍕 # Track what you ate
Output Formats
# Table (default)
toilet_tracker parse chat.zip
# JSON for further processing
toilet_tracker parse --format json chat.zip
# CSV for spreadsheets
toilet_tracker parse --format csv chat.zip
Ruby API
require 'toilet_tracker'
# Parse a WhatsApp export
results = ToiletTracker.parse_file("chat.txt")
# Or parse individual messages
result = ToiletTracker.parse_line("[01/01/2025, 12:00:00] Me: 💩")
Requirements
- Ruby 3.4+
Development
bin/setup # Install dependencies
bundle exec rspec # Run tests
License
MIT - see LICENSE.txt