{"id":373529,"date":"2026-09-22T23:30:18","date_gmt":"2026-09-22T23:30:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/content-guard\/"},"modified":"2026-09-22T23:30:02","modified_gmt":"2026-09-22T23:30:02","slug":"catfish-wrangler","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/catfish-wrangler\/","author":23571662,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Catfish Wrangler","header_author":"Packsaddle Software","header_description":"Flags AI-generated\/fraudulent images and scam-pattern text in comments, reviews, and media uploads using the Content Guard API.","assets_banners_color":"","last_updated":"2026-09-22 23:30:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/packsaddlesoftware.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"packsaddlesoftware","date":"2026-09-22 23:30:02","revision":3708244}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings &gt; Catfish Wrangler \u2014 configure your API key and auto-hold behavior.","2":"Comments list with the Catfish Wrangler suspicion badge.","3":"Media Library with the Catfish Wrangler suspicion badge."}},"plugin_section":[],"plugin_tags":[195933,107,12891,1756,599],"plugin_category":[44,54],"plugin_contributors":[282165],"plugin_business_model":[],"class_list":["post-373529","plugin","type-plugin","status-publish","hentry","plugin_tags-ai-content","plugin_tags-comments","plugin_tags-fraud","plugin_tags-moderation","plugin_tags-spam","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-packsaddlesoftware","plugin_committers-packsaddlesoftware"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/catfish-wrangler.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Catfish Wrangler checks new comments, reviews, and uploaded images against the Content Guard API and flags anything suspicious with a color-coded badge in your WordPress admin \u2014 right in the Comments list and the Media Library, alongside content you already review.<\/p>\n\n<p><strong>What it checks for:<\/strong><\/p>\n\n<ul>\n<li>Classic romance-scam language in comments and profile-style text (e.g. \"stationed overseas,\" refusal to video call, requests to move off-platform or send money)<\/li>\n<li>Generic template-style fake review language<\/li>\n<li>Whether an uploaded image looks AI-generated (via a live visual AI-detection model)<\/li>\n<li>Whether an image is missing the camera metadata a real photo would normally have<\/li>\n<li>Whether a profile's photos are inconsistent with each other (some carrying real camera metadata, others not)<\/li>\n<\/ul>\n\n<p><strong>Safe by default.<\/strong> Out of the box, Catfish Wrangler only <em>flags<\/em> \u2014 it never holds or blocks a comment automatically. You review the flagged items yourself. Once you've seen it work correctly on your own site, you can turn on auto-hold (with a configurable sensitivity threshold) from Settings &gt; Catfish Wrangler.<\/p>\n\n<p><strong>Requires an API key.<\/strong> Catfish Wrangler analyzes content using the Content Guard API, a paid, metered service \u2014 this plugin does not work without an account and an API key, which you enter yourself under Settings &gt; Catfish Wrangler. Nothing is sent anywhere until you configure a key.<\/p>\n\n<h4>Why this matters<\/h4>\n\n<p>Dating profiles, marketplace listings, and review sections increasingly attract AI-generated photos and scripted scam text. This plugin gives site owners and moderators a heads-up on suspicious content without having to manually cross-check every submission.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the <strong>Content Guard API<\/strong> to analyze comment\/review text and uploaded images for signs of fraud or AI-generation.<\/p>\n\n<ul>\n<li><strong>What is sent:<\/strong> the text of new comments\/reviews, and newly uploaded image files, are sent to the Content Guard API for analysis.<\/li>\n<li><strong>When:<\/strong> only when this plugin is active and configured with an API key \u2014 every new comment\/review and every new image upload is sent for analysis at the time it's submitted.<\/li>\n<li><strong>Why:<\/strong> to compute the suspicion signals (scam-language patterns, AI-generation likelihood, metadata checks) shown as a badge in your admin area.<\/li>\n<li><strong>Service URL:<\/strong> the API endpoint is configurable under Settings &gt; Catfish Wrangler (defaults to <code>https:\/\/content-guard-production-24a7.up.railway.app<\/code>).<\/li>\n<li><strong>Provider terms:<\/strong> <a href=\"https:\/\/content-guard-production-24a7.up.railway.app\/terms\">Terms of Use<\/a> \/ <a href=\"https:\/\/content-guard-production-24a7.up.railway.app\/privacy\">Privacy &amp; Data Handling<\/a> \u2014 this also discloses that image analysis is partly performed by a sub-processor, Hive Moderation (<a href=\"https:\/\/thehive.ai\">thehive.ai<\/a>), under their own terms.<\/li>\n<\/ul>\n\n<p>No data is sent to the Content Guard API unless you have entered an API key in the plugin settings \u2014 this is an explicit opt-in step.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/catfish-wrangler<\/code>, or install it directly from the WordPress Plugin Directory.<\/li>\n<li>Activate the plugin through the \"Plugins\" screen in WordPress.<\/li>\n<li>Go to Settings &gt; Catfish Wrangler and enter your Content Guard API key (sign up for one at the API's signup endpoint \u2014 see the plugin's support page for details).<\/li>\n<li>Leave \"Automatically hold flagged comments\" off at first, and watch the Catfish Wrangler column in Comments\/Media for a while before turning it on.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20without%20an%20api%20key%3F\"><h3>Does this work without an API key?<\/h3><\/dt>\n<dd><p>No. The plugin needs a Content Guard API key to analyze anything. Without one, it does nothing (fails open \u2014 comments and uploads behave exactly as they would without this plugin installed).<\/p><\/dd>\n<dt id=\"will%20this%20block%20my%20users%27%20comments%3F\"><h3>Will this block my users' comments?<\/h3><\/dt>\n<dd><p>Not by default. Out of the box it only adds a badge to the admin list. It only holds comments for moderation if you explicitly turn on \"Automatically hold flagged comments\" under Settings &gt; Catfish Wrangler.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%20reviews%3F\"><h3>Does this work with WooCommerce reviews?<\/h3><\/dt>\n<dd><p>Yes \u2014 WooCommerce product reviews are stored as WordPress comments, so they're covered automatically.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20api%20is%20unreachable%3F\"><h3>What happens if the API is unreachable?<\/h3><\/dt>\n<dd><p>The plugin fails open: if the Content Guard API can't be reached, comments and uploads are treated exactly as if the plugin weren't installed. Nothing is ever blocked due to an API outage.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: comment\/review text scanning, image upload scanning, flag-only-by-default mode, configurable auto-hold threshold.<\/li>\n<\/ul>","raw_excerpt":"Flags likely AI-generated images and scam-pattern text in comments, reviews, and uploads. Flag-only by default.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/373529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=373529"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/packsaddlesoftware"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=373529"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=373529"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=373529"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=373529"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=373529"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=373529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}