-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathselectedItem.js
79 lines (70 loc) · 3.1 KB
/
selectedItem.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
const entryNumber = location.search.substring(1);
const Http = new XMLHttpRequest();
let response = {};
let videoResponse = {};
const apiKey = ""; // add the api key here -- without this key the authentication will not work.
// This is a video link with entryNumber and apiKey passed dynamically.
const videoLink =
"https://api.themoviedb.org/3/movie/" +
entryNumber +
"/videos?api_key=" +
apiKey +
"&language=en-US";
const url =
"https://api.themoviedb.org/3/movie/" +
entryNumber.toString() +
"?api_key=" +
apiKey +
"&language=en-US";
Http.open("GET", url);
Http.send();
let genresArray = [];
Http.onreadystatechange = (e) => {
response = JSON.parse(Http.responseText);
if (response.id) {
document.getElementById("notFound").style.display = "none";
document.getElementById("movie-box").style.display = "block";
document.getElementById("original_title").innerHTML =
response.original_title && response.original_title;
document.getElementById("overview").innerHTML = response.overview;
document.getElementById("movieType").innerHTML = response.adult;
document.getElementById("budget").innerHTML = response.budget;
document.getElementById("status").innerHTML = response.status;
document.getElementById("tagline").innerHTML = response.tagline;
document.getElementById("releaseDate").innerHTML = response.release_date;
document.getElementById("poster").src =
"https://image.tmdb.org/t/p/w500" + response.poster_path;
document.getElementById("homepage").href =
response.homepage !== "" ? response.homepage : "#";
// code to get YOUTUBE urls
Http.open("GET", videoLink, true);
Http.send();
// An event handler that is called whenever the readyState attribute changes.
// The callback is called from the user interface thread.
// The XMLHttpRequest.onreadystatechange property contains the event handler to be called when the readystatechange event is fired
// that is every time the readyState property of the XMLHttpRequest changes.
Http.onreadystatechange = (e) => {
if (Http.readyState == 4 && Http.status == 200) {
videoResponse = JSON.parse(Http.responseText);
// getting each item from the video response
// using a map function to iterate over the results each result being the item
videoResponse.results.map((item) => {
var frameTag = document.createElement("iframe");
frameTag.id = item.id;
frameTag.width = "420";
frameTag.height = "315";
frameTag.src = "https://www.youtube.com/embed/" + item.key;
// append child to the element with id 'youtube'
document.getElementById("youtube").appendChild(frameTag);
});
}
};
//ends here
} else {
// incase the movie data is not found, due to server error or mismatch url, show not found div.
document.getElementById("movie-box").style.display = "none";
document.getElementById("notFound").style.display = "block";
document.getElementById("notFound").innerHTML =
"Movie Data not found. Please try again later";
}
};