Giter VIP home page Giter VIP logo

reticulum-meshchat's People

Contributors

liamcottle avatar linuxinabit avatar rfnexus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

reticulum-meshchat's Issues

WEB.PY in windows CLI error

 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?

USB serial interface malfunction

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

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.

Form fields get disabled on Electron for Windows

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...

Message History Pagination

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.

Windows Portable doesn't accept same parameters as web.py

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.

Persistent message history

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.