49 lines
994 B
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
|
|
}
|