Source: sdk-file/src/qq/censor.js

const constants = require('core-module/constants')
const HError = require('core-module/HError')
const utils = require('core-module/utils')

module.exports = BaaS => {
  /**
   * 检测违规图片
   * @function
   * @memberof BaaS
   * @param {string} filePath 带检测的图片路径
   * @return {Promise<any>}
   */
  const censorImage = filePath => {
    return BaaS.getAuthToken().then(authToken => {
      return new Promise((resolve, reject) => {
        qq.uploadFile({
          url: BaaS._polyfill.getAPIHost() + BaaS._config.API.QQ.CENSOR_IMAGE,
          filePath: filePath,
          name: constants.UPLOAD.UPLOAD_FILE_KEY,
          header: {
            'Authorization': constants.UPLOAD.HEADER_AUTH_VALUE + authToken,
            'X-Hydrogen-Client-Version': BaaS._config.VERSION,
            'X-Hydrogen-Client-Platform': utils.getSysPlatform(),
            'X-Hydrogen-Client-ID': BaaS._config.CLIENT_ID,
            'User-Agent': constants.UPLOAD.UA,
          },
          success: res => {
            let {statusCode, data} = res

            if (parseInt(statusCode) !== constants.STATUS_CODE.SUCCESS) {
              return reject(res)
            }
            resolve(JSON.parse(data))
          },
          fail: () => {
            BaaS.request.qqRequestFail(reject)
          }
        })
      })
    })
  }

  /**
   * 检测违规文本
   * @function
   * @memberof BaaS
   * @param {string} text 带检测的文本内容
   * @return {Promise<any>}
   */
  const censorText = text => {
    if (!text || typeof text !== 'string') {
      return Promise.reject(new HError(605))
    }
    return BaaS._baasRequest({
      url: BaaS._config.API.QQ.CENSOR_MSG,
      method: 'POST',
      data: {
        content: text
      }
    })
  }

  BaaS.censorImage = censorImage
  BaaS.censorText = censorText
}