From a74d1c6a120775936056be76b05dca7b31011fb6 Mon Sep 17 00:00:00 2001 From: kuiki Date: Mon, 18 Feb 2019 18:02:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0mock=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84EPData=E6=8E=A5=E5=8F=A3=E7=9A=84=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=EF=BC=8C=E5=9C=A8main=E4=B8=AD=E5=AE=9E=E7=8E=B0=E8=AF=BB?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- datasource.go | 31 +++++++++++++++++++++++++++++++ main.go | 13 ++++++++++++- mock.go | 21 +++++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 datasource.go create mode 100644 mock.go diff --git a/datasource.go b/datasource.go new file mode 100644 index 0000000..3488257 --- /dev/null +++ b/datasource.go @@ -0,0 +1,31 @@ +package main + +// EPData 视频信息 +type EPData struct { + Cid int64 `json:"cid"` + Dimension struct { + Height int64 `json:"height"` + Rotate int64 `json:"rotate"` + Width int64 `json:"width"` + } `json:"dimension"` + Duration int64 `json:"duration"` + From string `json:"from"` + Page int64 `json:"page"` + Part string `json:"part"` + Vid string `json:"vid"` + Weblink string `json:"weblink"` +} + +// EPResponse 视频信息请求接口返回数据 +type EPResponse struct { + Code int64 `json:"code"` + Data []EPData `json:"data"` + Message string `json:"message"` + TTL int64 `json:"ttl"` +} + +// EPDataProvider 定义数据来源接口 +type EPDataProvider interface { + // GetEPData 根据视频号获取视频的集数据 + GetEPData(videoNo string) (epdatas []EPData, err error) +} diff --git a/main.go b/main.go index 7905807..5ad8539 100644 --- a/main.go +++ b/main.go @@ -1,5 +1,16 @@ package main -func main() { +import ( + "fmt" +) +func main() { + epProvider := new(mockProvider) + epdatas, err := epProvider.GetEPData("av1742161") + if err != nil { + panic(err) + } + for i, epdata := range epdatas { + fmt.Printf("ep %d Cid: %v, Part: %s\n", i, epdata.Cid, epdata.Part) + } } diff --git a/mock.go b/mock.go new file mode 100644 index 0000000..f40fb29 --- /dev/null +++ b/mock.go @@ -0,0 +1,21 @@ +package main + +import ( + "encoding/json" + "os" +) + +type mockProvider struct{} + +func (mock *mockProvider) GetEPData(videoNo string) (epdatas []EPData, err error) { + file, err := os.Open("mock/" + videoNo + ".json") + if err != nil { + return epdatas, err + } + var resp EPResponse + err = json.NewDecoder(file).Decode(&resp) + if err != nil { + return epdatas, err + } + return resp.Data, nil +}