MCPcopy Create free account
hub / github.com/FloatTech/ZeroBot-Plugin-Playground / getWeiboMessageBox

Function getWeiboMessageBox

plugin/subweibo/subweibo.go:77–108  ·  view source on GitHub ↗
(url string)

Source from the content-addressed store, hash-verified

75}
76
77func 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
110func dataBuild(id int64, scheme string, username string, createdAt time.Time) *weiboDBData {
111 return &weiboDBData{

Callers 1

runningFunction · 0.85

Calls 1

getRequestFunction · 0.85

Tested by

no test coverage detected