This commit is contained in:
retoor 2025-06-08 20:36:45 +02:00
parent d3c0e138d8
commit da9566c11f
5 changed files with 7 additions and 32 deletions
src/snek
service
static
system
templates
view

View File

@ -233,8 +233,6 @@ class PushService(BaseService):
print(
f"Failed to send notification to user {user_uid} via endpoint {endpoint}: {response.status}"
)
else:
print(f"No push subscriptions found for user {user_uid}")
async def register(
self, user_uid: str, endpoint: str, key_auth: str, key_p256dh: str

View File

@ -52,15 +52,13 @@ self.addEventListener("notificationclose", (event) => {
})
self.addEventListener("fetch", (event) => {
// console.log("Fetch event for ", event.request.url);
event.respondWith(
caches.match(event.request).then((response) => {
if (response) {
// console.log("Found response in cache: ", response);
return response;
}
// console.log("No response found in cache. About to fetch from network...");
return fetch(event.request);
})
);
})
})

View File

@ -39,7 +39,6 @@ class ComposeFileManager:
loop = asyncio.get_event_loop()
while True:
line = await loop.run_in_executor(None,os.read,stream,1024)
print("XXX",line)
if not line:
break
await event_handler(container_name,"stdout",line)
@ -117,13 +116,12 @@ class ComposeFileManager:
)
stdout, _ = await proc.communicate()
running_services = stdout.decode().split()
print(running_services)
return "running" if name in running_services else "stopped"
async def write_stdin(self, name, data):
await self.event_handler(name, "stdin", data)
proc = self.running_instances.get(name)
print("Found proc:",proc)
print(name,data)
if not proc:
return False
try:
@ -177,11 +175,9 @@ class ComposeFileManager:
stderr=asyncio.subprocess.PIPE,
)
stdout,stderr = await proc.communicate()
print(stdout, stderr)
if proc.returncode != 0:
print(f"Failed to start {name}: {stderr.decode(errors='ignore')}")
return False
master, slave = pty.openpty()
proc = await asyncio.create_subprocess_exec(
"docker", "compose", "-f", self.compose_path, "exec", name, "/bin/bash",
@ -189,25 +185,8 @@ class ComposeFileManager:
stdout=slave,
stderr=slave,
)
proc = {'proc':proc,'master':master,'slave':slave}
# stdin,stderr = await proc.communicate()
self.running_instances[name] = proc
#if stdout:
# await self.event_handler(name, "stdout", stdout)
#if stderr:
# await self.event_handler(name,"stdout",stderr)
proc = {'proc': proc, 'master': master, 'slave': slave}
self.running_instances[name] = proc
await self._create_readers(name)
return True
#return stdout and stdout.decode(errors="ignore") or stderr.decode(errors="ignore")
# Example usage:
# mgr = ComposeFileManager()
# mgr.create_instance('web', 'nginx:latest', cpus=1, memory='512m', ports={80:8080}, volumes=['./data:/data'])
# print(mgr.list_instances())
# mgr.duplicate_instance('web', 'web_copy')
# mgr.remove_instance('web_copy')
# await mgr.start('web')

View File

@ -79,7 +79,7 @@
app.channelUid = '{{ channel.uid.value }}'
window.getContainer = function(){
return new Container(app.channelUid,true)
return new Container(app.channelUid,false)
}
{% endif %}
let installPrompt = null
@ -93,7 +93,6 @@ let installPrompt = null
button.addEventListener("click", async ()=>{
const result = await installPrompt.prompt()
console.info(result.outcome)
})

View File

@ -389,7 +389,8 @@ class RPCView(BaseView):
)
async def _send_json(self, obj):
await self.ws.send_str(json.dumps(obj, default=str))
if not self.ws.closed:
await self.ws.send_str(json.dumps(obj, default=str))
async def get_online_users(self, channel_uid):
self._require_login()