github.com/derat/nup@v0.0.0-20230418113745-15592ba7c620/test/songs.go (about)

     1  // Copyright 2020 Daniel Erat.
     2  // All rights reserved.
     3  
     4  package test
     5  
     6  import (
     7  	"github.com/derat/nup/server/db"
     8  )
     9  
    10  const (
    11  	// Hardcoded gain info used for all songs. Instead of actually running mp3gain (which may not
    12  	// even be installed) during testing, these values get passed to 'nup update' via its
    13  	// -test-gain-info flag.
    14  	TrackGain = -6.7
    15  	AlbumGain = -6.3
    16  	PeakAmp   = 1.05
    17  )
    18  
    19  // The expected sorted order for these songs (per sortSongs in server/query) is:
    20  //  Song0s
    21  //  Song1s
    22  //  Song5s
    23  //  LegacySong2 (empty AlbumID)
    24  //  LegacySong1 (empty AlbumID)
    25  //  Song10s (empty AlbumID)
    26  //  ID3V1Song (empty AlbumID)
    27  
    28  var Song0s = db.Song{
    29  	SHA1:        "fefac74a1d5928316d7131747107c8a61b71ffe4",
    30  	Filename:    "0s.mp3",
    31  	Artist:      "First Artist",
    32  	Title:       "Zero Seconds",
    33  	Album:       "First Album",
    34  	AlbumID:     "1e477f68-c407-4eae-ad01-518528cedc2c",
    35  	RecordingID: "392cea06-94c2-416b-80aa-f5b1e7d0fb1c",
    36  	Track:       1,
    37  	Disc:        1, // 0 in file, but automatically set to 1
    38  	Date:        Date(1992, 1, 1),
    39  	Length:      0.026,
    40  	TrackGain:   TrackGain,
    41  	AlbumGain:   AlbumGain,
    42  	PeakAmp:     PeakAmp,
    43  }
    44  
    45  var Song0sUpdated = db.Song{
    46  	SHA1:        Song0s.SHA1,
    47  	Filename:    "0s-updated.mp3",
    48  	Artist:      Song0s.Artist,
    49  	Title:       "Zero Seconds (Remix)",
    50  	Album:       Song0s.Album,
    51  	AlbumID:     Song0s.AlbumID,
    52  	RecordingID: "271a81af-6c2d-44cf-a0b8-a25ad74c82f9",
    53  	Track:       Song0s.Track,
    54  	Disc:        Song0s.Disc,
    55  	Date:        Date(1995, 4, 3, 13, 17, 59),
    56  	Length:      Song0s.Length,
    57  	TrackGain:   TrackGain,
    58  	AlbumGain:   AlbumGain,
    59  	PeakAmp:     PeakAmp,
    60  }
    61  
    62  var Song1s = db.Song{
    63  	SHA1:        "c6e3230b4ed5e1f25d92dd6b80bfc98736bbee62",
    64  	Filename:    "1s.mp3",
    65  	Artist:      "Second Artist",
    66  	Title:       "One Second",
    67  	Album:       "First Album",
    68  	AlbumArtist: "The Remixer",
    69  	AlbumID:     "1e477f68-c407-4eae-ad01-518528cedc2c",
    70  	RecordingID: "5d7e41b2-ec4b-44dd-b25a-a576d7a08adb",
    71  	Track:       2,
    72  	Disc:        1, // 0 in file, but automatically set to 1
    73  	Date:        Date(2004, 1, 1),
    74  	Length:      1.071,
    75  	TrackGain:   TrackGain,
    76  	AlbumGain:   AlbumGain,
    77  	PeakAmp:     PeakAmp,
    78  }
    79  
    80  var Song5s = db.Song{
    81  	SHA1:        "63afdde2b390804562d54788865fff1bfd11cf94",
    82  	Filename:    "5s.mp3",
    83  	Artist:      "Third Artist",
    84  	Title:       "Five Seconds",
    85  	Album:       "Another Album (disc 3: The Third Disc)", // intentionally differs from Disc
    86  	AlbumArtist: "",                                       // omitted by 'nup update' since it matches Artist
    87  	AlbumID:     "a1d2405b-afe0-4e28-a935-b5b256f68131",
    88  	Track:       1,
    89  	Disc:        2,
    90  	Date:        Date(2014, 1, 1),
    91  	Length:      5.041,
    92  	TrackGain:   TrackGain,
    93  	AlbumGain:   AlbumGain,
    94  	PeakAmp:     PeakAmp,
    95  }
    96  
    97  var Song10s = db.Song{
    98  	SHA1:         "dfc21dbdf2056184fa3bbe9688a2050f8f2c5dff",
    99  	Filename:     "10s.mp3",
   100  	Artist:       "Boring Artist",
   101  	Title:        "Ten Seconds",
   102  	Album:        "Music for Waiting Rooms",
   103  	DiscSubtitle: "The Only Disc",
   104  	Length:       10.031,
   105  	TrackGain:    TrackGain,
   106  	AlbumGain:    AlbumGain,
   107  	PeakAmp:      PeakAmp,
   108  }
   109  
   110  var ID3V1Song = db.Song{
   111  	SHA1:      "fefac74a1d5928316d7131747107c8a61b71ffe4", // same as Song0s
   112  	Filename:  "id3v1.mp3",
   113  	Artist:    "The Legacy Formats",
   114  	Title:     "Give It Up For ID3v1",
   115  	Album:     "UTF-8, Who Needs It?",
   116  	Track:     0,
   117  	Disc:      0,
   118  	Date:      Date(1992, 1, 1),
   119  	Length:    0.026,
   120  	TrackGain: TrackGain,
   121  	AlbumGain: AlbumGain,
   122  	PeakAmp:   PeakAmp,
   123  }
   124  
   125  var LegacySong1 = db.Song{
   126  	SHA1:      "1977c91fea860245695dcceea0805c14cede7559",
   127  	Filename:  "arovane/atol_scrap/thaem_nue.mp3",
   128  	Artist:    "Arovane",
   129  	Title:     "Thaem Nue",
   130  	Album:     "Atol Scrap",
   131  	Track:     1,
   132  	Disc:      1,
   133  	Length:    449,
   134  	TrackGain: TrackGain,
   135  	AlbumGain: AlbumGain,
   136  	PeakAmp:   PeakAmp,
   137  	Rating:    4,
   138  	Plays: []db.Play{
   139  		db.NewPlay(Date(2010, 6, 9, 4, 19, 30), "127.0.0.1"),
   140  		db.NewPlay(Date(2011, 2, 10, 5, 48, 33), "1.2.3.4"),
   141  	},
   142  	Tags: []string{"electronic", "instrumental"},
   143  }
   144  
   145  var LegacySong2 = db.Song{
   146  	SHA1:      "b70984a4ac5084999b70478cdf163218b90cefdb",
   147  	Filename:  "gary_hoey/animal_instinct/motown_fever.mp3",
   148  	Artist:    "Gary Hoey",
   149  	Title:     "Motown Fever",
   150  	Album:     "Animal Instinct",
   151  	Track:     7,
   152  	Disc:      1,
   153  	Length:    182,
   154  	TrackGain: TrackGain,
   155  	AlbumGain: AlbumGain,
   156  	PeakAmp:   PeakAmp,
   157  	Rating:    3,
   158  	Plays:     []db.Play{db.NewPlay(Date(2014, 3, 14, 5, 12, 10), "8.8.8.8")},
   159  	Tags:      []string{"instrumental", "rock"},
   160  }