Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const axios = require("axios");
- const mysql = require("mysql");
- const apiInstance = axios.create({
- baseURL: "https://api.themoviedb.org/3",
- timeout: 1000,
- params: {
- api_key: "bbb0e77b94b09193e6f32d5fac7a3b9c",
- region: "GR"
- }
- });
- const BASE_DELAY_MS = 2000;
- const connection = mysql.createConnection({
- host: "localhost",
- user: "root",
- password: "0december",
- database: "movies"
- });
- connection.connect();
- connection.query("delete from movies.directorlist");
- connection.query("delete from movies.moviesnow");
- connection.query("delete from movies.SuperTable");
- const apiErrorHandler = (error) => {
- console.log("API", "ERROR", error);
- };
- //calls the now playing info
- apiInstance
- .get(`/movie/now_playing`)
- .then((res) => {
- for (page = 1; page <= res.data.total_pages; page++) {
- paginatorFunc(page);
- }
- })
- .catch(apiErrorHandler);
- paginatorFunc = (page) => {
- apiInstance
- .get(`/movie/now_playing`, { params: { page: page } })
- .then(crewImdbFinder)
- .catch(apiErrorHandler);
- };
- //finds movie and crew info
- crewImdbFinder = (res) => {
- res.data.results.map((result, idx) => {
- function resolver(resolve) {
- function executeDelayedRequest() {
- apiInstance
- .get(`/movie/${result.id}`, {
- params: { append_to_response: "credits" }
- })
- .then(resolve)
- .catch(apiErrorHandler);
- }
- setTimeout(executeDelayedRequest, BASE_DELAY_MS * idx);
- }
- new Promise(resolver)
- .then((response) => {
- response.data.credits.crew.map((member) => {
- if (member.job === "Director") {
- directorHandler(member.id, response.data.title);
- }
- });
- connection.query("INSERT INTO moviesnow VALUES (?, ?, ?)", [
- response.data.title,
- response.data.overview,
- response.data.original_title
- ]);
- })
- .catch(apiErrorHandler);
- });
- };
- directorHandler = (directorId, title) => {
- apiInstance
- .get(`/person/${directorId}`)
- .then((response) => {
- connection.query("INSERT INTO directorlist VALUES (?, ?, ?)", [
- response.data.name,
- title,
- "https://www.imdb.com/name/" + response.data.imdb_id
- ]);
- })
- .catch(apiErrorHandler);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement