97 lines
No EOL
5.2 KiB
Markdown
97 lines
No EOL
5.2 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
This is a new music management application project that aims to create a Spotify-like desktop application with Python. The project is in its initial planning phase with only a project requirements document (`project.txt`) currently present.
|
|
|
|
## Project Requirements
|
|
|
|
The application will be a music management tool that:
|
|
- Connects to Spotify API and Plex Media Server
|
|
- Features an elegant, animated, vibrant theme similar to Spotify's desktop/web app
|
|
- Synchronizes Spotify playlists to Plex using robust matching systems
|
|
- Integrates with Soulseek for downloading FLAC/high-quality audio files
|
|
- Updates music metadata on Plex based on Spotify metadata including album art
|
|
- Provides core functionality that feels and looks like Spotify
|
|
|
|
## Configuration
|
|
|
|
The application will use a central `config.json` file to store:
|
|
- Spotify API credentials and login information
|
|
- Plex Media Server connection details
|
|
- Other connected service configurations
|
|
|
|
## Development Status
|
|
|
|
**Current State**: Active development of a PyQt6-based desktop application with functional UI and core integrations.
|
|
|
|
**Completed Features**:
|
|
- ✅ PyQt6 GUI framework with Spotify-inspired dark theme
|
|
- ✅ Modular architecture with separate service clients (Spotify, Plex, Soulseek)
|
|
- ✅ Modern sidebar navigation with animated buttons and status indicators
|
|
- ✅ Media player sidebar with scrolling text animation for long titles
|
|
- ✅ Search functionality with real-time filtering (Albums vs Singles)
|
|
- ✅ Audio streaming and playback from Soulseek search results
|
|
- ✅ Service status monitoring and connection indicators
|
|
- ✅ Configuration management system
|
|
- ✅ Download progress tracking for both singles and albums
|
|
- ✅ Enhanced filename matching system preventing false positives
|
|
- ✅ Complete download queue management system with functional buttons
|
|
- ✅ Compact, practical download item UI design
|
|
- ✅ Album track button state management and cancellation handling
|
|
- ✅ Clear completed downloads functionality with backend integration
|
|
|
|
**Recently Completed Work**:
|
|
|
|
### ✅ Download Manager Complete Redesign (COMPLETED)
|
|
- **COMPLETED**: Fully functional Cancel and Open buttons in download queue
|
|
- **COMPLETED**: Proper slskd API integration with correct endpoint formats
|
|
- **COMPLETED**: Enhanced album track button state management with cancellation support
|
|
- **COMPLETED**: Clear All Completed Downloads functionality using slskd backend API
|
|
- **COMPLETED**: Compact download item UI redesign for optimal space utilization
|
|
|
|
### ✅ Download Queue Button Functionality (RESOLVED)
|
|
- **FIXED**: Cancel button now properly cancels downloads using correct slskd API format
|
|
- **FIXED**: Open button successfully opens download folders with fallback logic
|
|
- **FIXED**: Enhanced debugging and error handling for button operations
|
|
- **FIXED**: Album track buttons properly reset after individual track cancellation
|
|
|
|
### ✅ UI/UX Improvements (COMPLETED)
|
|
- **COMPLETED**: Redesigned CompactDownloadItem with efficient 45px height
|
|
- **COMPLETED**: Conditional layout system (active: filename/uploader/progress/cancel, finished: filename/uploader/open)
|
|
- **COMPLETED**: Smart text ellipsis handling preventing horizontal overflow
|
|
- **COMPLETED**: Optimized space allocation fitting perfectly in download queue container
|
|
- **COMPLETED**: Clean, functional button design with immediate accessibility
|
|
|
|
**Active Work**:
|
|
- ⏳ Additional UI polish and user experience improvements
|
|
- ⏳ Matching engine development for cross-service track matching
|
|
|
|
**Current System Status**: All major download management functionality is working correctly.
|
|
|
|
## Key Components Status
|
|
|
|
1. **Configuration Management**: ✅ Complete - Secure handling of API keys and service credentials
|
|
2. **Spotify Integration**: ✅ Complete - Playlist retrieval and metadata extraction
|
|
3. **Plex Integration**: ✅ Complete - Media server synchronization and metadata updates
|
|
4. **Soulseek Integration**: ✅ Complete - Full music discovery, download management, and queue functionality
|
|
5. **Download Management**: ✅ Complete - Comprehensive download queue with cancel/open functionality
|
|
6. **User Interface**: ✅ Complete - Spotify-inspired design with practical, efficient download management
|
|
7. **Matching Engine**: ⏳ In Development - Robust algorithms for matching tracks across services
|
|
|
|
## Technical Architecture
|
|
|
|
### Download Management System
|
|
- **CompactDownloadItem**: Efficient 45px height design with conditional layouts
|
|
- **slskd API Integration**: Proper DELETE endpoints with username/download_id parameters
|
|
- **Album Track Management**: State synchronization between album buttons and download queue
|
|
- **Clear Completed**: Backend integration for removing finished downloads from slskd
|
|
- **Progress Tracking**: Real-time updates with percentage display and status monitoring
|
|
|
|
### UI Design Philosophy
|
|
- **Function over Form**: Practical, user-focused design prioritizing usability
|
|
- **Container Responsive**: Optimized for small download queue areas without horizontal scrolling
|
|
- **Efficient Space Usage**: Conditional layouts maximize available space
|
|
- **Immediate Accessibility**: Buttons positioned for quick access without scrolling |