✅ Fixed bulk conversion getting stuck on missing files ✅ Added robust error handling and timeout protection ✅ Improved JavaScript response parsing ✅ Added file existence validation ✅ Fixed missing PHP class imports ✅ Added comprehensive try-catch error recovery 🔧 Key fixes: - File existence checks before conversion attempts - 30-second timeout protection per file - Graceful handling of 500 errors and JSON parsing issues - Automatic continuation to next file on failures - Cache busting for JavaScript updates 🎯 Result: Bulk conversion now completes successfully even with missing files 🚀 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
53 lines
1.0 KiB
PHP
53 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace WebPExpress;
|
|
|
|
use \WebPExpress\ImageRoot;
|
|
|
|
class ImageRoots
|
|
{
|
|
private $imageRootsDef;
|
|
private $imageRoots;
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param array $imageRoots Array representation of image roots
|
|
*/
|
|
public function __construct($imageRootsDef)
|
|
{
|
|
$this->imageRootsDef = $imageRootsDef;
|
|
|
|
$this->imageRoots = [];
|
|
foreach ($imageRootsDef as $i => $def)
|
|
{
|
|
$this->imageRoots[] = new ImageRoot($def);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get image root by id.
|
|
*
|
|
* @return \WebPExpress\ImageRoot An image root object
|
|
*/
|
|
public function byId($id)
|
|
{
|
|
foreach ($this->imageRoots as $i => $imageRoot) {
|
|
if ($imageRoot->id == $id) {
|
|
return $imageRoot;
|
|
}
|
|
}
|
|
throw new \Exception('Image root not found');
|
|
}
|
|
|
|
/**
|
|
* Get the image roots array
|
|
*
|
|
* @return array An array of ImageRoot objects
|
|
*/
|
|
public function getArray()
|
|
{
|
|
return $this->imageRoots;
|
|
}
|
|
}
|