error handling
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package plugin
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
@@ -48,8 +49,9 @@ func (m Musify) RegexSong() *regexp.Regexp {
|
||||
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{}
|
||||
var err error
|
||||
|
||||
anchor := contact.Find("a")
|
||||
if anchor.Length() > 0 {
|
||||
@@ -65,6 +67,8 @@ func parseArtistContact(contact *goquery.Selection) data.Artist {
|
||||
if name, nameExists := anchor.Attr("title"); nameExists {
|
||||
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")
|
||||
*/
|
||||
|
||||
return artist
|
||||
return artist, err
|
||||
}
|
||||
|
||||
func parseAlbumContact(contact *goquery.Selection) data.Album {
|
||||
func parseAlbumContact(contact *goquery.Selection) (data.Album, error) {
|
||||
album := data.Album{}
|
||||
var err error
|
||||
|
||||
/*
|
||||
<div class="contacts__item">
|
||||
@@ -118,6 +123,8 @@ func parseAlbumContact(contact *goquery.Selection) data.Album {
|
||||
splitAttr := strings.Split(strings.TrimSpace(titleDate), delimiter)
|
||||
album.Name = strings.Join(splitAttr[:len(splitAttr)-1], delimiter)
|
||||
}
|
||||
} else {
|
||||
err = errors.New("no anchor found")
|
||||
}
|
||||
|
||||
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 {
|
||||
@@ -171,9 +178,13 @@ func parseContactContainer(contactContainer *goquery.Selection) []data.MusicObje
|
||||
|
||||
if exists {
|
||||
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") {
|
||||
res = append(res, parseAlbumContact(contact))
|
||||
if album, err := parseAlbumContact(contact); err == nil {
|
||||
res = append(res, album)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user