big change in the results returned by the api
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -9,4 +9,5 @@ public/src/thumbs
|
|||||||
.Spotlight-V100
|
.Spotlight-V100
|
||||||
.Trashes
|
.Trashes
|
||||||
ehthumbs.db
|
ehthumbs.db
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
.vscode/
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
const GetFlix = require('../index');
|
const GetFlix = require('../index');
|
||||||
|
|
||||||
const getflix = new GetFlix('d9d6007d1bcf12043db5a085ae3e5bbb');
|
const getflix = new GetFlix('d9d6007d1bcf12043db5a085ae3e5bbb');
|
||||||
const getInfo = async () => {
|
|
||||||
try {
|
|
||||||
const info = await getflix.getNetflixInfo(81159258);
|
|
||||||
// const info = await getflix.get(80241239, 'en-EN', 'tr');
|
|
||||||
console.log(info);
|
|
||||||
|
|
||||||
|
getInfo = async () => {
|
||||||
|
try {
|
||||||
|
const info = await getflix.getNetflixInfo(81082225, 'en-EN', 'en');
|
||||||
|
console.log(info);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
|
|||||||
342
lib/index.js
342
lib/index.js
@@ -6,41 +6,48 @@ const config = require('../config');
|
|||||||
// Modules
|
// Modules
|
||||||
const modules = require('./module');
|
const modules = require('./module');
|
||||||
|
|
||||||
class FlixInfo {
|
process.setMaxListeners(0)
|
||||||
|
|
||||||
constructor(opt = '') {
|
// imdb.com adresine bağlanarak imdb id'sinin geçerliliğini sorgulamayı sağlayan method
|
||||||
if (opt == '') throw new Error('missing tmdb api key');
|
const imdbIdReal = async (flixableFindImdbId) => {
|
||||||
|
|
||||||
this.tmdbApiKey = opt;
|
const imdbIdURL = "https://www.imdb.com/title/" + flixableFindImdbId
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
getNetflixInfo(netflixId) {
|
|
||||||
|
|
||||||
const flixableUrl = config.filexibleTrURL + netflixId
|
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
request(flixableUrl, (error, response, body) => {
|
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
request(imdbIdURL, (error, response, body) => {
|
||||||
|
if (error) {
|
||||||
|
reject('imdb id alinirken hata olustu')
|
||||||
|
} else {
|
||||||
const $ = cheerio.load(body, {
|
const $ = cheerio.load(body, {
|
||||||
normalizeWhitespace: true,
|
normalizeWhitespace: true,
|
||||||
xmlMode: true
|
xmlMode: true
|
||||||
});
|
});
|
||||||
|
const imdbId = ($($('[property="pageId"]')).attr('content'));
|
||||||
const findImdb = ($($('[class="mb-2 rating-container"]')).attr()) ? ($($('[class="imdbRatingPlugin"]')).attr('data-title')) : null;
|
const imdbRate = /<span itemprop="ratingValue">(.*?)<\/span>/img.exec(body)[1]
|
||||||
|
if (imdbId == undefined) {
|
||||||
if (findImdb) {
|
reject('imdb id bulunamadi')
|
||||||
request(("https://www.imdb.com/title/" + findImdb), (error, response, body) => {
|
} else {
|
||||||
const $ = cheerio.load(body, {
|
resolve({
|
||||||
normalizeWhitespace: true,
|
id: imdbId,
|
||||||
xmlMode: true
|
rate: imdbRate
|
||||||
});
|
|
||||||
const imdbCleanId = ($($('[property="pageId"]')).attr('content'));
|
|
||||||
console.log(imdbCleanId);
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
class FlixInfo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get movie/show info
|
||||||
|
* @param {string} tmdbApiKey The Movie DB Api ye ait key girilir
|
||||||
|
* @description Netflix içeriğine ulaşmayı sağlayan sınıf
|
||||||
|
*/
|
||||||
|
constructor(opt = '') {
|
||||||
|
if (opt == '') throw new Error('missing tmdb api key');
|
||||||
|
|
||||||
|
this.tmdbApiKey = opt;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -49,161 +56,216 @@ class FlixInfo {
|
|||||||
* @param {string} theMovieDbLanguage The Movie DB Api de hangi dilde arama yapılacağı girilir (e.g. tr-TR)
|
* @param {string} theMovieDbLanguage The Movie DB Api de hangi dilde arama yapılacağı girilir (e.g. tr-TR)
|
||||||
* @param {string} netflixLocation flixinfo üzerinde hangi lokasyonda sorgulama yapılacağı girilir (e.g. tr -> tr.flixinfo.com)
|
* @param {string} netflixLocation flixinfo üzerinde hangi lokasyonda sorgulama yapılacağı girilir (e.g. tr -> tr.flixinfo.com)
|
||||||
* @description Netflix içeriğinde id bilgisine ve netflix lokasyonuna göre arama yapmayı sağlar
|
* @description Netflix içeriğinde id bilgisine ve netflix lokasyonuna göre arama yapmayı sağlar
|
||||||
* @return {JSON}
|
|
||||||
*/
|
*/
|
||||||
get(netflixId, theMovieDbLanguage, netflixLocation) {
|
getNetflixInfo(netflixId, theMovieDbLanguage, netflixLocation) {
|
||||||
|
|
||||||
// Imdb id page
|
// Imdb id page
|
||||||
const flixableURL = netflixLocation == 'tr' ? (config.filexibleTrURL + netflixId) : (config.filexibleGlobalURL + netflixId);
|
const flixableURL = netflixLocation == 'tr' ? (config.filexibleTrURL + netflixId) : (config.filexibleGlobalURL + netflixId);
|
||||||
|
|
||||||
// The Movie DB api page
|
// The Movie DB api page
|
||||||
const theMovieDbURL = config.theMovieDbURL;
|
const theMovieDbURL = config.theMovieDbURL;
|
||||||
// API Key
|
// API Key
|
||||||
const tmdbApiKey = this.tmdbApiKey;
|
const tmdbApiKey = this.tmdbApiKey;
|
||||||
// Result Object
|
// Result Object
|
||||||
var returnResult = {};
|
let returnResult = {};
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
request(flixableURL, (err, response, body) => {
|
request(encodeURI(flixableURL), async (err, response, body) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
returnResult = { error: 1, errorMsg: 'flixable.com connection error' };
|
reject('flixable.com connection error: ' + err.message);
|
||||||
reject(returnResult);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const $ = cheerio.load(body, {
|
if (body) {
|
||||||
normalizeWhitespace: true,
|
const $ = cheerio.load(body, {
|
||||||
xmlMode: true
|
normalizeWhitespace: true,
|
||||||
});
|
xmlMode: true
|
||||||
|
});
|
||||||
|
|
||||||
|
let netflixButton = null;
|
||||||
|
|
||||||
let netflixButton = null;
|
try {
|
||||||
|
// netflix butonu varsa içerik bulunuyordur.
|
||||||
|
netflixButton = /class=\"btn btn-danger btn-block watch-on-service\"(.*?)/img.exec(body)[0];
|
||||||
|
} catch (error) {
|
||||||
|
reject('this content was not found!')
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
if (netflixButton != null) {
|
||||||
netflixButton = /class=\"btn btn-danger btn-block watch-on-service\"(.*?)/img.exec(body)[0];
|
|
||||||
} catch (error) {
|
|
||||||
returnResult = { error: 1, errorMsg: 'this content was not found!' };
|
|
||||||
reject(returnResult)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
let imdbId = null
|
||||||
if (netflixButton != null) {
|
let imdbRate = null
|
||||||
|
let netflixSeasonNumber = null
|
||||||
|
let netflixRuntime = null
|
||||||
const findImdb = ($($('[class="mb-2 rating-container"]')).attr());
|
let tmdbURL, netflixTitle
|
||||||
const type = netflixLocation == 'tr' ? (body.search("Sezon") > 0 ? 'tv' : 'movie') : (body.search("Season") > 0 ? 'tv' : 'movie');
|
// flixable'da bulunan imdb id (bu id değişmiş olabileceğinden imdb.com üzerinden kontrol ediliyor)
|
||||||
const netflixOverview = ($($('[name="description"]')).attr('content'));
|
const findFlixableImdbId = ($($('[class="mb-2 rating-container"]')).attr()) ? ($($('[class="imdbRatingPlugin"]')).attr('data-title')) : null;
|
||||||
const netflixPoster = ($($('[class="img lazyload poster"]')).attr('data-src'));
|
// media type (movie or tv show)
|
||||||
let tmdbURL
|
const type = netflixLocation == 'tr' ? (body.search("Sezon") > 0 ? 'tv' : 'movie') : (body.search("Season") > 0 ? 'tv' : 'movie');
|
||||||
let title
|
// netflix üzerindeki overview bilgisi
|
||||||
|
const netflixOverview = ($($('[name="description"]')).attr('content'));
|
||||||
if (theMovieDbLanguage) {
|
// netlflix üzerindeki poster url
|
||||||
|
const netflixPosterUrl = ($($('[class="img lazyload poster"]')).attr('data-src'));
|
||||||
// Sayfada imdb id varsa, tmdb üzerinden imdb id'ye göre arama yapılır
|
// netflix üzerindeki age rate bilgisi
|
||||||
if (findImdb) {
|
const netflixAgeRates = /<span class="border border-secondary mr-2 px-1">(.*?)<\/span>/img.exec(body)[1]
|
||||||
const imdbId = ($($('[class="imdbRatingPlugin"]')).attr('data-title'));
|
// find title
|
||||||
tmdbURL = theMovieDbURL + 'find/' + imdbId + '?api_key=' + tmdbApiKey + '&language=' + theMovieDbLanguage + '&external_source=imdb_id';
|
const findTitle = ($($('[property="og:title"]')).attr('content'));
|
||||||
|
const splitString = findTitle.split("- Netflix");
|
||||||
|
// netflix title
|
||||||
|
netflixTitle = splitString[0].split("(")[0].trim();
|
||||||
|
// netflix year
|
||||||
|
const netflixYear = splitString[0].split("(")[1].split(")")[0].trim();
|
||||||
|
// type tv ise sezon sayısını, movie ise filmin süresini ayarlar
|
||||||
|
if (type == 'tv') {
|
||||||
|
netflixSeasonNumber = (/<\/span><span>(.*?)<\/h6>/img.exec(body)[1]).split('</span> ')[0]
|
||||||
|
} else {
|
||||||
|
netflixRuntime = (/<\/span><span>(.*?)<\/h6>/img.exec(body)[1]).split('</span> ')[0]
|
||||||
}
|
}
|
||||||
// Sayfada imdb id yoksa, tmdb üzerinden title ve year'a göre arama yapılır
|
// genre ayarlar
|
||||||
else {
|
let netflixGenres = []
|
||||||
const findTitle = ($($('[property="og:title"]')).attr('content'));
|
const netflixGenresFind = body.match(/<a href="\/genre\/(.*?)<\/a>/img)
|
||||||
const splitString = findTitle.split("- Netflix");
|
if (netflixGenresFind) {
|
||||||
title = splitString[0].split("(")[0].trim();
|
netflixGenresFind.forEach((genre) => {
|
||||||
const year = splitString[0].split("(")[1].split(")")[0].trim();
|
netflixGenres.push((/\/">(.*?)<\/a>/img).exec(genre)[1])
|
||||||
// create (find) tmdb api url
|
})
|
||||||
tmdbURL = theMovieDbURL + 'search/' + type + '?api_key=' + tmdbApiKey + '&language=' + theMovieDbLanguage + '&query=' + title + '&first_air_date_year=' + year;
|
}
|
||||||
|
// actor name ayarlar
|
||||||
|
let netflixCast = []
|
||||||
|
const netflixActorNamesFind = body.match(/<a href="\/actor\/\?name=(.*?)<\/a>/img)
|
||||||
|
if (netflixActorNamesFind) {
|
||||||
|
netflixActorNamesFind.forEach((actors) => {
|
||||||
|
netflixCast.push((/\">(.*?)<\/a>/img).exec(actors)[1])
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
request(encodeURI(tmdbURL), (err, resultBody, body) => {
|
if (theMovieDbLanguage) {
|
||||||
// Api find all result (for get tmdb id)
|
// Sayfada imdb id varsa, tmdb üzerinden imdb id'ye göre arama yapılır
|
||||||
const getJson = JSON.parse(resultBody.body);
|
if (findFlixableImdbId) {
|
||||||
|
const imdb = await imdbIdReal(findFlixableImdbId)
|
||||||
if (getJson.status_code > 1) {
|
imdbId = imdb.id
|
||||||
// if wrong api key error
|
imdbRate = imdb.rate
|
||||||
returnResult = { error: 1, errorMsg: 'tmdb find id wrong api key error' };
|
tmdbURL = theMovieDbURL + 'find/' + imdbId + '?api_key=' + tmdbApiKey + '&language=' + theMovieDbLanguage + '&external_source=imdb_id';
|
||||||
reject(returnResult)
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
// Sayfada imdb id yoksa, tmdb üzerinden title ve year'a göre arama yapılır
|
||||||
|
tmdbURL = theMovieDbURL + 'search/' + type + '?api_key=' + tmdbApiKey + '&language=' + theMovieDbLanguage + '&query=' + netflixTitle + '&first_air_date_year=' + netflixYear;
|
||||||
|
}
|
||||||
|
|
||||||
|
request(encodeURI(tmdbURL), async (err, resultBody, body) => {
|
||||||
|
|
||||||
if (err) {
|
if (err) {
|
||||||
// if thmdb api connection error
|
// if thmdb api connection error
|
||||||
returnResult = { error: 1, errorMsg: 'tmdb find id connection api error' };
|
reject('tmdb api find id connection error: ' + err.message)
|
||||||
reject(returnResult)
|
} else {
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
let result;
|
if (resultBody) {
|
||||||
|
// Api find all result (for get tmdb id)
|
||||||
|
const getJson = JSON.parse(resultBody.body);
|
||||||
|
|
||||||
if (findImdb) {
|
if (getJson.status_code > 1) {
|
||||||
result = type == 'movie' ? getJson.movie_results : getJson.tv_results
|
// if wrong api key error
|
||||||
|
reject('tmdb find id wrong api key error')
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
} else {
|
let result;
|
||||||
result = getJson.results
|
|
||||||
}
|
|
||||||
|
|
||||||
// if tmdb api result not empty
|
if (imdbId) {
|
||||||
if (result.length) {
|
result = type == 'movie' ? getJson.movie_results : getJson.tv_results
|
||||||
|
|
||||||
const thmdbId = result[0].id;
|
} else {
|
||||||
|
result = getJson.results
|
||||||
|
}
|
||||||
|
|
||||||
// Get detail info
|
// if tmdb api result not empty
|
||||||
modules.getDetails(thmdbId, type, tmdbApiKey, theMovieDbLanguage, (err, getDetailResult) => {
|
if (result.length) {
|
||||||
|
|
||||||
if (err) {
|
const thmdbId = result[0].id;
|
||||||
returnResult = { error: 1, errorMsg: err };
|
|
||||||
reject(returnResult);
|
try {
|
||||||
|
// Get detail info
|
||||||
|
const getDetailResult = await modules.getTmdbDetails('details', thmdbId, type, tmdbApiKey, theMovieDbLanguage)
|
||||||
|
// Get credits info
|
||||||
|
const getCreditsResult = await modules.getTmdbDetails('credits', thmdbId, type, tmdbApiKey)
|
||||||
|
// Get images info
|
||||||
|
const getImagesResult = await modules.getTmdbDetails('images', thmdbId, type, tmdbApiKey)
|
||||||
|
// Get trailers
|
||||||
|
const getTrailersResult = await modules.getTmdbDetails('trailers', thmdbId, type, tmdbApiKey)
|
||||||
|
|
||||||
|
// Result Object
|
||||||
|
result = {
|
||||||
|
result: 1,
|
||||||
|
error: 0,
|
||||||
|
watch: type,
|
||||||
|
imdb: {
|
||||||
|
// imdb üzerinden id alınamadıysa tmdb üzerinden alınmaya çalışılır. tmdb'de de yoksa null döner
|
||||||
|
id: (imdbId != null ? imdbId : (getDetailResult.imdb_id != undefined ? getDetailResult.imdb_id : null)),
|
||||||
|
rate: imdbRate
|
||||||
|
},
|
||||||
|
netflix: {
|
||||||
|
title: netflixTitle,
|
||||||
|
year: netflixYear,
|
||||||
|
poster_url: netflixPosterUrl,
|
||||||
|
age_rates: netflixAgeRates,
|
||||||
|
season: netflixSeasonNumber,
|
||||||
|
runtime: netflixRuntime,
|
||||||
|
overview: netflixOverview,
|
||||||
|
genres: netflixGenres,
|
||||||
|
cast: netflixCast
|
||||||
|
},
|
||||||
|
tmdb: {
|
||||||
|
details: getDetailResult,
|
||||||
|
credits: getCreditsResult,
|
||||||
|
images: getImagesResult,
|
||||||
|
trailers: getTrailersResult
|
||||||
|
}
|
||||||
|
};
|
||||||
|
resolve(result);
|
||||||
|
} catch (error) {
|
||||||
|
reject('tmdb bilgileri alinirken hata olustu: ' + error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Get credits info
|
// Tmdb verisi yoksa sadece netflix verisi döndür
|
||||||
modules.getCredits(thmdbId, type, tmdbApiKey, (err, getCreditsResult) => {
|
result = {
|
||||||
if (err) {
|
result: 1,
|
||||||
returnResult = { error: 1, errorMsg: err };
|
error: 0,
|
||||||
reject(returnResult);
|
watch: type,
|
||||||
}
|
imdb: {
|
||||||
else {
|
id: imdbId,
|
||||||
// Get images info
|
rate: imdbRate
|
||||||
modules.getImages(thmdbId, type, tmdbApiKey, (err, getImagesResult) => {
|
},
|
||||||
if (err) {
|
netflix: {
|
||||||
returnResult = { error: 1, errorMsg: err };
|
title: netflixTitle,
|
||||||
reject(returnResult);
|
year: netflixYear,
|
||||||
}
|
age_rates: netflixAgeRates,
|
||||||
else {
|
season: netflixSeasonNumber,
|
||||||
modules.getTrailers(thmdbId, type, tmdbApiKey, (err, getTrailersResult) => {
|
runtime: netflixRuntime,
|
||||||
if (err) {
|
overview: netflixOverview,
|
||||||
returnResult = { error: 1, errorMsg: err };
|
genres: netflixGenres,
|
||||||
reject(returnResult);
|
cast: netflixCast
|
||||||
} else {
|
},
|
||||||
getDetailResult.netflix_overview = netflixOverview;
|
tmdb: null
|
||||||
getDetailResult.netflix_poster = netflixPoster;
|
};
|
||||||
getDetailResult.netflix_title = title;
|
resolve(result);
|
||||||
returnResult = { result: 1, error: 0, watch: type, details: getDetailResult, credits: getCreditsResult, images: getImagesResult, trailers: getTrailersResult };
|
|
||||||
resolve(returnResult);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
// thmdb verisi hatalı döndüyse
|
||||||
// Return the empty result if tmdb return empty
|
reject('tmdb api result.body hatalı döndü')
|
||||||
const returnResult = { result: 0, error: 1, msg: 'tmdb api return is empty' };
|
|
||||||
reject(returnResult)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
} else {
|
||||||
} else {
|
// language bilgisi hatalı
|
||||||
returnResult = { error: 1, errorMsg: 'language parameters not found.' };
|
reject('language parameters not found')
|
||||||
reject(returnResult)
|
}
|
||||||
}
|
}
|
||||||
}
|
else {
|
||||||
else {
|
// Return the empty result if imdb id cannot be found
|
||||||
// Return the empty result if imdb id cannot be found
|
reject('imdb id cannot be found')
|
||||||
const returnResult = { result: 0, error: 0, msg: 'imdb id cannot be found' };
|
}
|
||||||
reject(returnResult)
|
} else {
|
||||||
|
reject('netflix verileri alınamadı')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
191
lib/module.js
191
lib/module.js
@@ -1,169 +1,54 @@
|
|||||||
const config = require('../config');
|
const config = require('../config');
|
||||||
const request = require('request');
|
const request = require('request');
|
||||||
|
|
||||||
module.exports.getDetails = function (detailsId, movieOrTv, tmdbApiKey, language, cb) {
|
module.exports.getTmdbDetails = function (getParamaters, thmdbId, type, tmdbApiKey, language) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
|
||||||
if (movieOrTv == 'movie' || movieOrTv == 'tv') {
|
if (type == 'movie' || type == 'tv') {
|
||||||
|
|
||||||
const detailURL = config.theMovieDbURL + movieOrTv + '/' + detailsId + '?api_key=' + tmdbApiKey + '&language=' + language;
|
let url
|
||||||
|
|
||||||
request(detailURL, (err, resultBody, body) => {
|
switch (getParamaters) {
|
||||||
if (resultBody != '') {
|
case 'details':
|
||||||
const getJson = JSON.parse(resultBody.body);
|
url = config.theMovieDbURL + type + '/' + thmdbId + '?api_key=' + tmdbApiKey + '&language=' + language;
|
||||||
|
break;
|
||||||
if (getJson.status_code > 1) {
|
case 'credits':
|
||||||
// if wrong api key error
|
url = config.theMovieDbURL + type + '/' + thmdbId + '/credits?api_key=' + tmdbApiKey + '&language=en-US';
|
||||||
const error = 'tmdb get detail wrong api key error';
|
break;
|
||||||
const result = null;
|
case 'trailers':
|
||||||
cb(error, result);
|
url = config.theMovieDbURL + type + '/' + thmdbId + '/videos?api_key=' + tmdbApiKey;
|
||||||
}
|
break;
|
||||||
else {
|
case 'images':
|
||||||
if (err) {
|
url = config.theMovieDbURL + type + '/' + thmdbId + '/images?api_key=' + tmdbApiKey + '&language=en-US&include_image_language=en,null';
|
||||||
// if thmdb api connection error
|
break;
|
||||||
const error = 'tmdb get detail api connection error';
|
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const error = null;
|
|
||||||
const result = getJson;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
const error = 'tmdb get detail api connection error';
|
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const error = 'tmdb get detail wrong watch parameter';
|
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports.getCredits = function (detailsId, movieOrTv, tmdbApiKey, cb) {
|
request(encodeURI(url), (err, resultBody, body) => {
|
||||||
|
|
||||||
if (movieOrTv == 'movie' || movieOrTv == 'tv') {
|
|
||||||
|
|
||||||
const creditsURL = config.theMovieDbURL + movieOrTv + '/' + detailsId + '/credits?api_key=' + tmdbApiKey + '&language=en-US';
|
|
||||||
|
|
||||||
request(creditsURL, (err, resultBody, body) => {
|
|
||||||
|
|
||||||
const getJson = JSON.parse(resultBody.body);
|
|
||||||
|
|
||||||
if (getJson.status_code > 1) {
|
|
||||||
// if wrong api key error
|
|
||||||
const error = 'tmdb get credits wrong api key error';
|
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (err) {
|
if (err) {
|
||||||
// if thmdb api connection error
|
// if thmdb api connection error
|
||||||
const error = 'tmdb get credits api connection error';
|
reject('tmdb get detail api connection error');
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const error = null;
|
if (resultBody != '') {
|
||||||
const result = getJson;
|
const getJson = JSON.parse(resultBody.body);
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
if (getJson.status_code > 1) {
|
||||||
}
|
// if wrong api key error
|
||||||
else {
|
reject('tmdb get detail wrong api key error');
|
||||||
const error = 'tmdb get credits wrong watch parameter';
|
}
|
||||||
const result = null;
|
else {
|
||||||
cb(error, result);
|
resolve(getJson);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
|
// request sonucu boş dönmüşse null döndür
|
||||||
module.exports.getTrailers = function (detailsId, movieOrTv, tmdbApiKey, cb) {
|
resolve(null)
|
||||||
|
|
||||||
if (movieOrTv == 'movie' || movieOrTv == 'tv') {
|
|
||||||
|
|
||||||
// https://api.themoviedb.org/3/movie/157336/videos?api_key=API-KEY
|
|
||||||
const trailersURL = config.theMovieDbURL + movieOrTv + '/' + detailsId + '/videos?api_key=' + tmdbApiKey;
|
|
||||||
|
|
||||||
request(trailersURL, (err, resultBody, body) => {
|
|
||||||
|
|
||||||
const getJson = JSON.parse(resultBody.body);
|
|
||||||
|
|
||||||
if (getJson.status_code > 1) {
|
|
||||||
// if wrong api key error
|
|
||||||
const error = 'tmdb get credits wrong api key error';
|
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (err) {
|
|
||||||
// if thmdb api connection error
|
|
||||||
const error = 'tmdb get trailers api connection error';
|
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const error = null;
|
|
||||||
const result = getJson;
|
|
||||||
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const error = 'tmdb get trailers wrong watch parameter';
|
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports.getImages = function (detailsId, movieOrTv, tmdbApiKey, cb) {
|
|
||||||
|
|
||||||
if (movieOrTv == 'movie' || movieOrTv == 'tv') {
|
|
||||||
|
|
||||||
const creditsURL = config.theMovieDbURL + movieOrTv + '/' + detailsId + '/images?api_key=' + tmdbApiKey + '&language=en-US&include_image_language=en,null';
|
|
||||||
|
|
||||||
request(creditsURL, (err, resultBody, body) => {
|
|
||||||
|
|
||||||
if (resultBody != []) {
|
|
||||||
const getJson = JSON.parse(resultBody.body);
|
|
||||||
if (getJson.status_code > 1) {
|
|
||||||
// if wrong api key error
|
|
||||||
const error = 'tmdb get images wrong api key error';
|
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (err) {
|
|
||||||
// if thmdb api connection error
|
|
||||||
const error = 'tmdb get images api connection error';
|
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
const error = null;
|
|
||||||
const result = getJson;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
});
|
||||||
// if wrong api key error
|
}
|
||||||
const error = 'error getting data';
|
else {
|
||||||
const result = null;
|
reject('tmdb get detail wrong watch parameter');
|
||||||
cb(error, result);
|
}
|
||||||
}
|
})
|
||||||
});
|
}
|
||||||
}
|
|
||||||
else {
|
|
||||||
const error = 'tmdb get images wrong watch parameter';
|
|
||||||
const result = null;
|
|
||||||
cb(error, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "flixinfo",
|
"name": "flixinfo",
|
||||||
"version": "1.2.5",
|
"version": "1.3.0",
|
||||||
"description": "Get movie detail with netflix id",
|
"description": "Get movie detail with netflix id",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"directories": {
|
"directories": {
|
||||||
|
|||||||
Reference in New Issue
Block a user