* adding new avatars by David Revoy
* replacing old avatars to test
TODO: add a settings to choose between legacy and new avatars.
TODO: generate a bot avatar.
* For now, only one avatar possible,
* uses mod_random_vcard_peertubelivechat,
* mod_random_vcard_peertubelivechat has a new option with the avatar
list (instead of a hardcoded avatar number)
* Peertube lists available avatars files, and pass it to mod_random_vcard_peertubelivechat
* New settings: "Ban anonymous user's IP when user is banned from a chatroom":
* if enabled, every time a streamer bans an anonymous user, it will ban its IP on the chat server,
* banned IPs are logged on disk, so server's admin can use them to feed fail2ban (for example),
* option disabled by default, because could be used to create trapped-rooms on public servers
* Start and stop the bot WIP
* Prosody: removing the BOSH module from the global scope (must only be present on relevant virtualhosts)
* Some refactoring
Bypassing Nginx for API call originated from Prosody (if Peertube >=5.1).
Can also fix some Docker setup, which needed to set the prosody-peertube-uri settings.
* Adding a help button on top of the chat, that links to the online documentation on frama.io.
* Replaced github.io documentation links by frama.io documentation.
* Adding links to the documentation in the diagnostic tool.
* the front-end now use global constants, based on the translation key
* build-client.js use the ESBuild "define" directive to replace these
globals at compile time, by the english value
* build:client must now be called after build:languages
* moving the loadLoc and loc backend functions in a separate lib
To make the Weblate integration simplier, this commit merge all
translations in yml files (there is no more distinction between
standards and settings strings)
This yml files will be handled by Weblate.
TODO: document the new translation process.
Letsencrypt certificate import procedure was not working on server that had never installed Prosody.
Adding `prosody_user` in the Prosody configuration file to fix this.
Updating the procedure: the `chown` is no more needed in `/etc/letsencrypt/renewal-hooks/deploy/prosody.sh`.
Trying to connect to a remote instance using direct s2s won't work if local instance has not the feature enabled, and if the remote instance does not know the local one.
So using Websocket S2S in such case (that embed a discovery mecanism).
This commit is a dirty hack to fix issue with ARM64 Prosody AppImage.
The fixed appimagebuild tool is not released by the dev team.
So i patch it in my build script. This is not a good solution, but it
works, and let me go forward.
The data format used by plugin v6.3.0 was not well suited.
Here comes a new data format, with S2S informations.
The plugin can automatically upgrade old format.
It also continues to provide the old format, so than remote instance
that did not update the plugin will still work.
Note: websocket s2s is not working yet, still WIP.
New Features
* Chat Federation:
* You can now connect to a remote chat with your local account.
* This remote connection is done using a custom implementation of [XEP-0468: WebSocket S2S](https://xmpp.org/extensions/xep-0468.html), using some specific discovering method (so that it will work without any DNS configuration).
Minor changes and fixes
* Possibility to debug Prosody in development environments.
* Using process.spawn instead of process.exec to launch Prosody (safer, and more optimal).
* Prosody AppImage: fix path mapping: we only map necessary /etc/ subdir, so that the AppImage can access to /etc/resolv.conf, /etc/hosts, ...
* Prosody AppImage: hidden debug mode to disable lua-unbound, that seems broken in some docker dev environments.
* if both local and remote instance have external XMPP connections enabled, the user joins the remote room with his local account
* some code refactoring (builtin.ts)
Note: documentation and settings descriptions are to do.
Related to #112
* new option to allow external xmpp account s2s connections
* settings to setup the port and network interfaces
* documentation WIP
Related to issue #114
Implementing a new translating system, so we can more easily translate
settings strings. Indeed, these strings are difficult to embed in
JSON format.
We still use JSON files for standard strings, but in addition we have
dedicated YAML files to translate settings strings.
There is a new build-languages.js script that merge all translations in JSON files.
Other modifications:
* Eslint: ignoring documentation and build scripts.
* french settings translations.
Replacing webpack by ESBuild for client code compilation (as in the
official quickstart plugin).
So we can remove deprecated webpack dependencies.
Note: webpack is still used for ConverseJS build.
This may be removed soon.
Related to issue #122.
* using a stable version (4.2.2)
* minimum Peertube version is now 4.2.0
* removing some type customizations
Related to issue #122.
Note: there are still some quirks. See: https://github.com/Chocobozzz/PeerTube/issues/5446
* stop trying to generated an ARM64 AppImage (as it is buggy)
* display a warning in the settings if incompatible CPU detected
* documentation for a workaround
Implements #120.
Thanks to this commit, there is no more need to manually install Prosody
on the server.
The plugin now build and embed an AppImage of Prosody.
In this commit:
* building and using a Prosody AppImage.
* Adding a launcher in the AppImage: the first command argument tells if
we want to run prosody or prosodyctl
* prosodyCtl functions now uses the AppImage.
* Prosody AppImage: extract once at the startup, then run the squashfs
* Builtin Prosody, Share chat url: option to have a transparent background (for streaming integration).
* Builtin Prosody, Share chat url: fixed new day hidding when no scrollbar in readonly mode.