Procházet zdrojové kódy

decode material Image list tested with real sample data

master
Patrick Peng Sun před 8 roky
rodič
revize
e8517cf9e6
3 změnil soubory, kde provedl 133 přidání a 11 odebrání
  1. +18
    -0
      material.go
  2. +46
    -0
      material_test.go
  3. +69
    -11
      sample_data/material_list.json

+ 18
- 0
material.go Zobrazit soubor

@@ -87,3 +87,21 @@ func getMaterialCount() (materialCount, error) {
err = json.Unmarshal(b, &mc)
return mc, nil
}

type materialItemImage struct {
MediaID string `json:"media_id"`
Name string `json:"name"`
UpdateTime int `json:"update_time"`
URL string `json:"url"`
}

type materialListImage struct {
TotalCount int `json:"total_count"`
ItemCount int `json:"item_count"`
Items []materialItemImage `json:"item"`
}

func unmarshalImageList(jstr string) (r materialListImage) {
json.Unmarshal([]byte(jstr), &r)
return
}

+ 46
- 0
material_test.go Zobrazit soubor

@@ -30,3 +30,49 @@ func TestGetMaterialCount(t *testing.T) {
log.Printf("Image: %d", mc.ImageCount)
log.Printf("News : %d", mc.NewsCount)
}

func TestUnmarshalImageList(t *testing.T) {
msg := `
{"item": [
{
"media_id": "e2iNEiSxCX5TV1WbFd0TQCOZJ6FrmbKe7sjUrIZnkW0",
"name": "hit_logo.jpg",
"update_time": 1494466025,
"url": "http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g\/0?wx_fmt=jpeg"
},
{
"media_id": "e2iNEiSxCX5TV1WbFd0TQOo3v5NmyZKIzG6erS8Heak",
"name": "hit_font.jpg",
"update_time": 1494466018,
"url": "http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUvogs2hibSk6eqlcYZdZj3d5DLYMj4xAFuD9rp4e0s3O8B46Hgb6mETw\/0?wx_fmt=jpeg"
},
{
"media_id": "e2iNEiSxCX5TV1WbFd0TQP9e-7cyXtbHoxptztJgz68",
"name": "logo-gold-964x640.png",
"update_time": 1492696182,
"url": "http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png"
}
],
"total_count": 30,
"item_count": 3
}`
r := unmarshalImageList(msg)
AssertEqual(t, r.TotalCount, 30, "Total count should be 30")
AssertEqual(t, r.ItemCount, 3, "Item count should be 3")
//individual items
AssertEqual(t, r.Items[0].MediaID, "e2iNEiSxCX5TV1WbFd0TQCOZJ6FrmbKe7sjUrIZnkW0", "Item[0] media id mismatch")
AssertEqual(t, r.Items[0].Name, "hit_logo.jpg", "Item[0].name expect [hit_logo.jpg] not ["+r.Items[0].Name+"]")
AssertEqual(t, r.Items[0].UpdateTime, 1494466025, "Item[0] updatetime wrong")
AssertEqual(t, r.Items[0].URL, "http://mmbiz.qpic.cn/mmbiz_jpg/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g/0?wx_fmt=jpeg", "Item[0] URL wrong")

AssertEqual(t, r.Items[1].MediaID, "e2iNEiSxCX5TV1WbFd0TQOo3v5NmyZKIzG6erS8Heak", "Item[1] media id mismatch")
AssertEqual(t, r.Items[1].Name, "hit_font.jpg", "Item[1].name expect [hit_font.jpg] not ["+r.Items[0].Name+"]")
AssertEqual(t, r.Items[1].UpdateTime, 1494466018, "Item[1] updatetime wrong")
AssertEqual(t, r.Items[1].URL, "http://mmbiz.qpic.cn/mmbiz_jpg/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUvogs2hibSk6eqlcYZdZj3d5DLYMj4xAFuD9rp4e0s3O8B46Hgb6mETw/0?wx_fmt=jpeg", "Item[1] URL wrong")

AssertEqual(t, r.Items[2].MediaID, "e2iNEiSxCX5TV1WbFd0TQP9e-7cyXtbHoxptztJgz68", "Item[2] media id mismatch")
AssertEqual(t, r.Items[2].Name, "logo-gold-964x640.png", "Item[2].name expect [logo-gold-964x640.png] not ["+r.Items[0].Name+"]")
AssertEqual(t, r.Items[2].UpdateTime, 1492696182, "Item[2] update time mismatch ")
AssertEqual(t, r.Items[2].URL, "http://mmbiz.qpic.cn/mmbiz_png/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw/0?wx_fmt=png", "Item[2] URL wrong")

}

+ 69
- 11
sample_data/material_list.json Zobrazit soubor

@@ -1,11 +1,69 @@
2017/05/11 11:27:17 https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=RB8viLdrGw91XDjX29crjt9Dz242CWL6QqXQmyYcr2Pb012ZkdzdJR17uLwqjZApTnSVZYfofLWdVMN2wmszwk_1ACT29Xev1PwnKUuZEXpoChl8U-MteAgNBa34kLANUMNhABALDE
2017/05/11 11:27:18 news is : {"item":[{"media_id":"e2iNEiSxCX5TV1WbFd0TQMqvVrqFDbDOacdjgQ-OAuE","content":{"news_item":[{"title":"测试消息","author":"孙鹏","digest":"加入校友会","content":"<p>加入校友会<\/p><p><img data-s=\"300,640\" data-type=\"png\" data-src=\"http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png\" data-ratio=\"0.6765327695560254\" data-w=\"946\" \/><\/p><p><br \/><\/p>","content_source_url":"http:\/\/www.hitxy.org.au\/join","thumb_media_id":"SCqYVM0F3OSBIqptPWQ5ZjDYlLvKsEtHHaYnHLyXbeM","show_cover_pic":0,"url":"http:\/\/mp.weixin.qq.com\/s?__biz=MzUxMDAzNDAwMA==&mid=100000002&idx=1&sn=723bf16b52f88345e5a73ccde1c79bdb&chksm=7908683d4e7fe12bcaefa9c563809db5546ab97af7184ec648f20930fab5c1d95ee825409c0d#rd","thumb_url":"http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png","need_open_comment":0,"only_fans_can_comment":0}],"create_time":1492696196,"update_time":1492696243},"update_time":1492696243}],"total_count":1,"item_count":1}
2017/05/11 11:27:18 read authtoke from /tmp/wechat_hitxy_access_token
2017/05/11 11:27:18 https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=RB8viLdrGw91XDjX29crjt9Dz242CWL6QqXQmyYcr2Pb012ZkdzdJR17uLwqjZApTnSVZYfofLWdVMN2wmszwk_1ACT29Xev1PwnKUuZEXpoChl8U-MteAgNBa34kLANUMNhABALDE
2017/05/11 11:27:18 voice is : {"item":[],"total_count":0,"item_count":0}
2017/05/11 11:27:18 read authtoke from /tmp/wechat_hitxy_access_token
2017/05/11 11:27:18 https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=RB8viLdrGw91XDjX29crjt9Dz242CWL6QqXQmyYcr2Pb012ZkdzdJR17uLwqjZApTnSVZYfofLWdVMN2wmszwk_1ACT29Xev1PwnKUuZEXpoChl8U-MteAgNBa34kLANUMNhABALDE
2017/05/11 11:27:19 video is : {"item":[{"media_id":"e2iNEiSxCX5TV1WbFd0TQPZtC5Oz_9VZmIKEyC7WW8w","name":"哈工大校歌","update_time":1494465885}],"total_count":1,"item_count":1}
2017/05/11 11:27:19 read authtoke from /tmp/wechat_hitxy_access_token
2017/05/11 11:27:19 https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=RB8viLdrGw91XDjX29crjt9Dz242CWL6QqXQmyYcr2Pb012ZkdzdJR17uLwqjZApTnSVZYfofLWdVMN2wmszwk_1ACT29Xev1PwnKUuZEXpoChl8U-MteAgNBa34kLANUMNhABALDE
2017/05/11 11:27:19 Image is : {"item":[{"media_id":"e2iNEiSxCX5TV1WbFd0TQCOZJ6FrmbKe7sjUrIZnkW0","name":"hit_logo.jpg","update_time":1494466025,"url":"http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g\/0?wx_fmt=jpeg"},{"media_id":"e2iNEiSxCX5TV1WbFd0TQOo3v5NmyZKIzG6erS8Heak","name":"hit_font.jpg","update_time":1494466018,"url":"http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUvogs2hibSk6eqlcYZdZj3d5DLYMj4xAFuD9rp4e0s3O8B46Hgb6mETw\/0?wx_fmt=jpeg"},{"media_id":"e2iNEiSxCX5TV1WbFd0TQP9e-7cyXtbHoxptztJgz68","name":"logo-gold-964x640.png","update_time":1492696182,"url":"http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png"}],"total_count":3,"item_count":3}
2017/05/11 11: 27: 17 https: //api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=RB8viLdrGw91XDjX29crjt9Dz242CWL6QqXQmyYcr2Pb012ZkdzdJR17uLwqjZApTnSVZYfofLWdVMN2wmszwk_1ACT29Xev1PwnKUuZEXpoChl8U-MteAgNBa34kLANUMNhABALDE 2017/05/11 11: 27: 18 news is: {
"item": [
{
"media_id": "e2iNEiSxCX5TV1WbFd0TQMqvVrqFDbDOacdjgQ-OAuE",
"content": {
"news_item": [
{
"title": "测试消息",
"author": "孙鹏",
"digest": "加入校友会",
"content": "<p>加入校友会<\/p><p><img data-s=\"300,640\" data-type=\"png\" data-src=\"http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png\" data-ratio=\"0.6765327695560254\" data-w=\"946\" \/><\/p><p><br \/><\/p>",
"content_source_url": "http:\/\/www.hitxy.org.au\/join",
"thumb_media_id": "SCqYVM0F3OSBIqptPWQ5ZjDYlLvKsEtHHaYnHLyXbeM",
"show_cover_pic": 0,
"url": "http:\/\/mp.weixin.qq.com\/s?__biz=MzUxMDAzNDAwMA==&mid=100000002&idx=1&sn=723bf16b52f88345e5a73ccde1c79bdb&chksm=7908683d4e7fe12bcaefa9c563809db5546ab97af7184ec648f20930fab5c1d95ee825409c0d#rd",
"thumb_url": "http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png",
"need_open_comment": 0,
"only_fans_can_comment": 0
}
],
"create_time": 1492696196,
"update_time": 1492696243
},
"update_time": 1492696243
}
],
"total_count": 1,
"item_count": 1
}
2017/05/11 11: 27: 18 read authtoke from /tmp/wechat_hitxy_access_token2017/05/11 11: 27: 18 https: //api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=RB8viLdrGw91XDjX29crjt9Dz242CWL6QqXQmyYcr2Pb012ZkdzdJR17uLwqjZApTnSVZYfofLWdVMN2wmszwk_1ACT29Xev1PwnKUuZEXpoChl8U-MteAgNBa34kLANUMNhABALDE 2017/05/11 11: 27: 18 voice is: {
"item": [],
"total_count": 0,
"item_count": 0
}
2017/05/11 11: 27: 18 read authtoke from /tmp/wechat_hitxy_access_token2017/05/11 11: 27: 18 https: //api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=RB8viLdrGw91XDjX29crjt9Dz242CWL6QqXQmyYcr2Pb012ZkdzdJR17uLwqjZApTnSVZYfofLWdVMN2wmszwk_1ACT29Xev1PwnKUuZEXpoChl8U-MteAgNBa34kLANUMNhABALDE 2017/05/11 11: 27: 19 video is: {
"item": [
{
"media_id": "e2iNEiSxCX5TV1WbFd0TQPZtC5Oz_9VZmIKEyC7WW8w",
"name": "哈工大校歌",
"update_time": 1494465885
}
],
"total_count": 1,
"item_count": 1
}
2017/05/11 11: 27: 19 read authtoke from /tmp/wechat_hitxy_access_token2017/05/11 11: 27: 19 https: //api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=RB8viLdrGw91XDjX29crjt9Dz242CWL6QqXQmyYcr2Pb012ZkdzdJR17uLwqjZApTnSVZYfofLWdVMN2wmszwk_1ACT29Xev1PwnKUuZEXpoChl8U-MteAgNBa34kLANUMNhABALDE 2017/05/11 11: 27: 19 Image is: {
"item": [
{
"media_id": "e2iNEiSxCX5TV1WbFd0TQCOZJ6FrmbKe7sjUrIZnkW0",
"name": "hit_logo.jpg",
"update_time": 1494466025,
"url": "http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g\/0?wx_fmt=jpeg"
},
{
"media_id": "e2iNEiSxCX5TV1WbFd0TQOo3v5NmyZKIzG6erS8Heak",
"name": "hit_font.jpg",
"update_time": 1494466018,
"url": "http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUvogs2hibSk6eqlcYZdZj3d5DLYMj4xAFuD9rp4e0s3O8B46Hgb6mETw\/0?wx_fmt=jpeg"
},
{
"media_id": "e2iNEiSxCX5TV1WbFd0TQP9e-7cyXtbHoxptztJgz68",
"name": "logo-gold-964x640.png",
"update_time": 1492696182,
"url": "http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png"
}
],
"total_count": 3,
"item_count": 3
}

Načítá se…
Zrušit
Uložit