- 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
413 lines
10 KiB
Markdown
413 lines
10 KiB
Markdown
# 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:
|
|
1. ✨ **Drops-First Approach:** Make drops collection the primary and only focus
|
|
2. 🎮 **Multi-Campaign Support:** Handle multiple active campaigns simultaneously
|
|
3. 🤖 **Smart Automation:** Automatically find best streams for active campaigns
|
|
4. 📊 **Progress Visibility:** Clear, real-time drop progress tracking
|
|
5. ⚡ **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:**
|
|
- [x] Fork and clone repository
|
|
- [x] Set up git remotes (origin → Gitea, upstream → original)
|
|
- [x] Install dependencies
|
|
- [x] Review and document codebase
|
|
- [x] Add `.github` and `.vscode` to `.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.py` with 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**
|
|
```python
|
|
# OLD (Multi-priority)
|
|
priority=[Priority.STREAK, Priority.DROPS, Priority.ORDER]
|
|
|
|
# NEW (Drops-focused)
|
|
priority=DropsPriority.CAMPAIGN_URGENCY # Expiring campaigns first
|
|
```
|
|
|
|
### 2. **Campaign Sync Optimization**
|
|
```python
|
|
# 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**
|
|
```python
|
|
# 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**
|
|
```python
|
|
# 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:
|
|
1. **Campaign Discovery:** Twitch API limitations for finding eligible streams
|
|
2. **Rate Limiting:** GraphQL request throttling
|
|
3. **Drop Detection:** Ensuring timely progress updates
|
|
4. **Stream Quality:** Balance between bandwidth and detection
|
|
|
|
### Strategic Challenges:
|
|
1. **Bot Detection:** Twitch's anti-automation measures
|
|
2. **Account Safety:** Avoiding bans
|
|
3. **Ethical Considerations:** Respect for streamers/platform
|
|
4. **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 `.github` and `.vscode` to `.gitignore`
|
|
|
|
---
|
|
|
|
*This roadmap is a living document and will be updated as the project progresses.*
|
|
|
|
**Last Updated:** February 17, 2026
|