| 75 | } |
| 76 | |
| 77 | func getWeiboMessageBox(url string) (weiboWebData, error) { |
| 78 | var weiboWebData weiboWebData |
| 79 | cont, err := getRequest(url) |
| 80 | if err != nil { |
| 81 | logrus.Error(cont) |
| 82 | return weiboWebData, err |
| 83 | } |
| 84 | cards := gjson.Get(cont.String(), "data.cards").Array() |
| 85 | for _, card := range cards { |
| 86 | // 排除置顶微博和其它类型微博 |
| 87 | isTop := gjson.Get(card.String(), "mblog.mblogtype").Int() |
| 88 | cardType := gjson.Get(card.String(), "card_type").Int() |
| 89 | if isTop == 2 || cardType != 9 { |
| 90 | continue |
| 91 | } |
| 92 | weiboWebData.id = gjson.Get(card.String(), "mblog.id").Int() |
| 93 | weiboWebData.msgText = gjson.Get(card.String(), "mblog.text").String() |
| 94 | weiboWebData.msgPic = gjson.Get(card.String(), "mblog.pics.#.large.url").Array() |
| 95 | weiboWebData.scheme = gjson.Get(card.String(), "scheme").String() |
| 96 | weiboWebData.username = gjson.Get(card.String(), "mblog.user.screen_name").String() |
| 97 | weiboWebData.createdAt, _ = time.Parse(time.RubyDate, gjson.Get(card.String(), "mblog.created_at").String()) |
| 98 | isRetweeted := gjson.Get(card.String(), "mblog.retweeted_status").Exists() |
| 99 | if isRetweeted { |
| 100 | weiboWebData.retweetedID = gjson.Get(card.String(), "mblog.retweeted_status.id").Int() |
| 101 | weiboWebData.retweetedUserName = gjson.Get(card.String(), "mblog.retweeted_status.user.screen_name").String() |
| 102 | weiboWebData.retweetedText = gjson.Get(card.String(), "mblog.retweeted_status.text").String() |
| 103 | weiboWebData.retweetedPic = gjson.Get(card.String(), "mblog.retweeted_status.pics.#.large.url").Array() |
| 104 | } |
| 105 | break |
| 106 | } |
| 107 | return weiboWebData, nil |
| 108 | } |
| 109 | |
| 110 | func dataBuild(id int64, scheme string, username string, createdAt time.Time) *weiboDBData { |
| 111 | return &weiboDBData{ |