From 4df72056113c13a11e018aa07a70be4a945cdfec Mon Sep 17 00:00:00 2001 From: Alquen Sarmiento Date: Tue, 21 Apr 2026 12:01:03 +0800 Subject: [PATCH] feat: add video and audio bulk optimization --- src/admin/class-meta-box.php | 5 ++++- src/admin/js/media-manager/sidebar-info.js | 3 ++- src/shared/converters/image-converter.js | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/admin/class-meta-box.php b/src/admin/class-meta-box.php index ef40c66..54e5084 100644 --- a/src/admin/class-meta-box.php +++ b/src/admin/class-meta-box.php @@ -132,6 +132,7 @@ function cimo_get_media_type_label( $mimetype ) { $converted_format_raw = isset( $cimo['convertedFormat'] ) ? $cimo['convertedFormat'] : ( isset( $post->post_mime_type ) ? $post->post_mime_type : '' ); $converted_format = $converted_format_raw ? cimo_convert_mimetype_to_format( $converted_format_raw ) : ''; $media_type_label = cimo_get_media_type_label( $converted_format_raw ); + $is_image_media = is_string( $converted_format_raw ) && strpos( strtolower( $converted_format_raw ), 'image/' ) === 0; $converttime = isset( $cimo['conversionTime'] ) ? floatval( $cimo['conversionTime'] ) : null; if ( $converttime !== null ) { if ( $converttime < 1000 ) { @@ -207,7 +208,9 @@ function cimo_get_media_type_label( $mimetype ) { echo '
  • '; echo '🏞️ ' . sprintf( /* translators: %s: bulk optimization count */ - esc_html__( '%s thumbnail(s) processed', 'cimo-image-optimizer' ), + $is_image_media + ? esc_html__( '%s thumbnail(s) processed', 'cimo-image-optimizer' ) + : esc_html__( '%s file(s) processed', 'cimo-image-optimizer' ), '' . esc_html( $bulk_optimization_count ) . '' ); echo '
  • '; diff --git a/src/admin/js/media-manager/sidebar-info.js b/src/admin/js/media-manager/sidebar-info.js index 65ca224..7e05d26 100644 --- a/src/admin/js/media-manager/sidebar-info.js +++ b/src/admin/js/media-manager/sidebar-info.js @@ -118,6 +118,7 @@ function injectCimoMetadata( { const convertedFormatRaw = customMetadata.convertedFormat || model.get( 'mime' ) || '' const mediaTypeLabel = getMediaTypeLabel( convertedFormatRaw ) + const isImageMedia = typeof convertedFormatRaw === 'string' && convertedFormatRaw.startsWith( 'image/' ) let html = `
    @@ -185,7 +186,7 @@ function injectCimoMetadata( { if ( isBulkOptimized ) { html += `
  • - 🏞️ ${ escape( Object.keys( customMetadata.bulk_optimization ).length.toString() ) } thumbnail(s) processed + 🏞️ ${ escape( Object.keys( customMetadata.bulk_optimization ).length.toString() ) } ${ escape( isImageMedia ? 'thumbnail(s) processed' : 'file(s) processed' ) }
  • ⚡️ Bulk optimized diff --git a/src/shared/converters/image-converter.js b/src/shared/converters/image-converter.js index 13a838f..e807602 100644 --- a/src/shared/converters/image-converter.js +++ b/src/shared/converters/image-converter.js @@ -318,7 +318,7 @@ class ImageConverter extends Converter { return { file, metadata: null, - reason: 'resulting-image-bigger-than-input', + reason: 'resulting-media-bigger-than-input', error: `Resulting image is bigger than the input (input: ${ file.size } bytes, output: ${ convertedBlob.size } bytes), skipping conversion.`, } }