Skip to content

v1.1.0

Choose a tag to compare

@primetime43 primetime43 released this 23 Nov 06:00
· 35 commits to main since this release

What's Changed

Full Changelog: v1.0.0...v1.1.0

[1.1.0]

Added

  • Skip Option in Subtitle Selection: Added a "Skip - Don't download subtitle for this item" radio button that is selected by default, allowing users to selectively choose which subtitles to download instead of being forced to download all
  • Show Log Modal: Added "Show Log" button in the header (next to Settings) that opens a modal dialog to view application logs, freeing up vertical space in the main UI
  • Open Logs Folder Button: Added "Open Logs Folder" button on login screen to access logs even when login fails, helping with OAuth debugging
  • Comprehensive OAuth Logging: Added detailed logging at every step of the OAuth authentication process to help diagnose login issues in packaged .exe files
  • Fully Clickable Dropdowns: Made all dropdown/combobox widgets clickable anywhere (not just on the arrow), improving UX with hand cursor indication
  • Loading Indicators for Bulk Operations: Added visual feedback (blue text status messages) when selecting shows/seasons, with disabled buttons to prevent race conditions
  • Season Expansion Loading State: Added hourglass (⏳) indicator when expanding seasons, preventing UI freezes from rapid clicking

Changed

  • Relocated Download Button: Moved "Download Selected" button from top action row to a standalone section at the bottom, giving more vertical space to the subtitle selection panel
  • Removed Inline Log: Removed the collapsible inline log display from the main UI (log is now only accessible via modal), significantly increasing space for subtitle results
  • Async Season/Show Selection: Converted synchronous season/show selection to asynchronous with proper state management, preventing UI freezes and race conditions while maintaining data integrity
  • Improved Button Layout: Reorganized action buttons from 3 columns (Search, Download, List) to 2 columns (Search, List), with Download moved to bottom
  • Pinned Dependencies: Locked all dependency versions in requirements.txt for reproducible builds (plexapi==4.17.0, customtkinter==5.2.2, subliminal==2.4.0, babelfish==0.6.1)

Fixed

  • OAuth Login in Packaged .exe: Fixed "We were unable to complete this request" error on Plex website during OAuth login in PyInstaller-built .exe files by explicitly setting PlexAPI client identifier (prevents memory address from being used as client ID)
  • Checkbox State Synchronization: Fixed bug where episode checkboxes would show as checked after subtitle download but episodes were actually deselected from selected_items, causing search to fail (#1)
  • TypeError in Confirmation Dialog: Removed invalid item_count parameter from show_confirmation_dialog() calls that was causing crashes
  • Season Selection Search Bug: Fixed issue where selecting a season checkbox wouldn't work for search - search would only work with individually selected episodes (#4)
  • Episode Checkbox Updates: Fixed bug where unchecking a season wouldn't visually uncheck the individual episode checkboxes, creating confusion between UI state and actual selection state
  • Rapid Season Expansion Freeze: Fixed "Not Responding" freeze when clicking season expand arrows too quickly by implementing loading state tracking and preventing duplicate operations
  • Season/Show Selection Race Conditions: Eliminated race conditions where clicking "Search" immediately after selecting a season/show would fail because background thread hadn't finished loading episodes into selected_items

Technical Improvements

  • Set PlexAPI client headers (X_PLEX_IDENTIFIER, X_PLEX_PRODUCT, X_PLEX_VERSION) explicitly to ensure proper OAuth authentication in PyInstaller builds
  • Added PlexAPI configuration logging at application startup for debugging
  • Added is_selecting flag for tracking bulk selection operations in progress
  • Added start_selection_operation() and end_selection_operation() methods for consistent state management
  • Modified enable_action_buttons() to check selection state and prevent premature operations
  • Implemented _loading_seasons set to track seasons currently being loaded and prevent duplicate operations
  • Added make_combobox_clickable() helper method to enhance dropdown UX
  • Improved error handling in season/show selection with proper cleanup on failure

UI/UX Improvements

  • Status updates now only go to logs (visible in Show Log modal), reducing UI clutter
  • All dropdowns now show hand cursor and respond to clicks anywhere
  • Bulk selection operations show informative messages like "Selecting episodes from Breaking Bad..."
  • Download button is now more prominent and logically placed below the subtitle selection area
  • Episode checkboxes automatically sync with selection state after season-level operations