integ/js/iri-buzz.js
changeset 28 84719280c84d
child 29 6917b55f901f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/integ/js/iri-buzz.js	Fri Apr 12 15:08:00 2013 +0200
@@ -0,0 +1,240 @@
+$(function(){
+
+var CONFIG = {
+	wChart : 100,
+	now : new Date(),
+	dayLimit : 1,
+	timelineMin : 5,
+	bar : []
+};
+
+var bcSettings = {
+	width : 960,
+	height : 400,
+	chart : {
+		spacer : 0
+	},
+	data : {
+		model :[],
+		strata:[],
+		stream : { provider : 'direct' }
+	},
+	sedimentation:{
+    	aggregation:{height:100}
+  	},
+  	options:{layout:false}
+};
+
+
+var currentDay = new Date().getDate();
+var _reviewMovies = [];
+var nbMovies;
+var indiceMovie = 0;
+var indiceBar = 0;
+var barChart;
+
+var urlBestMovies = 'http://api.allocine.fr/rest/v3/movielist?partner='+ partnerCode +'&format=json&filter=top:week&count=15';
+$.getJSON(urlBestMovies, function(data) {
+	
+	var movies = data.feed.movie;
+	nbMovies = movies.length;
+	bcSettings.width = nbMovies * CONFIG.wChart;
+	$('.posters').css('width', bcSettings.width);
+	//var wItem = bcSettings.width / nbMovies;
+
+	_.each(movies, function(d){
+
+		var dataMovie = {
+			title : d.originalTitle,
+			code : d.code,
+			posterUrl : d.poster.href,
+			userRating : d.statistics.userRating,
+			userReviewCount : d.statistics.userReviewCount
+		};
+
+		var poster = 
+			'<li>'+
+				'<img src="'+ dataMovie.posterUrl  +'" alt="'+ dataMovie.title +'" />'+
+			'</li>';
+		$('.posters').append(poster);
+
+		//getReviewsByFilm(dataMovie.code);
+
+		CONFIG.bar.push(dataMovie.code);
+
+		bcSettings.data.model.push({});
+
+		var userReviewCount = dataMovie.userReviewCount;
+		if(_.isUndefined(userReviewCount))userReviewCount = 0;
+		var initValue = userReviewCount;
+
+		bcSettings.data.strata.push([{initValue: initValue }]);
+/*
+		var item = $('<li>').attr('data-poster', dataMovie.posterUrl).attr('id', 'movie-'+dataMovie.code ).attr('id', 'movie-'+dataMovie.code ).css('width', wItem);
+		var nbReview = $('<span>').addClass('nbReview').text(userReviewCount);
+		item.append(nbReview);
+		item.appendTo('.info-movies');
+*/
+	});
+
+	barChart = $("#data-viz").vs(bcSettings).data('visualSedimentation');
+
+});
+/*
+var now = new Date();
+
+function reviewAllowSince(dateReview){
+	var diffNowReview = CONFIG.now.getTime() - new Date(dateReview).getTime();
+	var limit = (CONFIG.dayLimit * 24) * 60 * 60 * 1000;
+	if(diffNowReview<=limit){
+		var startDate = limit - diffNowReview;
+		return startDate;
+	}else{
+		return false;
+	}
+}
+
+function generateTimerByMin(time){
+	var timeLimit = (CONFIG.timelineMin*60)*1000;
+	return (time * timeLimit) / ((CONFIG.dayLimit*24)*60*60*1000)
+}
+
+function showHorloge(){
+	var timestampDateLimit = CONFIG.now.getTime() - ((CONFIG.dayLimit*24)*60*60*1000);
+	var dateLimit = new Date(timestampDateLimit);
+	var diff = CONFIG.now.getTime() - timestampDateLimit;
+
+	var oneHour = (CONFIG.timelineMin * 60 * 1000) / (CONFIG.dayLimit*24);
+	var oneMinute = oneHour / 60;
+
+	displayHorloge(timestampDateLimit);
+
+	setInterval(function(){
+		if(timestampDateLimit>=CONFIG.now.getTime()) return;
+		timestampDateLimit = timestampDateLimit + (60 * 1000);
+		displayHorloge(timestampDateLimit);
+	},oneMinute);
+
+}
+
+function displayHorloge(timestampDateLimit){
+	timestampDateLimit = timestampDateLimit+(60*1000);
+	var dateLimit = new Date(timestampDateLimit);
+	var horlogeHour = dateLimit.getHours();
+	var horlogeMin = dateLimit.getMinutes();
+	if(horlogeMin.toString().length==1)horlogeMin = '0'+horlogeMin;
+	var horlogeDay = dateLimit.getDate();
+	var horlogeMonth = dateLimit.getMonth()+1;
+	$('.horloge').html(horlogeDay+' / '+horlogeMonth+'<br/>'+horlogeHour+'h'+horlogeMin);
+}
+
+function getReviewsByFilm(codeFilm){
+
+	var _movie = {
+		movieCode : codeFilm
+	};
+
+	var reviewCount = 100;
+	var urlCommentaireMovie = 'http://api.allocine.fr/rest/v3/reviewlist?partner='+ partnerCode +'&format=json&filter=public&count='+reviewCount+'&subject=movie:'+codeFilm;
+	$.getJSON(urlCommentaireMovie, function(data) {
+
+		var nbFilmSince = 0;
+		//console.log(data)
+		var totalResults = data.feed.totalResults;
+		if(totalResults > 0) {
+			var _reviews = new Array();
+			var reviews = data.feed.review;
+			_.each(reviews, function(d){
+				if(d.totalResults == 0) return;
+
+				var dataReview = {
+					commentaire : d.body,
+					date : d.creationDate,//"2013-03-10T
+					rating : d.rating,
+					author : d.writer.name
+				};
+
+				var startDate = reviewAllowSince(d.creationDate);
+
+				if(startDate){
+					nbFilmSince++
+					dataReview.startDate = startDate;
+					_reviews.push(dataReview);
+				}
+			});
+
+			var totalReviews = $('li#movie-'+codeFilm+' span.nbReview').text();
+			$('li#movie-'+codeFilm+' span.nbReview').text(totalReviews-nbFilmSince)
+
+			_movie.reviews = _reviews;
+			_reviewMovies.push(_movie);
+		}
+
+		indiceMovie++;
+		//console.log(indiceMovie)
+		if(indiceMovie == nbMovies){
+			showHorloge();
+			displayReviews();
+		}
+
+	});//getJson
+}//getReviewsByFilm
+
+function displayReviews(){
+	_.each(_reviewMovies, function(a){
+		var movieCode = a.movieCode;
+		var reviews = a.reviews;
+
+		var barCharCat;
+		$.each(CONFIG.bar, function(k,v){
+			if(movieCode == v)barCharCat = k;
+		});
+
+		_.each(reviews, function(b){
+
+			b.movieCode = movieCode;
+			var startDate = b.startDate;
+
+			var timer = generateTimerByMin(startDate);
+			setTimeout(function(){
+				addToken(barCharCat, b)
+			},timer);
+		});
+	});
+}//displayReviews
+
+function addToken(barCharCat, data){
+	var commentaire = data.commentaire;
+	var date = data.date;
+	var rating = data.rating;
+	var author = data.author;
+	var movieCode = data.movieCode;
+
+	var nbReview = $('li#movie-'+movieCode+' span.nbReview').text();
+	var newNbReview = parseInt(nbReview)+1;
+	$('li#movie-'+movieCode+' span.nbReview').text(newNbReview);
+	//console.log(data.author)
+	barChart.addToken({
+		commentaire : commentaire,
+		movieCode : movieCode,
+		date : date,
+		rating : rating,
+		author : author,
+	  	category:barCharCat,
+	  	size:3,
+	  	callback:{
+            mouseover:function(token){
+            	var commentaire = token.attr('commentaire');
+            	var author = token.attr('author');
+            	var date = token.attr('date');
+            	var movieCode = token.attr('movieCode');
+            	$('.review .author').text(author+', '+date);
+            	$('.review .comment').text(commentaire);
+            	var poster = $('li#movie-'+movieCode).attr('data-poster');
+            	$('.review img').attr('src', poster);
+            }
+     	}
+	});
+}
+*/
+});//load
\ No newline at end of file