--- a/web/common.php Fri Aug 19 17:53:30 2011 +0200
+++ b/web/common.php Sun Aug 28 11:48:30 2011 +0200
@@ -105,43 +105,47 @@
$js_registry = array(
'local' => array(
- 'jquery' => URL_ROOT.'res/js/jquery-1.4.3.min.js',
- 'raphael' => URL_ROOT.'res/raphael/raphael-min.js',
- 'jquery-ui' => URL_ROOT.'res/js/jquery-ui-1.8.13.min.js',
- 'niceforms' => URL_ROOT.'res/niceforms/niceforms.js',
- 'jquery-url' => URL_ROOT.'res/js/jquery.url.js',
- 'ldtplayer' => URL_ROOT.'res/metadataplayer/src/js/LdtPlayer.js',
- 'fancybox' => URL_ROOT.'res/jquery.fancybox/fancybox/jquery.fancybox-1.3.4.pack.js',
- 'jquery-tools' => URL_ROOT.'res/metadataplayer/res/js/jquery.tools.min.js',
- 'tw-widget' => URL_ROOT.'res/js/tw_widget.js',
+ 'jquery' => URL_ROOT.'res/js/jquery-1.4.3.min.js',
+ 'raphael' => URL_ROOT.'res/raphael/raphael-min.js',
+ 'jquery-ui' => URL_ROOT.'res/js/jquery-ui-1.8.13.min.js',
+ 'niceforms' => URL_ROOT.'res/niceforms/niceforms.js',
+ 'jquery-url' => URL_ROOT.'res/js/jquery.url.js',
+ 'ldtplayer' => URL_ROOT.'res/metadataplayer/src/js/LdtPlayer.js',
+ 'fancybox' => URL_ROOT.'res/jquery.fancybox/fancybox/jquery.fancybox-1.3.4.pack.js',
+ 'jquery-tools' => URL_ROOT.'res/metadataplayer/res/js/jquery.tools.min.js',
+ 'tw-widget' => URL_ROOT.'res/js/tw_widget.js',
'jquery-mousewheel' => URL_ROOT.'res/jquery.fancybox/fancybox/jquery.mousewheel-3.0.4.pack.js',
- 'swfobject' => URL_ROOT.'res/metadataplayer/res/js/swfobject.js',
+ 'swfobject' => URL_ROOT.'res/metadataplayer/res/js/swfobject.js',
+ 'json-js' => URL_ROOT.'res/douglascrockford-JSON-js/json2.js',
+
),
'cdn' => array(
- 'jquery' => 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js',
- 'raphael' => URL_ROOT.'res/raphael/raphael-min.js',
- 'jquery-ui' => 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js',
- 'niceforms' => URL_ROOT.'res/niceforms/niceforms.js',
- 'jquery-url' => URL_ROOT.'res/js/jquery.url.js',
- 'ldtplayer' => URL_ROOT.'res/metadataplayer/src/js/LdtPlayer.js',
- 'fancybox' => URL_ROOT.'res/jquery.fancybox/fancybox/jquery.fancybox-1.3.4.pack.js',
- 'jquery-tools' => 'http://cdn.jquerytools.org/1.2.4/all/jquery.tools.min.js',
- 'tw-widget' => 'http://widgets.twimg.com/j/2/widget.js',
+ 'jquery' => 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js',
+ 'raphael' => URL_ROOT.'res/raphael/raphael-min.js',
+ 'jquery-ui' => 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js',
+ 'niceforms' => URL_ROOT.'res/niceforms/niceforms.js',
+ 'jquery-url' => URL_ROOT.'res/js/jquery.url.js',
+ 'ldtplayer' => URL_ROOT.'res/metadataplayer/src/js/LdtPlayer.js',
+ 'fancybox' => URL_ROOT.'res/jquery.fancybox/fancybox/jquery.fancybox-1.3.4.pack.js',
+ 'jquery-tools' => 'http://cdn.jquerytools.org/1.2.4/all/jquery.tools.min.js',
+ 'tw-widget' => 'http://widgets.twimg.com/j/2/widget.js',
'jquery-mousewheel' => URL_ROOT.'res/jquery.fancybox/fancybox/jquery.mousewheel-3.0.4.pack.js',
- 'swfobject' => 'http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js',
+ 'swfobject' => 'http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js',
+ 'json-js' => URL_ROOT.'res/douglascrockford-JSON-js/json2.js',
+
)
);
$font_registry = array(
'local' => array(
'PT-Sans_Narrow' => URL_ROOT.'res/fonts/PT_Sans-Narrow-Web-Regular.css',
- 'PT-Sans' => URL_ROOT.'res/fonts/PT_Sans-Web-Regular.css',
- 'Geo' => URL_ROOT.'res/fonts/Geo-Regular.css'
+ 'PT-Sans' => URL_ROOT.'res/fonts/PT_Sans-Web-Regular.css',
+ 'Geo' => URL_ROOT.'res/fonts/Geo-Regular.css'
),
'cdn' => array(
'PT-Sans_Narrow' => 'http://fonts.googleapis.com/css?family=PT+Sans+Narrow&subset=latin',
- 'PT-Sans' => 'http://fonts.googleapis.com/css?family=PT+Sans&subset=latin',
- 'Geo' => 'http://fonts.googleapis.com/css?family=Geo&subset=latin'
+ 'PT-Sans' => 'http://fonts.googleapis.com/css?family=PT+Sans&subset=latin',
+ 'Geo' => 'http://fonts.googleapis.com/css?family=Geo&subset=latin'
)
);
--- a/web/polemicaltimeline.php Fri Aug 19 17:53:30 2011 +0200
+++ b/web/polemicaltimeline.php Sun Aug 28 11:48:30 2011 +0200
@@ -36,6 +36,7 @@
<!-- ICI : <?php echo($_SERVER['DOCUMENT_ROOT']); ?> -->
<!-- JAVASCRIPT -->
+ <script type="text/javascript" src="<?php echo(registry_url('json-js','js'));?>"></script>
<script type="text/javascript" src="<?php echo(registry_url('jquery','js'));?>"></script>
<script type="text/javascript">
$.noConflict();
--- a/web/res/metadataplayer.polemic/src/js/polemic.js Fri Aug 19 17:53:30 2011 +0200
+++ b/web/res/metadataplayer.polemic/src/js/polemic.js Sun Aug 28 11:48:30 2011 +0200
@@ -18,10 +18,16 @@
*/
// CHART TIMELINE / VERSION PROTOTYPE ::
-
+ var RAWTweets;
+ var userPol = new Array();
+ var userNoPol = new Array();
+ var numberOfTweet = 0;
+ var Users;
+ var TweetPolemic;
var yMax = config.height;
var PaperSlider;
- var heightOfChart;
+ var heightOfChart;
+ var tweets = new Array();
// Make and define the Raphael area
//var paper = Raphael(document.getElementById(config.target),config.width, config.height);
@@ -41,7 +47,7 @@
var colors = new Array("","#1D973D","#C5A62D","#CE0A15","#036AAE","#585858");
// array
- var tweets = new Array();
+ //var tweets = new Array();
var element = new Array();
var cluster = new Array();
var frames = new Array(frameLenght);
@@ -91,21 +97,31 @@
// Refactoring (parametere) ************************************************************
// color translastion
+ var qTweet_0 =0;
+ var qTweet_Q =0;
+ var qTweet_REF=0;
+ var qTweet_OK =0;
+ var qTweet_KO =0;
function colorTranslation(value){
if(value == "Q"){
+ qTweet_Q+=1;
return 2;
}else if(value =="REF"){
+ qTweet_REF+=1;
return 4;
}else if(value =="OK"){
+ qTweet_OK+=1;
return 1;
}else if(value =="KO"){
+ qTweet_KO+=1;
return 3;
}else if(value ==""){
+ qTweet_0+=1;
return 5;
}
}
-
+
// Refactoring (parametere) ************************************************************
// load tweets send in parameters
__IriSP.jQuery.ajax({
@@ -121,16 +137,25 @@
if(typeof(view.annotation_types) !== "undefined" && view.annotation_types.length > 1) {
tweet_annot_type = view.annotation_types[1];
}
-
+ RAWTweets = json.annotations;
__IriSP.jQuery.each(json.annotations, function(i,item) {
var MyTime = Math.floor(item.begin/duration*lineSize);
var Myframe = Math.floor(MyTime/lineSize*frameLenght);
- if (typeof(item.meta) !== "undefined" && typeof(item.meta["id-ref"]) !== "undefined" && item.meta["id-ref"] === tweet_annot_type) {
- if (item.content['polemics'] != undefined && item.content['polemics'][0] != null) {
+ if (typeof(item.meta) !== "undefined"
+ && typeof(item.meta["id-ref"]) !== "undefined"
+ && item.meta["id-ref"] === tweet_annot_type) {
+ var MyTJson = JSON.parse(item.meta['dc:source']['content']);
+
+ if (item.content['polemics'] != undefined
+ && item.content['polemics'][0] != null) {
+
+
+ //console.log(item.meta['dc:source']['content']);
+
for(var j=0; j<item.content['polemics'].length; j++){
tweets[numberOfTweet] = {
@@ -139,9 +164,13 @@
yIndicator:MyTime,
yframe:Myframe,
title:item.content['title'],
- timeframe:item.begin
+ timeframe:item.begin,
+ userId: MyTJson.id,
+ userScreenName: MyTJson.screen_name,
+ tsource:MyTJson
};
numberOfTweet+=1;
+
}
}
else {
@@ -152,7 +181,11 @@
yIndicator:MyTime,
yframe:Myframe,
title:item.content['title'],
- timeframe:item.begin
+ timeframe:item.begin,
+ userId: MyTJson.id,
+ userScreenName: MyTJson.screen_name,
+ tsource:MyTJson
+
};
numberOfTweet+=1;
}
@@ -162,13 +195,203 @@
//trace("tweet qualification = ","null");
}
});
- trace("======= ",numberOfTweet);
+
DrawTweets ();
+ if(numberOfTweet>0){Report();}
}
});
+
+ function pourcent(value,max){
+ var myPourcentage = Math.round(value/max*1000)/10;
+ return myPourcentage;
+ }
+ function round2Dec(value){
+ var myValueRounded = Math.round(value*100)/100;
+ return myValueRounded
+ }
+
+ function searchKeyValueArray(mykey,myvalue,myarray){
+ for(var i=0; i<myarray.length; i++) {
+ if(myarray[i][mykey]==myvalue){
+ return i;
+ console.log("trouvé !");
+ }
+ }
+ return true;
+ }
+
+ var tweetConversationel = new Array();
+ var tweetConversationelSP = 0;
+ var tweetClient = new Array();
+ var tweetRetweet = new Array();
+ var maxRetweet
+ function tweetRetweetCount(mytweet){
+ tweet = mytweet.tsource
+ var retweetIsHere = false;
+ var myRT = {
+ id:'',
+ tweet:tweet,
+ total:1,
+ SPtraine:''
+ }
+ if(tweet.retweet_count>0){
+ for(var i=0; i<tweetRetweet.length; i++){
+ if(tweetRetweet[i].id==myRT.id){
+ myRT = tweetRetweet[i];
+ retweetIsHere=true;
+ }
+ }
+
+ if (mytweet.qualification==5){
+ myTclient.numberNsp+=1;
+ }else{
+ myTclient.numberSp+=1;
+ }
+
+ if(retweetIsHere==false){
+ tweetRetweet.push(myRT);
+ }else{
+ myRT.total+=1;
+ }
+
+ }
+ }
+ function tweetRetweetReport(tweet){
+
+ }
+ function tweetClientCount(tweet){
+ var myTclient = {
+ client:tweet.tsource.source,
+ numberNsp:0,
+ numberSp:0,
+ total:1,
+ }
+ var clientIsHere = false;
+ for(var i=0; i<tweetClient.length; i++) {
+ if (tweetClient[i].client==tweet.tsource.source){
+ clientIsHere = true;
+ myTclient = tweetClient[i];
+ }
+ }
+ if (tweet.qualification==5){
+ myTclient.numberNsp+=1;
+ }else{
+ myTclient.numberSp+=1;
+ }
+ if(clientIsHere==false){
+ tweetClient.push(myTclient);
+ }else{
+ myTclient.total+=1
+ }
+ }
+ function tweetClientSort(a,b){
+ return (a.total < b.total)?1:-1;
+ }
+ function tweetClientReport(){
+ tweetClient.sort(tweetClientSort);
+ console.log("_______________________________");
+ for(var i=0; i<tweetClient.length; i++) {
+ if(tweetClient[i].total>1){
+ console.log("t: "+tweetClient[i].total+" / sp :"+tweetClient[i].numberSp+" : "+tweetClient[i].client);
+ }
+ }
+ }
+ function conversationalCount(tweet){
+ if(tweet.tsource.entities.user_mentions.length>2){
+ if (tweet.qualification!=5){
+ tweetConversationelSP+=1;
+ }
+ var myTc = {
+ polemique:tweet.qualification,
+ user_mentions:tweet.tsource.entities.user_mentions,
+ tsource:tweet
+ }
+ tweetConversationel.push(myTc);
+ }
+ }
+ function conversationalReport(){
+ console.log("_______________________________");
+ console.log("tweets conversationel : "+tweetConversationel.length);
+ console.log("tweets conversationel sp : "+pourcent(tweetConversationelSP,tweetConversationel.length));
+ console.log("tweets conversationel nsp: "+pourcent(tweetConversationel.length-tweetConversationelSP,tweetConversationel.length));
+ }
+ function tweetsStats(){
+ for(var i=0; i<tweets.length; i++) {
+ conversationalCount(tweets[i])
+ tweetClientCount(tweets[i]);
+ tweetRetweetCount(tweets[i]);
+ }
+ conversationalReport();
+ tweetClientReport();
+ }
+ function numberUserUsePolemic(){
+
+ for(var i=0; i<tweets.length; i++) {
+ /*
+ var searchKeyValueArrayTest = searchKeyValueArray('userId',tweets[i].userId,userPol);
+ myUser = {
+ userId: tweets[i].userId,
+ userScreenName: tweets[i].userScreenName,
+
+ };
+
+ if(searchKeyValueArrayTest==true){
+ myUser = userPol.push({
+ userId: tweets[i].userId,
+ userScreenName: tweets[i].userScreenName,
+ tweets:[]
+ });
+ if (tweets[i].qualification!=5){
+
+ }else{
+
+ }
+
+ }
+
+ */
+ if (tweets[i].qualification!=5){
+ var searchKeyValueArrayTest = searchKeyValueArray('userId',tweets[i].userId,userPol);
+ if(searchKeyValueArrayTest==true){
+ myUser = userPol.push({
+ userId: tweets[i].userId,
+ userScreenName: tweets[i].userScreenName,
+ tweets:[]
+ });
+ //var myUTweets = myUser.tweets = new Array();
+ //myUTweets.push(tweets[i]);
+ }
+ }else{
+ var searchKeyValueArrayTest = searchKeyValueArray('userId',tweets[i].userId,userPol);
+ if(searchKeyValueArrayTest==true){
+ myUser = userNoPol.push({
+ userId: tweets[i].userId,
+ userScreenName: tweets[i].userScreenName,
+ tweets:[]
+ });
+ }
+ }
+ }
+ console.log("user SP : "+userPol.length);
+ console.log("user nSP : "+userNoPol.length);
+ console.log("nbrTP / user SP : "+round2Dec((numberOfTweet-qTweet_0)/userPol.length));
+ console.log("nbrT / user nSP : "+round2Dec((numberOfTweet-qTweet_0)/userNoPol.length));
+ }
+ function Report(){
+ console.log("_______________________________");
+ console.log("Total de tweets : "+numberOfTweet)
+ console.log("Total de tweets P : "+(numberOfTweet-qTweet_0))
+ console.log("question : "+pourcent(qTweet_Q,numberOfTweet)+" %");
+ console.log("reference : "+pourcent(qTweet_REF,numberOfTweet)+" %");
+ console.log("accord : "+pourcent(qTweet_OK,numberOfTweet)+" %");
+ console.log("desaccord : "+pourcent(qTweet_KO,numberOfTweet)+" %");
+ console.log("sans polemic : "+pourcent(qTweet_0,numberOfTweet)+" %");
+ numberUserUsePolemic();
+ tweetsStats();
+ }
// tweet Drawing (in raphael)
function DrawTweets (){
// GROUPES TWEET ============================================
@@ -220,6 +443,7 @@
var tweetDrawed = new Array();
var TweetHeight = 5;
+
// DRAW TWEETS ============================================
for(var i=0; i<nbrframes;i++) {
var addEheight = 5;
@@ -278,6 +502,7 @@
if(typeof(PaperSlider) !== 'undefined' ) {
PaperSlider.toFront();
}
+ Report();
}