Commit Graph

525 Commits

Author SHA1 Message Date
oop7 a871ded15f Move update check to background thread
Refactored the update checking logic into a QThread subclass to prevent blocking the UI during network requests. The update check now runs asynchronously, and the dialog is shown via a signal when an update is available.
2026-01-24 12:52:48 +02:00
oop7 e2c4dfea4e Increase menu button area in history delegate
Expanded the clickable area for the menu button in HistoryDelegate to 60x50px and adjusted text width accordingly. This improves usability and addresses issues with the left side of the button not responding to clicks.
2026-01-21 18:10:34 +02:00
oop7 7c2e461141 Refactor HistoryManager to use persistent DB connection
Replaces per-operation SQLite connections with a persistent connection for improved efficiency and thread safety. Adds additional indexes for faster search on title, channel, and URL. Refactors all database access methods to use the persistent connection and simplifies transaction handling.
2026-01-21 18:05:17 +02:00
oop7 5f17fabc50 Refactor history dialog to use virtualized list and SQLite
Replaces the history dialog's widget-per-entry approach with a virtualized QListView using a custom model and delegate for improved performance. Switches the HistoryManager backend from JSON file storage to SQLite, including automatic migration of legacy data. Adds support for efficient search, thumbnail caching, and context menu actions in the new UI.
2026-01-21 17:56:56 +02:00
oop7 29f713cf17 Refine HistoryEntryWidget layout and sizing
Adjusted padding, margin, and spacing for a more compact layout. Standardized the thumbnail size to 240x135 (16:9 ratio) and reduced the menu button size for better visual balance.
2026-01-21 17:19:49 +02:00
oop7 ea54f469ac Improve history loading and thumbnail caching UX
Refactors the history loading process to emit entries as soon as they are loaded, allowing the UI to display immediately. Thumbnail downloads are now handled in the background, with widgets updated via a new signal when thumbnails are cached. This prevents UI freezes and improves responsiveness by showing placeholders until thumbnails are available.
2026-01-21 17:16:48 +02:00
oop7 a92ffd3b01 Download video thumbnails asynchronously in GUI
Refactored thumbnail downloading to use a QThread for asynchronous operation, preventing UI blocking. Added ThumbnailDownloadThread class and updated VideoInfoMixin to handle threaded download and error reporting.
2026-01-21 17:16:35 +02:00
oop7 0d1eb35ba2 Add debug log for yt-dlp command execution
Inserted a debug log statement to output the full yt-dlp command before execution. This will help diagnose issues related to command construction and subprocess invocation.
2026-01-21 15:15:14 +02:00
oop7 9a81c4b564 Update badge labels in README
Changed the 'pypi downloads' and 'github downloads' badge labels to 'downloads' for consistency and improved readability.
2026-01-17 22:16:35 +02:00
oop7 ca7ac168fe Update badges in README with download stats
Replaces the generic downloads badge with separate PyPI and GitHub downloads badges for improved clarity. Enhances visibility of project statistics in the README.
2026-01-17 22:13:08 +02:00
oop7 6a4264eeab Add contents write permission to release workflow
Updated the release-all GitHub Actions workflow to include 'contents: write' permission, enabling the workflow to perform actions that require write access to repository contents.
2026-01-17 22:04:23 +02:00
oop7 5ed67cb32f Bump version to 5.0.0b
Update the __version__ string to 5.0.0b to reflect the next major beta release.
2026-01-17 21:58:50 +02:00
oop7 d087c306f2 Add 'analyzing_fetching_first_video' translation key
Introduced the 'analyzing_fetching_first_video' string to all supported language files for consistent UI messaging during the analysis process.
2026-01-17 21:48:45 +02:00
oop7 67fdb508f4 Optimize playlist extraction with yt-dlp flat-playlist
Switches to using yt-dlp's --flat-playlist and --dump-single-json for faster initial playlist info extraction. Now fetches minimal info for all videos quickly, then retrieves full details for the first video only to populate format information, improving performance and reducing unnecessary data processing.
2026-01-17 21:43:08 +02:00
oop7 ffb938b181 Add playlist filter and show video durations in selection dialog
Introduces a filter input to the PlaylistSelectionDialog for searching videos by title and displays video durations next to each entry. Updates English translations to support the new filter placeholder and analysis status message.
2026-01-17 21:43:01 +02:00
oop7 2b7cce1333 Add threaded loading and spinner to history dialog
Introduces a HistoryLoaderThread to load history entries and pre-fetch thumbnails in the background, preventing UI freezes. Adds a loading spinner and disables the 'Clear All' button while loading, improving user experience during history retrieval.
2026-01-17 21:26:26 +02:00
oop7 fd192455f5 Handle Path objects in config JSON serialization
Added a custom converter to serialize Path objects as strings when saving the application configuration to JSON. This prevents serialization errors if Path objects are present in the config.
2026-01-17 21:21:06 +02:00
oop7 f8f2910f06 Fix f-string backslash SyntaxError in AboutDialog
Refactored AboutDialog to avoid backslashes in f-string expressions by assigning HTML links to variables before formatting. This resolves a SyntaxError encountered when running YTSage with Python 3.11.
2026-01-17 21:10:01 +02:00
oop7 c16e84105e Increase subprocess timeout to 300 seconds
Extended the timeout for the subprocess running yt-dlp from 60 to 300 seconds to accommodate longer-running download or processing tasks.
2026-01-17 21:01:52 +02:00
oop7 26d063327c Fix indentation for zip extraction block
Corrected the indentation so that the extraction of the executable occurs within the context of the open zip file. This ensures the file is extracted while the zip is accessible, preventing potential errors.
2026-01-07 18:45:51 +02:00
oop7 a4df946169 Fix extraction path for Deno executable
Changed the extraction target directory for the Deno executable to use the parent of DENO_APP_BIN_PATH instead of APP_BIN_DIR, ensuring the executable is placed in the correct location.
2026-01-07 18:32:20 +02:00
oop7 c7751edd91 Add DENO_APP_BIN_PATH env override and Flatpak support
Introduces support for overriding DENO_APP_BIN_PATH via environment variable, enabling compatibility with Flatpak packaging. Updates the build workflow to set the DENO_APP_BIN_PATH environment variable and ensures parent directories for custom binary paths are created if needed.
2026-01-07 18:11:06 +02:00
oop7 67d0919237 Add Flatpak-specific desktop file to build workflow
Introduces creation of a dedicated desktop file for Flatpak packaging in the build-linux workflow. Ensures the Exec and Icon fields conform to Flatpak requirements and updates the install step to use the new desktop file.
2026-01-07 17:40:07 +02:00
oop7 2574ed0467 Add Flatpak badge to Linux install options
Included a Flathub badge in the Linux installation table to indicate Flatpak bundle availability.
2026-01-06 17:23:31 +02:00
oop7 f7cf752fb2 Bump version to 4.9.8b
Update the __version__ string in src/__init__.py to 4.9.8b to reflect the latest changes.
2026-01-06 17:22:14 +02:00
oop7 c9691c6a56 Update Flatpak runtime to version 6.10 in CI
Changed the Flatpak runtime and SDK version from 6.6 to 6.10 in the build-linux GitHub Actions workflow to ensure compatibility with the latest KDE platform.
2026-01-06 16:50:46 +02:00
oop7 f1d1a68d32 Merge branch 'beta' 2026-01-06 16:14:15 +02:00
oop7 0b5b5b3189 Add Flatpak build support and env override for yt-dlp path
Introduces a Flatpak packaging step to the Linux CI workflow and updates ytsage_constants.py to support overriding the yt-dlp binary path via the YTDLP_APP_BIN_PATH environment variable, which is critical for Flatpak compatibility. Also ensures the custom yt-dlp directory is created if the environment variable is set.
2026-01-06 16:13:21 +02:00
oop7 462252b452 Fix formatting in workflows section of README
Corrected indentation and line formatting for the workflows section in the README to improve readability and consistency.
2026-01-06 16:04:59 +02:00
oop7 0edc64a5e9 Add release-all.yml to CI workflow list in README
Documented the master release workflow (release-all.yml) in the CI/CD section of the README for better visibility of available workflows.
2026-01-06 16:02:59 +02:00
oop7 45ce4ba69c Update CI/CD README for manual workflow triggers
Revamps the CI/CD documentation to reflect the new manual workflow dispatch system, replacing tag-based triggers. Adds detailed instructions for running full or platform-specific builds, clarifies artifact naming, and updates configuration and process notes to match the current GitHub Actions setup.
2026-01-06 16:02:11 +02:00
oop7 16e61c5d6f Refactor release workflows and add release-all trigger
Refactored build workflows for Linux, macOS, and Windows to use workflow_dispatch and workflow_call with explicit version input, replacing tag-based triggers. Updated release steps to use the provided version input for tagging and naming. Added a new release-all workflow to trigger all platform builds with a single version input.
2026-01-06 15:52:58 +02:00
oop7 192841a836 Bump version to 4.9.7
Update the __version__ string in src/__init__.py from 4.9.7b to 4.9.7, indicating a release from beta to stable.
2025-12-26 23:39:28 +02:00
oop7 4aa0a7b70e Update macOS ARM64 descriptions in README
Changed the descriptions for macOS ARM64 APP and DMG formats from 'for ARM64' to 'for Apple Silicon' for improved clarity in the README.
2025-12-11 13:29:31 +02:00
oop7 d8c754382f Set macOS build to run only on macos-latest
Removed the matrix strategy for multiple macOS runners and set the workflow to use only macos-latest. Simplifies the build process and reduces resource usage.
2025-12-11 13:24:37 +02:00
oop7 ba8011ce44 Update macOS build matrix to use macos-14-large
Replaces macos-15-large with macos-14-large in the GitHub Actions build matrix for improved compatibility or resource availability.
2025-12-11 12:18:20 +02:00
oop7 35c58bfcfa Update macOS build matrix to use macos-15-large
Replaces 'macos-15' with 'macos-15-large' in the GitHub Actions build matrix to utilize the larger runner for macOS 15 builds.
2025-12-11 12:15:30 +02:00
oop7 ce3fd4217d Update macOS build matrix in CI workflow
Replaces specific macOS versions with 'macos-latest' and 'macos-15' in the build matrix to ensure compatibility with newer macOS runners.
2025-12-11 11:28:39 +02:00
oop7 5a996efd19 Bump version to 4.9.7b
Updated the __version__ string in src/__init__.py to reflect the new release version 4.9.7b.
2025-12-11 11:06:05 +02:00
oop7 d45a4a35a4 Add update-in-progress handling and translations
Introduces 'update in progress' messages to all supported languages and updates the GUI to prevent analysis or downloads while yt-dlp is updating. Adds flags to track update and analysis states, ensuring user actions are blocked with appropriate warnings during updates.
2025-12-09 20:53:20 +02:00
oop7 b70dfb58e7 Adjust QLineEdit padding in main GUI
Reduced the vertical padding of QLineEdit elements from 12px to 5px to improve the appearance and spacing in the main application window.
2025-12-09 20:36:07 +02:00
oop7 f644581953 Improve SHA256 checksum parsing for Deno
Enhances the verify_deno_sha256 function to support both standard Unix and verbose checksum file formats. Adds debug logging for cases where the hash cannot be found.
2025-12-09 19:32:01 +02:00
oop7 e3097f4501 Remove Qt6 plugins path handling from build script
Eliminates logic for locating and including Qt6 plugins in the build-linux workflow. This simplifies the build process and removes conditional inclusion of Qt6 plugin files.
2025-12-09 19:02:20 +02:00
oop7 e034e9bbcf Fix RPM build paths in Linux workflow
Updated the build-linux.yml workflow to use absolute paths for the desktop file and icon during RPM packaging, ensuring correct file installation regardless of the build directory structure.
2025-12-09 18:36:30 +02:00
oop7 9350982f8c Fix RPM build paths in Linux workflow
Updates the build-linux.yml workflow to use absolute paths for build directory and asset installation during RPM packaging. This ensures files are correctly located and copied, improving reliability of the build process.
2025-12-09 18:28:15 +02:00
oop7 1d958175f2 Improve RPM build process and Qt6 plugin handling
Refactors the cx_Freeze setup to dynamically include Qt6 plugins if available, ensuring proper QPA support. Replaces the previous RPM build step with a manual process using a custom spec file to bundle all dependencies and avoid auto-detected system requirements. Cleans up packaging metadata and improves file inclusion logic for more reliable Linux builds.
2025-12-09 18:19:59 +02:00
oop7 bfd30513f6 Refine input and button styles in main and video info UI
Improved the appearance and spacing of the URL input, paste, and analyze buttons in the main GUI, including updated padding, border, and color styles. Adjusted font sizes and colors for video info labels for a more consistent and polished look.
2025-12-06 21:40:59 +02:00
oop7 835ae45121 Disable editing in format table
Set the format table's edit triggers to NoEditTriggers to prevent cell editing and avoid selection box on double-click.
2025-12-06 21:40:49 +02:00
oop7 e8482ce180 Add icons to video info labels in translations
Updated the 'views', 'likes', 'upload_date', and 'duration' fields in the video_info section across all language files to include relevant icons for improved visual clarity and consistency in the UI.
2025-12-06 21:40:40 +02:00
oop7 83d37676ae Suppress output when killing process tree on Windows
Replaces capture_output with stdout and stderr redirected to DEVNULL in subprocess.run for taskkill, preventing codec issues and suppressing command output.
2025-11-29 14:44:39 +02:00