54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"errors"
|
|
"io/ioutil"
|
|
"regexp"
|
|
"strconv"
|
|
)
|
|
|
|
type mockProvider struct {
|
|
*episodeDataProvider
|
|
}
|
|
|
|
func (mock *mockProvider) GetAVData(avNo int64) (avdatas []AVData, err error) {
|
|
file, err := ioutil.ReadFile("mock/av" + strconv.FormatInt(avNo, 10) + ".json")
|
|
if err != nil {
|
|
return avdatas, err
|
|
}
|
|
var resp AVResponse
|
|
err = json.Unmarshal(file, &resp)
|
|
if err != nil {
|
|
return avdatas, err
|
|
}
|
|
return resp.Data, nil
|
|
}
|
|
|
|
func (mock *mockProvider) GetEPData(epNo int64) (epdatas []EPData, err error) {
|
|
htmlByte, err := ioutil.ReadFile("mock/ep" + strconv.FormatInt(epNo, 10) + ".html")
|
|
if err != nil {
|
|
return
|
|
}
|
|
// the regex rule is: \"ssId\":\d+
|
|
re, err := regexp.Compile("\\\"ssId\\\":(\\d+)")
|
|
if err != nil {
|
|
return
|
|
}
|
|
ssidResult := re.Find(htmlByte)
|
|
if len(ssidResult) == 0 {
|
|
return epdatas, errors.New("ssid not found")
|
|
}
|
|
ssid := string(ssidResult)[7:]
|
|
ssByte, err := ioutil.ReadFile("mock/ss" + ssid + ".json")
|
|
if err != nil {
|
|
return
|
|
}
|
|
var resp SectionResponse
|
|
err = json.Unmarshal(ssByte, &resp)
|
|
if err != nil {
|
|
return
|
|
}
|
|
return resp.Result.MainSection.Episodes, err
|
|
}
|