- Added .github and .vscode to .gitignore - Created Docs folder with comprehensive documentation - Added CODEBASE_ANALYSIS.md: Detailed analysis of existing bot architecture - Added PROJECT_ROADMAP.md: Project goals and development roadmap - Project goal: Transform Channel Points Miner into Twitch Drops Miner
10 KiB
Twitch Drops Miner - Project Goals & Roadmap
Project Name: Twitch Drops Miner
Repository: https://gitea.majjoduran.app/majjo/Twitch-Drops-Miner
Fork From: Twitch-Channel-Points-Miner-v2 by rdavydov
Date Started: February 17, 2026
🎯 Project Vision
Transform the Twitch Channel Points Miner into a dedicated Twitch Drops farming bot that efficiently collects drops from multiple campaigns across different games, optimizing watch time and maximizing drop acquisition.
🔑 Key Objectives
Primary Goals:
- ✨ Drops-First Approach: Make drops collection the primary and only focus
- 🎮 Multi-Campaign Support: Handle multiple active campaigns simultaneously
- 🤖 Smart Automation: Automatically find best streams for active campaigns
- 📊 Progress Visibility: Clear, real-time drop progress tracking
- ⚡ Efficiency: Minimize wasted watch time, maximize drops/hour
Secondary Goals:
- Multi-account support (future)
- Drop value tracking (rarity, market data)
- Campaign notification system
- Historical stats and analytics
📋 Development Phases
Phase 1: Foundation & Setup ✅ (Current)
Status: In Progress
Timeline: Day 1
Tasks:
- Fork and clone repository
- Set up git remotes (origin → Gitea, upstream → original)
- Install dependencies
- Review and document codebase
- Add
.githuband.vscodeto.gitignore - Initial commit and push to Gitea
- Create project README
Phase 2: Simplification & Cleanup
Status: Not Started
Timeline: Days 2-3
Tasks:
- Remove/disable betting system
- Remove/disable channel points tracking mechanisms
- Simplify priority system to drops-only
- Remove unnecessary analytics features
- Strip out community goals and prediction code
- Clean up UI/logging to focus on drops
- Update configuration templates
Deliverables:
- Leaner codebase focused solely on drops
- Updated
example.pywith drops-only config - Simplified settings structure
Phase 3: Core Drops Enhancement
Status: Not Started
Timeline: Days 4-7
Tasks:
- Reduce campaign sync interval (30min → 5-10min)
- Implement real-time drop progress updates
- Add drop completion ETA calculations
- Enhanced drop progress logging with visual bars
- Add campaign priority ranking system
- Implement smart campaign switching logic
- Add drop history tracking
Deliverables:
- More responsive drop detection
- Better progress visibility
- Smarter campaign management
Phase 4: Intelligent Streamer Selection
Status: Not Started
Timeline: Days 8-10
Tasks:
- Implement campaign-aware streamer discovery
- Auto-find eligible streams for active campaigns
- Prioritize streams by viewer count (balance detection risk)
- Handle channel-specific drop restrictions
- Add fallback logic when no eligible streams online
- Stream quality optimization (lowest bandwidth)
Deliverables:
- Automatic streamer discovery per campaign
- Optimized watch strategy
- Reduced manual configuration
Phase 5: Configuration & Usability
Status: Not Started
Timeline: Days 11-12
Tasks:
- Create simple drop-focused configuration wizard
- Implement configuration validation
- Add campaign whitelist/blacklist
- Game preference system
- Dry-run mode for testing
- Better error messages and troubleshooting
Deliverables:
- User-friendly setup process
- Flexible campaign filtering
- Easier debugging
Phase 6: Advanced Features
Status: Not Started
Timeline: Days 13-15
Tasks:
- Multi-account support (parallel farming)
- Drop value/rarity tracking
- Campaign notifications (new campaigns, completion)
- Web dashboard for monitoring
- Mobile notifications support
- Drop statistics and reporting
Deliverables:
- Professional-grade farming tool
- Comprehensive monitoring
- Historical analytics
Phase 7: Testing & Documentation
Status: Not Started
Timeline: Days 16-18
Tasks:
- Comprehensive testing with real campaigns
- Performance optimization
- Memory leak testing
- Complete user documentation
- API documentation for developers
- Troubleshooting guide
- FAQ section
Deliverables:
- Stable, production-ready bot
- Complete documentation
- User guides and tutorials
Phase 8: Polish & Release
Status: Not Started
Timeline: Days 19-20
Tasks:
- Code cleanup and refactoring
- Add license and attribution
- Create release notes
- Setup CI/CD (optional)
- Docker container support
- Release v1.0.0
Deliverables:
- First public release
- Docker image
- Installation guides
🛠️ Technical Architecture Changes
Current Architecture:
Channel Points Focus
├── Watch streams for points
├── Make predictions/bets
├── Claim bonus points
└── Drops as secondary feature
Target Architecture:
Drops Focus
├── Monitor active campaigns
├── Auto-discover eligible streams
├── Watch for drop progress
├── Claim drops automatically
└── Optimize for maximum drops/time
🔧 Key Technical Changes
1. Priority System Overhaul
# OLD (Multi-priority)
priority=[Priority.STREAK, Priority.DROPS, Priority.ORDER]
# NEW (Drops-focused)
priority=DropsPriority.CAMPAIGN_URGENCY # Expiring campaigns first
2. Campaign Sync Optimization
# OLD: 30-minute sync interval
sync_interval = 1800 # seconds
# NEW: 5-10 minute interval + smart triggers
sync_interval = 300 # More responsive
trigger_sync_on = ["drop_claimable", "campaign_progress"]
3. Streamer Selection Logic
# OLD: Manual list + priority order
streamers = [Streamer("user1"), Streamer("user2")]
# NEW: Auto-discovery based on campaigns
def get_eligible_streamers(campaign):
"""Discover live streams eligible for campaign drops"""
# Query Twitch directory for game
# Filter by campaign requirements
# Return optimal stream to watch
4. Configuration Simplification
# OLD: Complex multi-feature config
TwitchChannelPointsMiner(
username="user",
priority=[...],
streamer_settings=StreamerSettings(
make_predictions=True,
follow_raid=True,
claim_drops=True,
watch_streak=True,
# ... 10+ more options
)
)
# NEW: Drops-focused config
TwitchDropsMiner(
username="user",
auto_discover_streams=True,
campaign_filters={
"games": ["Overwatch 2", "Valorant"],
"priority": "expiring_first"
},
notifications=["drop_claimed", "campaign_complete"]
)
📊 Success Metrics
Performance Targets:
- ✅ Drop claim success rate: >95%
- ✅ Campaign detection latency: <5 minutes
- ✅ False positive rate: <1%
- ✅ Memory usage: <500MB
- ✅ CPU usage: <10% average
User Experience Targets:
- ⭐ Setup time: <10 minutes
- ⭐ Configuration complexity: Minimal
- ⭐ Log clarity: Excellent
- ⭐ Error recovery: Automatic
🚧 Known Challenges
Technical Challenges:
- Campaign Discovery: Twitch API limitations for finding eligible streams
- Rate Limiting: GraphQL request throttling
- Drop Detection: Ensuring timely progress updates
- Stream Quality: Balance between bandwidth and detection
Strategic Challenges:
- Bot Detection: Twitch's anti-automation measures
- Account Safety: Avoiding bans
- Ethical Considerations: Respect for streamers/platform
- Multi-account Limits: Twitch TOS compliance
Solutions:
- Implement human-like behavior patterns
- Randomize timing and actions
- Respect rate limits
- Clear documentation on safe usage
- Disclaimer about TOS compliance
🔐 Ethical Considerations
Important Notes:
- This tool is for educational purposes
- Users are responsible for compliance with Twitch TOS
- We do not encourage violations of platform rules
- Use responsibly and respect content creators
- Consider supporting streamers you enjoy
📚 Documentation Plan
User Documentation:
- Installation guide
- Quick start tutorial
- Configuration reference
- Troubleshooting guide
- FAQ
- Best practices
Developer Documentation:
- Architecture overview
- API reference
- Contributing guidelines
- Code style guide
- Testing procedures
🤝 Contributing Guidelines (Future)
When ready for contributions:
- Clear code of conduct
- Issue templates
- PR guidelines
- Development setup guide
- Testing requirements
📅 Timeline Summary
| Phase | Duration | Status |
|---|---|---|
| Phase 1: Setup | 1 day | 🟡 In Progress |
| Phase 2: Cleanup | 2 days | ⚪ Not Started |
| Phase 3: Core Enhancement | 4 days | ⚪ Not Started |
| Phase 4: Smart Selection | 3 days | ⚪ Not Started |
| Phase 5: Configuration | 2 days | ⚪ Not Started |
| Phase 6: Advanced Features | 3 days | ⚪ Not Started |
| Phase 7: Testing & Docs | 3 days | ⚪ Not Started |
| Phase 8: Release | 2 days | ⚪ Not Started |
| Total | ~20 days | 5% Complete |
🎉 Milestone Celebrations
- 🎊 Milestone 1: First successful auto-claimed drop
- 🎊 Milestone 2: Complete one full campaign automatically
- 🎊 Milestone 3: Support 5 simultaneous campaigns
- 🎊 Milestone 4: 100 drops claimed in testing
- 🎊 Milestone 5: v1.0.0 Release
📝 Notes & Ideas
Future Enhancement Ideas:
- Browser extension for manual claiming backup
- Mobile app for monitoring
- Drop marketplace integration
- Campaign calendar/schedule
- Community drop trading (if allowed)
- AI-powered campaign selection
- Distributed farming across multiple machines
Community Features:
- Campaign sharing/recommendations
- Drop tracking leaderboard
- Community statistics
- Best stream suggestions
🔄 Change Log
2026-02-17:
- Initial project setup
- Repository forked and cloned
- Dependencies installed
- Codebase analysis completed
- Project roadmap created
- Added
.githuband.vscodeto.gitignore
This roadmap is a living document and will be updated as the project progresses.
Last Updated: February 17, 2026