|
|
|
@ -28,6 +28,7 @@ const userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleW |
|
|
|
type Huya struct { |
|
|
|
type Huya struct { |
|
|
|
Rid string |
|
|
|
Rid string |
|
|
|
Cdn string |
|
|
|
Cdn string |
|
|
|
|
|
|
|
CdnType string |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func GetMD5Hash(text string) string { |
|
|
|
func GetMD5Hash(text string) string { |
|
|
|
@ -83,9 +84,12 @@ func (h *Huya) GetLiveUrl() any { |
|
|
|
} |
|
|
|
} |
|
|
|
liveInfoJson := gjson.Parse(liveInfoJsonRawString) |
|
|
|
liveInfoJson := gjson.Parse(liveInfoJsonRawString) |
|
|
|
streamInfoJsons := liveInfoJson.Get("tLiveStreamInfo.vStreamInfo.value") |
|
|
|
streamInfoJsons := liveInfoJson.Get("tLiveStreamInfo.vStreamInfo.value") |
|
|
|
|
|
|
|
var cdnSlice []string |
|
|
|
var finalurl string |
|
|
|
var finalurl string |
|
|
|
streamInfoJsons.ForEach(func(key, value gjson.Result) bool { |
|
|
|
streamInfoJsons.ForEach(func(key, value gjson.Result) bool { |
|
|
|
if gjson.Get(value.String(), "sCdnType").String() == h.Cdn { |
|
|
|
var cdnType = gjson.Get(value.String(), "sCdnType").String() |
|
|
|
|
|
|
|
cdnSlice = append(cdnSlice, cdnType) |
|
|
|
|
|
|
|
if cdnType == h.Cdn { |
|
|
|
sStreamName := gjson.Get(value.String(), "sStreamName").String() |
|
|
|
sStreamName := gjson.Get(value.String(), "sStreamName").String() |
|
|
|
sFlvAntiCode := gjson.Get(value.String(), "sFlvAntiCode").String() |
|
|
|
sFlvAntiCode := gjson.Get(value.String(), "sFlvAntiCode").String() |
|
|
|
sFlvUrl := gjson.Get(value.String(), "sFlvUrl").String() |
|
|
|
sFlvUrl := gjson.Get(value.String(), "sFlvUrl").String() |
|
|
|
@ -95,5 +99,8 @@ func (h *Huya) GetLiveUrl() any { |
|
|
|
} |
|
|
|
} |
|
|
|
return true |
|
|
|
return true |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
if h.CdnType == "display" { |
|
|
|
|
|
|
|
return cdnSlice |
|
|
|
|
|
|
|
} |
|
|
|
return finalurl |
|
|
|
return finalurl |
|
|
|
} |
|
|
|
} |
|
|
|
|