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)
}