optimize(); } catch ( Quota_Exceeded_Error $qe ) { ( new Image_Meta( $image_id ) ) ->set_status( Image_Status::OPTIMIZATION_FAILED ) ->set_error_type( Image_Optimization_Error_Type::QUOTA_EXCEEDED ) ->save(); } catch ( Image_File_Already_Exists_Error $fe ) { ( new Image_Meta( $image_id ) ) ->set_status( Image_Status::OPTIMIZATION_FAILED ) ->set_error_type( Image_Optimization_Error_Type::FILE_ALREADY_EXISTS ) ->save(); } catch ( Bulk_Token_Expired_Error | Bulk_Optimization_Token_Not_Found_Error $bte ) { ( new Image_Meta( $image_id ) ) ->set_status( Image_Status::NOT_OPTIMIZED ) ->save(); Bulk_Optimization_Controller::reschedule_bulk_optimization(); } catch ( Throwable $t ) { Logger::log( Logger::LEVEL_ERROR, 'Optimization error. Reason: ' . $t->getMessage() ); ( new Image_Meta( $image_id ) ) ->set_status( Image_Status::OPTIMIZATION_FAILED ) ->set_error_type( Image_Optimization_Error_Type::GENERIC ) ->save(); } finally { Optimization_Stats::get_image_stats( null, true ); } } /** @async */ public function reoptimize_bulk( int $image_id, string $operation_id ) { try { $image = new Image( $image_id ); if ( $image->can_be_restored() ) { Image_Restore::restore( $image_id, true ); } $bulk_token = Bulk_Optimization_Controller::get_bulk_operation_token( $operation_id ); $oi = new Optimize_Image( $image_id, 'bulk', $bulk_token ); $oi->optimize(); } catch ( Quota_Exceeded_Error $qe ) { ( new Image_Meta( $image_id ) ) ->set_status( Image_Status::REOPTIMIZING_FAILED ) ->set_error_type( Image_Optimization_Error_Type::QUOTA_EXCEEDED ) ->save(); } catch ( Image_File_Already_Exists_Error $fe ) { ( new Image_Meta( $image_id ) ) ->set_status( Image_Status::REOPTIMIZING_FAILED ) ->set_error_type( Image_Optimization_Error_Type::FILE_ALREADY_EXISTS ) ->save(); } catch ( Bulk_Token_Expired_Error | Bulk_Optimization_Token_Not_Found_Error $bte ) { ( new Image_Meta( $image_id ) ) ->set_status( Image_Status::NOT_OPTIMIZED ) ->save(); Bulk_Optimization_Controller::reschedule_bulk_reoptimization(); } catch ( Throwable $t ) { Logger::log( Logger::LEVEL_ERROR, 'Reoptimization error. Reason: ' . $t->getMessage() ); ( new Image_Meta( $image_id ) ) ->set_status( Image_Status::REOPTIMIZING_FAILED ) ->set_error_type( Image_Optimization_Error_Type::GENERIC ) ->save(); } finally { Optimization_Stats::get_image_stats( null, true ); } } /** * Renders the bulk optimization notice * * @return void */ public function render_bulk_optimization_notice() { try { $is_in_progress = Bulk_Optimization_Controller::is_optimization_in_progress(); } catch ( Async_Operation_Exception $aoe ) { $is_in_progress = false; } ?>