diff --git a/client/src/routes/Settings.svelte b/client/src/routes/Settings.svelte
index d17c183..e7c9187 100644
--- a/client/src/routes/Settings.svelte
+++ b/client/src/routes/Settings.svelte
@@ -198,7 +198,24 @@
if (!resp.ok || !data?.ok) {
throw new Error(data?.error || `HTTP ${resp.status}`);
}
- success = "Rclone mount başlatıldı.";
+
+ // Mount başlatıldı, birkaç saniye bekleyip tekrar kontrol et
+ success = "Rclone mount başlatılıyor...";
+
+ // 2 saniye sonra status güncelle
+ setTimeout(async () => {
+ await loadRcloneStatus();
+ // Status yüklendikten sonra mesajı güncelle
+ if (rcloneStatus?.mounted) {
+ success = "Rclone mount başarıyla başlatıldı.";
+ } else if (rcloneStatus?.running) {
+ success = "Rclone mount başlatıldı, mount tamamlanıyor...";
+ } else {
+ error = "Rclone mount başlatılamadı.";
+ }
+ }, 2000);
+
+ // İlk status güncellemesi
await loadRcloneStatus();
} catch (err) {
error = err?.message || "Rclone mount başlatılamadı.";
@@ -468,7 +485,17 @@
Durum:
Enabled: {rcloneStatus.enabled ? "Evet" : "Hayır"}
-
Mounted: {rcloneStatus.mounted ? "Evet" : "Hayır"}
+
+ Mounted:
+ {#if rcloneStatus.mountStatus === "starting"}
+ Başlatılıyor...
+ {:else if rcloneStatus.mounted}
+ Evet
+ {:else}
+ Hayır
+ {/if}
+
+
Running: {rcloneStatus.running ? "Evet" : "Hayır"}
Remote: {rcloneStatus.remoteConfigured ? "Hazır" : "Eksik"}
{#if rcloneStatus.vfsCacheMode}
VFS Cache Mode: {rcloneStatus.vfsCacheMode}
@@ -489,7 +516,14 @@
{/if}
{#if rcloneStatus.lastError}
- Son hata: {rcloneStatus.lastError}
+
+ Son hata: {rcloneStatus.lastError}
+
+ {/if}
+ {#if rcloneStatus.lastLog && !rcloneStatus.lastError}
+
+ Son log: {rcloneStatus.lastLog}
+
{/if}
{/if}
diff --git a/server/server.js b/server/server.js
index 1da9dd4..194e4e1 100644
--- a/server/server.js
+++ b/server/server.js
@@ -780,6 +780,7 @@ function resolveRootDir(rootFolder) {
let rcloneProcess = null;
let rcloneLastError = null;
+let rcloneLastLogMessage = null; // Tüm log mesajları için (NOTICE dahil)
const rcloneAuthSessions = new Map();
let rcloneCacheCleanTimer = null;
// Auto-restart sayaçları
@@ -1276,12 +1277,34 @@ function startRcloneMount(settings) {
rcloneProcess.stdout.on("data", (data) => {
const msg = data.toString().trim();
- if (msg) console.log(`🌀 rclone: ${msg}`);
+ if (msg) {
+ rcloneLastLogMessage = msg;
+ // NOTICE mesajları için farklı ikon, diğerleri için normal
+ if (msg.toUpperCase().includes("NOTICE")) {
+ console.log(`📡 rclone: ${msg}`);
+ } else {
+ console.log(`🌀 rclone: ${msg}`);
+ }
+ }
});
rcloneProcess.stderr.on("data", (data) => {
const msg = data.toString().trim();
if (msg) {
- rcloneLastError = msg;
+ rcloneLastLogMessage = msg;
+ // NOTICE ve INFO seviyesindeki loglar hata değil
+ // Sadece ERROR, FATAL, CRITICAL seviyesindekileri "son hata" olarak işaretle
+ const upperMsg = msg.toUpperCase();
+ if (upperMsg.includes("ERROR") ||
+ upperMsg.includes("FATAL") ||
+ upperMsg.includes("CRITICAL") ||
+ upperMsg.includes("FAILED") ||
+ upperMsg.includes("COULDN'T") ||
+ upperMsg.includes("CANNOT") ||
+ upperMsg.includes("REFUSED") ||
+ upperMsg.includes("TIMEOUT") ||
+ upperMsg.includes("CONNECTION")) {
+ rcloneLastError = msg;
+ }
console.warn(`⚠️ rclone: ${msg}`);
}
});
@@ -9210,6 +9233,10 @@ app.get("/api/rclone/status", requireAuth, async (req, res) => {
enabled: RCLONE_ENABLED,
mounted,
running: Boolean(rcloneProcess),
+ // Mount durumu hakkında daha fazla bilgi
+ mountStatus: !rcloneProcess ? "stopped" :
+ mounted ? "mounted" :
+ "starting", // Process çalışıyor ama mount henüz tamamlanmadı
mountDir: settings.mountDir,
remoteName: settings.remoteName,
remotePath: settings.remotePath,
@@ -9219,7 +9246,8 @@ app.get("/api/rclone/status", requireAuth, async (req, res) => {
cacheCleanMinutes: settings.cacheCleanMinutes || 0,
configExists: fs.existsSync(settings.configPath),
remoteConfigured: rcloneConfigHasRemote(settings.remoteName),
- lastError: rcloneLastError || null,
+ lastError: rcloneLastError || null, // Sadece gerçek hatalar
+ lastLog: rcloneLastLogMessage || null, // Son log mesajı (NOTICE dahil)
// Performans ayarları
vfsCacheMode: RCLONE_VFS_CACHE_MODE,
bufferSize: RCLONE_BUFFER_SIZE,