This plugin uses the Google Cloud Vision API to restrict uploading explicit images to the forum. It accounts for all the images uploaded i.e. avatars, logos, etc.
It uses the upload error popup to display a message explaining which violations resulted in the restriction of the image upload.
The acceptable limits can be set via the site settings.
Copy the result and paste it in app.yml in front of GOOGLE_PRIVATE_KEY wrapping it in single quotes ' ' .
Now follow the regular steps of installing the plugin.
Plugin Settings
if_adult_max_acceptable: Maximum acceptable level of the category adult if_spoof_max_acceptable: Maximum acceptable level of the category spoof if_medical_max_acceptable: Maximum acceptable level of the category medical if_violence_max_acceptable: Maximum acceptable level of the category violence if_racy_max_acceptable: Maximum acceptable level of the category racy
I made this PR https://github.com/discourse/discourse/pull/10605 because I realized that the upload error popup wouldn’t display if there’s was a rails side exception while uploading avatars/logos. It works well while uploading from composer. I thought it would be a nice upstream change to incorporate.
Great, thanks for your help @fzngagan making this possible, was a pleasure working with you.
For all communities that have child-safe COPPA requirements or want to stay safe in terms of Adsense, or simply don’t want to have gore or nude images anywhere this plugin is a must-have.
I had tried the stackoverflow dataset for tags prediction , after that I tried same code for discourse dataset, but due to less volume of data at discourse that code didn’t work here
I’ve tried to install it on a test instance but seems there is a gem issue. Failed the rebuild. Hopefully it is fixable. Maybe these gems just deprecated…
rake aborted!
Gem::LoadError: can't activate google-protobuf-3.13.0-x86_64-linux, already activated google-protobuf-4.27.3-x86_64-linux (Gem::LoadError)
/var/www/discourse/lib/plugin_gem.rb:25:in `load'
/var/www/discourse/lib/plugin/instance.rb:835:in `gem'
/var/www/discourse/plugins/discourse-image-filter/plugin.rb:12:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:778:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:778:in `activate!'
/var/www/discourse/lib/discourse.rb:348:in `block in activate_plugins!'
/var/www/discourse/lib/discourse.rb:345:in `each'
/var/www/discourse/lib/discourse.rb:345:in `activate_plugins!'
/var/www/discourse/config/application.rb:231:in `block in <class:Application>'
/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
/var/www/discourse/config/application.rb:231:in `<class:Application>'
/var/www/discourse/config/application.rb:75:in `<module:Discourse>'
/var/www/discourse/config/application.rb:74:in `<top (required)>'
/var/www/discourse/Rakefile:7:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(See full trace by running task with --trace)
I, [2024-08-02T16:48:02.872895 #1] INFO -- : gem install os -v 1.1.1 -i /var/www/discourse/plugins/discourse-image-filter/gems/3.3.3 --no-document --ignore-dependencies --no-user-install
Successfully installed os-1.1.1
1 gem installed
gem install google-protobuf -v 3.13.0 -i /var/www/discourse/plugins/discourse-image-filter/gems/3.3.3 --no-document --ignore-dependencies --no-user-install
Successfully installed google-protobuf-3.13.0-x86_64-linux
1 gem installed
I, [2024-08-02T16:48:02.886926 #1] INFO -- : Terminating async processes
I, [2024-08-02T16:48:02.888160 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 36
I, [2024-08-02T16:48:02.888588 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 98
2024-08-02 16:48:02.888 UTC [36] LOG: received fast shutdown request
98:signal-handler (1722617282) Received SIGTERM scheduling shutdown...
2024-08-02 16:48:02.892 UTC [36] LOG: aborting any active transactions
98:M 02 Aug 2024 16:48:02.896 # User requested shutdown...
98:M 02 Aug 2024 16:48:02.897 * Saving the final RDB snapshot before exiting.
2024-08-02 16:48:02.906 UTC [36] LOG: background worker "logical replication launcher" (PID 51) exited with exit code 1
2024-08-02 16:48:02.909 UTC [46] LOG: shutting down
98:M 02 Aug 2024 16:48:02.939 * DB saved on disk
98:M 02 Aug 2024 16:48:02.939 # Redis is now ready to exit, bye bye...
2024-08-02 16:48:02.949 UTC [36] LOG: database system is shut down
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 571 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
9213a43b80e800c6f2b1d0adc0663ec82a483b860f0302b8ebabc8a3b2bb0619