Skip to content

Commit f683d77

Browse files
committed
fix:优化检测逻辑
1 parent d987936 commit f683d77

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

transnation/Netflix.go

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ func NetflixCDN(c *http.Client) model.Result {
5555
if err != nil {
5656
return model.Result{Name: name, Status: model.StatusNetworkErr, Err: fmt.Errorf("can not parse body")}
5757
}
58-
//body := string(b)
59-
//fmt.Println(body)
6058
if resp.StatusCode == 403 || resp.StatusCode == 451 {
6159
return model.Result{Name: name, Status: model.StatusNo, Info: "IP Banned By Netflix"}
6260
}
@@ -117,19 +115,39 @@ func Netflix(c *http.Client) model.Result {
117115
return model.Result{Name: name, Status: model.StatusBanned}
118116
}
119117
if (resp1.StatusCode == 200 || resp1.StatusCode == 301) || (resp2.StatusCode == 200 || resp2.StatusCode == 301) {
120-
// 检查resp2的body内容,判断是否真正解锁
121-
b2, err := io.ReadAll(resp2.Body)
122-
if err != nil {
123-
return model.Result{Name: name, Status: model.StatusNetworkErr, Err: fmt.Errorf("can not parse body")}
118+
var bodyToCheck string
119+
var region string
120+
if resp1.StatusCode == 200 || resp1.StatusCode == 301 {
121+
b1, err := io.ReadAll(resp1.Body)
122+
if err != nil {
123+
return model.Result{Name: name, Status: model.StatusNetworkErr, Err: fmt.Errorf("can not parse body")}
124+
}
125+
body1 := string(b1)
126+
hasVideo1 := strings.Contains(body1, `property="og:video"`)
127+
hasEpisodes1 := strings.Contains(body1, `data-uia="episodes"`)
128+
hasPlayableVideo1 := strings.Contains(body1, `playableVideo`)
129+
if hasVideo1 || hasEpisodes1 || hasPlayableVideo1 {
130+
bodyToCheck = body1
131+
region = extractRegionFromPage(body1)
132+
}
133+
}
134+
if bodyToCheck == "" && (resp2.StatusCode == 200 || resp2.StatusCode == 301) {
135+
b2, err := io.ReadAll(resp2.Body)
136+
if err != nil {
137+
return model.Result{Name: name, Status: model.StatusNetworkErr, Err: fmt.Errorf("can not parse body")}
138+
}
139+
body2 := string(b2)
140+
hasVideo2 := strings.Contains(body2, `property="og:video"`)
141+
hasEpisodes2 := strings.Contains(body2, `data-uia="episodes"`)
142+
hasPlayableVideo2 := strings.Contains(body2, `playableVideo`)
143+
if hasVideo2 || hasEpisodes2 || hasPlayableVideo2 {
144+
bodyToCheck = body2
145+
region = extractRegionFromPage(body2)
146+
}
124147
}
125-
body2 := string(b2)
126-
hasVideo := strings.Contains(body2, `property="og:video"`)
127-
hasEpisodes := strings.Contains(body2, `data-uia="episodes"`)
128-
hasPlayableVideo := strings.Contains(body2, `playableVideo`)
129-
if !hasVideo && !hasEpisodes && !hasPlayableVideo {
148+
if bodyToCheck == "" {
130149
return model.Result{Name: name, Status: model.StatusNo}
131150
}
132-
region := extractRegionFromPage(body2)
133151
if region == "" {
134152
client3 := utils.Req(c)
135153
resp3, err3 := client3.R().Get(url3)

0 commit comments

Comments
 (0)