Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
aaa1e9b0c3
|
|||
|
8e976f39bb
|
|||
|
9734c18c4f
|
|||
|
71476c9196
|
|||
|
d259bd4839
|
@@ -87,19 +87,19 @@ jobs:
|
||||
- name: Build Python wheel
|
||||
run: task wheel
|
||||
|
||||
- name: Build Electron App (Linux)
|
||||
run: task build-electron-linux
|
||||
|
||||
- name: Build Electron App (Windows)
|
||||
run: task build-electron-windows
|
||||
- name: Build Electron Apps (Linux and Windows)
|
||||
run: task build-electron-all
|
||||
|
||||
- name: Prepare release assets
|
||||
run: |
|
||||
mkdir -p release-assets
|
||||
# Collect artifacts
|
||||
find dist -type f \( -name "*-linux*.AppImage" -o -name "*-linux*.deb" \) -exec cp {} release-assets/ \;
|
||||
find dist -type f \( -name "*-win*.exe" -o -name "*-win-portable*.exe" \) -exec cp {} release-assets/ \;
|
||||
find python-dist -type f -name "*.whl" -exec cp {} release-assets/ \;
|
||||
# Collect artifacts from dist/
|
||||
# Linux artifacts
|
||||
find dist -maxdepth 1 -type f \( -name "*-linux*.AppImage" -o -name "*-linux*.deb" \) -exec cp {} release-assets/ \;
|
||||
# Windows artifacts
|
||||
find dist -maxdepth 1 -type f \( -name "*-win*.exe" \) -exec cp {} release-assets/ \;
|
||||
# Python artifacts
|
||||
find python-dist -maxdepth 1 -type f -name "*.whl" -exec cp {} release-assets/ \;
|
||||
|
||||
# Generate checksums
|
||||
cd release-assets
|
||||
@@ -117,6 +117,7 @@ jobs:
|
||||
if [ -f "$file" ] && [[ "$file" != *.sha256 ]] && [[ "$file" != *release-body.md* ]]; then
|
||||
filename=$(basename "$file")
|
||||
if [ -f "release-assets/${filename}.sha256" ]; then
|
||||
# Extract just the filename and its sha256 (format: <sha256> <filename>)
|
||||
echo "\`$(cat "release-assets/${filename}.sha256")\`" >> release-body.md
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
A [Reticulum MeshChat](https://github.com/liamcottle/reticulum-meshchat) fork from the future.
|
||||
|
||||
<video src="showcase/showcase-video-call.mp4" controls="controls" style="max-width: 100%;"></video>
|
||||
<video src="https://strg.0rbitzer0.net/view/62926a2a-0a9a-4f44-a5f6-000dd60deac1.mp4" controls="controls" style="max-width: 100%;"></video>
|
||||
|
||||
This project is seperate from the original Reticulum MeshChat project, and is not affiliated with the original project.
|
||||
|
||||
|
||||
14
Taskfile.yml
14
Taskfile.yml
@@ -141,8 +141,7 @@ tasks:
|
||||
cmds:
|
||||
- "{{.NPM}} run electron-postinstall"
|
||||
- "{{.NPM}} run build-backend"
|
||||
- "{{.NPM}} run dist -- --linux AppImage"
|
||||
- "{{.NPM}} run dist -- --linux deb"
|
||||
- "{{.NPM}} run dist -- --linux AppImage deb"
|
||||
|
||||
build-electron-windows:
|
||||
desc: Build Windows Electron apps (portable and installer)
|
||||
@@ -150,8 +149,15 @@ tasks:
|
||||
cmds:
|
||||
- "{{.NPM}} run electron-postinstall"
|
||||
- "{{.NPM}} run build-backend"
|
||||
- "{{.NPM}} run dist -- --win portable"
|
||||
- "{{.NPM}} run dist -- --win nsis"
|
||||
- "{{.NPM}} run dist -- --win portable nsis"
|
||||
|
||||
build-electron-all:
|
||||
desc: Build all Electron apps (Linux and Windows)
|
||||
deps: [build-frontend]
|
||||
cmds:
|
||||
- "{{.NPM}} run electron-postinstall"
|
||||
- "{{.NPM}} run build-backend"
|
||||
- "{{.NPM}} run dist -- --linux AppImage deb --win portable nsis"
|
||||
|
||||
dist:
|
||||
desc: Build distribution (defaults to AppImage)
|
||||
|
||||
@@ -91,6 +91,9 @@ from meshchatx.src.version import __version__ as app_version
|
||||
# https://cx-freeze.readthedocs.io/en/latest/faq.html#using-data-files
|
||||
# bearer:disable python_lang_path_traversal
|
||||
def get_file_path(filename):
|
||||
# Remove trailing slashes for path joining consistency
|
||||
filename = filename.rstrip("/\\")
|
||||
|
||||
if getattr(sys, "frozen", False):
|
||||
datadir = os.path.dirname(sys.executable)
|
||||
return os.path.join(datadir, filename)
|
||||
@@ -1706,6 +1709,15 @@ class ReticulumMeshChat:
|
||||
},
|
||||
)
|
||||
|
||||
# allow serving manifest.json and service-worker.js directly at root
|
||||
@routes.get("/manifest.json")
|
||||
async def manifest(request):
|
||||
return web.FileResponse(get_file_path("public/manifest.json"))
|
||||
|
||||
@routes.get("/service-worker.js")
|
||||
async def service_worker(request):
|
||||
return web.FileResponse(get_file_path("public/service-worker.js"))
|
||||
|
||||
# serve ping
|
||||
@routes.get("/api/v1/status")
|
||||
async def status(request):
|
||||
@@ -5969,6 +5981,8 @@ class ReticulumMeshChat:
|
||||
response.headers["Content-Type"] = "text/css; charset=utf-8"
|
||||
elif path.endswith(".json"):
|
||||
response.headers["Content-Type"] = "application/json; charset=utf-8"
|
||||
elif path.endswith(".wasm"):
|
||||
response.headers["Content-Type"] = "application/wasm"
|
||||
elif path.endswith(".html"):
|
||||
response.headers["Content-Type"] = "text/html; charset=utf-8"
|
||||
return response
|
||||
@@ -6048,9 +6062,15 @@ class ReticulumMeshChat:
|
||||
)
|
||||
|
||||
app.add_routes(routes)
|
||||
app.add_routes(
|
||||
[web.static("/", get_file_path("public/"))],
|
||||
) # serve anything in public folder
|
||||
|
||||
# serve anything else from public folder
|
||||
# we use add_static here as it's more robust for serving directories
|
||||
public_dir = get_file_path("public")
|
||||
if os.path.exists(public_dir):
|
||||
app.router.add_static("/", public_dir, name="static", follow_symlinks=True)
|
||||
else:
|
||||
print(f"Warning: Static files directory not found at {public_dir}")
|
||||
|
||||
app.on_shutdown.append(
|
||||
self.shutdown,
|
||||
) # need to force close websockets and stop reticulum now
|
||||
|
||||
@@ -3,4 +3,4 @@ Auto-generated helper so Python tooling and the Electron build
|
||||
share the same version string.
|
||||
"""
|
||||
|
||||
__version__ = "3.3.1"
|
||||
__version__ = "3.3.2"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "reticulum-meshchatx",
|
||||
"version": "3.3.1",
|
||||
"version": "3.3.2",
|
||||
"description": "A simple mesh network communications app powered by the Reticulum Network Stack",
|
||||
"homepage": "https://git.quad4.io/RNS-Things/MeshChatX",
|
||||
"author": "Sudo-Ivan",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "reticulum-meshchatx"
|
||||
version = "3.3.0"
|
||||
version = "3.3.2"
|
||||
description = "A simple mesh network communications app powered by the Reticulum Network Stack"
|
||||
authors = [
|
||||
{name = "Sudo-Ivan"}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user