Skip to content
Snippets Groups Projects
Commit ef0ac4f9 authored by joel.vonderwe's avatar joel.vonderwe
Browse files

Collect exos improvments

parent aa4de7d7
Branches
No related tags found
No related merge requests found
*~ *~
target/ target/
.metals/
\ No newline at end of file
...@@ -37,17 +37,19 @@ object Collect { ...@@ -37,17 +37,19 @@ object Collect {
/* Retourne la liste de morceaux associés à un artiste */ /* Retourne la liste de morceaux associés à un artiste */
def tracksOf( artist: String ): List[Track] = { def tracksOf( artist: String ): List[Track] = {
albums.filter(_.artist == artist).flatMap( a => tracks(a.title)) albums.flatMap( a => if (a.artist == artist) tracks(a.title) else List())
} }
/* Retourne la liste de tous les morceaux de moins de 4 minutes */ /* Retourne la liste de tous les morceaux de moins de 4 minutes */
def shortTracks: List[Track] = { def shortTracks: List[Track] = {
tracks.flatMap(t => t._2).filter(t => t.duration.minutes < 4).toList tracks.flatMap {
case (_,t) => t.filter(t => t.duration.minutes < 4)
}.toList
} }
/* Retourne les titres des morceaux antérieurs à une année */ /* Retourne les titres des morceaux antérieurs à une année */
def titlesBefore( year: Int ): List[String] = { def titlesBefore( year: Int ): List[String] = {
albums.flatMap(a => if (a.year < year) tracks(a.title) else List()).map(_.title) albums.flatMap(a => if (a.year < year) tracks(a.title).map(_.title) else List())
} }
/* Calcule la durée totale de tous les morceaux disponibles. /* Calcule la durée totale de tous les morceaux disponibles.
...@@ -55,12 +57,9 @@ object Collect { ...@@ -55,12 +57,9 @@ object Collect {
minutes peuvent dépasser ce total. minutes peuvent dépasser ce total.
*/ */
def totalDuration: Duration = { def totalDuration: Duration = {
var m = 0 val s = tracks.flatMap(_._2.map(t => {
var s = 0 t.duration.seconds + t.duration.minutes*60
tracks.flatMap(_._2).foreach(t => { })).sum
m += t.duration.minutes Duration(s/60, s % 60)
s += t.duration.seconds
})
Duration(m + s/60, s % 60)
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment