Loading... # Chevereto 一个国外的图库程序,很有名的,又免费版和收费版,这里给它增加图像审核功能。 # 更新 关于收费版提示需要授权的问题,因为我是用免费版测试的,在免费版的 dashboard.php 文件里面 有个 free_version_waring 验证,收费版的没有,所以会导致提示重新授权问题。新的文件已经打包了 打包时少插入了一条sql 语句,导致会出错 INSERT INTO `chevereto`.`chv_settings`( `setting_name`, `setting_value`, `setting_default`, `setting_typeset`) VALUES ('is_censor', '1' ,'1', 'bool'); # 申请百度AI审核 申请地址:[https://console.bce.baidu.com/ai/#/ai/antiporn/app/list][1] 需要注册百度智能云的账号,然后去创建应用,可以获得 appid,appkey,appseret,需要用到这三个参数。 申请好了之后就可以看下面的教程了 ![1.png][2] # 开始修改... 需要用到 4 个文件,`class.aipbase.php` `class.aiphttpclient.php` `class.aiphttpUril.php` `class.imagecensor.php` , 这四个文件就是百度官方提供的 SDK ,我修改了一下。 需要把这 4 个文件上传到 `Chevereto` 程序下的 `app/lib/classes` 文件夹下. > 就是把官方 SDK 的文件名改成了 Chevereto class.xxx.php 的明明规则,然后加上 `namespace CHV;` 命名空间。 > 官方SDK 下载地址:https://ai.baidu.com/ai-doc/ANTIPORN/5k3h6xf2t ![2.png][3] 然后在 `class.upload.php` 文件里面修改,添加这个方法到里面去。(后面会打包文件) > PS **isValidCensor** 这个方法就是审核图像的,只有通过验证才会上传文件,没有通过的话会直接抛出异常(包括图片审核失败,不合规,疑似) ```php /** 图像审核 * @throws UploadException */ protected function isValidCensor() { $censor_status = Settings::get("is_censor"); if($censor_status == 1){ $censor = new Imagecensor(); if ($this->type == 'file') { $rep = $censor->imageCensorUserDefined(file_get_contents($this->source['tmp_name'])); } else if ($this->type == 'url') { $rep = $censor->imageCensorUserDefined($this->source); } if (array_key_exists('error_code', $rep)) throw new UploadException("图片审核失败", 201); $conclusionType = $rep['conclusionType'];//1:合规,2:不合规,3:疑似,4:审核失败 if ($conclusionType == 4) { throw new UploadException("图片审核失败", 201); } else if ($conclusionType > 1) { throw new UploadException("图片违规", 201); } } } ``` 然后在 `class.upload.php` 的 `exec` 方法里面添加 一行 `$this->isValidCensor(); // Exception 2 图片审核` ![3.png][4] 然后需要修改 控制表文件。 在 `app/themes/Peafowl/views/dashboard.php` 文件里面 在里面搜索一下 `Cookie law compliance` 然后添加下面代码: ![4.png][5] ```php <!-- 增加图片审核--> <div class="input-label"> <label for="enable_cookie_law"><?php _se('是否开启图片审核'); ?></label> <div class="c5 phablet-c1"><select type="text" name="is_censor" id="is_censor" class="text-input"> <?php echo CHV\Render\get_select_options_html([1 => _s('Enabled'), 0 => _s('Disabled')], CHV\Settings::get('is_censor')); ?> </select></div> <div class="input-below"><?php _se('是否开启图片审核'); ?></div> </div> <div class="input-label"> <label for="sdk_pup_url">百度AI APP_ID</label> <div class="c9 phablet-c1"><input type="text" name="baidu_app_id" id="baidu_app_id" class="text-input" value="<?php echo CHV\Settings::get('baidu_app_id', true); ?>" placeholder="<?php _se('Empty'); ?>"></div> <div class="input-below input-warning red-warning"><?php echo get_input_errors()['baidu_app_id']; ?></div> <div class="input-below"><?php _se('百度AI 平台的 app_id,获取地址: https://console.bce.baidu.com/ai/'); ?></div> </div> <div class="input-label"> <label for="sdk_pup_url">百度AI APP_KEY</label> <div class="c9 phablet-c1"><input type="text" name="baidu_app_key" id="baidu_app_key" class="text-input" value="<?php echo CHV\Settings::get('baidu_app_key', true); ?>" placeholder="<?php _se('Empty'); ?>"></div> <div class="input-below input-warning red-warning"><?php echo get_input_errors()['baidu_app_key']; ?></div> <div class="input-below"><?php _se('百度AI 平台的 app_key,获取地址: https://console.bce.baidu.com/ai/'); ?></div> </div> <div class="input-label"> <label for="sdk_pup_url">百度AI APP_SECRET</label> <div class="c9 phablet-c1"><input type="text" name="baidu_app_secret" id="baidu_app_secret" class="text-input" value="<?php echo CHV\Settings::get('baidu_app_secret', true); ?>" placeholder="<?php _se('Empty'); ?>"></div> <div class="input-below input-warning red-warning"><?php echo get_input_errors()['baidu_app_secret']; ?></div> <div class="input-below"><?php _se('百度AI 平台的 app_secret,获取地址: https://console.bce.baidu.com/ai/'); ?></div> </div> ``` 最后需要插入数据库 SQL ``` INSERT INTO `chevereto`.`chv_settings`( `setting_name`, `setting_value`, `setting_default`, `setting_typeset`) VALUES ('is_censor', '1','1', 'bool'); INSERT INTO `chevereto`.`chv_settings`( `setting_name`, `setting_value`, `setting_default`, `setting_typeset`) VALUES ( 'baidu_app_id', '', '', 'string'); INSERT INTO `chevereto`.`chv_settings`( `setting_name`, `setting_value`, `setting_default`, `setting_typeset`) VALUES ( 'baidu_app_key', '', '', 'string'); INSERT INTO `chevereto`.`chv_settings`(`setting_name`, `setting_value`, `setting_default`, `setting_typeset`) VALUES (,'baidu_app_secret', '', '', 'string'); ``` 插入好了之后就可以在后台设置 图像审核了 ![5.png][6] ![6.png][7] # 下载文件 文件已更新. SQL里面少插入了条SQL语句 下载地址: https://www.lanzous.com/ia41b8j [1]: https://console.bce.baidu.com/ai/#/ai/antiporn/app/list [2]: https://i.alone88.cn/usr/uploads/2020/03/812028680.png [3]: https://i.alone88.cn/usr/uploads/2020/03/2592190728.png [4]: https://i.alone88.cn/usr/uploads/2020/03/422667993.png [5]: https://i.alone88.cn/usr/uploads/2020/03/327258858.png [6]: https://i.alone88.cn/usr/uploads/2020/03/1952805888.png [7]: https://i.alone88.cn/usr/uploads/2020/03/4236316156.png Last modification:March 10th, 2020 at 02:23 pm © 允许规范转载 Support 如果觉得我的文章对你有用,请随意赞赏 ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat
检测出后会自动删除嘛?
自动删除的
[...]原理看这里:https://alone88.cn/archives/796.html[...]