soulsync/CLAUDE.md
Broque Thomas 106f5178a2 update
2025-07-11 16:31:53 -07:00

4.6 KiB

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
  • Compact download queue UI with proper space utilization

Active Work:

  • 🔧 Download Manager button functionality (Cancel/Open buttons)
  • Additional UI polish and user experience improvements

Recently Resolved Issues:

Download Tracking System (RESOLVED)

  • FIXED: Download progress tracking now works correctly for both singles and albums
  • FIXED: Album tracks no longer show same name in active downloads - enhanced filename matching prevents false matches
  • FIXED: Download ID management and API integration properly handles real UUIDs
  • FIXED: UI state synchronization for completed downloads with proper queue transitions

Current Issues Requiring Attention:

Download Manager Button Issues

Priority: High - Download queue buttons non-functional

Problem Summary: The Cancel and Open buttons in download queue interface are not working when clicked.

Specific Issues:

  1. Cancel Button Not Working:

    • Location: CompactDownloadItem cancel button in active download queue
    • Problem: Button clicks not triggering download cancellation
    • Likely causes: Signal connection issues or incorrect download ID usage for API calls
    • Expected behavior: Should cancel active downloads and remove from queue
  2. Open Button Not Working:

    • Location: CompactDownloadItem open button in finished downloads section
    • Problem: Button clicks not opening download folder location
    • Likely causes: Missing signal connections, incorrect file paths, or silent error handling
    • Expected behavior: Should open file explorer to show downloaded files

Investigation Needed:

  • Verify button signal connections in CompactDownloadItem class
  • Check if download IDs are properly passed to cancellation methods
  • Validate file paths for completed downloads
  • Add user feedback for button operation failures

Future UI Improvements

Priority: Low - Additional enhancements for later consideration

Potential Changes:

  1. Remove "Pause All" button (not needed)
  2. Fix "Clear Completed" functionality (currently doesn't work)
  3. Additional download queue management features

Key Components Status

  1. Configuration Management: Implemented - Secure handling of API keys and service credentials
  2. Spotify Integration: Implemented - Playlist retrieval and metadata extraction
  3. Plex Integration: Implemented - Media server synchronization and metadata updates
  4. Soulseek Integration: Mostly Complete - Music discovery and download tracking working, minor button issues remain
  5. Matching Engine: Planned - Robust algorithms for matching tracks across services
  6. User Interface: Mostly Complete - Spotify-inspired design with modern, animated elements