liamcottle / reticulum-meshchat Goto Github PK
View Code? Open in Web Editor NEWA simple mesh network communications app powered by the Reticulum Network Stack.
Home Page: https://meshchat.app
License: MIT License
A simple mesh network communications app powered by the Reticulum Network Stack.
Home Page: https://meshchat.app
License: MIT License
File "C:\Users\ANATOLIY\reticulum-webchat\web.py", line 249, in run
asyncio.get_event_loop().add_signal_handler(signal.SIGINT, lambda: exit(-1))
File "C:\Users\ANATOLIY\AppData\Local\Programs\Python\Python312\Lib\asyncio\events.py", line 582, in add_signal_handler
raise NotImplementedError
NotImplementedError
When I try to run web.py on win11, Iget above error.
how to fix?
I am using USB serial intefaces P2P link with simple config as this:
[[Serial Interface]]
type = SerialInterface
interface_enabled = True
# Serial port for the device
port = COM18
speed = 115200
databits = 8
parity = none
stopbits = 1
While messages do work, sending files STUCKs forever. Same for Win app and Python app ....
I have a gess that my serial interface buffer is limited to 240bytes packets but no idea how add this in inteface's settings.
Add basic http authentication for users that want to access meshchat from another computer/location but keep it private from other users on their network.
This is a reminder to fix the bug where it's impossible to select and enter text into any fields in the Windows/Electron version of MeshChat when an alert
dialog has been opened in javascript.
You can click one of the other dialogs, such as "Compose" and then exit out to refocus the window and allow text entry again.
This should probably be fixed by replacing all instances of alert
with a native dialog when running under electron. I have already done this with the confirm
dialog, as that wasn't supported in electron. Something similar can be done here...
This is a note to implement message history pagination.
Currently when going into a conversation, every single message ever sent and received is loaded and displayed all at once.
This is not ideal for performance, especially if the conversation includes hundreds of messages including images or files.
For the portable Windows executable to really be portable (e.g. run off an encrypted volume on a USB stick), it'd be useful for it to accept the same parameters as the web.py launcher so all the identity, configuration, and storage can be stored alongside it. Right now, it's hardcoded (in main.js) to ~/.reticulum-meshchat
for storageDir
with no option to set configDir
. It'd be useful to accept these:
--identity-file IDENTITY_FILE
Path to a Reticulum Identity file to use as your LXMF address.
--identity-base64 IDENTITY_BASE64
A base64 encoded Reticulum Identity to use as your LXMF address.
--reticulum-config-dir RETICULUM_CONFIG_DIR
Path to a Reticulum config directory for the RNS stack to use (e.g: ~/.reticulum)
--storage-dir STORAGE_DIR
Path to a directory for storing databases and config files (default: ./storage)
In the interim, a workaround is to extract the Electron app, edit resources/app/electron/main.js
, and change line 83 to modify storageDir
to the desired path. Then, add code like this below it to set configDir
to the desired path:
// determine path for config
const configDir = path.join('.reticulum'); // .reticulum
Finally, change the exeChildProcess
call to:
// spawn executable
exeChildProcess = await spawn(exe, [
'--headless', // reticulum meshchat usually launches default web browser, we don't want this when using electron
'--port', '9337', // FIXME: let system pick a random unused port?
'--storage-dir', storageDir,
'--reticulum-config-dir', configDir,
]);
to use the new configDir
path. Then, just run the extracted Reticulum MeshChat.exe
directly instead of the packaged portable file, and it'll use the modified JS.
A useful feature would be the ability to retain messages upon page refresh. One approach could be by using localStorage which is supported by nearly all browsers.
One drawback to the localStorage approach is the user must give permission to the page to use localStorage. And localStorage is treated as sessionStorage in private windows.
Another method would be to save the messages to a file through web.py, similar to how NomadNet does it in the /storage/conversations
path.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.