Advertisement
Guest User

Untitled

a guest
Oct 3rd, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const axios = require("axios");
  2. const mysql = require("mysql");
  3.  
  4. const BASE_DELAY_MS = 2000;
  5. const connection = mysql.createConnection({
  6.   host: "localhost",
  7.   user: "root",
  8.   password: "0december",
  9.   database: "movies"
  10. });
  11.  
  12. connection.connect();
  13.  
  14. connection.query("delete from movies.directorlist");
  15. connection.query("delete from movies.moviesnow");
  16. connection.query("delete from movies.SuperTable");
  17.  
  18. axios
  19.   .get(
  20.     "https://api.themoviedb.org/3/movie/now_playing?api_key=bbb0e77b94b09193e6f32d5fac7a3b9c&region=GR" //calls the now playing info
  21.   )
  22.   .then(response => {
  23.     for (page = 1; page <= response.data.total_pages; page++) {
  24.       paginatorFunc(page); //for every page in the now_playing calls paginator
  25.     }
  26.   })
  27.   .catch(error => {
  28.     console.log(error);
  29.   });
  30.  
  31. paginatorFunc = page => {
  32.   axios
  33.     .get(
  34.       "https://api.themoviedb.org/3/movie/now_playing?api_key=bbb0e77b94b09193e6f32d5fac7a3b9c&region=GR&page=" +
  35.         page
  36.     )
  37.     .then(response => {
  38.       crewImdbFinder(response.data); //for every page we are in, call crewImdb finder
  39.     })
  40.     .catch(error => {
  41.       console.log(error);
  42.     });
  43. };
  44.  
  45. //finds movie and crew info
  46. crewImdbFinder = page => {
  47.   page.results.map((result, idx) => {
  48.     function resolver(resolve) {
  49.       function executeDelayedRequest() {
  50.         axios
  51.           .get(
  52.             "https://api.themoviedb.org/3/movie/" +
  53.               result.id +
  54.               "?api_key=bbb0e77b94b09193e6f32d5fac7a3b9c&append_to_response=credits"
  55.           )
  56.           .then(resolve);
  57.       }
  58.  
  59.       setTimeout(executeDelayedRequest, BASE_DELAY_MS * idx);
  60.     }
  61.  
  62.     new Promise(resolver)
  63.       .then(response => {
  64.         response.data.credits.crew.map(member => {
  65.           if (member.job === "Director") {
  66.             directorHandler(member.id, response.data.title);
  67.           }
  68.         });
  69.         connection.query("INSERT INTO moviesnow VALUES (?, ?, ?)", [
  70.           response.data.title,
  71.           response.data.overview,
  72.           response.data.original_title
  73.         ]);
  74.       })
  75.       .catch(error => {
  76.         console.log(error);
  77.       });
  78.   });
  79. };
  80. directorHandler = (directorId, title) => {
  81.   axios
  82.     .get(
  83.       "https://api.themoviedb.org/3/person/" +
  84.         directorId +
  85.         "?api_key=bbb0e77b94b09193e6f32d5fac7a3b9c"
  86.     )
  87.     .then(response => {
  88.       connection.query("INSERT INTO directorlist VALUES ( ?, ?, ?)", [
  89.         response.data.name,
  90.         title,
  91.         "https://www.imdb.com/name/" + response.data.imdb_id
  92.       ]);
  93.     })
  94.     .catch(error => {
  95.       console.log(error);
  96.     });
  97. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement