"""Helper modules for the downlow mpv integration.""" from . import hydrus as _hydrus from . import download as _download from . import tasks as _tasks from . import utils as _utils try: # Optional dependency on Playwright from . import webshot as _webshot except Exception as exc: # pragma: no cover - surfaced when Playwright is missing _webshot = None # type: ignore ScreenshotError = None # type: ignore[assignment] ScreenshotOptions = None # type: ignore[assignment] ScreenshotResult = None # type: ignore[assignment] capture_screenshot = None # type: ignore[assignment] ScreenshotImportError = exc # type: ignore[assignment] else: ScreenshotError = _webshot.ScreenshotError ScreenshotOptions = _webshot.ScreenshotOptions ScreenshotResult = _webshot.ScreenshotResult capture_screenshot = _webshot.capture_screenshot ScreenshotImportError = None # CBOR utilities decode_cbor = _utils.decode_cbor jsonify = _utils.jsonify # General utilities CHUNK_SIZE = _utils.CHUNK_SIZE ensure_directory = _utils.ensure_directory unique_path = _utils.unique_path download_hydrus_file = _hydrus.download_hydrus_file sanitize_metadata_value = _utils.sanitize_metadata_value unique_preserve_order = _utils.unique_preserve_order sha256_file = _utils.sha256_file create_metadata_sidecar = _utils.create_metadata_sidecar create_tags_sidecar = _utils.create_tags_sidecar # Format utilities format_bytes = _utils.format_bytes format_duration = _utils.format_duration format_timestamp = _utils.format_timestamp format_metadata_value = _utils.format_metadata_value # Link utilities extract_link = _utils.extract_link extract_link_from_args = _utils.extract_link_from_args extract_link_from_result = _utils.extract_link_from_result get_api_key = _utils.get_api_key add_direct_link_to_result = _utils.add_direct_link_to_result # URL policy utilities resolve_url_policy = _utils.resolve_url_policy UrlPolicy = _utils.UrlPolicy # Download utilities DownloadOptions = _download.DownloadOptions DownloadError = _download.DownloadError DownloadMediaResult = _download.DownloadMediaResult download_media = _download.download_media is_url_supported_by_ytdlp = _download.is_url_supported_by_ytdlp probe_url = _download.probe_url # Hydrus utilities hydrus_request = _hydrus.hydrus_request hydrus_export = _hydrus.hydrus_export HydrusClient = _hydrus.HydrusClient HydrusRequestError = _hydrus.HydrusRequestError connect_ipc = _tasks.connect_ipc ipc_sender = _tasks.ipc_sender __all__ = [ 'decode_cbor', 'jsonify', 'CHUNK_SIZE', 'ensure_directory', 'unique_path', 'download_hydrus_file', 'sanitize_metadata_value', 'unique_preserve_order', 'sha256_file', 'resolve_url_policy', 'UrlPolicy', 'ScreenshotError', 'ScreenshotOptions', 'ScreenshotResult', 'capture_screenshot', 'ScreenshotImportError', 'DownloadOptions', 'DownloadError', 'DownloadMediaResult', 'download_media', 'is_url_supported_by_ytdlp', 'probe_url', 'HydrusClient', 'HydrusRequestError', 'hydrus_request', 'hydrus_export', 'connect_ipc', 'ipc_sender', ]