From b58dd7bc289a4f0686c61cc0260cc2200d40fbf9 Mon Sep 17 00:00:00 2001 From: "N0\\A" Date: Thu, 30 Oct 2025 08:23:46 +0100 Subject: [PATCH] auto refresh --- contact.html | 1 + index.html | 1 + refresh.js | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 refresh.js diff --git a/contact.html b/contact.html index 68ee90d..80f38cf 100644 --- a/contact.html +++ b/contact.html @@ -53,5 +53,6 @@ + \ No newline at end of file diff --git a/index.html b/index.html index 7189f02..427cead 100755 --- a/index.html +++ b/index.html @@ -72,5 +72,6 @@

If you want an account on any of these, want to suggest something new or get a subdomain, just message me

+ diff --git a/refresh.js b/refresh.js new file mode 100644 index 0000000..51f6d92 --- /dev/null +++ b/refresh.js @@ -0,0 +1,63 @@ +(function() { + // Configuration + const SSE_PORT = 8765; + const RECONNECT_DELAY = 5000; // 5 seconds + + let eventSource = null; + let reconnectTimer = null; + + function connect() { + // Clear any existing reconnect timer + if (reconnectTimer) { + clearTimeout(reconnectTimer); + reconnectTimer = null; + } + + // Close existing connection + if (eventSource) { + eventSource.close(); + } + + // Connect to SSE server + const url = `${window.location.protocol}//${window.location.hostname}:${SSE_PORT}/events`; + eventSource = new EventSource(url); + + eventSource.onmessage = function(event) { + try { + const data = JSON.parse(event.data); + if (data.type === 'reload') { + console.log('Repository updated, reloading page...'); + // Hard reload to bypass cache + window.location.reload(true); + } + } catch (e) { + console.error('Error parsing SSE message:', e); + } + }; + + eventSource.onerror = function(error) { + console.log('SSE connection error, will reconnect...'); + eventSource.close(); + // Attempt to reconnect after delay + reconnectTimer = setTimeout(connect, RECONNECT_DELAY); + }; + + eventSource.onopen = function() { + console.log('Connected to auto-refresh service'); + }; + } + + // Start connection when page loads + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', connect); + } else { + connect(); + } + + // Cleanup on page unload + window.addEventListener('beforeunload', function() { + if (eventSource) { + eventSource.close(); + } + }); +})(); \ No newline at end of file