package component import ( metadataPb "homelab.lan/music-agregator/gen/metadata/v1" "homelab.lan/music-agregator/internal/indexer" ) func newMetadataAlbum(id, title, artistID, artistName string) *metadataPb.Album { return &metadataPb.Album{ Id: id, Title: title, AlbumType: "album", ReleaseDate: "2024-01-15", TotalTracks: 10, TotalDiscs: 1, CoverUrl: "https://example.com/cover.jpg", Artists: []*metadataPb.ArtistCredit{ { Artist: &metadataPb.Artist{ Id: artistID, Name: artistName, }, Role: "primary", Position: 1, }, }, Label: &metadataPb.Label{ Id: "label-1", Name: "Test Label", }, Genres: []*metadataPb.Genre{ {Id: "genre-1", Name: "Rock"}, {Id: "genre-2", Name: "Alternative"}, }, } } func newMetadataTrack(id, title string, trackNum int32) *metadataPb.Track { return &metadataPb.Track{ Id: id, Title: title, DurationMs: 240000, Isrc: "US-XYZ-24-00001", Explicit: false, DiscNumber: 1, TrackNumber: trackNum, Artists: []*metadataPb.ArtistCredit{ { Artist: &metadataPb.Artist{ Id: "artist-1", Name: "Test Artist", }, Role: "primary", Position: 1, }, }, } } func newSearchResponse(items ...*indexer.SearchItemResult) *indexer.SearchResponse { return &indexer.SearchResponse{ Items: items, } } func newSearchItem(title string, seeders int, downloadLink string) *indexer.SearchItemResult { return &indexer.SearchItemResult{ Title: title, DownloadLink: downloadLink, Size: 500 * 1024 * 1024, Tracker: "test-tracker", Seeders: seeders, Peers: seeders / 2, } } func newTorrentData() []byte { return []byte("d8:announce35:http://tracker.example.com/announce4:infod6:lengthi1024e4:name9:test.flac12:piece lengthi16384e6:pieces20:01234567890123456789ee") } func newTorrentDataMP3() []byte { return []byte("d8:announce35:http://tracker.example.com/announce4:infod6:lengthi1024e4:name8:test.mp312:piece lengthi16384e6:pieces20:01234567890123456789ee") }