=== CloudAnts Image Moderation ===
Contributors: cloudants
Tags: image moderation, nsfw detection, content moderation, media upload, woocommerce
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Auto-scans image uploads against CloudAnts moderation policies and blocks, quarantines, or flags them per your configuration.

== Description ==

CloudAnts Image Moderation hooks into WordPress' core upload handling to
automatically scan every image upload — media library, WooCommerce review
photos, bbPress/BuddyPress attachments, or anything else built on
`wp_handle_upload` — against a CloudAnts moderation policy, without you
writing a line of integration code.

**Policies available:**

* **General Marketplace** — blocks explicit exposure, flags breast/buttocks exposure (swimwear/fashion photos are common and shouldn't auto-block).
* **Dating Profile Photos** — same block thresholds, more lenient flag threshold for breast/buttocks exposure.
* **Classifieds Strict** — no flag tier; any exposure above a low threshold is blocked outright.
* **Custom** — your own per-category thresholds, configured from your CloudAnts dashboard.

**What happens to a flagged or blocked image** is configurable from the
plugin's Settings page:

* A **block** decision is always rejected — the upload fails immediately with a clear error, and the file is removed.
* A **flag** decision can be set to:
    * *Notify admin only* (default) — the upload proceeds, but the site admin is emailed and alerted in wp-admin.
    * *Quarantine* — the upload succeeds but stays hidden (private) until an admin approves or rejects it from the Moderation Log page.
    * *Reject* — treated the same as a block.

= Requirements =

This plugin calls the CloudAnts API with the public URL of each uploaded
image, so **your site must be publicly reachable from the internet** for
scanning to work — it cannot scan images on a purely local/offline
development site. You'll also need a CloudAnts account and API key from
https://cloudants.io/dashboard/api-keys.

== Third-Party Service ==

This plugin sends data to CloudAnts (https://cloudants.io), a third-party
image moderation API, in order to function. Specifically:

* Every time an image is uploaded on your site (and auto-scan is enabled), the plugin sends the **public URL of that image** and your chosen **policy name** to `https://api.cloudants.io/moderate-listing/v1`, and receives back a moderation decision (allow/flag/block) and category scores. No other post content, user data, or site information is sent.
* The "Test Connection" button on the settings page sends your API key to `https://api.cloudants.io/whoami/v1` to verify it and show your plan/quota — this does not send any image data.
* Your CloudAnts API key is stored in your site's own database (`wp_options`) and sent only to `api.cloudants.io`, over HTTPS, as an `Authorization: Bearer` header.

CloudAnts' Terms of Service: https://cloudants.io/terms-of-service
CloudAnts' Privacy Policy: https://cloudants.io/privacy-policy

A CloudAnts account is required for this plugin to function — sign up at https://cloudants.io.

== Installation ==

1. Upload the `cloudants-image-moderation` folder to `/wp-content/plugins/`, or install via the WordPress plugin directory.
2. Activate the plugin through the "Plugins" menu in WordPress.
3. Go to the new **CloudAnts** menu in wp-admin, paste your API key, click "Test Connection" to confirm it's valid, choose a policy and flag action, and save.

== Frequently Asked Questions ==

= Does this work on a local/staging site? =

No — CloudAnts fetches each uploaded image by its public URL to scan it, so the site needs to be reachable from the internet.

= What happens to images uploaded before I installed the plugin? =

Nothing — only new uploads are scanned going forward.

= Does this cost anything? =

Each scan uses one request from your CloudAnts plan's quota, same as calling the API directly.

== Changelog ==

= 1.0.0 =
* Initial release: upload scanning, block/quarantine/notify-admin flag handling, moderation log, settings page with connection test.
