mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
First separation commit.
Added LICENSE, README.md, CONTRIBUTORS.md
This commit is contained in:
parent
09513af31b
commit
4678528d00
657 changed files with 422 additions and 0 deletions
36
src/bower_components/emby-webcomponents/sanitizefilename.js
vendored
Normal file
36
src/bower_components/emby-webcomponents/sanitizefilename.js
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
define([], function() {
|
||||
"use strict";
|
||||
|
||||
function isHighSurrogate(codePoint) {
|
||||
return codePoint >= 55296 && codePoint <= 56319
|
||||
}
|
||||
|
||||
function isLowSurrogate(codePoint) {
|
||||
return codePoint >= 56320 && codePoint <= 57343
|
||||
}
|
||||
|
||||
function getByteLength(string) {
|
||||
if ("string" != typeof string) throw new Error("Input must be string");
|
||||
for (var charLength = string.length, byteLength = 0, codePoint = null, prevCodePoint = null, i = 0; i < charLength; i++) codePoint = string.charCodeAt(i), isLowSurrogate(codePoint) ? null != prevCodePoint && isHighSurrogate(prevCodePoint) ? byteLength += 1 : byteLength += 3 : codePoint <= 127 ? byteLength += 1 : codePoint >= 128 && codePoint <= 2047 ? byteLength += 2 : codePoint >= 2048 && codePoint <= 65535 && (byteLength += 3), prevCodePoint = codePoint;
|
||||
return byteLength
|
||||
}
|
||||
|
||||
function truncate(string, byteLength) {
|
||||
if ("string" != typeof string) throw new Error("Input must be string");
|
||||
for (var codePoint, segment, charLength = string.length, curByteLength = 0, i = 0; i < charLength; i += 1) {
|
||||
if (codePoint = string.charCodeAt(i), segment = string[i], isHighSurrogate(codePoint) && isLowSurrogate(string.charCodeAt(i + 1)) && (i += 1, segment += string[i]), (curByteLength += getByteLength(segment)) === byteLength) return string.slice(0, i + 1);
|
||||
if (curByteLength > byteLength) return string.slice(0, i - segment.length + 1)
|
||||
}
|
||||
return string
|
||||
}
|
||||
var illegalRe = /[\/\?<>\\:\*\|":]/g,
|
||||
controlRe = /[\x00-\x1f\x80-\x9f]/g,
|
||||
reservedRe = /^\.+$/,
|
||||
windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,
|
||||
windowsTrailingRe = /[\. ]+$/;
|
||||
return {
|
||||
sanitize: function(input, replacement) {
|
||||
return truncate(input.replace(illegalRe, replacement).replace(controlRe, replacement).replace(reservedRe, replacement).replace(windowsReservedRe, replacement).replace(windowsTrailingRe, replacement), 255)
|
||||
}
|
||||
}
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue