v0.0.60: дедуп по имя+размер (дату игнорируем) — при совпадении оставляем более свежий файл, дубль из архива/повтора не создаёт _2
Deploy drhider / validate (push) Canceled after 0s
Deploy drhider / validate (push) Canceled after 0s
This commit is contained in:
+1
-1
@@ -21,7 +21,7 @@ if _sys_path_root not in sys.path:
|
|||||||
sys.path.insert(0, _sys_path_root)
|
sys.path.insert(0, _sys_path_root)
|
||||||
|
|
||||||
# Версия приложения (меняется при изменениях)
|
# Версия приложения (меняется при изменениях)
|
||||||
VERSION = "0.0.59"
|
VERSION = "0.0.60"
|
||||||
|
|
||||||
|
|
||||||
def setup_logging():
|
def setup_logging():
|
||||||
|
|||||||
@@ -349,7 +349,17 @@ function addFileWithDedup(file) {
|
|||||||
|
|
||||||
if (fileMeta.has(name)) {
|
if (fileMeta.has(name)) {
|
||||||
const e = fileMeta.get(name);
|
const e = fileMeta.get(name);
|
||||||
if (e.size === size && e.mtime === mtime) return; // точный дубль — пропустить
|
if (e.size === size) {
|
||||||
|
// Тот же файл (имя+размер) — дедуп. Дату не сравниваем: файл могли пересохранить
|
||||||
|
// с тем же содержимым. Оставляем более свежий по дате.
|
||||||
|
if (mtime > e.mtime) {
|
||||||
|
e.mtime = mtime;
|
||||||
|
const idx = sf.findIndex(f => f.name === name);
|
||||||
|
if (idx >= 0) sf[idx] = new File([file], name, { lastModified: mtime });
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Имя то же, размер другой — добавить с суффиксом _2, _3...
|
||||||
const dot = name.lastIndexOf('.');
|
const dot = name.lastIndexOf('.');
|
||||||
const base = dot > 0 ? name.slice(0, dot) : name;
|
const base = dot > 0 ? name.slice(0, dot) : name;
|
||||||
const ext = dot > 0 ? name.slice(dot) : '';
|
const ext = dot > 0 ? name.slice(dot) : '';
|
||||||
|
|||||||
Reference in New Issue
Block a user