METANOIA/metadata/source.go

49 lines
994 B
Go

package metadata
type License struct {
Attribution string
Code LicenseCode
URL string
}
type LicenseCode string
const (
Unknown LicenseCode = "Unknown"
NC LicenseCode = "NonCommercial"
CC0 LicenseCode = "CC0"
CC_BY_NC_SA_30 LicenseCode = "CC BY-NC-SA 3.0"
CC_BY_SA_40 LicenseCode = "CC BY-SA 4.0"
)
type AlbumNameSource interface {
SourceMetadata
FindByAlbumNames(names []Name) []*Album
}
type CatalogSource interface {
SourceMetadata
FindByCatalogNumber(catalog CatalogNumber) []*Album
}
type TOCSource interface {
SourceMetadata
FindByTOC(toc TOC) []*Album
}
type CDDB1Source interface {
TOCSource
FindByCDDB1(cddb CDDB1) []*Album
FindByCDDB1Group(group []CDDB1) []*Album
}
type DiscIDSource interface {
TOCSource
FindByDiscID(discId DiscID) []*Album
}
type TocIDSource interface {
TOCSource
FindByTocID(tocId TocID) []*Album
}
type SourceMetadata interface {
GetName() string
GetURL() string
GetLicense() License
}