11document . addEventListener ( "DOMContentLoaded" , ( ) => {
2- // Screensaver Elements
32 const screensaverContainer = document . getElementById ( "screensaver-container" ) ;
43 const toggleScreensaverButton = document . getElementById ( "toggle-screensaver" ) ;
54 const fullscreenButton = document . getElementById ( "fullscreen-screensaver" ) ;
@@ -9,21 +8,18 @@ document.addEventListener("DOMContentLoaded", () => {
98 const copyButton = document . getElementById ( "screensaver-copy" ) ;
109 const screensaverImage = document . getElementById ( "screensaver-image" ) ;
1110
12- // Extended controls
1311 const promptInput = document . getElementById ( "screensaver-prompt" ) ;
1412 const timerInput = document . getElementById ( "screensaver-timer" ) ;
1513 const aspectSelect = document . getElementById ( "screensaver-aspect" ) ;
1614 const enhanceCheckbox = document . getElementById ( "screensaver-enhance" ) ;
1715 const privateCheckbox = document . getElementById ( "screensaver-private" ) ;
1816 const modelSelect = document . getElementById ( "screensaver-model" ) ;
1917
20- // Internal state
2118 let screensaverActive = false ;
2219 let imageInterval = null ;
2320 let paused = false ;
2421 let isFullscreen = false ;
2522
26- // ========== TOOLTIP SETUP ==========
2723 toggleScreensaverButton . title = "Toggle the screensaver on/off." ;
2824 fullscreenButton . title = "Go full screen (or exit it)." ;
2925 stopButton . title = "Stop the screensaver." ;
@@ -37,7 +33,6 @@ document.addEventListener("DOMContentLoaded", () => {
3733 enhanceCheckbox . title = "If enabled, the prompt is 'enhanced' via an LLM." ;
3834 privateCheckbox . title = "If enabled, the image won't appear on the public feed." ;
3935
40- // ========== LOCAL STORAGE HELPERS ==========
4136 function saveScreensaverSettings ( ) {
4237 const settings = {
4338 prompt : promptInput . value ,
@@ -68,7 +63,6 @@ document.addEventListener("DOMContentLoaded", () => {
6863
6964 loadScreensaverSettings ( ) ;
7065
71- // Generate a random seed for pollinations
7266 function generateSeed ( ) {
7367 const length = Math . floor ( Math . random ( ) * 8 ) + 1 ;
7468 let seed = "" ;
@@ -78,7 +72,6 @@ document.addEventListener("DOMContentLoaded", () => {
7872 return seed ;
7973 }
8074
81- // Figure out width/height from the aspect ratio
8275 function getDimensions ( aspect ) {
8376 switch ( aspect ) {
8477 case "widescreen" : return { width : 1280 , height : 720 } ;
@@ -88,7 +81,6 @@ document.addEventListener("DOMContentLoaded", () => {
8881 }
8982 }
9083
91- // Fetch a new image from pollinations
9284 function fetchNewImage ( ) {
9385 saveScreensaverSettings ( ) ;
9486 const prompt = promptInput . value || "random artistic scene, high quality, detailed" ;
@@ -105,7 +97,6 @@ document.addEventListener("DOMContentLoaded", () => {
10597 screensaverImage . src = url ;
10698 }
10799
108- // Set or reset the interval for fetching new images
109100 function setOrResetInterval ( ) {
110101 clearInterval ( imageInterval ) ;
111102 const intervalSeconds = parseInt ( timerInput . value ) || 30 ;
@@ -115,7 +106,6 @@ document.addEventListener("DOMContentLoaded", () => {
115106 window . imageInterval = imageInterval ;
116107 }
117108
118- // Start screensaver
119109 function startScreensaver ( ) {
120110 screensaverActive = true ;
121111 paused = false ;
@@ -142,7 +132,6 @@ document.addEventListener("DOMContentLoaded", () => {
142132 window . screensaverActive = true ;
143133 }
144134
145- // Stop screensaver
146135 function stopScreensaver ( ) {
147136 screensaverActive = false ;
148137 paused = false ;
@@ -166,7 +155,6 @@ document.addEventListener("DOMContentLoaded", () => {
166155 }
167156 }
168157
169- // Toggle pause
170158 function togglePause ( ) {
171159 paused = ! paused ;
172160 playPauseButton . innerHTML = paused ? "▶️" : "⏸️" ;
@@ -175,7 +163,6 @@ document.addEventListener("DOMContentLoaded", () => {
175163 window . showToast ( paused ? "Screensaver paused" : "Screensaver resumed" ) ;
176164 }
177165
178- // Save image to disk
179166 function saveImage ( ) {
180167 if ( ! screensaverImage . src ) {
181168 window . showToast ( "No image to save" ) ;
@@ -200,7 +187,6 @@ document.addEventListener("DOMContentLoaded", () => {
200187 } ) ;
201188 }
202189
203- // Copy image to clipboard
204190 function copyImage ( ) {
205191 if ( ! screensaverImage . src ) {
206192 window . showToast ( "No image to copy" ) ;
@@ -257,7 +243,6 @@ document.addEventListener("DOMContentLoaded", () => {
257243 }
258244 }
259245
260- // Toggle fullscreen
261246 function toggleFullscreen ( ) {
262247 if ( ! screensaverActive ) {
263248 window . showToast ( "Start the screensaver first!" ) ;
@@ -282,7 +267,6 @@ document.addEventListener("DOMContentLoaded", () => {
282267 }
283268 }
284269
285- // Event listeners
286270 toggleScreensaverButton . addEventListener ( "click" , ( ) => {
287271 screensaverActive ? stopScreensaver ( ) : startScreensaver ( ) ;
288272 } ) ;
@@ -332,7 +316,6 @@ document.addEventListener("DOMContentLoaded", () => {
332316 }
333317 } ) ;
334318
335- // Toast notification
336319 window . showToast = function ( message , duration = 3000 ) {
337320 let toast = document . getElementById ( 'toast-notification' ) ;
338321 if ( ! toast ) {
@@ -347,7 +330,6 @@ document.addEventListener("DOMContentLoaded", () => {
347330 toast . timeout = setTimeout ( ( ) => toast . style . opacity = '0' , duration ) ;
348331 } ;
349332
350- // Global functions
351333 window . startScreensaver = startScreensaver ;
352334 window . stopScreensaver = stopScreensaver ;
353335 window . togglePause = togglePause ;
@@ -356,4 +338,4 @@ document.addEventListener("DOMContentLoaded", () => {
356338 window . toggleFullscreen = toggleFullscreen ;
357339
358340 console . log ( "Screensaver fully initialized with all buttons functional" ) ;
359- } ) ;
341+ } ) ;
0 commit comments