From 013d4adce57f4afec5176bbdb5e2225d529ec3b7 Mon Sep 17 00:00:00 2001
From: retoor <retoor@molodetz.nl>
Date: Sat, 22 Mar 2025 19:57:39 +0100
Subject: [PATCH] Drive access.

---
 Dockerfile                       |  39 ++---------
 compose.yml                      |  18 +-----
 src/snek/scripts/chat.js         |  54 ++++++++++++++++
 src/snek/system/terminal.py      |  48 ++++++++++++++
 src/snek/templates/static        |   1 +
 src/snek/templates/terminal.html |  47 ++++++++++++++
 src/snek/view/terminal.py        |  56 ++++++++++++++++
 terminal/.bashrc                 | 108 +++++++++++++++++++++++++++++++
 terminal/.profile                |   9 +++
 terminal/r                       | Bin 0 -> 77080 bytes
 10 files changed, 329 insertions(+), 51 deletions(-)
 create mode 100644 src/snek/scripts/chat.js
 create mode 100644 src/snek/system/terminal.py
 create mode 120000 src/snek/templates/static
 create mode 100644 src/snek/templates/terminal.html
 create mode 100644 src/snek/view/terminal.py
 create mode 100644 terminal/.bashrc
 create mode 100644 terminal/.profile
 create mode 100755 terminal/r

diff --git a/Dockerfile b/Dockerfile
index 6ef9f83..d24c47d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,41 +1,10 @@
-FROM surnet/alpine-wkhtmltopdf:3.21.2-0.12.6-full as wkhtmltopdf 
-FROM python:3.12.8-alpine3.21
+FROM python:3.14.0a6-bookworm
+RUN mkdir -p /code 
 WORKDIR /code
-ENV FLASK_APP=app.py
-ENV FLASK_RUN_HOST=0.0.0.0
-RUN apk add --no-cache gcc musl-dev linux-headers git
-
-#WKHTMLTOPDFNEEDS
-RUN apk add --no-cache \
-    libstdc++ \
-    libx11 \
-    libxrender \
-    libxext \
-    libssl3 \
-    ca-certificates \
-    docker \
-    fontconfig \
-    freetype \
-    ttf-dejavu \
-    ttf-droid \
-    ttf-freefont \
-    ttf-liberation \
-    # more fonts
-  && apk add --no-cache --virtual .build-deps \
-    msttcorefonts-installer \
-  # Install microsoft fonts
-  && update-ms-fonts \
-  && fc-cache -f \
-  # Clean up when done
-  && rm -rf /tmp/* \
-  && apk del .build-deps
-COPY --from=wkhtmltopdf /bin/wkhtmltopdf /bin/wkhtmltopdf
-COPY --from=wkhtmltopdf /bin/wkhtmltoimage /bin/wkhtmltoimage
+RUN apt update && apt install build-essential docker -y     
 COPY pyproject.toml pyproject.toml 
 COPY src src
+RUN mkdir /drive
 RUN pip install --upgrade pip
 RUN pip install -e .
-EXPOSE 8081
 
-CMD ["python","-m","snek.app"]
-#CMD ["gunicorn", "-w", "10", "-k", "aiohttp.worker.GunicornWebWorker", "snek.gunicorn:app","--bind","0.0.0.0:8081"]
diff --git a/compose.yml b/compose.yml
index 70d21ba..9d55d3b 100644
--- a/compose.yml
+++ b/compose.yml
@@ -7,26 +7,12 @@ services:
       - "8081:8081"
     volumes:
       - ./:/code
-      - /media/storage/snek/molodetz.nl/drive:/code/drive
+      - /media/storage/snek.molodetz.nl/drive:/code/drive
+      - /media/storage/snek.molodetz.nl/drive:/drive
       - /var/run/docker.sock:/var/run/docker.sock
-      - /media/storage/snek/molodetz.nl/drive:/drive
     environment:
      - PYTHONDONTWRITEBYTECODE=1
      - PYTHONUNBUFFERED=1
     entrypoint: ["gunicorn", "-w", "1", "-k", "aiohttp.worker.GunicornWebWorker", "snek.gunicorn:app","--bind","0.0.0.0:8081"]
     #entrypoint: ["python","-m","snek.app"]
-  snecssh:
-    build:
-      context: .
-      dockerfile: DockerfileDrive
-    restart: always
-    ports:
-      - "2225:2225"
-    volumes:
-      - ./:/code
-    environment:
-     - PYTHONDONTWRITEBYTECODE="1"
-     - PYTHONUNBUFFERED="1"
-    entrypoint: ["python","-m","snekssh.app2"]
-    #["python","-m","snek.app"]
    
diff --git a/src/snek/scripts/chat.js b/src/snek/scripts/chat.js
new file mode 100644
index 0000000..a4d6782
--- /dev/null
+++ b/src/snek/scripts/chat.js
@@ -0,0 +1,54 @@
+const channelUid = "{{ channel.uid.value }}";
+
+function initInputField(textBox) {
+    textBox.addEventListener('change', (e) => {
+        e.preventDefault();
+        this.dispatchEvent(new CustomEvent('change', { detail: e.target.value, bubbles: true }));
+    });
+
+    textBox.addEventListener('keydown', (e) => {
+        if (e.key === 'Enter' && !e.shiftKey) {
+            e.preventDefault();
+            const message = e.target.value.trim();
+            if (message) {
+                app.rpc.sendMessage(channelUid, message);
+                e.target.value = '';
+            }
+        }
+    });
+    textBox.focus();
+}
+
+function updateTimes() {
+    document.querySelectorAll(".time").forEach((time) => {
+        time.innerText = app.timeDescription(time.dataset.created_at);
+    });
+}
+
+function isElementVisible(element) {
+    const rect = element.getBoundingClientRect();
+    return (
+        rect.top >= 0 &&
+        rect.left >= 0 &&
+        rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
+        rect.right <= (window.innerWidth || document.documentElement.clientWidth)
+    );
+}
+
+const messagesContainer = document.querySelector(".chat-messages");
+
+let isLoadingExtra = false;
+
+messagesContainer.addEventListener("scroll", () => {
+    loadExtra();
+});
+
+setInterval(updateTimes, 1000);
+
+app.addEventListener("channel-message", (data) => {
+    if (data.channel_uid !== channelUid) {
+        if(!isMentionForSomeoneElse(data.message)){
+            channelSidebar.notify(data);
+        }
+    }
+});
diff --git a/src/snek/system/terminal.py b/src/snek/system/terminal.py
new file mode 100644
index 0000000..2d9341e
--- /dev/null
+++ b/src/snek/system/terminal.py
@@ -0,0 +1,48 @@
+import asyncio
+import aiohttp
+import aiohttp.web
+import os
+import pty
+import shlex
+import subprocess
+import pathlib
+
+commands = {
+    'alpine': 'docker run -it alpine /bin/sh',
+    'r': 'docker run -v /usr/local/bin:/usr/local/bin -it ubuntu:latest run.sh',
+}
+
+class TerminalSession:
+    def __init__(self,command):
+        self.master, self.slave = pty.openpty()
+        self.sockets =[]
+        self.process = subprocess.Popen(
+            command.split(" "),
+            stdin=self.slave,
+            stdout=self.slave,
+            stderr=self.slave,
+            bufsize=0,
+            universal_newlines=True
+        )
+
+    async def read_output(self, ws):
+        loop = asyncio.get_event_loop()
+        self.sockets.append(ws)
+        if len(self.sockets) > 1:
+            return 
+        while True:
+            try:
+                data = await loop.run_in_executor(None, os.read, self.master, 1024)
+                if not data:
+                    break
+                try:
+                    for ws in self.sockets: await ws.send_bytes(data)  # Send raw bytes for ANSI support
+                except:
+                    self.sockets.remove(ws)
+            except Exception:
+                break
+
+    async def write_input(self, data):
+        os.write(self.master, data.encode())
+
+
diff --git a/src/snek/templates/static b/src/snek/templates/static
new file mode 120000
index 0000000..d9bc54d
--- /dev/null
+++ b/src/snek/templates/static
@@ -0,0 +1 @@
+../static/
\ No newline at end of file
diff --git a/src/snek/templates/terminal.html b/src/snek/templates/terminal.html
new file mode 100644
index 0000000..d9ad6d1
--- /dev/null
+++ b/src/snek/templates/terminal.html
@@ -0,0 +1,47 @@
+{% extends "app.html" %}
+
+{% block sidebar %}
+Reboot
+{% endblock %}
+
+{% block main %}
+<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/xterm/css/xterm.css">
+    <script src="https://cdn.jsdelivr.net/npm/xterm/lib/xterm.js"></script>
+    <script src="https://cdn.jsdelivr.net/npm/xterm-addon-fit/lib/xterm-addon-fit.js"></script>
+    <style>
+       #terminal { width: 100%; height: 480px; overflow-y: none; }
+    </style>
+
+  <div class="container" id="terminal"></div>
+
+    <script>
+        const term = new Terminal({ cursorBlink: true });
+        const fitAddon = new FitAddon.FitAddon();
+        term.loadAddon(fitAddon);
+        term.open(document.getElementById("terminal"));
+        fitAddon.fit();
+
+        window.addEventListener("resize", () => fitAddon.fit());
+        
+        const schema = window.location.protocol === "https:" ? "wss" : "ws";
+        const hostname = window.location.host;
+        const url = `${schema}://${hostname}/terminal.ws`;
+
+        const socket = new WebSocket(url);
+        socket.binaryType = "arraybuffer";  // Support binary data
+
+        socket.onopen = () => term.write("\x1b[32mConnected to Molodetz\x1b[0m\r\n");
+
+        socket.onmessage = (event) => {
+            const data = new Uint8Array(event.data);
+            term.write(new TextDecoder().decode(data));
+        };
+
+        term.onData(data => socket.send(new TextEncoder().encode(data)));
+
+        socket.onclose = () => term.write("\r\n\x1b[31mConnection closed\x1b[0m\r\n");
+    </script>
+
+
+
+{% endblock main %}
diff --git a/src/snek/view/terminal.py b/src/snek/view/terminal.py
new file mode 100644
index 0000000..e54dfb7
--- /dev/null
+++ b/src/snek/view/terminal.py
@@ -0,0 +1,56 @@
+from snek.system.view import BaseView 
+import aiohttp 
+import asyncio
+from snek.system.terminal import TerminalSession
+import pathlib
+
+class TerminalSocketView(BaseView):
+    
+    login_required = True
+
+    user_sessions = {}
+    
+    async def prepare_drive(self):
+        user = await self.services.user.get(uid=self.session.get("uid"))
+        root = pathlib.Path("drive").joinpath(user["uid"])
+        root.mkdir(parents=True, exist_ok=True)
+        terminal_folder = pathlib.Path("terminal")
+        for path in terminal_folder.iterdir():
+            destination_path = root.joinpath(path.name)
+            if not destination_path.exists():
+                if not path.is_dir():
+                    destination_path.write_bytes(path.read_bytes())
+        return root 
+        
+    async def get(self):
+       
+
+
+        ws = aiohttp.web.WebSocketResponse()
+        await ws.prepare(self.request)
+        user = await self.services.user.get(uid=self.session.get("uid"))
+        root = await self.prepare_drive()
+        
+        command = f"docker run -v ./{root}/:/root --rm -it --memory 512M --cpus=0.5 -w /root ubuntu:latest /bin/bash"
+        print(command)
+
+        session = self.user_sessions.get(user["uid"])
+        if not session:
+            self.user_sessions[user["uid"]] = TerminalSession(command=command)
+        session = self.user_sessions[user["uid"]]   
+        asyncio.create_task(session.read_output(ws))  
+
+        async for msg in ws:
+            if msg.type == aiohttp.WSMsgType.BINARY:
+                await session.write_input(msg.data.decode())
+
+        
+        return ws
+
+class TerminalView(BaseView):
+
+    login_required = True
+
+    async def get(self):
+        request = self.request
+        return await self.request.app.render_template('terminal.html',self.request)
diff --git a/terminal/.bashrc b/terminal/.bashrc
new file mode 100644
index 0000000..2b5d791
--- /dev/null
+++ b/terminal/.bashrc
@@ -0,0 +1,108 @@
+# ~/.bashrc: executed by bash(1) for non-login shells.
+# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+# for examples
+
+# If not running interactively, don't do anything
+[ -z "$PS1" ] && return
+
+# don't put duplicate lines in the history. See bash(1) for more options
+# ... or force ignoredups and ignorespace
+HISTCONTROL=ignoredups:ignorespace
+
+# append to the history file, don't overwrite it
+shopt -s histappend
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=1000
+HISTFILESIZE=2000
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# make less more friendly for non-text input files, see lesspipe(1)
+[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+
+# set variable identifying the chroot you work in (used in the prompt below)
+if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
+    debian_chroot=$(cat /etc/debian_chroot)
+fi
+
+# set a fancy prompt (non-color, unless we know we "want" color)
+case "$TERM" in
+    xterm-color) color_prompt=yes;;
+esac
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+#force_color_prompt=yes
+
+if [ -n "$force_color_prompt" ]; then
+    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+	# We have color support; assume it's compliant with Ecma-48
+	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
+	# a case would tend to support setf rather than setaf.)
+	color_prompt=yes
+    else
+	color_prompt=
+    fi
+fi
+
+if [ "$color_prompt" = yes ]; then
+    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
+else
+    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+fi
+unset color_prompt force_color_prompt
+
+# If this is an xterm set the title to user@host:dir
+case "$TERM" in
+xterm*|rxvt*)
+    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
+    ;;
+*)
+    ;;
+esac
+
+# enable color support of ls and also add handy aliases
+if [ -x /usr/bin/dircolors ]; then
+    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
+    alias ls='ls --color=auto'
+    #alias dir='dir --color=auto'
+    #alias vdir='vdir --color=auto'
+
+    alias grep='grep --color=auto'
+    alias fgrep='fgrep --color=auto'
+    alias egrep='egrep --color=auto'
+fi
+
+# some more ls aliases
+alias ll='ls -alF'
+alias la='ls -A'
+alias l='ls -CF'
+
+# Alias definitions.
+# You may want to put all your additions into a separate file like
+# ~/.bash_aliases, instead of adding them here directly.
+# See /usr/share/doc/bash-doc/examples in the bash-doc package.
+
+if [ -f ~/.bash_aliases ]; then
+    . ~/.bash_aliases
+fi
+
+
+cp ~/r /usr/local/bin 
+
+chmod -x /usr/local/bin/*
+
+apt update && apt install libreadline-dev libcurl4-openssl-dev libssl-dev libncurses5-dev libncursesw5-dev libsqlite3-dev libreadline6-dev zlib1g-dev libbz2-dev libffi-dev liblzma-dev python3 python3-pip python3-venv -y
+
+echo "r is installed."
+
+# enable programmable completion features (you don't need to enable
+# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
+# sources /etc/bash.bashrc).
+#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
+#    . /etc/bash_completion
+#fi
diff --git a/terminal/.profile b/terminal/.profile
new file mode 100644
index 0000000..c4c7402
--- /dev/null
+++ b/terminal/.profile
@@ -0,0 +1,9 @@
+# ~/.profile: executed by Bourne-compatible login shells.
+
+if [ "$BASH" ]; then
+  if [ -f ~/.bashrc ]; then
+    . ~/.bashrc
+  fi
+fi
+
+mesg n 2> /dev/null || true
diff --git a/terminal/r b/terminal/r
new file mode 100755
index 0000000000000000000000000000000000000000..2cc65df557ceb3b1c01ca1a024b01a02ff808862
GIT binary patch
literal 77080
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

literal 0
HcmV?d00001