fix(rclone): aktarım durum takibini düzelt
Dosya sistemi tabanlı tamamlanma kontrolünü kaldırır. Aktarım listesinde olmayan "uploading" durumundaki öğeleri "queued"ye çevirir. Bu sayede polling süreci devam eder ve tamamlanma kararı aktarım listesinin boşalmasına bırakılır.
This commit is contained in:
@@ -888,19 +888,10 @@ function updateMoveProgressFromStats(stats) {
|
|||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Transfer listesinde eşleşme yok - işlem tamamlanmış olabilir
|
// Transfer listesinde eşleşme yok
|
||||||
// Done için hem target varlığı hem de kaynak klasörün silinmiş olması gerekir
|
// Done kararı için aşağıdaki !hasTransfers kontrolü beklenmeli
|
||||||
const gdriveTarget = relRoot ? path.join(GDRIVE_ROOT, relRoot) : null;
|
// Burada sadece "uploading" durumunu "queued"ye düşürüyoruz ki polling devam etsin
|
||||||
const targetExists = gdriveTarget ? fs.existsSync(gdriveTarget) : false;
|
if (entry.moveStatus === "uploading") {
|
||||||
const sourceDir = relRoot ? path.join(DOWNLOAD_DIR, relRoot) : null;
|
|
||||||
const sourceDeleted = sourceDir ? !fs.existsSync(sourceDir) : false;
|
|
||||||
|
|
||||||
if (targetExists && sourceDeleted) {
|
|
||||||
entry.moveStatus = "done";
|
|
||||||
entry.moveProgress = 1;
|
|
||||||
updated = true;
|
|
||||||
} else if (entry.moveStatus === "uploading" && !targetExists) {
|
|
||||||
// Transfer görünmüyorsa queued kalır; done kararı yukarıda olabilir.
|
|
||||||
entry.moveStatus = "queued";
|
entry.moveStatus = "queued";
|
||||||
updated = true;
|
updated = true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user