mirror of
https://github.com/onionshare/onionshare.git
synced 2024-12-31 18:26:12 -05:00
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
function human_readable_filesize(bytes, si) {
|
|
var thresh = si ? 1000 : 1024;
|
|
if(bytes < thresh) return bytes + ' B';
|
|
var units = si ? ['kB','MB','GB','TB','PB','EB','ZB','YB'] : ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];
|
|
var u = -1;
|
|
do {
|
|
bytes /= thresh;
|
|
++u;
|
|
} while(bytes >= thresh);
|
|
return bytes.toFixed(1)+' '+units[u];
|
|
};
|
|
|
|
function htmlspecialchars(string, quote_style, charset, double_encode) {
|
|
var optTemp = 0,
|
|
i = 0,
|
|
noquotes = false;
|
|
if (typeof quote_style === 'undefined' || quote_style === null) {
|
|
quote_style = 2;
|
|
}
|
|
string = string.toString();
|
|
if (double_encode !== false) {
|
|
// Put this first to avoid double-encoding
|
|
string = string.replace(/&/g, '&');
|
|
}
|
|
string = string.replace(/</g, '<')
|
|
.replace(/>/g, '>');
|
|
|
|
var OPTS = {
|
|
'ENT_NOQUOTES': 0,
|
|
'ENT_HTML_QUOTE_SINGLE': 1,
|
|
'ENT_HTML_QUOTE_DOUBLE': 2,
|
|
'ENT_COMPAT': 2,
|
|
'ENT_QUOTES': 3,
|
|
'ENT_IGNORE': 4
|
|
};
|
|
if (quote_style === 0) {
|
|
noquotes = true;
|
|
}
|
|
if (typeof quote_style !== 'number') {
|
|
// Allow for a single string or an array of string flags
|
|
quote_style = [].concat(quote_style);
|
|
for (i = 0; i < quote_style.length; i++) {
|
|
// Resolve string input to bitwise e.g. 'ENT_IGNORE' becomes 4
|
|
if (OPTS[quote_style[i]] === 0) {
|
|
noquotes = true;
|
|
} else if (OPTS[quote_style[i]]) {
|
|
optTemp = optTemp | OPTS[quote_style[i]];
|
|
}
|
|
}
|
|
quote_style = optTemp;
|
|
}
|
|
if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
|
|
string = string.replace(/'/g, ''');
|
|
}
|
|
if (!noquotes) {
|
|
string = string.replace(/"/g, '"');
|
|
}
|
|
|
|
return string;
|
|
}
|