Commit Graph

32 Commits

Author SHA1 Message Date
Your Name 70488e6ecc Replace playsound3 with pyglet for audio notifications
Switched sound notification library from playsound3 to pyglet in requirements and main GUI code. Updated all related logic and logging to use pyglet for audio playback, improving compatibility and maintainability.
2025-08-28 17:38:48 +03:00
Your Name f390d23f54 Refactor windowed mode and subprocess handling
Removed redundant windowed mode setup from main.py and simplified subprocess creation flags logic across core and GUI modules. Centralized subprocess creation flags usage, eliminated custom run_subprocess_hidden wrapper, and improved logging handler setup for better compatibility with windowed applications.
2025-08-27 23:00:08 +03:00
Your Name b23be4335e Improve console suppression for windowed mode on Windows
Refactored console window suppression logic to better handle PyInstaller windowed applications and prevent console flicker. Added creation flags and redirected subprocess streams in multiple modules to ensure hidden console windows when running subprocesses. Introduced a utility function for running subprocesses with hidden console and updated all relevant subprocess calls to use it.
2025-08-27 22:46:38 +03:00
Your Name a6a175b3d7 Improve handling of console window in windowed apps
Suppresses console window flicker for PyInstaller windowed applications by redirecting stdout and stderr in main.py. Updates logging setup to avoid console output in windowed mode and adds fallback error logging. Suppresses pkg_resources deprecation warnings to further reduce unwanted console output.
2025-08-27 22:17:13 +03:00
Your Name 4779ab269f Update Python version and remove unused constant
Downgraded PYTHON_VERSION in build-windows.yml from 3.13.6 to 3.13.5. Removed SUBPROCESS_CREATIONFLAGS import and usage from ytsage_dialogs_custom.py as it was no longer needed.
2025-08-27 21:42:31 +03:00
Your Name 3312dc682b Add subprocess creation flags to CommandWorker
Passes SUBPROCESS_CREATIONFLAGS to subprocess.Popen in CommandWorker for improved process control. Imports SUBPROCESS_CREATIONFLAGS from ytsage_constants.
2025-08-27 21:31:38 +03:00
Your Name 09b538c0bd Move yt_dlp import inside method in VideoInfoMixin
The import of yt_dlp is now performed locally within the method to prevent import errors when yt-dlp is not installed. This change improves robustness for environments where yt-dlp may be missing.
2025-08-27 00:09:07 +03:00
Your Name fa983d75a5 Replace pygame with playsound3 for audio notifications
Switched from pygame to playsound3 for playing notification sounds in the GUI. Updated requirements.txt and refactored related code to use playsound3, improving compatibility and simplifying sound playback.
2025-08-26 23:57:56 +03:00
Your Name 6ff72f296a Add yt-dlp error parser for user-friendly messages
Introduces the parse_yt_dlp_error function to convert raw yt-dlp error messages into actionable, user-friendly feedback. This improves error handling and provides clearer guidance to users encountering common download issues.
2025-08-26 19:27:59 +03:00
Your Name 47609c7017 Update default version in AboutDialog
Changed the default version displayed in the AboutDialog from '4.7.0' to '4.8.0b' to reflect the latest release.
2025-08-26 19:27:51 +03:00
Your Name eaf1786d21 Refactor and enhance custom dialogs UI and logic
Refactored custom command execution to use a worker class with signals for better threading and output handling. Improved the CustomOptionsDialog with cookie source selection (file or browser), browser selection UI, and more robust cookie path handling. Enhanced UI styling, help texts, and input validation. Removed command preview from TimeRangeDialog and streamlined dialog layouts for clarity and usability.
2025-08-26 19:27:39 +03:00
Your Name 0db890dd81 Remove unused dialog imports and exports
Deleted CookieLoginDialog and CustomCommandDialog from imports and __all__ exports in ytsage_gui_dialogs/__init__.py, likely because these dialogs are no longer needed or have been removed from the codebase.
2025-08-26 19:27:28 +03:00
Your Name ca7287ee60 Enhance QComboBox and QGroupBox styling
Improved QComboBox appearance with updated padding, border, drop-down, and arrow styles, including hover and focus effects. Added custom styling for QComboBox item views and introduced new styles for QGroupBox and its title for better UI consistency.
2025-08-26 19:27:21 +03:00
Your Name cb342eb499 Add browser cookies support to DownloadThread
Introduces a browser_cookies parameter to DownloadThread, allowing cookies to be loaded from a browser for downloads. Updates command and options construction to handle both cookie files and browser cookies, improving flexibility for authentication.
2025-08-26 19:27:14 +03:00
Your Name 99a55f66e2 Bump version to 4.8.0b
Updated the __version__ string in src/__init__.py to 4.8.0b to reflect the new release.
2025-08-26 19:27:00 +03:00
Your Name 44621a59f0 Add browser cookies support and improve error handling
Introduces support for extracting cookies from browsers in addition to cookie files, updating relevant logic and UI handling. Error handling for yt-dlp extraction is improved with user-friendly messages using a new error parser. Also updates version to 4.8.0b and refines cookie management throughout the app.
2025-08-26 19:26:49 +03:00
Your Name 7093753636 Add YT-DLP documentation URL constant
Introduces YTDLP_DOCS_URL for Windows, macOS, and Linux platforms, providing a direct link to yt-dlp usage and options documentation. Also updates the __main__ info output to include this new constant.
2025-08-26 19:26:21 +03:00
Viren Hirpara 9c13b4b61c Refactor/code cleanup (#37)
* fix imports
remove unused imports
use full import path
sort import (1. Standard Library, 2. Third-Party, 3. Local) in alphabetic.

* - remove: Method 3 from src.core.ytsage_downlader:cleanup_subtitle_file
  - it could delete the subtitle file of other movies if it present in same directory as it scane recursively.

- refactor: migrate from os.path to pathlib.Path for path handling
  - Replaced os.path methods with pathlib.Path to improve readability,
  - avoid repeatation.
  - cross-platform compatibility, and maintain cleaner code.

- improve: enhance code readability
  - Standardized string literals to use double quotes for consistency
  - Removed unnecessary spaces to maintain cleaner formatting
  - Applied code formatting for better readability and maintainability

* - add: ytsage_constants.py file for one place to store all constants.

- imporve: return type hint for function.

- remove: src/gui/ytsage_gui_dialogs.py file to avoid repetation
  - src/gui/dialogs is renamed to src/gui/ytsage_gui_dialogs for same naming convection. (future import will remains same)
  - use of src/gui/ytsage_gui_dialogs/__init__.py to import the dilogs modules.

- change: variable self.parent to self._parent so it does not overwrite the parent()
  - add type hint checking.

* - refactor: QMetaObject.invokeMethod to Signal
  - I encounter error with incokeMethod. Could not solve it.
  - So, Changed it to Signal to match app code language.

- implement: the ytsage_constants.py to code
  - remove: unnecessary logic
  - remove: repetitive code logic.

- update: yt-dlp logic for src\gui\ytsage_gui_dialogs\ytsage_dialogs_update:_update_binary
  - yt-dlp update logic will use `yt-dlp -U`

* refactor: remove unused imports and streamline code formatting across multiple files
2025-08-26 16:27:12 +03:00
Your Name 9c0897e787 Add centralized logging configuration with loguru
Introduces src/core/ytsage_logging.py to provide structured logging for the YTSage application using loguru. Includes multiple output handlers for console and file logging, robust fallbacks for environments without loguru, and safe initialization to replace print statements with consistent logging.
2025-08-16 15:07:31 +03:00
Your Name 73e662148c Add SponsorBlock category selection to video info UI
Introduces a SponsorBlock section to the video info UI, allowing users to select categories via a dialog. Refactors print statements to use the logger for consistency. Updates imports and improves UI feedback for subtitle and SponsorBlock selections.
2025-08-16 15:07:26 +03:00
Your Name a352371c45 Move ytsage_gui_format_table.py to src/gui
Renamed and relocated ytsage_gui_format_table.py to src/gui/ytsage_gui_format_table.py for improved project structure and organization.
2025-08-16 15:07:16 +03:00
Your Name 1e95e643c2 Move ytsage_style.py to src/core directory
Renamed and relocated ytsage_style.py to src/core/ytsage_style.py for improved project structure and organization.
2025-08-16 15:07:09 +03:00
Your Name 1484259692 Add __init__.py for GUI dialogs package
Introduces src/gui/dialogs/__init__.py to organize and re-export dialog classes for the YTSage GUI. This file provides a structured overview of available dialogs and maintains backward compatibility by re-exporting all relevant classes.
2025-08-16 15:07:02 +03:00
Your Name b1a452ab8e Add initial docstring for gui package
Created src/gui/__init__.py with a package-level docstring describing the purpose of the GUI modules for YTSage.
2025-08-16 15:06:57 +03:00
Your Name ba03a02aa1 Refactor GUI main file and add embed chapters option
Moved ytsage_gui_main.py to src/gui/ and updated imports for new module structure. Replaced print statements with structured logging using the logger. Added 'Embed Chapters' checkbox and related state handling. SponsorBlock selection is now managed via a dialog and category list instead of a simple checkbox. Updated version to 4.7.0 and improved resource path handling for icons and sounds.
2025-08-16 15:06:51 +03:00
Your Name b5d7406a34 Move and modularize GUI dialog files
Refactored dialog-related code by splitting ytsage_gui_dialogs.py into multiple modular files under src/gui/dialogs/. Added new files for base, custom, ffmpeg, selection, and settings dialogs, improving code organization and maintainability. Removed the old monolithic ytsage_gui_dialogs.py.
2025-08-16 15:06:36 +03:00
Your Name b339a322e8 Refactor print statements to use logger in ytsage_utils
Replaced all print statements with logger calls for improved logging consistency and error handling. Updated imports to use relative paths and added logger import. This change enhances maintainability and integrates better with the application's logging system.
2025-08-16 15:06:02 +03:00
Your Name 1fcde5d6b9 Refactor and enhance yt-dlp setup dialog UI
Moved ytsage_yt_dlp.py to src/core/ and improved the YtdlpSetupDialog UI with better layout, styling, and accessibility. Replaced print statements with logger calls, added a check_ytdlp_installed() utility, and refined icon path resolution. These changes improve user experience and maintainability.
2025-08-16 15:05:51 +03:00
Your Name 0cb40f4338 Refactor and enhance FFmpeg installer module
Moved ytsage_ffmpeg.py to src/core and refactored for improved logging and error handling. Added SHA-256 verification for downloads, updated FFmpeg URLs to 7.1.1, and implemented fallback extraction methods. Introduced get_ffmpeg_path utility and replaced print statements with logger calls for better integration.
2025-08-16 15:05:27 +03:00
Your Name 8ee436aa14 Refactor downloader logging and add new options
Replaced print statements with logger calls for improved logging. Added support for sponsorblock categories and chapter embedding. Updated imports to use relative paths and improved command building logic for yt-dlp.
2025-08-16 15:05:15 +03:00
Your Name 4fdc815f70 Add package docstring to core __init__.py
Introduces a new __init__.py file for the core package with a descriptive docstring outlining its purpose and contents.
2025-08-16 15:04:24 +03:00
Your Name 97a046cbae Add package metadata to __init__.py
Created src/__init__.py with project docstring, version, and author information for YTSage, a PySide6-based YouTube video downloader.
2025-08-16 15:04:13 +03:00