Analitics Media Most Grabed

Parse dei risultati di google analitics

by leonardo_ciaccio

HTML

<input type="file" id="files" name="files[]" multiple />
<div id="list"></div>

JavaScript

/*

    Coded by Leonardo Ciaccio
    
    App name : Google analitics .csv viewer with object parameters
    
    OBJ :
    {"title":"","size":0,"type":"","urlMedia":"","urlSource":""}

    Credits : 
        http://www.html5rocks.com/en/tutorials/file/dndfiles/

*/


var $ = function( selector ){

    return document.querySelector( selector );

},
    ptObj = /\{(.*?)}/gi;


function _getSize( size ){

    size = parseInt( size );
    
    var oneKB = 1024,
        oneMB = oneKB * 1024,
        oneGB = oneMB * 1024;
    
    return ( size < oneKB ) ? size + " byte" :
    ( size < oneMB ) ? Math.round( ( size / oneKB ) * 100 ) / 100 + " KB" :
    ( size < oneGB ) ? Math.round( ( size / oneMB ) * 100 ) / 100 + " MB" : Math.round( ( size / oneGB ) * 100 ) / 100 + " GB" ;
    
}

function _parseObjAndPrint( txt ){
    
    if( !txt )return null;
    
    var objts = txt.replace( /""/gi,"\"" ).match( ptObj );
    $( "#list" ).innerHTML = "";
    
    for( var i = 0; i < objts.length; i++){
               
        var mObj = JSON.parse( objts[ i ] ),
            newP = document.createElement( "p" );
        
        newP.innerHTML = "[" + mObj.type + "](" + _getSize( mObj.size ) + ")<a href='" + mObj.urlMedia + "' target='_blank'>" + mObj.title + "</a>"; 
        $( "#list" ).appendChild( newP );
        
    }

}

function handleFileSelect( evt ){
      
  var files = evt.target.files,
      reader = new FileReader();  
   
  if( !files[ 0 ] )return false;
      
  reader.onload = ( function( theFile ){
        
      return function( e ){
          
          _parseObjAndPrint( e.target.result );
           
      };
      
  })( files[ 0 ] );
    
  reader.readAsText( files[ 0 ] );
      
}

$( "#files" ).addEventListener( "change", handleFileSelect, false );