From 08b25b418ea748702d90025b2b7dd465c0f24ffe Mon Sep 17 00:00:00 2001 From: sbilketay Date: Sat, 29 Nov 2025 01:42:43 +0300 Subject: [PATCH] =?UTF-8?q?JWT,=20server=20mod=C3=BCler=20hale=20getirildi?= =?UTF-8?q?,=20Torrent=20durumu=20kal=C4=B1c=C4=B1=20hale=20getirildi.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env-example | 7 + client/src/App.svelte | 6 +- client/src/routes/Files.svelte | 13 + client/src/routes/Login.svelte | 9 +- client/src/routes/Transfers.svelte | 12 +- client/src/routes/Trash.svelte | 12 +- client/src/utils/api.js | 62 +++- server/modules/auth.js | 221 +++++++++++ server/modules/health.js | 38 ++ server/modules/state.js | 61 ++++ server/modules/websocket.js | 35 ++ server/package.json | 1 + server/server.js | 567 +++++++++++++++-------------- 13 files changed, 759 insertions(+), 285 deletions(-) create mode 100644 .env-example create mode 100644 server/modules/auth.js create mode 100644 server/modules/health.js create mode 100644 server/modules/state.js create mode 100644 server/modules/websocket.js diff --git a/.env-example b/.env-example new file mode 100644 index 0000000..c91ae13 --- /dev/null +++ b/.env-example @@ -0,0 +1,7 @@ +USERNAME=madafaka +PASSWORD=superpassword +VITE_API=http://localhost:3001 +TMDB_API_KEY="..." +TVDB_API_KEY="..." +VIDEO_THUMBNAIL_TIME=10 +FANART_TV_API_KEY=".." \ No newline at end of file diff --git a/client/src/App.svelte b/client/src/App.svelte index 3317a54..1371287 100644 --- a/client/src/App.svelte +++ b/client/src/App.svelte @@ -9,12 +9,12 @@ import Movies from "./routes/Movies.svelte"; import TvShows from "./routes/TvShows.svelte"; import Login from "./routes/Login.svelte"; - import { API } from "./utils/api.js"; + import { API, getAccessToken } from "./utils/api.js"; import { refreshMovieCount } from "./stores/movieStore.js"; import { refreshTvShowCount } from "./stores/tvStore.js"; import { fetchTrashItems } from "./stores/trashStore.js"; - const token = localStorage.getItem("token"); + const token = getAccessToken(); let menuOpen = false; let wsCounts; @@ -47,7 +47,7 @@ refreshMovieCount(); refreshTvShowCount(); fetchTrashItems(); - const authToken = localStorage.getItem("token"); + const authToken = getAccessToken(); if (authToken) { const wsUrl = `${API.replace("http", "ws")}?token=${authToken}`; try { diff --git a/client/src/routes/Files.svelte b/client/src/routes/Files.svelte index ac9c425..7771f9a 100644 --- a/client/src/routes/Files.svelte +++ b/client/src/routes/Files.svelte @@ -759,6 +759,12 @@ return; } + const sourceLabel = cleanFileName(source.displayName || source.name || normalizedSource); + const targetLabel = cleanFileName(target.displayName || target.name || normalizedTarget); + if (!confirm(`"${sourceLabel}" öğesini "${targetLabel}" içine taşımak istiyor musun?`)) { + return; + } + try { const result = await moveEntry(normalizedSource, normalizedTarget); if (!result?.success) { @@ -1588,6 +1594,13 @@ return; } + const sourceLabel = cleanFileName(clipboardItem.displayName || clipboardItem.name || normalizedSource); + const targetLabel = cleanFileName(currentPath || normalizedTarget); + const actionLabel = clipboardOperation === 'cut' ? 'taşı' : 'kopyala'; + if (!confirm(`"${sourceLabel}" öğesini "${targetLabel}" konumuna ${actionLabel}mak istiyor musun?`)) { + return; + } + try { let result; if (clipboardOperation === 'cut') { diff --git a/client/src/routes/Login.svelte b/client/src/routes/Login.svelte index e5c4d3a..6b69d44 100644 --- a/client/src/routes/Login.svelte +++ b/client/src/routes/Login.svelte @@ -1,5 +1,5 @@ diff --git a/client/src/routes/Transfers.svelte b/client/src/routes/Transfers.svelte index aaceefe..2e13124 100644 --- a/client/src/routes/Transfers.svelte +++ b/client/src/routes/Transfers.svelte @@ -1,6 +1,6 @@