From 45bd8c1b3836e442968c4bfedda546984edce4fd Mon Sep 17 00:00:00 2001 From: said belhadj Date: Sun, 27 Jun 2021 02:27:13 +0200 Subject: Add search functionality --- src/main/java/musichub/business/MusicHub.java | 16 ++++++++++++++++ src/main/java/musichub/main/Main.java | 8 +++++++- 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java index f7cf137..add55e6 100644 --- a/src/main/java/musichub/business/MusicHub.java +++ b/src/main/java/musichub/business/MusicHub.java @@ -339,4 +339,20 @@ public class MusicHub { } } + + public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException { + Scanner scanner = new Scanner(System.in); + String word = scanner.next().toLowerCase(Locale.ROOT); + List searchResult = new ArrayList<>(); + for(AudioElement el : elements){ + if(el.getTitle().toLowerCase(Locale.ROOT).contains(word) || el.getArtist().toLowerCase(Locale.ROOT).contains(word)){ + searchResult.add(el); + System.out.println(el); + } + } + if (searchResult.size()==1){ + this.getAudioElement(searchResult, searchResult.get(0).getTitle()); + } + } + } \ No newline at end of file diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java index e2e4731..480a2c2 100644 --- a/src/main/java/musichub/main/Main.java +++ b/src/main/java/musichub/main/Main.java @@ -12,7 +12,8 @@ import java.util.Scanner; import static musichub.business.PathValidation.isPathValid; public class Main { - public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException { + public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException, NoAlbumFoundException { + MusicHub theHub = new MusicHub(); @@ -240,6 +241,10 @@ public class Main { printAvailableCommands(); choice = scan.nextLine(); break; + case 'r': + //search a music + theHub.searchAudioElement(); + break; default: break; @@ -262,4 +267,5 @@ public class Main { System.out.println("s: save elements, albums, playlists"); System.out.println("q: quit program"); } + } \ No newline at end of file -- cgit v1.2.3 From 6c977eff192830096d4d5cde27d31bfd21d16b7e Mon Sep 17 00:00:00 2001 From: said belhadj Date: Sun, 27 Jun 2021 13:54:33 +0200 Subject: Update search functionality --- src/main/java/musichub/business/MusicHub.java | 5 +++++ src/main/java/musichub/main/Main.java | 3 +++ 2 files changed, 8 insertions(+) (limited to 'src') diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java index add55e6..bbac505 100644 --- a/src/main/java/musichub/business/MusicHub.java +++ b/src/main/java/musichub/business/MusicHub.java @@ -342,6 +342,7 @@ public class MusicHub { public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException { Scanner scanner = new Scanner(System.in); + System.out.println("Entrez le titre ou l'artiste de la musique que vous souhaitez chercher dans la base de données"); String word = scanner.next().toLowerCase(Locale.ROOT); List searchResult = new ArrayList<>(); for(AudioElement el : elements){ @@ -350,6 +351,10 @@ public class MusicHub { System.out.println(el); } } + + if(searchResult.isEmpty()){ + System.err.println("Aucun résultat pour votre recherche"); + } if (searchResult.size()==1){ this.getAudioElement(searchResult, searchResult.get(0).getTitle()); } diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java index 480a2c2..19cbede 100644 --- a/src/main/java/musichub/main/Main.java +++ b/src/main/java/musichub/main/Main.java @@ -244,6 +244,8 @@ public class Main { case 'r': //search a music theHub.searchAudioElement(); + printAvailableCommands(); + choice = scan.nextLine(); break; default: @@ -258,6 +260,7 @@ public class Main { System.out.println("g: display songs of an album, ordered by genre"); System.out.println("d: display songs of an album"); System.out.println("u: display audiobooks ordered by author"); + System.out.println("r: search audio elements"); System.out.println("c: add a new song"); System.out.println("a: add a new album"); System.out.println("+: add a song to an album"); -- cgit v1.2.3