Merge remote-tracking branch 'origin/main'

This commit is contained in:
2026-04-27 16:20:34 +03:30
+28 -53
View File
@@ -121,64 +121,40 @@ Understanding: You must be able to explain your implementation
## Bonus Tasks ✒️ ## Bonus Tasks ✒️
1. Fetch and display movie information using movie ID 1. Fetch and display movie information using movie ID
In this section, you must implement the ability to search for a movie by its ID. The user enters an ID, and the program displays complete movie details. Implement movie search by ID. User enters an ID, program displays complete movie details.
Movie Class Fields (already defined): ### ⚠️ First: Add Missing Fields to Movie Class
The API returns more data than your current class supports. Add these fields:
- `actors`, `awards`, `director`, `imdb_id`, `imdb_votes`, `metascore`, `plot`, `rated`, `released`, `runtime`, `type`, `writer`
- id (Long) - Movie identifier ### Implementation Steps:
- title (String) - Movie title 1. **Complete `getMovieById(movieId)`**
- Build request to: `https://api.meshcomp.ir/api/v1/movies/{movieId}`
- If status 200 → return JSON body, else → return null
- year (String) - Release year 2. **Complete `displayMovieDetails(movieId)`**
- Call `getMovieById()` → check for null
- Use Gson to parse JSON to Movie object (after adding fields above)
- Print formatted output (see example below)
- genres (List<Genre>) - List of genres ### Example Output:
```
- images (String) - Poster image URL =======================================================================
THE SHAWSHANK REDEMPTION (1994)
- country (String) - Production country =======================================================================
Rating: 9.3/10 | Votes: 1,738,596
- imdbRating (String) - IMDB rating Director: Frank Darabont
Cast: Tim Robbins, Morgan Freeman, Bob Gunton, William Sadler
Implementation Steps: Genre: Crime, Drama
Runtime: 142 min | Rated: R
- Build and Send Request (getMovieById method): Country: USA | Released: 14 Oct 1994
Plot: Two imprisoned men bond over a number of years, finding
- Create HTTP request to: https://api.meshcomp.ir/api/v1/movies/{movieId} solace and eventual redemption through acts of common decency.
Awards: Nominated for 7 Oscars. Another 19 wins & 30 nominations.
- Replace {movieId} with the ID from user =======================================================================
- Send request and get response
- Handle Response (getMovieById method):
- If status code is 200, return JSON body
- Otherwise, print error and return null
- Parse JSON and Create Movie Object (displayMovieDetails method):
- Parse JSON response to JsonObject
- Extract all fields: id, title, year, poster, country, imdb_rating
- Parse "genres" array and convert each to Genre object
- Create a Movie object with all extracted data
- Display Results (displayMovieDetails method):
- Print all movie details in a clean format
2. Advanced search (title, genre, year, rating, etc.)
3. Sorting options for movies
4. Save/load favorite movies to/from a file
5. Improved console menu design
6. GUI version using JavaFX
```
--- ---
## References 📚 ## References 📚
@@ -202,4 +178,3 @@ Jackson Tutorial:
--- ---
## Submission ⌛ ## Submission ⌛
Deadline: May 1st (11 Ordibehesht) Deadline: May 1st (11 Ordibehesht)