@@ -64,16 +64,17 @@ def check_url(url):
6464 for attempt in range (1 , max_retries + 1 ):
6565 try :
6666 response = requests .get (url , headers = headers , timeout = 5 , allow_redirects = True )
67+ status = response .status_code
6768
68- if response . status_code == 200 :
69+ if status == 200 :
6970 return f"✅ { url } is reachable (Attempt { attempt } )"
70- elif response .status_code in [404 , 410 ]:
71- return f"❌ { url } returned { response .status_code } (Attempt { attempt } )"
72- elif response .status_code == 429 :
71+ elif status == 429 :
7372 return f"✅ { url } is rate-limited (429), considering it reachable."
73+ elif status in (404 , 410 ):
74+ return f"❌ { url } returned { status } (Attempt { attempt } )"
7475 else :
75- last_error = f"{ url } returned status { response . status_code } (Attempt { attempt } ), final URL: { response .url } "
76- # Don't return, just try again
76+ last_error = f"{ url } returned status { status } (Attempt { attempt } ), final URL: { response .url } "
77+
7778 except requests .exceptions .SSLError as e :
7879 last_error = f"{ url } SSL Error: { e } "
7980 except requests .exceptions .ConnectionError as e :
@@ -85,8 +86,8 @@ def check_url(url):
8586
8687 time .sleep (random .uniform (1 , 3 ))
8788
88- # Only log as a fail if it's a hard 404/410 or all retries failed
89- if "returned 404" in last_error or "returned 410" in last_error :
89+ # Final classification
90+ if any ( code in last_error for code in [ "returned 404" , "returned 410" ]) :
9091 return f"❌ { last_error } "
9192 else :
9293 return f"⚠️ { url } is potentially reachable but failed after { max_retries } attempts. Last error: { last_error } "
0 commit comments