Commit Graph

425 Commits

Author SHA1 Message Date
oop7 ffe64acbeb Capture yt-dlp errors and show better messages
Initialize an error buffer and collect yt-dlp "ERROR:" output lines during direct command runs. When the process exits non‑zero, emit a more informative error using the last two captured error lines (falling back to the generic return-code message if none were captured). Also ensure the buffer is present before appending and keep the existing delay/cleanup flow.
2026-02-01 11:40:00 +02:00
oop7 7bc4488635 Include PySide6.QtNetwork in build workflows
Moved PySide6.QtNetwork from the excludes to the includes list in build workflows for Linux, macOS, and Windows. This ensures the QtNetwork module is bundled during packaging.
2026-01-25 15:53:17 +02:00
oop7 387621cb24 Update icon path in build scripts
Changed the icon installation path from assets/branding/icons/icon.png to branding/icons/icon.png in Linux packaging steps to reflect updated directory structure.
2026-01-25 14:54:00 +02:00
oop7 38f08543d9 Fix build config for Linux workflow
Corrected script path to 'ytsage_entry.py', updated icon path, and fixed configuration for including system libraries and binary excludes in the build-linux.yml workflow.
2026-01-25 14:45:54 +02:00
oop7 2e42d26f44 Bump version to 5.0.0b2
Update the __version__ string in ytsage/__init__.py to 5.0.0b2 to reflect the latest changes.
2026-01-25 14:29:01 +02:00
oop7 c8ff4849fe Add module docstring to utils package
Introduced a descriptive docstring in ytsage/utils/__init__.py to clarify the purpose of the utilities package and its contents.
2026-01-25 14:22:58 +02:00
oop7 c15d615b06 Add MANIFEST.in to include project files in package
Adds a MANIFEST.in file to ensure README.md, LICENSE, pyproject.toml, and all files in ytsage/assets and ytsage/languages are included in the package distribution.
2026-01-25 14:20:01 +02:00
oop7 9a1fb33996 Update macOS artifact naming in CI/CD docs
Clarified the naming convention for macOS build artifacts by specifying 'arm64' in the filenames for the zipped app bundle and disk image installer.
2026-01-25 14:11:11 +02:00
oop7 96dadd7e5b Refactor GUI package structure and update imports
Moved all files from src/gui/ to ytsage/gui/ and updated import statements to use relative imports within the new package structure. This improves modularity and prepares the codebase for distribution as a proper Python package.
2026-01-25 14:07:51 +02:00
oop7 4fb9815ac6 Rename package directory from src to ytsage
Moved __init__.py from src/ to ytsage/ to reflect the new package structure. This change helps clarify the package namespace.
2026-01-25 14:07:29 +02:00
oop7 fa3dc0236f Refactor core module imports and update paths
Renamed 'src/core' to 'ytsage/core' and updated all internal imports to use relative paths. This improves package structure and ensures correct module resolution after the directory move.
2026-01-25 14:07:03 +02:00
oop7 ca6b53715e Refactor utils module structure and update imports
Moved utility modules from src/utils/ to ytsage/utils/ and updated all relative imports accordingly. Adjusted docstring usage examples and fixed a path reference in LocalizationManager to reflect the new directory structure.
2026-01-25 14:06:41 +02:00
oop7 ad5f304d4e Move main.py to ytsage/ and update imports
Renamed main.py to ytsage/main.py and updated relative imports to reflect the new module structure.
2026-01-25 14:05:55 +02:00
oop7 7efcfaa85b Update Windows build workflow for pyproject and asset paths
Switch pip cache and install to use pyproject.toml instead of requirements.txt. Update cx_Freeze setup to use a new entry point, adjust included packages and asset paths to reflect new project structure, and update icon path.
2026-01-25 14:05:44 +02:00
oop7 de7d7965f2 Update macOS build workflow for pyproject and new structure
Switches dependency installation from requirements.txt to pyproject.toml and updates pip cache key accordingly. Refactors cx_Freeze setup to use a new entry point, adjusts included files and paths to match the updated project structure, and updates icon file references.
2026-01-25 14:05:38 +02:00
oop7 a0df6b273f Update Linux build workflow for PEP 517 and cx_Freeze
Switch pip install to use PEP 517 (pyproject.toml) instead of requirements.txt and update cache key accordingly. Refactor cx_Freeze setup to use new asset paths, add entry point script, and adjust include_files for correct packaging structure.
2026-01-25 14:05:34 +02:00
oop7 2e5e40cbf5 Update README for new directory structure and usage
Updated image paths and installation instructions to reflect the new project structure. The documentation now references the 'branding' directory instead of 'assets/branding', and installation uses 'pip install .' with module execution via 'python -m ytsage.main'. The project tree was revised to match the reorganized source and asset directories.
2026-01-25 14:05:05 +02:00
oop7 32b2b544f4 Add build_release.py for automated release process
Introduces a script to automate the production build process, including backing up and modifying the README for PyPI, cleaning previous build artifacts, building the wheel, and restoring the original README. This streamlines and standardizes the release workflow.
2026-01-25 14:04:39 +02:00
oop7 2aac706ef7 Migrate dependencies to pyproject.toml
Replaced requirements.txt with pyproject.toml to modernize project configuration and dependency management using PEP 621 standards. This change improves compatibility with modern Python packaging tools.
2026-01-25 14:04:31 +02:00
oop7 f9eace71e0 Reorganize asset and branding file structure
Moved icons, screenshots, SVGs, and sound files to new locations under 'branding' and 'ytsage/assets' directories for improved project organization.
2026-01-25 14:04:08 +02:00
oop7 acda70150f Move language files to ytsage/languages directory
Renamed and relocated all language JSON files from the root 'languages' directory to 'ytsage/languages' for improved project organization.
2026-01-25 14:03:01 +02:00
oop7 99d3b6ae17 Update CI/CD README with Flatpak and macOS details
Added Flatpak bundle to the list of Linux artifacts and clarified that the macOS zipped application bundle is for arm64 architecture.
2026-01-25 14:02:08 +02:00
oop7 065c5c9c36 Add FFmpeg and yt-dlp setup translations
Extended it.json, ja.json, pl.json, pt.json, ru.json, and tr.json with new translation keys for FFmpeg installation and yt-dlp setup dialogs, error messages, and status updates. Also added new UI strings for cookies, proxy, download, and history features to improve localization coverage.
2026-01-24 19:51:00 +02:00
oop7 0dffa8fbbd Add FFmpeg and yt-dlp setup translations
Added new translation keys for FFmpeg installation and yt-dlp setup dialogs in French, Hindi, Indonesian, and Chinese. Also updated and expanded several UI strings related to cookies, proxy, download, and history management for improved localization coverage.
2026-01-24 19:50:49 +02:00
oop7 d985980e88 Localize current version label in auto-update dialog
Replaced hardcoded current version label with a localized string using the translation function in the AutoUpdateSettingsDialog.
2026-01-24 19:50:41 +02:00
oop7 07765a7a19 Replace hardcoded strings with translatable keys
Updated status and error messages in HistoryDialog to use translation keys instead of hardcoded English strings, improving internationalization support.
2026-01-24 19:50:36 +02:00
oop7 2d343dfacf Refactor UI strings to use translation function
Replaced hardcoded UI strings and tooltips with calls to the translation function (_) throughout ytsage_gui_main.py. This improves localization support and ensures all user-facing messages are translatable.
2026-01-24 19:50:31 +02:00
oop7 3fbddff279 Localize yt-dlp setup dialog strings
Replaced hardcoded English strings in the YtdlpSetupDialog with calls to the localization function _. This improves internationalization support by allowing all user-facing text in the setup dialog to be translated.
2026-01-24 19:50:26 +02:00
oop7 5eda759152 Add localization to FFmpeg installation dialog
Replaced hardcoded strings in the FFmpeg installation dialog with localized strings using the `_` function. This improves internationalization support and prepares the dialog for translation.
2026-01-24 19:50:22 +02:00
oop7 dd6918eefc Refactor dialog strings for i18n support
Replaces hardcoded status and log messages in CustomOptionsDialog with calls to the translation function (_), enabling internationalization of cookie, proxy, and custom command messages.
2026-01-24 19:50:17 +02:00
oop7 1102f7fd4e Localize log window title in LogWindow dialog
Replaced the hardcoded log window title with a localized string using the translation function. This improves internationalization support for the dialog.
2026-01-24 19:50:13 +02:00
oop7 53049fc046 Add and update Spanish translations for new features
Expanded the es.json file with new and updated translations for features related to yt-dlp setup, FFmpeg installation, proxy configuration, download settings, and history management. These changes support new UI elements and error messages, improving localization coverage for recent and upcoming features.
2026-01-24 19:50:08 +02:00
oop7 d2dd73d34d Add new localization strings for setup and status dialogs
Introduces additional English localization keys for yt-dlp log, cookie and proxy status, custom command errors, download settings, FFmpeg installation, yt-dlp setup, and improved download history messages. These changes support new UI dialogs and error handling features.
2026-01-24 19:50:03 +02:00
oop7 180f9e77a4 Update and expand German translations
Added and updated multiple German translation strings for features including yt-dlp log, cookie and proxy management, custom command errors, download settings, FFmpeg installation, and yt-dlp setup dialogs. This improves localization coverage and user guidance for new and existing features.
2026-01-24 19:49:57 +02:00
oop7 7fbef73531 Update Arabic translations for new features
Added and updated Arabic localization strings for new features and UI improvements, including FFmpeg and yt-dlp setup dialogs, proxy and cookie status messages, download settings, and error handling. This enhances support for recent application updates and improves user experience for Arabic-speaking users.
2026-01-24 19:49:52 +02:00
oop7 f0b05d74f4 Add localized error messages for yt-dlp download failures
Introduces new error message keys for download failures with specific return codes and direct command errors in all supported languages. Updates ytsage_downloader.py to use these localized messages and adds the corresponding entries to the localization manager.
2026-01-24 18:48:36 +02:00
oop7 0c03e3b4ba Add smooth animation to progress bar updates
Introduces a QPropertyAnimation for the progress bar to provide a smooth transition effect when updating its value. The animation is triggered for significant changes in progress, improving the user experience with more visually appealing feedback.
2026-01-24 17:34:12 +02:00
oop7 1dba5b629a Increase progress bar precision to 0.01%
Changed the progress bar range from 0-100 to 0-10000 for finer granularity (0.01% steps). Updated all progress bar value assignments and scaling logic to match the new range, and set the display format to show percentage.
2026-01-24 17:32:02 +02:00
oop7 e43b1bbb2e Optimize format table filtering and rebuilding
Refactors the format table logic to build the table once and use row visibility for fast filtering between video and audio formats. Adds internal flags to track table state and format types per row, improving performance and responsiveness when toggling format filters. Also streamlines table population and color-coding logic.
2026-01-24 17:21:24 +02:00
oop7 66870d062b Centralize file extension constants in ytsage_constants
Moved video, audio, and subtitle file extension lists to ytsage_constants.py as centralized frozenset constants. Updated all usages in downloader and GUI modules to reference these constants, reducing duplication and improving maintainability.
2026-01-24 17:01:45 +02:00
oop7 6c9a62f6b8 Improve update check with parallel network requests
Refactored UpdateCheckThread to use ThreadPoolExecutor for parallel requests to PyPI and GitHub, reducing total wait time. Added error handling and timeouts for faster failure detection, and improved changelog fetching with a fallback message.
2026-01-24 16:58:17 +02:00
oop7 b9b0285e95 Refactor config handling to use ConfigManager
Replaced direct usage of load_config and save_config with ConfigManager in ytsage_utils.py and ytsage_dialogs_update.py. Removed legacy config functions from ytsage_utils.py to centralize configuration management and improve maintainability.
2026-01-24 16:54:08 +02:00
oop7 02ede913d2 Refactor analysis to use QThread for thread safety
Replaces the use of Python's threading with a dedicated QThread-based AnalysisThread for URL analysis, ensuring all UI updates are performed via Qt signals for thread safety. Adds cancellation support for analysis, improves error handling, and updates the main window's close event to properly terminate the analysis thread if running. This refactor enhances stability and responsiveness of the GUI during analysis operations.
2026-01-24 16:50:24 +02:00
oop7 217c03379e Add ytsage_stylesheet.py to project structure in README
Updated the README to include the new ytsage_stylesheet.py file under the YTSage GUI directory, reflecting the addition of stylesheet definitions to the project.
2026-01-24 16:30:15 +02:00
oop7 3ae18678e8 Remove pyglet from dependencies list in README
The pyglet library has been removed from the dependencies table in the README, indicating it is no longer used for audio playback in the project.
2026-01-24 16:28:25 +02:00
oop7 64560fabb2 Replace pyglet with QtMultimedia for audio playback
Removed pyglet dependency and migrated notification sound playback to use PySide6.QtMultimedia's QMediaPlayer and QAudioOutput. Updated workflow and requirements files to remove pyglet and ensure PySide6.QtMultimedia is included in build steps.
2026-01-24 16:25:52 +02:00
oop7 d5d7a0186d Refactor analysis logic into AnalysisMixin
Moved all analysis-related methods from YTSageApp in ytsage_gui_main.py to a new AnalysisMixin in ytsage_gui_analysis.py. This improves code organization and separation of concerns by isolating analysis logic from the main application class.
2026-01-24 14:00:13 +02:00
oop7 370836b814 Refactor GUI styles to use centralized StyleSheet class
Moved all inline widget style definitions in ytsage_gui_main.py to named constants in the StyleSheet class in ytsage_stylesheet.py. This centralizes and simplifies style management, improves maintainability, and ensures consistent theming across the application.
2026-01-24 13:46:16 +02:00
oop7 9759fa565f Refactor UI startup and stylesheet handling
Moved the main application stylesheet to a new src/gui/ytsage_stylesheet.py module and applied it via StyleSheet.MAIN. Deferred blocking startup checks (FFmpeg, yt-dlp, Deno, updates) until after the UI is shown to improve responsiveness. Improved subtitle file deletion logic and added destination filename capture in downloader. Added custom style for auto-update checkbox in updater dialog.
2026-01-24 13:35:02 +02:00
oop7 4d4d9e10b9 Refactor updater checks to use QThread for async operations
Replaces manual threading for FFmpeg and Deno version checks with dedicated QThread subclasses (FFmpegCheckThread and DenoCheckThread). This improves integration with the Qt event loop, enables use of signals and slots for UI updates, and enhances error handling.
2026-01-24 12:57:37 +02:00