From b06a10f6eca08f312c4f53fac36a4a8dcd9d91b5 Mon Sep 17 00:00:00 2001 From: retoor Date: Fri, 31 Jan 2025 12:06:23 +0100 Subject: [PATCH] Added traceback --- compose.yml | 15 ++++++++++++++- pyproject.toml | 3 ++- src/snek/static/base.css | 23 +++++++++++++++++++++++ src/snek/static/chat-window.js | 9 ++++++++- src/snek/templates/web.html | 1 + src/snek/view/rpc.py | 9 +++++++-- 6 files changed, 55 insertions(+), 5 deletions(-) diff --git a/compose.yml b/compose.yml index 7be013d..ce2b02c 100644 --- a/compose.yml +++ b/compose.yml @@ -10,4 +10,17 @@ services: - PYTHONDONTWRITEBYTECODE="1" entrypoint: ["gunicorn", "-w", "1", "-k", "aiohttp.worker.GunicornWebWorker", "snek.gunicorn:app","--bind","0.0.0.0:8081"] #["python","-m","snek.app"] - \ No newline at end of file + snecssh: + build: + context: . + dockerfile: DockerfileDrive + restart: always + ports: + - "2225:2225" + volumes: + - ./:/code + environment: + - PYTHONDONTWRITEBYTECODE="1" + entrypoint: ["python","-m","snekssh.app2"] + #["python","-m","snek.app"] + diff --git a/pyproject.toml b/pyproject.toml index 22ec4eb..a2a0ccb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ dependencies = [ "mistune", "aiohttp-session", "cryptography", - "requests" + "requests", + "asyncssh" ] diff --git a/src/snek/static/base.css b/src/snek/static/base.css index 42d4b33..46b9fef 100644 --- a/src/snek/static/base.css +++ b/src/snek/static/base.css @@ -4,6 +4,29 @@ box-sizing: border-box; } +.gallery { + padding: 50px; + height: auto; + overflow: auto; + flex: 1; + &.tile { + width: 100px; + height: 100px; + object-fit: cover; + margin-right: 10px; + border-radius: 5px; + margin: 20px; + } +} +.tile { + + width: 100px; + height: 100px; + object-fit: cover; + margin-right: 10px; + border-radius: 5px; + margin: 20px; +} body { font-family: Arial, sans-serif; diff --git a/src/snek/static/chat-window.js b/src/snek/static/chat-window.js index bdad37e..58845b4 100644 --- a/src/snek/static/chat-window.js +++ b/src/snek/static/chat-window.js @@ -23,6 +23,7 @@ class ChatWindowElement extends HTMLElement { const chatHeader = document.createElement("div") chatHeader.classList.add("chat-header") + const chatTitle = document.createElement('h2') @@ -37,7 +38,13 @@ class ChatWindowElement extends HTMLElement { channelElement.setAttribute("channel", channel.uid) //channelElement.classList.add("chat-messages") this.container.appendChild(channelElement) - + //const tileElement = document.createElement('tile-grid') + //tileElement.classList.add("message-list") + //this.container.appendChild(tileElement) + //const uploadButton = document.createElement('upload-button') + //uploadButton.grid = tileElement + //uploadButton.setAttribute('grid', "#grid") + //this.container.appendChild(uploadButton) const chatInput = document.createElement('chat-input') chatInput.addEventListener("submit",(e)=>{ diff --git a/src/snek/templates/web.html b/src/snek/templates/web.html index b2e9677..3882548 100644 --- a/src/snek/templates/web.html +++ b/src/snek/templates/web.html @@ -4,6 +4,7 @@ Snek + diff --git a/src/snek/view/rpc.py b/src/snek/view/rpc.py index b48f4d0..3619bd6 100644 --- a/src/snek/view/rpc.py +++ b/src/snek/view/rpc.py @@ -1,5 +1,6 @@ from aiohttp import web from snek.system.view import BaseView +import traceback class RPCView(BaseView): @@ -117,7 +118,11 @@ class RPCView(BaseView): method = getattr(self,method_name.replace(".","_"),None) if not method: raise Exception("Method not found") - result = await method(*args) + try: + result = await method(*args) + except Exception as ex: + result = dict({"callId":call_id,"success": False, "data":{"exception":str(ex),"traceback":traceback.format_exc()}}) + #dict(error=ex=str(ex),traceback=traceback.format_exc()) await self.ws.send_json({"callId":call_id,"success":True,"data":result}) except Exception as ex: await self.ws.send_json({"callId":call_id,"success":False,"data":str(ex)}) @@ -145,4 +150,4 @@ class RPCView(BaseView): await self.services.socket.delete(ws) print("WebSocket connection closed") - return ws \ No newline at end of file + return ws