refactor: Separate redirects and broken links into distinct output sections

This commit is contained in:
Erik Winter (aider) 2024-11-25 10:08:25 +01:00
parent 3f7cde44a2
commit 99b458e40a
1 changed files with 30 additions and 7 deletions

31
main.go
View File

@ -23,18 +23,41 @@ func main() {
fmt.Printf("\nTotal pages checked: %d\n\n", checker.pagesChecked) fmt.Printf("\nTotal pages checked: %d\n\n", checker.pagesChecked)
if len(brokenLinks) == 0 { if len(brokenLinks) == 0 {
fmt.Println("No broken links found!") fmt.Println("No issues found!")
return return
} }
fmt.Printf("Found %d issues:\n", len(brokenLinks)) // First list redirects
var redirectCount int
for _, link := range brokenLinks { for _, link := range brokenLinks {
if link.Redirect != nil {
if redirectCount == 0 {
fmt.Println("Redirects found:")
}
fmt.Printf("- %s (Redirect %d -> %s)\n", link.URL, link.StatusCode, link.Redirect.ToURL)
redirectCount++
}
}
if redirectCount > 0 {
fmt.Println()
}
// Then list broken links
var brokenCount int
for _, link := range brokenLinks {
if link.Redirect == nil {
if brokenCount == 0 {
fmt.Println("Broken links found:")
}
if link.Error != "" { if link.Error != "" {
fmt.Printf("- %s (Error: %s)\n", link.URL, link.Error) fmt.Printf("- %s (Error: %s)\n", link.URL, link.Error)
} else if link.Redirect != nil {
fmt.Printf("- %s (Redirect %d -> %s)\n", link.URL, link.StatusCode, link.Redirect.ToURL)
} else { } else {
fmt.Printf("- %s (Status: %d)\n", link.URL, link.StatusCode) fmt.Printf("- %s (Status: %d)\n", link.URL, link.StatusCode)
} }
brokenCount++
} }
} }
fmt.Printf("\nTotal issues: %d (%d redirects, %d broken)\n",
len(brokenLinks), redirectCount, brokenCount)
}