@@ -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