Spaces:
Running
Running
Commit
·
6b9468a
1
Parent(s):
9484eef
fixed issue with the /?isVisited=true call
Browse files- hf_server.js +92 -79
hf_server.js
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* All rights reserved.
|
4 |
*/
|
5 |
//@ts-check
|
6 |
-
const VERSION = '0.6.0.hf.015.
|
7 |
|
8 |
const express = require('express');
|
9 |
const http = require('http');
|
@@ -98,88 +98,95 @@ const COMMON_STYLES =
|
|
98 |
}
|
99 |
</style>`;
|
100 |
|
101 |
-
|
102 |
-
|
103 |
-
// Script to check Hugging Face login status and control 'Clone Repo' button
|
104 |
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
document.getElementById('startServerButton').disabled = true;
|
109 |
|
|
|
|
|
|
|
|
|
110 |
|
111 |
-
fetch('/start-omnitool-server')
|
112 |
-
.then(response => response.json())
|
113 |
-
.then(data => startLogPolling());
|
114 |
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
function exitIframe() {
|
119 |
-
if (window.self !== window.top)
|
120 |
-
{
|
121 |
-
// open a new window to get out of the iframe, then wait 1s, then fetch burst-iframe then reload
|
122 |
-
window.open(${global.LOCAL_URL}+"?isVisited=true", '_blank');
|
123 |
-
}
|
124 |
-
else
|
125 |
-
{
|
126 |
-
fetch('/burst-iframe').then(response => response.json()).then(data => {window.location.reload();});
|
127 |
-
}
|
128 |
-
}
|
129 |
|
130 |
-
|
131 |
-
|
132 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
fetch('/omnitool-logs')
|
138 |
-
.then(response => response.json())
|
139 |
-
.then(data => {
|
140 |
-
const logContainer = document.getElementById('logContainer');
|
141 |
-
logContainer.innerText = data.logs.join("");
|
142 |
-
if (data.ready) {
|
143 |
-
|
144 |
-
scrollToBottom(logContainer);
|
145 |
-
document.getElementById('refreshButton').disabled = false;
|
146 |
-
document.getElementById('refreshButton').classList.add('highlight-button');
|
147 |
-
clearInterval(interval);
|
148 |
-
|
149 |
-
}
|
150 |
-
else {
|
151 |
-
scrollToBottom(logContainer);
|
152 |
-
}
|
153 |
-
});
|
154 |
-
}, 500);
|
155 |
-
|
156 |
-
const interval2 = setInterval(() => {
|
157 |
-
fetch('/omnitool-logs')
|
158 |
-
.then(response => response.json())
|
159 |
-
.then(data => {
|
160 |
-
const logContainer = document.getElementById('logContainer');
|
161 |
-
logContainer.innerText = data.logs.join("");
|
162 |
-
if (data.ready) {
|
163 |
-
|
164 |
-
scrollToBottom(logContainer);
|
165 |
-
document.getElementById('refreshButton').disabled = false;
|
166 |
-
document.getElementById('refreshButton').classList.add('highlight-button');
|
167 |
-
clearInterval(interval);
|
168 |
-
|
169 |
-
}
|
170 |
-
else {
|
171 |
-
scrollToBottom(logContainer);
|
172 |
-
}
|
173 |
-
});
|
174 |
-
}, 500);
|
175 |
-
}
|
176 |
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
|
184 |
const INTRO_MESSAGE =
|
185 |
`<h1>Omnitool.ai on Hugging Face</h1>
|
@@ -289,7 +296,7 @@ async function checkOmnitoolStatus()
|
|
289 |
}
|
290 |
} catch (error)
|
291 |
{
|
292 |
-
console.log('Please press [
|
293 |
setOmnitoolRunning(false);
|
294 |
}
|
295 |
}
|
@@ -380,6 +387,8 @@ async function handleGetRoot(req, res)
|
|
380 |
page_message += `<div>DUPLICATING and using your own SPACE is FREE. You can do it by pressing this button: <a href="${HF_SPACE_DUPLICATE_URL}" target="_blank" class="button-like-link" id="duplicateRepoButton">DUPLICATE SPACE</a></div><div>However, consider choosing the 20 Gig Storage option (~ 5 USD/month) to persist keys, recipes and outputs between server restarts.</div>`;
|
381 |
page_message += '<p></p>';
|
382 |
|
|
|
|
|
383 |
let buttonsHTML = `
|
384 |
<a href="${HF_SPACE_DUPLICATE_URL}" target="_blank" class="button-like-link" id="duplicateRepoButton">DUPLICATE SPACE</a>`;
|
385 |
|
@@ -398,6 +407,8 @@ async function handleGetRoot(req, res)
|
|
398 |
</body>
|
399 |
</html>`;
|
400 |
|
|
|
|
|
401 |
res.writeHead(200, { 'Content-Type': 'text/html' });
|
402 |
res.end(page_html);
|
403 |
return;
|
@@ -416,7 +427,7 @@ async function handleGetRoot(req, res)
|
|
416 |
let buttons_html = `
|
417 |
<button id="exitIframeButton" class="${gotoButtonClass}" onclick="exitIframe()">START</button>
|
418 |
`;
|
419 |
-
|
420 |
const page_html = `
|
421 |
<html>
|
422 |
<head>
|
@@ -432,7 +443,7 @@ async function handleGetRoot(req, res)
|
|
432 |
</body>
|
433 |
</html>
|
434 |
`;
|
435 |
-
|
436 |
res.writeHead(200, { 'Content-Type': 'text/html' });
|
437 |
res.end(page_html);
|
438 |
return;
|
@@ -451,6 +462,7 @@ async function handleGetRoot(req, res)
|
|
451 |
<button id="refreshButton" class="${''}" disabled onclick="refreshPage()">REFRESH</button>
|
452 |
`;
|
453 |
|
|
|
454 |
const page_html = `
|
455 |
<html>
|
456 |
<head>
|
@@ -468,6 +480,7 @@ async function handleGetRoot(req, res)
|
|
468 |
</html>
|
469 |
`;
|
470 |
|
|
|
471 |
res.writeHead(200, { 'Content-Type': 'text/html' });
|
472 |
res.end(page_html);
|
473 |
return;
|
|
|
3 |
* All rights reserved.
|
4 |
*/
|
5 |
//@ts-check
|
6 |
+
const VERSION = '0.6.0.hf.015.d';
|
7 |
|
8 |
const express = require('express');
|
9 |
const http = require('http');
|
|
|
98 |
}
|
99 |
</style>`;
|
100 |
|
101 |
+
function getScriptsHtml(url)
|
102 |
+
{
|
|
|
103 |
|
104 |
+
const scripts_html =
|
105 |
+
`<script>
|
106 |
+
// Script to check Hugging Face login status and control 'Clone Repo' button
|
|
|
107 |
|
108 |
+
function startServer() {
|
109 |
+
document.getElementById('startServerButton').classList.remove
|
110 |
+
('highlight-button-green');
|
111 |
+
document.getElementById('startServerButton').disabled = true;
|
112 |
|
|
|
|
|
|
|
113 |
|
114 |
+
fetch('/start-omnitool-server')
|
115 |
+
.then(response => response.json())
|
116 |
+
.then(data => startLogPolling());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
|
118 |
+
|
119 |
+
}
|
120 |
+
|
121 |
+
function exitIframe() {
|
122 |
+
if (window.self !== window.top)
|
123 |
+
{
|
124 |
+
// open a new window to get out of the iframe, then wait 1s, then fetch burst-iframe then reload
|
125 |
+
window.open("${global.PROTOCOL}://${global.LOCAL_URL}/?isVisited=true", '_blank');
|
126 |
+
}
|
127 |
+
else
|
128 |
+
{
|
129 |
+
fetch('/burst-iframe').then(response => response.json()).then(data => {window.location.reload();});
|
130 |
+
}
|
131 |
+
}
|
132 |
|
133 |
+
function refreshPage() {
|
134 |
+
window.location.reload();
|
135 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
|
137 |
+
function startLogPolling() {
|
138 |
+
|
139 |
+
const interval = setInterval(() => {
|
140 |
+
fetch('/omnitool-logs')
|
141 |
+
.then(response => response.json())
|
142 |
+
.then(data => {
|
143 |
+
const logContainer = document.getElementById('logContainer');
|
144 |
+
logContainer.innerText = data.logs.join("");
|
145 |
+
if (data.ready) {
|
146 |
+
|
147 |
+
scrollToBottom(logContainer);
|
148 |
+
document.getElementById('refreshButton').disabled = false;
|
149 |
+
document.getElementById('refreshButton').classList.add('highlight-button');
|
150 |
+
clearInterval(interval);
|
151 |
+
|
152 |
+
}
|
153 |
+
else {
|
154 |
+
scrollToBottom(logContainer);
|
155 |
+
}
|
156 |
+
});
|
157 |
+
}, 500);
|
158 |
+
|
159 |
+
const interval2 = setInterval(() => {
|
160 |
+
fetch('/omnitool-logs')
|
161 |
+
.then(response => response.json())
|
162 |
+
.then(data => {
|
163 |
+
const logContainer = document.getElementById('logContainer');
|
164 |
+
logContainer.innerText = data.logs.join("");
|
165 |
+
if (data.ready) {
|
166 |
+
|
167 |
+
scrollToBottom(logContainer);
|
168 |
+
document.getElementById('refreshButton').disabled = false;
|
169 |
+
document.getElementById('refreshButton').classList.add('highlight-button');
|
170 |
+
clearInterval(interval);
|
171 |
+
|
172 |
+
}
|
173 |
+
else {
|
174 |
+
scrollToBottom(logContainer);
|
175 |
+
}
|
176 |
+
});
|
177 |
+
}, 500);
|
178 |
+
}
|
179 |
+
|
180 |
+
function scrollToBottom(element) {
|
181 |
+
element.scrollTop = element.scrollHeight;
|
182 |
+
}
|
183 |
+
|
184 |
+
startLogPolling();
|
185 |
+
</script>`;
|
186 |
+
|
187 |
+
console.log(`scripts_html = ${scripts_html}`);
|
188 |
+
return scripts_html;
|
189 |
+
}
|
190 |
|
191 |
const INTRO_MESSAGE =
|
192 |
`<h1>Omnitool.ai on Hugging Face</h1>
|
|
|
296 |
}
|
297 |
} catch (error)
|
298 |
{
|
299 |
+
console.log('Please press [START] button');
|
300 |
setOmnitoolRunning(false);
|
301 |
}
|
302 |
}
|
|
|
387 |
page_message += `<div>DUPLICATING and using your own SPACE is FREE. You can do it by pressing this button: <a href="${HF_SPACE_DUPLICATE_URL}" target="_blank" class="button-like-link" id="duplicateRepoButton">DUPLICATE SPACE</a></div><div>However, consider choosing the 20 Gig Storage option (~ 5 USD/month) to persist keys, recipes and outputs between server restarts.</div>`;
|
388 |
page_message += '<p></p>';
|
389 |
|
390 |
+
const SCRIPTS = getScriptsHtml();
|
391 |
+
|
392 |
let buttonsHTML = `
|
393 |
<a href="${HF_SPACE_DUPLICATE_URL}" target="_blank" class="button-like-link" id="duplicateRepoButton">DUPLICATE SPACE</a>`;
|
394 |
|
|
|
407 |
</body>
|
408 |
</html>`;
|
409 |
|
410 |
+
console.log(`page_html = ${page_html}`);
|
411 |
+
|
412 |
res.writeHead(200, { 'Content-Type': 'text/html' });
|
413 |
res.end(page_html);
|
414 |
return;
|
|
|
427 |
let buttons_html = `
|
428 |
<button id="exitIframeButton" class="${gotoButtonClass}" onclick="exitIframe()">START</button>
|
429 |
`;
|
430 |
+
const SCRIPTS = getScriptsHtml();
|
431 |
const page_html = `
|
432 |
<html>
|
433 |
<head>
|
|
|
443 |
</body>
|
444 |
</html>
|
445 |
`;
|
446 |
+
console.log(`page_html = ${page_html}`);
|
447 |
res.writeHead(200, { 'Content-Type': 'text/html' });
|
448 |
res.end(page_html);
|
449 |
return;
|
|
|
462 |
<button id="refreshButton" class="${''}" disabled onclick="refreshPage()">REFRESH</button>
|
463 |
`;
|
464 |
|
465 |
+
const SCRIPTS = getScriptsHtml();
|
466 |
const page_html = `
|
467 |
<html>
|
468 |
<head>
|
|
|
480 |
</html>
|
481 |
`;
|
482 |
|
483 |
+
console.log(`page_html = ${page_html}`);
|
484 |
res.writeHead(200, { 'Content-Type': 'text/html' });
|
485 |
res.end(page_html);
|
486 |
return;
|