func()

in reviewer-baidu/basic.go [67:101]


func (r *Reviewer) Review(content *plugin.ReviewContent) (result *plugin.ReviewResult) {
	result = &plugin.ReviewResult{Approved: true}
	if len(r.Config.APIKey) == 0 {
		return result
	}
	// If the author is admin, no need to review
	if content.Author.Role > 1 {
		return result
	}

	client := censor.NewClient(r.Config.APIKey, r.Config.SecretKey)
	textCensorResult, err := client.TextCensor(content.Title+"\n"+content.Content, content.IP)
	if err != nil {
		log.Errorf("Request baidu to check failed: %v", err)
		return handleReviewError(content, plugin.ReviewStatusNeedReview)
	}

	var jsonMap map[string]interface{}
	err = json.Unmarshal([]byte(textCensorResult), &jsonMap)
	if err != nil {
		return handleReviewError(content, plugin.ReviewStatusNeedReview)
	}

	if conclusionType, ok := jsonMap["conclusionType"].(float64); ok {
		if conclusionType == 1.0 {
			return result
		}
	}

	if r.Config.SpamFiltering == "delete" {
		return handleReviewError(content, plugin.ReviewStatusDeleteDirectly)
	}

	return handleReviewError(content, plugin.ReviewStatusNeedReview)
}