Skip to content

Commit

Permalink
implement localized basic app and imdb api call
Browse files Browse the repository at this point in the history
  • Loading branch information
hthetiot committed Feb 15, 2018
1 parent 8d9ac44 commit 64338b8
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 32 deletions.
67 changes: 37 additions & 30 deletions core/tmdb-service.js
Expand Up @@ -9,12 +9,16 @@ var Promise = require("montage/core/promise").Promise;
var CategoryController = require("./category-controller").CategoryController;
var sharedTransport = require("./jsonp-transport").shared;

var defaultLocalizer = require("montage/core/localizer").defaultLocalizer;

var API_KEY = "dbf71473cf25bbd06939baef47b626eb";
var BOX_OFFICE_FEED = "https://api.themoviedb.org/3/movie/now_playing?api_key=" + API_KEY;
var UPCOMING_FEED = "https://api.themoviedb.org/3/movie/upcoming?api_key=" + API_KEY;
var TOP_RATED_FEED = "https://api.themoviedb.org/3/movie/top_rated?api_key=" + API_KEY;
var POPULAR_FEED = "https://api.themoviedb.org/3/movie/popular?api_key=" + API_KEY;
var MOVIE = "https://api.themoviedb.org/3/movie/";
var API_URL = "https://api.themoviedb.org/3/";
var BOX_OFFICE_FEED = API_URL + "movie/now_playing";
var UPCOMING_FEED = API_URL + "movie/upcoming";
var TOP_RATED_FEED = API_URL + "movie/top_rated";
var POPULAR_FEED = API_URL + "movie/popular";
var POPULAR_FEED = API_URL + "movie/popular";
var MOVIE = API_URL + "movie/";
/**
* @class TmdbService
* @extends Montage
Expand All @@ -29,6 +33,13 @@ exports.TmdbService = Montage.specialize(/** @lends TmdbService# */ {
}
},

defaultParams: {
get: function () {
var language = defaultLocalizer.locale || 'en';
return "?api_key=" + API_KEY + "&language=" + language;
}
},

load: {
value: function () {
var self = this;
Expand Down Expand Up @@ -115,38 +126,36 @@ exports.TmdbService = Montage.specialize(/** @lends TmdbService# */ {
loadLatestBoxOfficeMovies: {
value: function () {

return sharedTransport.makeRequest(BOX_OFFICE_FEED, "tmdb")
.then(function (response) {
return response.results;
});
return sharedTransport.makeRequest(BOX_OFFICE_FEED + this.defaultParams, "tmdb")
.then(function (response) {
return response.results;
});
}
},

loadUpcomingMovies: {
value: function () {

return sharedTransport.makeRequest(UPCOMING_FEED, "tmdb")
.then(function (response) {
return response.results;
});
return sharedTransport.makeRequest(UPCOMING_FEED + this.defaultParams, "tmdb")
.then(function (response) {
return response.results;
});
}
},

loadTopRated: {
value: function () {

return sharedTransport.makeRequest(TOP_RATED_FEED, "tmdb")
.then(function (response) {
return response.results;
});
return sharedTransport.makeRequest(TOP_RATED_FEED + this.defaultParams, "tmdb")
.then(function (response) {
return response.results;
});
}

},

loadPopular: {
value: function () {

return sharedTransport.makeRequest(POPULAR_FEED, "tmdb")
return sharedTransport.makeRequest(POPULAR_FEED + this.defaultParams, "tmdb")
.then(function (response) {
return response.results;
});
Expand All @@ -155,22 +164,20 @@ exports.TmdbService = Montage.specialize(/** @lends TmdbService# */ {

loadMovie: {
value: function (movie) {

return sharedTransport.makeRequest(MOVIE+ movie.id + "?api_key=" + API_KEY + "&append_to_response=trailers", "tmdb")
.then(function (response) {
// console.log('response:', response);
return response;
return sharedTransport.makeRequest(MOVIE + movie.id + this.defaultParams + "&append_to_response=trailers", "tmdb")
.then(function (response) {
// console.log('response:', response);
return response;
});
}
},

loadReleases: {
value: function (movie) {

return sharedTransport.makeRequest(MOVIE+ movie.id + "/releases?api_key=" + API_KEY, "tmdb")
.then(function (response) {
return response;
});
return sharedTransport.makeRequest(MOVIE + movie.id + "/releases" + this.defaultParams, "tmdb")
.then(function (response) {
return response;
});
}
},

Expand Down
3 changes: 3 additions & 0 deletions locale/en/messages.json
@@ -0,0 +1,3 @@
{
"hello": "Hello"
}
3 changes: 3 additions & 0 deletions locale/fr/messages.json
@@ -0,0 +1,3 @@
{
"hello": "Bonjours"
}
22 changes: 21 additions & 1 deletion manifest.json
Expand Up @@ -23,5 +23,25 @@
],
"theme_color": "#000",
"background_color": "#000",
"display": "standalone"
"display": "standalone",
"montage_manifest_version": 1,
"files": {
"locale": {
"directory": true,
"files": {
"en": {
"directory": true,
"files": {
"messages.json": null
}
},
"fr": {
"directory": true,
"files": {
"messages.json": null
}
}
}
}
}
}
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -10,6 +10,7 @@
},
"production": true,
"appcache": true,
"manifest": true,
"dependencies": {
"digit": "^3.0.2",
"montage": "montagejs/montage#master",
Expand Down
12 changes: 11 additions & 1 deletion ui/main.reel/main.js
@@ -1,13 +1,23 @@

var Component = require("montage/ui/component").Component,
sharedMoviesService = require("core/tmdb-service").shared;
sharedMoviesService = require("core/tmdb-service").shared,
defaultLocalizer = require("montage/core/localizer").defaultLocalizer;

//TODO use details in toggle buttons
//TODO do not use matte toggle buttons
exports.Main = Component.specialize({

constructor: {
value: function Main () {

/*
// Test localize
defaultLocalizer.locale = 'fr';
defaultLocalizer.localize("hello").then(function (localized) {
console.log(localized);
});
*/

this.application.addEventListener( "openTrailer", this, false);

this.canDrawGate.setField("moviesLoaded", false);
Expand Down

0 comments on commit 64338b8

Please sign in to comment.