From afd3f1618198dec831f2ea6ae843b61eb2bbf0e8 Mon Sep 17 00:00:00 2001 From: Fornax Date: Thu, 25 Apr 2024 14:50:42 +0200 Subject: [PATCH] Use websocket proto for getting file stats and rate limits. Remove view_token --- svelte/src/file_viewer/DownloadLimitStore.js | 65 ---------- svelte/src/file_viewer/FileStats.svelte | 96 +++------------ svelte/src/file_viewer/FileViewer.svelte | 5 +- svelte/src/file_viewer/StatsSocket.js | 115 ++++++++++++++++++ svelte/src/file_viewer/TransferLimit.svelte | 14 +-- .../file_viewer/viewers/BandwidthUsage.svelte | 12 +- .../file_viewer/viewers/FilePreview.svelte | 4 +- .../src/file_viewer/viewers/RateLimit.svelte | 10 +- .../src/file_viewer/viewers/SpeedLimit.svelte | 6 +- webcontroller/file_viewer.go | 11 -- 10 files changed, 159 insertions(+), 179 deletions(-) delete mode 100644 svelte/src/file_viewer/DownloadLimitStore.js create mode 100644 svelte/src/file_viewer/StatsSocket.js diff --git a/svelte/src/file_viewer/DownloadLimitStore.js b/svelte/src/file_viewer/DownloadLimitStore.js deleted file mode 100644 index 79615b6..0000000 --- a/svelte/src/file_viewer/DownloadLimitStore.js +++ /dev/null @@ -1,65 +0,0 @@ -import { readable } from 'svelte/store'; - -let limits = { - download_limit: 0, - download_limit_used: 0, - transfer_limit: 0, - transfer_limit_used: 0, - ipv6_bonus: 0, - loaded: false, -} - -export const download_limits = readable( - limits, - function start(set) { - set_func = set; - loop(); - - return function stop() { - clearTimeout(timeout_ref); - }; - } -); - -let set_func; -let timeout_ref = 0; -let timeout_ms = 10000; - -const loop = async () => { - let new_limits; - try { - let resp = await fetch(window.api_endpoint + "/misc/rate_limits") - if (resp.status >= 400) { - throw new Error(await resp.text()) - } - new_limits = await resp.json() - new_limits.loaded = true - } catch (err) { - console.error("Failed to get rate limits: " + err) - timeout_ref = setTimeout(loop, 30000) - return - } - - // If the usage has not changed we increase the timeout with one second. If - // it did change we halve the timeout - if ( - new_limits.transfer_limit_used === limits.transfer_limit_used && - new_limits.transfer_limit === limits.transfer_limit - ) { - timeout_ms += 2000 - if (timeout_ms > 60000) { - timeout_ms = 60000 - } - } else { - timeout_ms /= 2 - if (timeout_ms < 5000) { - timeout_ms = 5000 - } - - limits = new_limits - set_func(new_limits) - } - - console.debug("Sleep", timeout_ms / 1000, "seconds") - timeout_ref = setTimeout(loop, timeout_ms) -} diff --git a/svelte/src/file_viewer/FileStats.svelte b/svelte/src/file_viewer/FileStats.svelte index 95ad03e..9c49795 100644 --- a/svelte/src/file_viewer/FileStats.svelte +++ b/svelte/src/file_viewer/FileStats.svelte @@ -1,6 +1,6 @@
- {#if error_msg !== ""} - {error_msg} - {:else} -
Views
-
{formatThousands(views)}
-
Downloads
-
{formatThousands(downloads)}
-
Size
-
{formatDataVolume(size, 3)}
- {/if} +
Views
+
{formatThousands(views)}
+
Downloads
+
{formatThousands(downloads)}
+
Size
+
{formatDataVolume(size, 3)}