[XB] Adult Content Filter

[XB] Adult Content Filter [Paid] 2.2.1 Patch Level 3

No permission to buy ($20.00)
I also noticed when blurred, images are wider, ie not totally responsive, and cause horizontal scrollbars on mobile - iOS Safari.

EDIT: aha, fixed in style properties.
 
Last edited:
Working nicely, but I have a false positive that is blurred and so shows as status moderated as expected:

Screenshot 2025-05-06 at 13.52.24.webp

Maybe I'm being a bit thick, but where do I find how to approve it? (It's not in approval queue)
 
Maybe I'm being a bit thick, but where do I find how to approve it? (It's not in approval queue)
This displays the action taken on the content.
The status in the NSFW log will not change once the content has been approved or rejected.
 
This displays the action taken on the content.
The status in the NSFW log will not change once the content has been approved or rejected.
but how do I then mark the (wrongly nsfw attributed) blurred image as safe, so it is unblurred?
 
Maybe it exists already, but if not an option to change the blur amount? Some images are still distinguishable so it'd be nice to increase the blur if necessary.
 
I got this error today. Is this anything to be concerned about?

Code:
ErrorException: Sightengine Error 400: Image too big, should be less than 12 megabytes src/XF/Error.php:81
Generated by: Mix O Lydian Aug 27, 2025 at 7:25 AM
Stack trace
#0 src/XF.php(266): XF\Error->logError('Sightengine Err...', false)
#1 src/addons/OzzModz/AdultContent/Util/SightengineApi.php(72): XF::logError('Sightengine Err...')
#2 src/addons/OzzModz/AdultContent/Util/SightengineApi.php(31): OzzModz\AdultContent\Util\SightengineApi->request('POST', 'https://api.sig...', Array)
#3 src/addons/OzzModz/AdultContent/NsfwDetector/Sightengine.php(66): OzzModz\AdultContent\Util\SightengineApi->checkFile(Array, '/tmp/php8LqkYN')
#4 src/addons/OzzModz/AdultContent/NsfwDetector/AbstractDetector.php(34): OzzModz\AdultContent\NsfwDetector\Sightengine->analyzeFile(Object(XF\FileWrapper))
#5 src/addons/OzzModz/AdultContent/Service/Checker.php(97): OzzModz\AdultContent\NsfwDetector\AbstractDetector->checkFile(Object(XF\FileWrapper))
#6 src/addons/OzzModz/AdultContent/Service/Checker.php(114): OzzModz\AdultContent\Service\Checker->checkFile(Object(XF\FileWrapper), NULL)
#7 src/addons/OzzModz/AdultContent/Service/ImageUploadNsfwCheckServiceTrait.php(17): OzzModz\AdultContent\Service\Checker->canUploadFile(Object(XF\FileWrapper), Object(SV\ConversationEssentials\XF\Entity\User), NULL)
#8 src/addons/OzzModz/AdultContent/XF/Service/User/Avatar.php(13): OzzModz\AdultContent\XF\Service\User\Avatar->assertCanSetNsfwImageFromUpload('avatar', Object(SV\ConversationEssentials\XF\Entity\User), Object(SV\AttachmentImprovements\XF\Http\Upload))
#9 src/XF/Pub/Controller/AccountController.php(607): OzzModz\AdultContent\XF\Service\User\Avatar->setImageFromUpload(Object(SV\AttachmentImprovements\XF\Http\Upload))
#10 src/XF/Mvc/Dispatcher.php(362): XF\Pub\Controller\AccountController->actionAvatar(Object(XF\Mvc\ParameterBag))
#11 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XF:Account', 'Avatar', Object(XF\Mvc\RouteMatch), Object(SV\ConversationEssentials\XF\Pub\Controller\Account), NULL)
#12 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\ConversationEssentials\XF\Pub\Controller\Account), NULL)
#13 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#14 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#15 src/XF.php(806): XF\App->run()
#16 index.php(23): XF::runApp('XF\\Pub\\App')
#17 {main}
Request state
array(4) {
  ["url"] => string(15) "/account/avatar"
  ["referrer"] => string(52) "https://cafesaxophone.com/members/mix-o-lydian.9469/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(7) {
    ["_xfToken"] => string(8) "********"
    ["avatar_crop_x"] => string(1) "0"
    ["avatar_crop_y"] => string(2) "11"
    ["use_custom"] => string(1) "1"
    ["_xfResponseType"] => string(4) "json"
    ["_xfWithData"] => string(1) "1"
    ["_xfRequestUri"] => string(27) "/members/mix-o-lydian.9469/"
  }
}
 
Appears to be causing many more errors:

Code:
ErrorException: [E_WARNING] filesize(): stat failed for /home/caf/public_html/internal_data/temp/a4ff627612bed27b58a149c01850453e-6912dedf1e4fd.temp src/XF/Service/ImageProxyService.php:178
Generated by: Unknown account Nov 11, 2025 at 6:59 AM
Stack trace
#0 [internal function]: XF::handlePhpError(2, '[E_WARNING] fil...', '/home/caf/publi...', 178)
#1 src/XF/Service/ImageProxyService.php(178): filesize('/home/caf/publi...')
#2 src/XF/Service/ImageProxyService.php(108): XF\Service\ImageProxyService->fetchImageDataFromUrl('https://www.mus...')
#3 src/XF/Service/ImageProxyService.php(43): XF\Service\ImageProxyService->refetchImage(Object(XF\Entity\ImageProxy))
#4 src/XF/Proxy/Controller.php(128): XF\Service\ImageProxyService->getImage('https://www.mus...')
#5 proxy.php(36): XF\Proxy\Controller->outputImage('https://www.mus...', '9c64090bdff48d7...')
#6 {main}
Request state
array(4) {
  ["url"] => string(157) "/proxy.php?image=https%3A%2F%2Fwww.musicnotes.com%2Fimages%2Fproductimages%2Flarge%2Fmtd%2FMN0099322.gif&hash=9c64090bdff48d73d6927283aa069fb8&return_error=1"
  ["referrer"] => bool(false)
  ["_GET"] => array(3) {
    ["image"] => string(71) "https://www.musicnotes.com/images/productimages/large/mtd/MN0099322.gif"
    ["hash"] => string(32) "9c64090bdff48d73d6927283aa069fb8"
    ["return_error"] => string(1) "1"
  }
  ["_POST"] => array(0) {
  }
}
 
Appears to be causing many more errors:

Code:
ErrorException: [E_WARNING] filesize(): stat failed for /home/caf/public_html/internal_data/temp/a4ff627612bed27b58a149c01850453e-6912dedf1e4fd.temp src/XF/Service/ImageProxyService.php:178
Generated by: Unknown account Nov 11, 2025 at 6:59 AM
Stack trace
#0 [internal function]: XF::handlePhpError(2, '[E_WARNING] fil...', '/home/caf/publi...', 178)
#1 src/XF/Service/ImageProxyService.php(178): filesize('/home/caf/publi...')
#2 src/XF/Service/ImageProxyService.php(108): XF\Service\ImageProxyService->fetchImageDataFromUrl('https://www.mus...')
#3 src/XF/Service/ImageProxyService.php(43): XF\Service\ImageProxyService->refetchImage(Object(XF\Entity\ImageProxy))
#4 src/XF/Proxy/Controller.php(128): XF\Service\ImageProxyService->getImage('https://www.mus...')
#5 proxy.php(36): XF\Proxy\Controller->outputImage('https://www.mus...', '9c64090bdff48d7...')
#6 {main}
Request state
array(4) {
  ["url"] => string(157) "/proxy.php?image=https%3A%2F%2Fwww.musicnotes.com%2Fimages%2Fproductimages%2Flarge%2Fmtd%2FMN0099322.gif&hash=9c64090bdff48d73d6927283aa069fb8&return_error=1"
  ["referrer"] => bool(false)
  ["_GET"] => array(3) {
    ["image"] => string(71) "https://www.musicnotes.com/images/productimages/large/mtd/MN0099322.gif"
    ["hash"] => string(32) "9c64090bdff48d73d6927283aa069fb8"
    ["return_error"] => string(1) "1"
  }
  ["_POST"] => array(0) {
  }
}
Not related to this add-on
The error indicates the proxied image file doesn’t appear to exist in your file system


I got this error today. Is this anything to be concerned about?

Code:
ErrorException: Sightengine Error 400: Image too big, should be less than 12 megabytes src/XF/Error.php:81
Generated by: Mix O Lydian Aug 27, 2025 at 7:25 AM
Stack trace
#0 src/XF.php(266): XF\Error->logError('Sightengine Err...', false)
#1 src/addons/OzzModz/AdultContent/Util/SightengineApi.php(72): XF::logError('Sightengine Err...')
#2 src/addons/OzzModz/AdultContent/Util/SightengineApi.php(31): OzzModz\AdultContent\Util\SightengineApi->request('POST', 'https://api.sig...', Array)
#3 src/addons/OzzModz/AdultContent/NsfwDetector/Sightengine.php(66): OzzModz\AdultContent\Util\SightengineApi->checkFile(Array, '/tmp/php8LqkYN')
#4 src/addons/OzzModz/AdultContent/NsfwDetector/AbstractDetector.php(34): OzzModz\AdultContent\NsfwDetector\Sightengine->analyzeFile(Object(XF\FileWrapper))
#5 src/addons/OzzModz/AdultContent/Service/Checker.php(97): OzzModz\AdultContent\NsfwDetector\AbstractDetector->checkFile(Object(XF\FileWrapper))
#6 src/addons/OzzModz/AdultContent/Service/Checker.php(114): OzzModz\AdultContent\Service\Checker->checkFile(Object(XF\FileWrapper), NULL)
#7 src/addons/OzzModz/AdultContent/Service/ImageUploadNsfwCheckServiceTrait.php(17): OzzModz\AdultContent\Service\Checker->canUploadFile(Object(XF\FileWrapper), Object(SV\ConversationEssentials\XF\Entity\User), NULL)
#8 src/addons/OzzModz/AdultContent/XF/Service/User/Avatar.php(13): OzzModz\AdultContent\XF\Service\User\Avatar->assertCanSetNsfwImageFromUpload('avatar', Object(SV\ConversationEssentials\XF\Entity\User), Object(SV\AttachmentImprovements\XF\Http\Upload))
#9 src/XF/Pub/Controller/AccountController.php(607): OzzModz\AdultContent\XF\Service\User\Avatar->setImageFromUpload(Object(SV\AttachmentImprovements\XF\Http\Upload))
#10 src/XF/Mvc/Dispatcher.php(362): XF\Pub\Controller\AccountController->actionAvatar(Object(XF\Mvc\ParameterBag))
#11 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XF:Account', 'Avatar', Object(XF\Mvc\RouteMatch), Object(SV\ConversationEssentials\XF\Pub\Controller\Account), NULL)
#12 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\ConversationEssentials\XF\Pub\Controller\Account), NULL)
#13 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#14 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#15 src/XF.php(806): XF\App->run()
#16 index.php(23): XF::runApp('XF\\Pub\\App')
#17 {main}
Request state
array(4) {
  ["url"] => string(15) "/account/avatar"
  ["referrer"] => string(52) "https://cafesaxophone.com/members/mix-o-lydian.9469/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(7) {
    ["_xfToken"] => string(8) "********"
    ["avatar_crop_x"] => string(1) "0"
    ["avatar_crop_y"] => string(2) "11"
    ["use_custom"] => string(1) "1"
    ["_xfResponseType"] => string(4) "json"
    ["_xfWithData"] => string(1) "1"
    ["_xfRequestUri"] => string(27) "/members/mix-o-lydian.9469/"
  }
}
This can be ignored.
But I will add an option to skip checking such large files.
 
Not related to this add-on
The error indicates the proxied image file doesn’t appear to exist in your file system
OK but the errors stop as soon as I disable the addon. I accept if you say it isn’t related to the addon but do you know what I need to do to stop the errors? Because so far the only fix I found was to disable the addon.
 
Last edited:
Not related to this add-on
The error indicates the proxied image file doesn’t appear to exist in your file system
The images are definitely in the file system, e.g.:

Rich (BB code):
ErrorException: [E_WARNING] filesize(): stat failed for /home/caf/public_html/internal_data/temp/a4ff627612bed27b58a149c01850453e-6912dedf1e4fd.temp src/XF/Service/ImageProxyService.php:178
Generated by: Unknown account Nov 11, 2025 at 6:59 AM
Stack trace
#0 [internal function]: XF::handlePhpError(2, '[E_WARNING] fil...', '/home/caf/publi...', 178)
#1 src/XF/Service/ImageProxyService.php(178): filesize('/home/caf/publi...')
#2 src/XF/Service/ImageProxyService.php(108): XF\Service\ImageProxyService->fetchImageDataFromUrl('https://www.mus...')
#3 src/XF/Service/ImageProxyService.php(43): XF\Service\ImageProxyService->refetchImage(Object(XF\Entity\ImageProxy))
#4 src/XF/Proxy/Controller.php(128): XF\Service\ImageProxyService->getImage('https://www.mus...')
#5 proxy.php(36): XF\Proxy\Controller->outputImage('https://www.mus...', '9c64090bdff48d7...')
#6 {main}
Request state
array(4) {
  ["url"] => string(157) "/proxy.php?image=https%3A%2F%2Fwww.musicnotes.com%2Fimages%2Fproductimages%2Flarge%2Fmtd%2FMN0099322.gif&hash=9c64090bdff48d73d6927283aa069fb8&return_error=1"
  ["referrer"] => bool(false)
  ["_GET"] => array(3) {
    ["image"] => string(71) "https://www.musicnotes.com/images/productimages/large/mtd/MN0099322.gif"
    ["hash"] => string(32) "9c64090bdff48d73d6927283aa069fb8"
    ["return_error"] => string(1) "1"
  }
  ["_POST"] => array(0) {
  }
}

Screenshot 2025-11-15 at 10.08.47.webp

I'm not able to understand how it can not be related to the addon. After re-enabling the addon I get the errors (almost 1 every minute). Didsable the addon and no erroros.

All proxied images referenced appear to be showing in the logs
 
Back
Top Bottom