2010-06-19 18:40:07 +00:00
|
|
|
/**
|
|
|
|
*** This file Copyright (C) 2010 Mnemosyne LLC
|
|
|
|
***
|
|
|
|
*** This code is licensed under the GPL version 2.
|
|
|
|
*** For more details, see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
|
|
**/
|
|
|
|
|
|
|
|
Transmission.fmt = (function()
|
|
|
|
{
|
2010-07-03 00:25:22 +00:00
|
|
|
var speed_B_str = 'B';
|
|
|
|
var speed_K_str = 'kB/s';
|
|
|
|
var speed_M_str = 'MB/s';
|
|
|
|
var speed_G_str = 'GB/s';
|
|
|
|
|
|
|
|
var size_B_str = 'B';
|
|
|
|
var size_K_str = 'KiB';
|
|
|
|
var size_M_str = 'MiB';
|
|
|
|
var size_G_str = 'GiB';
|
2010-06-19 18:40:07 +00:00
|
|
|
|
|
|
|
return {
|
2010-07-03 00:25:22 +00:00
|
|
|
speed_K: 1000,
|
|
|
|
|
|
|
|
size_K: 1024,
|
2010-06-19 18:40:07 +00:00
|
|
|
|
2010-06-22 22:30:58 +00:00
|
|
|
/*
|
|
|
|
* Format a percentage to a string
|
|
|
|
*/
|
|
|
|
percentString: function( x ) {
|
|
|
|
if( x < 10.0 )
|
|
|
|
return x.toTruncFixed( 2 );
|
|
|
|
else if( x < 100.0 )
|
|
|
|
return x.toTruncFixed( 1 );
|
|
|
|
else
|
|
|
|
return x.toTruncFixed( 0 );
|
|
|
|
},
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Format a ratio to a string
|
|
|
|
*/
|
|
|
|
ratioString: function( x ) {
|
|
|
|
if( x == -1 )
|
|
|
|
return "None";
|
|
|
|
else if( x == -2 )
|
|
|
|
return '∞';
|
|
|
|
else
|
|
|
|
return this.percentString( x );
|
|
|
|
},
|
|
|
|
|
2010-06-19 18:40:07 +00:00
|
|
|
/**
|
|
|
|
* Formats the bytes into a string value with B, KiB, MiB, or GiB units.
|
|
|
|
*
|
|
|
|
* @param {Number} bytes the filesize in bytes
|
|
|
|
* @return {String} formatted string with B, KiB, MiB or GiB units.
|
|
|
|
*/
|
|
|
|
size: function( bytes )
|
|
|
|
{
|
2010-07-03 00:25:22 +00:00
|
|
|
var size_K = this.size_K;
|
|
|
|
var size_M = size_K * size_K;
|
|
|
|
var size_G = size_K * size_K * size_K;
|
|
|
|
|
2010-06-19 18:40:07 +00:00
|
|
|
if( !bytes )
|
|
|
|
return 'None';
|
2010-07-03 00:25:22 +00:00
|
|
|
if( bytes < size_K )
|
|
|
|
return bytes.toTruncFixed(0) + size_B_str;
|
2010-06-19 18:40:07 +00:00
|
|
|
|
2010-07-03 00:25:22 +00:00
|
|
|
if( bytes < ( size_K * 100 ) )
|
|
|
|
return (bytes/size_K).toTruncFixed(2) + ' ' + size_K_str;
|
|
|
|
if( bytes < size_M )
|
|
|
|
return (bytes/size_K).toTruncFixed(1) + ' ' + size_K_str;
|
2010-06-19 18:40:07 +00:00
|
|
|
|
2010-07-03 00:25:22 +00:00
|
|
|
if( bytes < ( size_M * 100 ) )
|
|
|
|
return (bytes/size_M).toTruncFixed(2) + ' ' + size_M_str;
|
|
|
|
if( bytes < size_G )
|
|
|
|
return (bytes/size_M).toTruncFixed(1) + ' ' + size_M_str;
|
2010-06-19 18:40:07 +00:00
|
|
|
|
2010-07-03 00:25:22 +00:00
|
|
|
if( bytes < ( size_G * 100 ) )
|
|
|
|
return (bytes/size_G).toTruncFixed(2) + ' ' + size_G_str;
|
2010-06-19 18:40:07 +00:00
|
|
|
else
|
2010-07-03 00:25:22 +00:00
|
|
|
return (bytes/size_G).toTruncFixed(1) + ' ' + size_G_str;
|
2010-06-19 18:40:07 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
speed: function( bytes )
|
|
|
|
{
|
2010-07-03 00:25:22 +00:00
|
|
|
var speed_K = this.speed_K;
|
|
|
|
var speed_M = speed_K * speed_K;
|
|
|
|
var speed_G = speed_K * speed_K * speed_K;
|
|
|
|
|
|
|
|
if( bytes==undefined || bytes==0 )
|
2010-06-19 18:40:07 +00:00
|
|
|
return 'None';
|
2010-07-03 00:25:22 +00:00
|
|
|
|
|
|
|
if( bytes < speed_K )
|
|
|
|
return bytes.toTruncFixed(0) + ' ' + speed_B_str;
|
|
|
|
|
|
|
|
if( bytes < ( speed_K * 100 ) )
|
|
|
|
return (bytes/speed_K).toTruncFixed(2) + ' ' + speed_K_str;
|
|
|
|
if( bytes < speed_M )
|
|
|
|
return (bytes/speed_K).toTruncFixed(1) + ' ' + speed_K_str;
|
|
|
|
|
|
|
|
if( bytes < ( speed_M * 100 ) )
|
|
|
|
return (bytes/speed_M).toTruncFixed(2) + ' ' + speed_M_str;
|
|
|
|
if( bytes < speed_G )
|
|
|
|
return (bytes/speed_M).toTruncFixed(1) + ' ' + speed_M_str;
|
|
|
|
|
|
|
|
if( bytes < ( speed_G * 100 ) )
|
|
|
|
return (bytes/speed_G).toTruncFixed(2) + ' ' + speed_G_str;
|
2010-06-19 18:40:07 +00:00
|
|
|
else
|
2010-07-03 00:25:22 +00:00
|
|
|
return (bytes/speed_G).toTruncFixed(1) + ' ' + speed_G_str;
|
2010-06-19 18:40:07 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
timeInterval: function( seconds )
|
|
|
|
{
|
|
|
|
var result;
|
|
|
|
var days = Math.floor(seconds / 86400);
|
|
|
|
var hours = Math.floor((seconds % 86400) / 3600);
|
|
|
|
var minutes = Math.floor((seconds % 3600) / 60);
|
|
|
|
var seconds = Math.floor((seconds % 3600) % 60);
|
|
|
|
|
|
|
|
if (days > 0 && hours == 0)
|
|
|
|
result = days + ' days';
|
|
|
|
else if (days > 0 && hours > 0)
|
|
|
|
result = days + ' days ' + hours + ' hr';
|
|
|
|
else if (hours > 0 && minutes == 0)
|
|
|
|
result = hours + ' hr';
|
|
|
|
else if (hours > 0 && minutes > 0)
|
|
|
|
result = hours + ' hr ' + minutes + ' min';
|
|
|
|
else if (minutes > 0 && seconds == 0)
|
|
|
|
result = minutes + ' min';
|
|
|
|
else if (minutes > 0 && seconds > 0)
|
|
|
|
result = minutes + ' min ' + seconds + ' seconds';
|
|
|
|
else
|
|
|
|
result = seconds + ' seconds';
|
|
|
|
|
|
|
|
return result;
|
|
|
|
},
|
|
|
|
|
|
|
|
timestamp: function( seconds )
|
|
|
|
{
|
|
|
|
var myDate = new Date(seconds*1000);
|
|
|
|
var now = new Date();
|
|
|
|
|
|
|
|
var date = "";
|
|
|
|
var time = "";
|
|
|
|
|
|
|
|
var sameYear = now.getFullYear() == myDate.getFullYear();
|
|
|
|
var sameMonth = now.getMonth() == myDate.getMonth();
|
|
|
|
|
|
|
|
var dateDiff = now.getDate() - myDate.getDate();
|
|
|
|
if(sameYear && sameMonth && Math.abs(dateDiff) <= 1){
|
|
|
|
if(dateDiff == 0){
|
|
|
|
date = "Today";
|
|
|
|
}
|
|
|
|
else if(dateDiff == 1){
|
|
|
|
date = "Yesterday";
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
date = "Tomorrow";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else{
|
|
|
|
date = myDate.toDateString();
|
|
|
|
}
|
|
|
|
|
|
|
|
var hours = myDate.getHours();
|
|
|
|
var period = "AM";
|
|
|
|
if(hours > 12){
|
|
|
|
hours = hours - 12;
|
|
|
|
period = "PM";
|
|
|
|
}
|
|
|
|
if(hours == 0){
|
|
|
|
hours = 12;
|
|
|
|
}
|
|
|
|
if(hours < 10){
|
2010-06-21 13:14:33 +00:00
|
|
|
hours = "0" + hours;
|
|
|
|
}
|
|
|
|
var minutes = myDate.getMinutes();
|
|
|
|
if(minutes < 10){
|
|
|
|
minutes = "0" + minutes;
|
|
|
|
}
|
|
|
|
var seconds = myDate.getSeconds();
|
|
|
|
if(seconds < 10){
|
|
|
|
seconds = "0" + seconds;
|
|
|
|
}
|
2010-06-19 18:40:07 +00:00
|
|
|
|
|
|
|
time = [hours, minutes, seconds].join(':');
|
|
|
|
|
|
|
|
return [date, time, period].join(' ');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})();
|