Оптимизации проверок типа файла
This commit is contained in:
@@ -104,7 +104,7 @@ class ConvertBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isDataXml(data) {
|
isDataXml(data) {
|
||||||
const str = data.toString().trim();
|
const str = data.slice(0, 100).toString().trim();
|
||||||
return (str.indexOf('<?xml version="1.0"') == 0 || str.indexOf('<?xml version=\'1.0\'') == 0 );
|
return (str.indexOf('<?xml version="1.0"') == 0 || str.indexOf('<?xml version=\'1.0\'') == 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,22 +13,29 @@ class ConvertFb2 extends ConvertBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async run(data, opts) {
|
async run(data, opts) {
|
||||||
let newData = data;
|
let newData = data.slice(0, 1024);
|
||||||
|
|
||||||
//Корректируем кодировку, 16-битные кодировки должны стать utf-8
|
//Корректируем кодировку для проверки, 16-битные кодировки должны стать utf-8
|
||||||
const encoding = textUtils.getEncoding(newData);
|
const encoding = textUtils.getEncoding(newData);
|
||||||
if (encoding.indexOf('UTF-16') == 0) {
|
if (encoding.indexOf('UTF-16') == 0) {
|
||||||
newData = Buffer.from(iconv.decode(newData, encoding));
|
newData = Buffer.from(iconv.decode(newData, encoding));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Проверяем
|
||||||
if (!this.check(newData, opts))
|
if (!this.check(newData, opts))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
//Корректируем кодировку всего объема
|
||||||
|
if (encoding.indexOf('UTF-16') == 0) {
|
||||||
|
newData = Buffer.from(iconv.decode(data, encoding));
|
||||||
|
}
|
||||||
|
|
||||||
//Корректируем пробелы, всякие файлы попадаются :(
|
//Корректируем пробелы, всякие файлы попадаются :(
|
||||||
if (newData[0] == 32) {
|
if (newData[0] == 32) {
|
||||||
newData = Buffer.from(newData.toString().trim());
|
newData = Buffer.from(newData.toString().trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Окончательно корректируем кодировку
|
||||||
return this.checkEncoding(newData);
|
return this.checkEncoding(newData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ class ConvertHtml extends ConvertBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//из буфера обмена?
|
//из буфера обмена?
|
||||||
if (data.toString().indexOf('<buffer>') == 0) {
|
if (data.slice(0, 50).toString().indexOf('<buffer>') == 0) {
|
||||||
return {isText: false};
|
return {isText: false};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user