Ellerine sağlık çok güzel olmuş, istersen main fonksiyonundaki hata bildirimi biraz daha iyileştirilebilir :
Önceki main fonksiyonu :
func main() {
ytdlpPath, err := check_ytdlp()
if err != nil {
log.Fatal(err)
}
check_dir(xdg.UserDirs.Music)
check_dir(xdg.UserDirs.Videos)
for {
isPlaylist, link, err := getLink()
if err != nil {
log.Fatal(err)
}
if link == "" {
break
}
ytdlpArgs, err := getArgs(isPlaylist)
if err != nil {
log.Fatal(err)
}
downloadLink(ytdlpPath, ytdlpArgs, link)
}
}
Düzenleme yaptığım main fonksiyonu :
func main() {
ytdlpPath, err := check_ytdlp()
if err != nil {
log.Fatalf("yt-dlp not found: %v", err)
}
if err := check_dir(xdg.UserDirs.Music); err != nil {
log.Fatalf("Failed to check/create music directory: %v", err)
}
if err := check_dir(xdg.UserDirs.Videos); err != nil {
log.Fatalf("Failed to check/create videos directory: %v", err)
}
for {
isPlaylist, link, err := getLink()
if err != nil {
log.Printf("Error getting link: %v", err)
continue
}
if link == "" {
fmt.Println("No link entered, exiting.")
break
}
ytdlpArgs, err := getArgs(isPlaylist)
if err != nil {
log.Printf("Error getting arguments: %v", err)
continue
}
output, err := downloadLink(ytdlpPath, ytdlpArgs, link)
if err != nil {
log.Printf("Error downloading link: %v", err)
} else {
fmt.Println("Download successful!")
fmt.Println(output)
}
}
}
Yaptığım değişiklikler :
- Önceki:
log.Fatal(err)
- Şimdi:
log.Fatalf("yt-dlp not found: %v", err)
Öncekinde, hata meydana geldiğinde program sadece hatayı yazdırıp çıkarıyordu. Ancak bu, kullanıcıya hatanın nerede ve neden olduğunu açıklamıyor. Bu yüzdrn log.Fatalf
kullanarak daha iyi olacağını düşündüm.
- Önceki:
log.Fatal(err)
- Şimdi:
log.Printf("Error getting link: %v", err); continue
Öncekinde hata meydana geldiğinde program hemen sonlanıyordu. Ancak continue
kullanarak programın çalışmaya devam etmesi sağlanabilir. Bu, kullanıcın yeni bir giriş alarak hata durumunu aşmayı sağlar.
for {
isPlaylist, link, err := getLink()
if err != nil {
log.Printf("Error getting link: %v", err)
continue
}
...
}
- Önceki:
log.Fatal(err)
- Şimdi:
log.Fatalf("Failed to check/create music directory: %v", err)
Bu, kullanıcıya hatanın nerede ve neden olduğunu açıklar.
if err := check_dir(xdg.UserDirs.Music); err != nil {
log.Fatalf("Failed to check/create music directory: %v", err)
}