<?php namespace App\Servers\Safe;

    /**
     * 文本内容安全
     * 
     */
	class TextModeration{

        /**
         * 获取配置
         * 
         * @param       Array   $config     配置项
         * 
         */
        public function getConfig(){
            // 链式操作
            return                  $this->config;
        }

        /**
         * 本地检测
         * 
         * @param       String      $content    检测内容
         * 
         */
        public function localCheck($content){
            // 结果
            $result    = ['suggestion'=>'Pass','keywords'=>[]];
            // 组合路径
            $file      = resource_path('js').'/sensitive_words.json';
            // 返回结果
            if( !file_exists($file) ) return $result;
            // 如果存在文件
            $file      = file_get_contents($file);
            // 解析数据库
            $stop      = json_decode($file,true);
            // 返回结果
            if( !$stop ) return $result;
            // 如果是字符串
            if( !is_array($stop) )  return $result;
            // 如果没有文件
            foreach ($stop as $value) {
                // 没有字符
                if( empty($value['words']) ) continue;
                // 返回结果
                if( stripos('$'.$content,$value['words']) > 0 ) {
                    $result['suggestion'] = 'Local';
                    $result['keywords'][] = $value['words'];
                }
            }
            // 返回结果
            return      $result;
        }

        /**
         * @param       String      $content    检测内容
         * 
         * 
         */
        public function textModeration($content){
            try {
                // 替换
                $content        = str_ireplace([' ',';',':','-','=','+','*','^','%','#','@','!','~','`','(',')','?','/','&',';',',','"',"'",'<','>','.','[',']','|',"\\",'{','}'],'',$content);
                // 如果是空字符串
                if( !$content ) return ['suggestion'=>'Empty','keywords'=>[]];
                // 先检测本地的
                $result         = $this->localCheck($content);
                // 错误
                if ( $result['suggestion'] != 'Pass' )  return $result;
                // 返回结果
                return          $result;
            }catch(TencentCloudSDKException $e) {
                // 如果错误
                return          ['error'=>$e->getMessage()];
            }
        }

    }