This commit is contained in:
eson 2018-12-28 03:29:34 +08:00
parent 274355f415
commit cbad28f7c6
4 changed files with 55 additions and 36 deletions

View File

@ -2,7 +2,6 @@ package main
import ( import (
"log" "log"
"regexp"
"github.com/tidwall/gjson" "github.com/tidwall/gjson"
@ -39,19 +38,28 @@ func (te *TaskEx) Execute(glocal map[string]interface{}) imitater.ITask {
} }
var adDataList []string var adDataList []string
rule := regexp.MustCompile(`\\"label\\"\:\\"广告\\"|\\"label_style\\"\:3`)
if rule.MatchString(resp.Content()) { if gjson.Valid(resp.Content()) {
if gjson.Valid(resp.Content()) { P := gjson.Parse(resp.Content())
P := gjson.Parse(resp.Content()) data := P.Get(`data`)
gADDate := P.Get(`data.ordered_info.#.ad_data`) if data.Exists() {
if gADDate.Exists() { adData := data.Get(`ordered_info.#.ad_data`)
for _, result := range gADDate.Array() { if adData.Exists() {
for _, result := range adData.Array() {
adDataList = append(adDataList, result.String()) adDataList = append(adDataList, result.String())
} }
} }
} else {
log.Println("be careful:", resp.Content()) relatedVideo := data.Get(`related_video_toutiao.#[show_tag = "广告"]#`)
if adData.Exists() {
for _, result := range relatedVideo.Array() {
adDataList = append(adDataList, result.String())
}
}
} }
} else {
log.Println("be careful:", resp.Content())
} }
if imitater.ADDataSave(te, te.db, adDataList) { if imitater.ADDataSave(te, te.db, adDataList) {

View File

@ -2,31 +2,45 @@ package main
import ( import (
"io/ioutil" "io/ioutil"
"log"
"regexp"
"testing" "testing"
"github.com/tidwall/gjson" "github.com/tidwall/gjson"
) )
func TestTaskEx_Execute(t *testing.T) { func TestTaskEx_Execute(t *testing.T) {
rule := regexp.MustCompile(`\\"label\\"\:\\"广告\\"|\\"label_style\\"\:3`) data, err := ioutil.ReadFile("../ssss.json")
data, err := ioutil.ReadFile("../s.json")
if err != nil { if err != nil {
panic(err) panic(err)
} }
log.Println(rule.MatchString(string(data)))
log.Println(gjson.Valid(string(data)))
P := gjson.Parse(string(data)) var adDataList []string
gADDate := P.Get(`data.ordered_info.#.ad_data`) if gjson.Valid(string(data)) {
log.Println(gADDate.Exists(), gADDate.IsArray()) P := gjson.Parse(string(data))
data := P.Get(`data`)
if data.Exists() {
adData := data.Get(`ordered_info.#.ad_data`)
if adData.Exists() {
for _, result := range adData.Array() {
adDataList = append(adDataList, result.String())
}
} else {
t.Error(`ordered_info.#.ad_data not exists`)
}
if !(gADDate.Exists() && gADDate.IsArray()) { relatedVideo := data.Get(`related_video_toutiao.#[show_tag = "广告"]#`)
t.Error("path is error") if adData.Exists() {
for _, result := range relatedVideo.Array() {
adDataList = append(adDataList, result.String())
}
} else {
t.Error(`related_video_toutiao.#[show_tag = "广告"]# not exists`)
}
}
} }
for _, result := range gADDate.Array() { if len(adDataList) != 2 {
log.Println(gjson.Valid(result.Raw)) t.Error("adDataList != 2")
} }
} }

View File

@ -2,7 +2,6 @@ package main
import ( import (
"log" "log"
"regexp"
crontab "474420502.top/eson/crontabex" crontab "474420502.top/eson/crontabex"
"474420502.top/eson/gjson" "474420502.top/eson/gjson"
@ -37,19 +36,17 @@ func (te *TaskEx) Execute(glocal map[string]interface{}) imitater.ITask {
} }
var adDataList []string var adDataList []string
rule := regexp.MustCompile(`\\"label\\"\:\\"广告\\"|\\"label_style\\"\:3`)
if rule.MatchString(resp.Content()) { if gjson.Valid(resp.Content()) {
if gjson.Valid(resp.Content()) { P := gjson.Parse(resp.Content())
P := gjson.Parse(resp.Content()) gADDate := P.Get(`data.#[content ~ @"label":"广告"@ ]#.content`)
gADDate := P.Get(`data.#[content ~ @label_style\":3@ ]#.content`) if gADDate.Exists() {
if gADDate.Exists() { for _, result := range gADDate.Array() {
for _, result := range gADDate.Array() { adDataList = append(adDataList, result.String())
adDataList = append(adDataList, result.String())
}
} }
} else {
log.Println("be careful:", resp.Content())
} }
} else {
log.Println("be careful:", resp.Content())
} }
if imitater.ADDataSave(te, te.db, adDataList) { if imitater.ADDataSave(te, te.db, adDataList) {

View File

@ -19,7 +19,7 @@ func TestTaskEx_Execute(t *testing.T) {
log.Println(gjson.Valid(string(data))) log.Println(gjson.Valid(string(data)))
P := gjson.Parse(string(data)) P := gjson.Parse(string(data))
gADDate := P.Get(`data.#[content ~ @label_style\":3@ ]#.content`) gADDate := P.Get(`data.#[content ~ @"label":"广告"@ ]#.content`)
log.Println(gADDate.Exists(), gADDate.IsArray()) log.Println(gADDate.Exists(), gADDate.IsArray())
if !(gADDate.Exists() && gADDate.IsArray()) { if !(gADDate.Exists() && gADDate.IsArray()) {