diff --git a/.idea/misc.xml b/.idea/misc.xml
index 668048d..2f60269 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/src/main/java/Actors.java b/src/main/java/Actors.java
index ebf8e2d..349491a 100644
--- a/src/main/java/Actors.java
+++ b/src/main/java/Actors.java
@@ -1,15 +1,27 @@
+import org.json.JSONArray;
+import org.json.JSONObject;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.HttpURLConnection;
public class Actors {
- public static final String API_KEY = "Your API_KEY"; // TODO --> add your api key about Actors here
+ public static final String API_KEY = "2oc2yj5UHqESdhSIvfVrpA==kXY0Y8KYuwuPgvNz"; // TODO --> add your api key about Actors here
String netWorth;
Boolean isAlive;
+ String gender;
+ String nationality;
+ String birthday;
+
- public Actors(String netWorth, boolean isAlive){
+ public Actors(String netWorth, boolean isAlive, String gender, String nationality, String birthday){
//TODO --> (Write a proper constructor using the get_from_api functions)
+ this.netWorth = netWorth;
+ this.isAlive = isAlive;
+ this.gender = gender;
+ this.nationality = nationality;
+ this.birthday = birthday;
}
@SuppressWarnings({"deprecation"})
/**
@@ -46,19 +58,58 @@ public String getActorData(String name) {
public double getNetWorthViaApi(String actorsInfoJson){
//TODO --> (This function must return the "NetWorth")
double result = 0.0;
+ JSONArray array = new JSONArray(actorsInfoJson);
+ JSONObject info = array.getJSONObject(0);
+ result = info.getDouble("net_worth");
return result;
}
public boolean isAlive(String actorsInfoJson){
//TODO --> (If your chosen actor is alive it must return true otherwise it must return false)
boolean statues = false;
+ JSONArray array = new JSONArray(actorsInfoJson);
+ JSONObject info = array.getJSONObject(0);
+ statues = info.getBoolean("is_alive");
return statues;
}
public String getDateOfDeathViaApi(String actorsInfoJson){
//TODO --> (If your chosen actor is deceased it must return the date of death) -->
String date = "";
- return date;
+ boolean statues = false;
+ JSONArray array = new JSONArray(actorsInfoJson);
+ JSONObject info = array.getJSONObject(0);
+ statues = info.getBoolean("is_alive");
+ if (statues == false) {
+ JSONObject Date = new JSONObject(actorsInfoJson);
+ date = Date.getString("death");
+ }
+ else {
+ date = "_";
+ }
+ return date;
}
+ public String getGender(String actorsInfoJson){
+ String gender = null;
+ JSONArray array = new JSONArray(actorsInfoJson);
+ JSONObject info = array.getJSONObject(0);
+ gender = info.getString("gender");
+ return gender;
+ }
+ public String getNationality(String actorsInfoJson){
+ String nationality = null;
+ JSONArray array = new JSONArray(actorsInfoJson);
+ JSONObject info = array.getJSONObject(0);
+ nationality = info.getString("nationality");
+ return nationality;
+ }
+ public String getBirthday(String actorsInfoJson){
+ String birthday = null;
+ JSONArray array = new JSONArray(actorsInfoJson);
+ JSONObject info = array.getJSONObject(0);
+
+ birthday = info.getString("birthday");
+ return birthday;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/Main.java b/src/main/java/Main.java
index 92f3d9c..07fb192 100644
--- a/src/main/java/Main.java
+++ b/src/main/java/Main.java
@@ -1,9 +1,58 @@
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Scanner;
+
public class Main {
- public static void main(String[] args) {
- // TODO --> complete main function
+ public static void main(String[] args) throws IOException {
+ // TODO --> complete main function.
runMenu();
+
}
- public static void runMenu() {
+
+ public static void runMenu() throws IOException {
// TODO
+ Scanner scanner = new Scanner(System.in);
+ System.out.println("Hello");
+ System.out.println("Which one do you want?");
+ System.out.println("1-Mvie");
+ System.out.println("2-Actor/Actress");
+ int n = scanner.nextInt();
+ if (n == 1) {
+ System.out.println("Enter the name of the movie");
+ String name = scanner.next();
+ Movie movie = new Movie(new ArrayList<>(), "", 0, "", "", "", "", "");
+ String found = movie.getResponsive(movie.getMovieData(name));
+ while (true) {
+ if (found == "false") {
+ System.out.println("Movie not found, pleas try again!");
+ name = scanner.next();
+ found = movie.getResponsive(movie.getMovieData(name));
+ }
+ if (found == "true") {
+ System.out.println(movie.getImdbVotesViaApi((movie.getMovieData(name))));
+ System.out.println(movie.getRatingViaApi((movie.getMovieData(name))));
+ System.out.println(movie.getDirector(movie.getMovieData(name)));
+ System.out.println(movie.getWriter(movie.getMovieData(name)));
+ System.out.println(movie.getActorListViaApi(movie.getMovieData(name)));
+ System.out.println(movie.getGener(movie.getMovieData(name)));
+ System.out.println(movie.getLanguage(movie.getMovieData(name)));
+ break;
+ }
+ }
+ }
+ if (n == 2) {
+ System.out.println("Enter the name of the actor/actress");
+ String name = scanner.next();
+ Actors actors = new Actors("", false, "", "", "");
+ System.out.println(actors.getNetWorthViaApi(actors.getActorData(name)));
+ System.out.println(actors.isAlive(actors.getActorData(name)));
+ System.out.println(actors.getGender(actors.getActorData(name)));
+ System.out.println(actors.getNationality(actors.getActorData(name)));
+ System.out.println(actors.getDateOfDeathViaApi(actors.getActorData(name)));
+ System.out.println(actors.getBirthday(actors.getActorData(name)));
+ }
}
}
\ No newline at end of file
diff --git a/src/main/java/Movie.java b/src/main/java/Movie.java
index 34b5d4c..74d83f4 100644
--- a/src/main/java/Movie.java
+++ b/src/main/java/Movie.java
@@ -1,17 +1,35 @@
+import org.json.JSONArray;
+import org.json.JSONObject;
+
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.io.BufferedReader;
import java.util.ArrayList;
+import java.util.List;
+
public class Movie {
- public static final String API_KEY = "Your API_KEY"; // TODO --> add your api key about Movie here
+ public static final String API_KEY = "4cc68bea"; // TODO --> add your api key about Movie here
int ImdbVotes;
ArrayList actorsList;
String rating;
+ String director;
+ String gener;
+ String writer;
+ String language;
+ String responsive;
- public Movie(ArrayList actorsList, String rating, int ImdbVotes){
+ public Movie(ArrayList actorsList, String rating, int ImdbVotes, String director, String gener, String writer, String language, String responsive){
//TODO --> (Write a proper constructor using the get_from_api functions)
+ this.actorsList = actorsList;
+ this.rating = rating;
+ this.ImdbVotes = ImdbVotes;
+ this.director = director;
+ this.gener = gener;
+ this.writer = writer;
+ this.language = language;
+ this.responsive = responsive;
}
@SuppressWarnings("deprecation")
@@ -23,7 +41,7 @@ public Movie(ArrayList actorsList, String rating, int ImdbVotes){
*/
public String getMovieData(String title) throws IOException {
- URL url = new URL("https://www.omdbapi.com/?t="+title+"&apikey="+API_KEY);
+ URL url = new URL("https://www.omdbapi.com/?t="+title+"&apikey="+ API_KEY);
URLConnection Url = url.openConnection();
Url.setRequestProperty("Authorization", "Key" + API_KEY);
BufferedReader reader = new BufferedReader(new InputStreamReader(Url.getInputStream()));
@@ -40,17 +58,64 @@ public int getImdbVotesViaApi(String moviesInfoJson){
//TODO --> (This function must change and return the "ImdbVotes" as an Integer)
// NOTICE :: you are not permitted to convert this function to return a String instead of an int !!!
int ImdbVotes = 0;
+ JSONObject info = new JSONObject(moviesInfoJson);
+ ImdbVotes = Integer.parseInt(info.getString("imdbVotes").replace(",",""));
+
return ImdbVotes;
}
public String getRatingViaApi(String moviesInfoJson){
//TODO --> (This function must return the rating in the "Ratings" part
// where the source is "Internet Movie Database") -->
- String rating = "";
- return rating;
+ //String rating = null;
+ JSONObject info = new JSONObject(moviesInfoJson);
+ JSONArray ratings = info.getJSONArray("Ratings");
+ JSONObject rate = ratings.getJSONObject(0);
+ String value = rate.getString("Value");
+
+ return value;
}
- public void getActorListViaApi(String movieInfoJson){
+ public ArrayList getActorListViaApi(String movieInfoJson){
//TODO --> (This function must return the "Actors" in actorsList)
+ JSONObject info = new JSONObject(movieInfoJson);
+ //List actors = new ArrayList<>();
+ String actors = info.getString("Actors");
+ String[] arraylist = actors.split(", ");
+ for (String i : arraylist) {
+ actorsList.add(i);
+ }
+
+ return actorsList;
+ }
+ public String getDirector(String movieInfoJson){
+ String director = null;
+ JSONObject info = new JSONObject(movieInfoJson);
+ director = info.getString("Director");
+ return director;
+ }
+ public String getGener(String movieInfoJson){
+ String gener = null;
+ JSONObject info = new JSONObject(movieInfoJson);
+ gener = info.getString("Genre");
+ return gener;
+ }
+ public String getWriter(String movieInfoJson){
+ String writer = null;
+ JSONObject info = new JSONObject(movieInfoJson);
+ writer = info.getString("Writer");
+ return writer;
+ }
+ public String getLanguage(String movieInfoJson){
+ String language = null;
+ JSONObject info = new JSONObject(movieInfoJson);
+ language = info.getString("Language");
+ return language;
+ }
+ public String getResponsive(String movieInfoJson){
+ String responsive = null;
+ JSONObject info = new JSONObject(movieInfoJson);
+ responsive = info.getString("Responsive");
+ return responsive;
}
}
\ No newline at end of file
diff --git a/src/test/java/ActorsTest.java b/src/test/java/ActorsTest.java
index 457e28b..9dc406d 100644
--- a/src/test/java/ActorsTest.java
+++ b/src/test/java/ActorsTest.java
@@ -2,11 +2,12 @@
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class ActorsTest {
+
static String data1 , data2;
static Actors actors;
@BeforeAll
static void setUp() {
- actors = new Actors("",false);
+ actors = new Actors("",false, "", "", "");
data1 = actors.getActorData("jennifer lawrence");
data2 = actors.getActorData("robin williams");
}
diff --git a/src/test/java/MovieTest.java b/src/test/java/MovieTest.java
index ce8a14c..cba34e4 100644
--- a/src/test/java/MovieTest.java
+++ b/src/test/java/MovieTest.java
@@ -11,7 +11,7 @@ public class MovieTest {
@BeforeAll
static void setUp() throws IOException {
- movie = new Movie(new ArrayList<>(),"",0);
+ movie = new Movie (new ArrayList<>(),"", 0, "", "", "", "", "");
data1 = movie.getMovieData("maze runner"); // movie
data2 = movie.getMovieData("this is us"); // series
}