✅ 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>
3.2 KiB
3.2 KiB
Updating the vendor dir:
-
Run
composer updatein the root (plugin root). -
Run
composer dump-autoload -o(for some reason,vendor/composer/autoload_classmap.phplooses all its mappings on composer update). It also looses them on acomposer dump-autoload(without the -o option). It actually seems that the mappings are not needed. It seems to work fine when I alter autoload_real to not use the static loader. But well, I'm reluctant to change anything that works. -
Remove unneeded files:
- Open bash
- cd into the folder
rm -r vendor/rosell-dk/webp-convert/docs
rm -r vendor/rosell-dk/webp-convert/src/Helpers/*.txt
rm composer.lock
rmdir vendor/bin
- Commit on git
Copying WCFM
I created the following script for building WCFM, copying it to webp-express, etc
#!/bin/bash
WCFM_PATH=/home/rosell/github/webp-convert-filemanager
WE_PATH=/home/rosell/github/webp-express
WE_PATH_WCFM=$WE_PATH/lib/wcfm
WCFMPage_PATH=/home/rosell/github/webp-express/lib/classes/WCFMPage.php
WC_PATH=/home/rosell/github/webp-convert
copyassets() {
# remove assets in WebP Express
rm -f $WE_PATH_WCFM/index*.css
rm -f $WE_PATH_WCFM/index*.js
rm -f $WE_PATH_WCFM/vendor*.js
# copy assets from WCFM
cp $WCFM_PATH/dist/assets/index*.css $WE_PATH_WCFM/
cp $WCFM_PATH/dist/assets/index*.js $WE_PATH_WCFM/
cp $WCFM_PATH/dist/assets/vendor*.js $WE_PATH_WCFM/
#CSS_FILE = $(ls /home/rosell/github/webp-express/lib/wcfm | grep 'index.*css' | tr '\n' ' ' | sed 's/\s//')
CSS_FILE=$(ls $WE_PATH_WCFM | grep 'index.*css' | tr '\n' ' ' | sed 's/\s//')
JS_FILE=$(ls $WE_PATH_WCFM | grep 'index.*js' | tr '\n' ' ' | sed 's/\s//')
if [ ! $CSS_FILE ]; then
echo "No CSS file! - aborting"
exit
fi
if [ ! $JS_FILE ]; then
echo "No JS file! - aborting"
exit
fi
echo "CSS file: $CSS_FILE"
echo "JS file: $JS_FILE"
# Update WCFMPage.PHP references
sed -i "s/index\..*\.css/$CSS_FILE/g" $WCFMPage_PATH
sed -i "s/index\..*\.js/$JS_FILE/g" $WCFMPage_PATH
}
if [ ! $1 ]; then
echo "Missing argument. Must be buildfm, copyfm, build-copyfm or rsync-wc"
exit
fi
buildwcfm() {
npm run build --prefix $WCFM_PATH
}
if [ $1 = "copyfm" ]; then
echo "copyfm"
copyassets
fi
if [ $1 = "buildfm" ]; then
echo "buildfm"
buildwcfm
fi
if [ $1 = "build-copyfm" ]; then
echo "build-copyfm"
buildwcfm
copyassets
fi
rsyncwc() {
rsync -avh --size-only --exclude '.git' --exclude '.github' --exclude='composer.lock' --exclude='scripts' --exclude='vendor/rosell-dk/webp-convert/.git' --exclude='vendor/rosell-dk/webp-convert/.git' --exclude='.gitignore' "$WC_PATH/src/" "$WE_PATH/vendor/rosell-dk/webp-convert/src" --delete
}
if [ $1 = "rsync-wc" ]; then
echo "rsync-wc"
rsyncwc
fi
Instruction for installing development version, for non-developers :)
To install the development version:
- Go to https://wordpress.org/plugins/webp-express/advanced/
- Find the place where it says “Please select a specific version to download”
- Click “Download”
- Browse to /wp-admin/plugin-install.php (ie by going to the the Plugins page and clicking “Add new” button in the top)
- Click “Upload plugin” (button found in the top)
- The rest is easy