Image Optimizer for XF 2.0

Image Optimizer for XF 2.0 [Paid] 2.1.8

No permission to buy ($29.00)
Looking to move over now that the TH addon is erroring with Kraken more times than working. Are you happy with the move and is this feeling stable now?
That is more likely to be Kraken, than the TH addon.

I had similar issues off and on, and ended up just ditching Kraken for a while before moving to this once my issues with animated gif were settled.
 
Looking to move over now that the TH addon is erroring with Kraken more times than working. Are you happy with the move and is this feeling stable now?
Doing the same here now as the TH addon is erroring twice daily due to TH pulling the access for their server... Of course it doesnt optimise much since the TH one has already done most of the work, however it does seem to be working it's way slowly through them all in the background...
 
A new error was logged after 10 minutes I updated to the latest version.
PHP:
Server error log
ErrorException: [tl] Image Optimizer: Failed to run command. $cmdOutput=[] src/XF/Error.php:77

Generated by: Unknown account Jan 12, 2023 at 9:16 AM

Stack trace
#0 src/XF.php(219): XF\Error->logError('[tl] Image Opti...', false)
#1 src/addons/Truonglv/ImageOptimizer/Images/AbstractImage.php(62): XF::logError('[tl] Image Opti...')
#2 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(202): Truonglv\ImageOptimizer\Images\AbstractImage->optimize('/home/nginx/dom...')
#3 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(123): Truonglv\ImageOptimizer\Job\Optimizer->optimizeImageFile('data://avatars/...', Object(Truonglv\ImageOptimizer\ContentData\Avatar))
#4 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(69): Truonglv\ImageOptimizer\Job\Optimizer->processImages(Array, 'avatar', Object(XF\Timer), 1671868748)
#5 src/XF/Job/Manager.php(260): Truonglv\ImageOptimizer\Job\Optimizer->run(30)
#6 src/XF/Job/Manager.php(202): XF\Job\Manager->runJobInternal(Array, 30)
#7 src/XF/Job/Manager.php(86): XF\Job\Manager->runJobEntry(Array, 30)
#8 src/XF/Cli/Command/RunJobs.php(59): XF\Job\Manager->runQueue(false, 30)
#9 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/XF/Cli/Runner.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 cmd.php(15): XF\Cli\Runner->run()
#15 {main}

Request state
array(1) {
  ["cli"] => string(59) "/cmd.php xf:run-jobs"
}
 
Getting a lot of errors:
Code:
[*]ErrorException: [tl] Image Optimizer: Failed to run command. Optimize file size is 0KB
[*]src/XF/Error.php:77

#0 src/XF.php(219): XF\Error->logError('[tl] Image Opti...', false)
#1 src/addons/Truonglv/ImageOptimizer/Images/AbstractImage.php(69): XF::logError('[tl] Image Opti...')
#2 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(202): Truonglv\ImageOptimizer\Images\AbstractImage->optimize('/home/nginx/dom...')
#3 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(123): Truonglv\ImageOptimizer\Job\Optimizer->optimizeImageFile('internal-data:/...', Object(Truonglv\ImageOptimizer\ContentData\ImageProxy))
#4 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(69): Truonglv\ImageOptimizer\Job\Optimizer->processImages(Array, 'image_proxy', Object(XF\Timer), 5648193)
#5 src/XF/Job/Manager.php(260): Truonglv\ImageOptimizer\Job\Optimizer->run(8)
#6 src/XF/Job/Manager.php(202): XF\Job\Manager->runJobInternal(Array, 8)
#7 src/XF/Job/Manager.php(86): XF\Job\Manager->runJobEntry(Array, 8)
#8 job.php(43): XF\Job\Manager->runQueue(false, 8)
#9 {main}

Edit:
Checked binary paths and for some reason the gifsicle path was changed.
Fixed path and now it seems to run okay.
 
Last edited:
Do you guys notice all avatars are not optimized anymore?
Old and new sizes are always the same.

1673666837237.webp

Attachments are still being optimized.
1673666924116.webp
 
Getting a lot of errors:
Code:
[*]ErrorException: [tl] Image Optimizer: Failed to run command. Optimize file size is 0KB
[*]src/XF/Error.php:77

#0 src/XF.php(219): XF\Error->logError('[tl] Image Opti...', false)
#1 src/addons/Truonglv/ImageOptimizer/Images/AbstractImage.php(69): XF::logError('[tl] Image Opti...')
#2 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(202): Truonglv\ImageOptimizer\Images\AbstractImage->optimize('/home/nginx/dom...')
#3 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(123): Truonglv\ImageOptimizer\Job\Optimizer->optimizeImageFile('internal-data:/...', Object(Truonglv\ImageOptimizer\ContentData\ImageProxy))
#4 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(69): Truonglv\ImageOptimizer\Job\Optimizer->processImages(Array, 'image_proxy', Object(XF\Timer), 5648193)
#5 src/XF/Job/Manager.php(260): Truonglv\ImageOptimizer\Job\Optimizer->run(8)
#6 src/XF/Job/Manager.php(202): XF\Job\Manager->runJobInternal(Array, 8)
#7 src/XF/Job/Manager.php(86): XF\Job\Manager->runJobEntry(Array, 8)
#8 job.php(43): XF\Job\Manager->runQueue(false, 8)
#9 {main}

Edit:
Checked binary paths and for some reason the gifsicle path was changed.
Fixed path and now it seems to run okay.
gifsicle field is empty on my installation (in purpose – I don't want gifs to be optimized), and I still get this error
 
Just noticed a similar issue - Seem to have rectified it by uninstalling and re-installing.
 
By doing this, the addon will start from zero and optimize all your images from the start.
This task will be done for more than a month with a million attachments.
If you make a note of your "last run info" in logs, you can click on the "update last run info" and put the last figures in - which should stop you from re-indexing again (i didnt do this as changed a couple of parameters, however hopefully @truonglv can confirm this..
 
  • Like
Reactions: rdn
Just noticed @truonglv ... please ignore my above.. started well... however back to the errors i was seeing above...

  • ErrorException: [tl] Image Optimizer: Failed to run command. Optimize file size is 0KB
  • src/XF/Error.php:77
  • Generated by: Unknown account
  • Jan 22, 2023 at 7:55 PM

Stack trace​

#0 src/XF.php(219): XF\Error->logError('[tl] Image Opti...', false)
#1 src/addons/Truonglv/ImageOptimizer/Images/AbstractImage.php(69): XF::logError('[tl] Image Opti...')
#2 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(202): Truonglv\ImageOptimizer\Images\AbstractImage->optimize('/home/pinball/p...')
#3 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(123): Truonglv\ImageOptimizer\Job\Optimizer->optimizeImageFile('internal-data:/...', Object(Truonglv\ImageOptimizer\ContentData\AttachmentData))
#4 src/addons/Truonglv/ImageOptimizer/Job/Optimizer.php(69): Truonglv\ImageOptimizer\Job\Optimizer->processImages(Array, 'attachment_data', Object(XF\Timer), 13895)
#5 src/XF/Job/Manager.php(260): Truonglv\ImageOptimizer\Job\Optimizer->run(8)
#6 src/XF/Job/Manager.php(202): XF\Job\Manager->runJobInternal(Array, 8)
#7 src/XF/Job/Manager.php(86): XF\Job\Manager->runJobEntry(Array, 8)
#8 job.php(43): XF\Job\Manager->runQueue(false, 8)
#9 {main}

719 Since Friday in my Server error log...
 
Last edited:
Two questions...

  1. Any comments on the security implications of having a PHP script with exec privs parsing images with potential 0-days in them? Is there a suggestion for a good way to mitigate the risk / secure the open source binaries that are doing the parsing? I'm fond of the API driven (kraken/resmush/etc) approach specifically for this reason, but would prefer to have this done on-server (or maybe a separate chroot'd server) so I'm not reliant on the whim of yet another SAAS/IAAS. Resmush does seem to go down a lot.
  2. Any plans to support HEIC -> JPG conversion?
 
Last edited:
  • Like
Reactions: rdn
Top Bottom