error handling

This commit is contained in:
Hazel Noack
2025-10-08 12:09:13 +02:00
parent a1579113dd
commit e5485ea1c3

View File

@@ -1,6 +1,7 @@
package plugin package plugin
import ( import (
"errors"
"regexp" "regexp"
"strings" "strings"
@@ -48,8 +49,9 @@ func (m Musify) RegexSong() *regexp.Regexp {
return regexp.MustCompile(`(?i)https?://musify\.club/track/[a-z\-0-9]+`) return regexp.MustCompile(`(?i)https?://musify\.club/track/[a-z\-0-9]+`)
} }
func parseArtistContact(contact *goquery.Selection) data.Artist { func parseArtistContact(contact *goquery.Selection) (data.Artist, error) {
artist := data.Artist{} artist := data.Artist{}
var err error
anchor := contact.Find("a") anchor := contact.Find("a")
if anchor.Length() > 0 { if anchor.Length() > 0 {
@@ -65,6 +67,8 @@ func parseArtistContact(contact *goquery.Selection) data.Artist {
if name, nameExists := anchor.Attr("title"); nameExists { if name, nameExists := anchor.Attr("title"); nameExists {
artist.Name = name artist.Name = name
} }
} else {
err = errors.New("no anchor found")
} }
/* /*
@@ -78,11 +82,12 @@ func parseArtistContact(contact *goquery.Selection) data.Artist {
artist_thumbnail = image_soup.get("src") artist_thumbnail = image_soup.get("src")
*/ */
return artist return artist, err
} }
func parseAlbumContact(contact *goquery.Selection) data.Album { func parseAlbumContact(contact *goquery.Selection) (data.Album, error) {
album := data.Album{} album := data.Album{}
var err error
/* /*
<div class="contacts__item"> <div class="contacts__item">
@@ -118,6 +123,8 @@ func parseAlbumContact(contact *goquery.Selection) data.Album {
splitAttr := strings.Split(strings.TrimSpace(titleDate), delimiter) splitAttr := strings.Split(strings.TrimSpace(titleDate), delimiter)
album.Name = strings.Join(splitAttr[:len(splitAttr)-1], delimiter) album.Name = strings.Join(splitAttr[:len(splitAttr)-1], delimiter)
} }
} else {
err = errors.New("no anchor found")
} }
contactInfo := contact.Find("div.contacts__info") contactInfo := contact.Find("div.contacts__info")
@@ -157,7 +164,7 @@ func parseAlbumContact(contact *goquery.Selection) data.Album {
} }
} }
return album return album, err
} }
func parseContactContainer(contactContainer *goquery.Selection) []data.MusicObject { func parseContactContainer(contactContainer *goquery.Selection) []data.MusicObject {
@@ -171,9 +178,13 @@ func parseContactContainer(contactContainer *goquery.Selection) []data.MusicObje
if exists { if exists {
if strings.Contains(url, "artist") { if strings.Contains(url, "artist") {
res = append(res, parseArtistContact(contact)) if artist, err := parseArtistContact(contact); err == nil {
res = append(res, artist)
}
} else if strings.Contains(url, "release") { } else if strings.Contains(url, "release") {
res = append(res, parseAlbumContact(contact)) if album, err := parseAlbumContact(contact); err == nil {
res = append(res, album)
}
} }
} }
} }