Commit Graph

233 Commits

Author SHA1 Message Date
John Livingston
6ed69d2c2f
Chat Federation: refactoring ActivityPub data:
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.
2023-05-31 16:52:50 +02:00
John Livingston
b38d9a6426
Cleaning an aborted PoC 2023-05-31 16:52:49 +02:00
John Livingston
8fe48a068f
Refactoring the debug mode code, and adding some options. 2023-05-31 16:52:49 +02:00
John Livingston
b525c203da
Chat Federation: first working PoC! 2023-05-31 16:52:49 +02:00
John Livingston
5a945a0cb7
Chat Federation WIP:
Found that net.websocket is not appropriate.
This commit is a proof of concept. It has to be cleaned.
Still not working, but close!
2023-05-31 16:52:48 +02:00
John Livingston
9a2da60b7d
Chat Federation (and a lot more) WIP:
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.
2023-05-31 16:52:47 +02:00
John Livingston
3bc05d88df
Chat Federation: using S2S if available.
* 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
2023-05-31 16:52:47 +02:00
John Livingston
cf0b14d382
Fix import. Seems i am tired... 2023-04-21 19:28:43 +02:00
John Livingston
1a5989d9a9
Fix. 2023-04-21 19:24:55 +02:00
John Livingston
5a4eb7fc33
Fix: wrong usage of URL.protocol, again 2023-04-21 18:57:18 +02:00
John Livingston
4a02f74563
Fix cross domain BOSH. 2023-04-21 18:49:15 +02:00
John Livingston
ba573c1211
Fix protocol detection. 2023-04-21 18:38:43 +02:00
John Livingston
0ce95d4a39
Chat Federation: don't display chat when anonymous connections are disabled 2023-04-21 17:24:16 +02:00
John Livingston
5d323b2dfd
Chat Federation, connection to remote chat:
Front-end connect using BOSH or WS directly on the remote server.
If use is logged-in, his nickname is use as default nickname.
2023-04-21 16:56:48 +02:00
John Livingston
b85a1dc90a
Fix: wrong usage of URL.protocol 2023-04-21 16:33:17 +02:00
John Livingston
732138e745
Chat Federation: some data caching to reduce disk load. 2023-04-21 12:25:00 +02:00
John Livingston
333590defd
Chat Federation: send the information to the frontend. 2023-04-21 12:02:52 +02:00
John Livingston
b1f1271389
Fix missing case. 2023-04-20 18:32:13 +02:00
John Livingston
5028d37c18
Chat federation: storing chat information 2023-04-20 18:28:08 +02:00
John Livingston
850ea3e61f
Chat federation: refactoring code + fix case when video has no chat 2023-04-20 16:07:00 +02:00
John Livingston
01e7fdc9b6
Chat federation: new settings to disable the feature. 2023-04-20 12:13:22 +02:00
John Livingston
4c138f3f5b
Chat federation metadata fix, and code refactoring. 2023-04-20 11:10:23 +02:00
John Livingston
115fcd8484
Chat federation: add metadata in ActivityPub. WIP 2023-04-19 19:07:08 +02:00
John Livingston
310419ad66
Fix Peertube crash:
Peertube could crash when someone attemps to connect to Websocket endpoint during plugin initialization.
2023-04-17 11:14:41 +02:00
John Livingston
d359d3ad99 Fix Prosody room topic:
Due to a bug in mod_muc_http_defaults (https://hg.prosody.im/prosody-modules/rev/6d99ddd99694),
room topics were badly configured. The plugin will fix them at startup, and stops trying to set the subject.
2023-04-14 11:33:41 +02:00
John Livingston
cf0e4d8061 Fix settings read. 2023-04-14 11:33:41 +02:00
John Livingston
801798852c Prosody: new settings to provide a custom certificates dir 2023-04-14 11:33:41 +02:00
John Livingston
a87a622cba Prosody: renew self signed certificates periodically 2023-04-14 11:33:41 +02:00
John Livingston
b4dabfeeb9 New debug mode:
Debug mode is no more triggered by the NODE_ENV value, but by testing
the existance of a file in the plugin data directory.
2023-04-14 11:33:41 +02:00
John Livingston
f8b83defb5 Fix Prosody configuration. 2023-04-14 11:33:41 +02:00
John Livingston
772689f9ce Prosody: Generating self-signed certificates for s2s connections. 2023-04-14 11:33:41 +02:00
John Livingston
38023df6be XMPP clients connections WIP + fix mod_muc_http_defaults 2023-04-14 11:33:41 +02:00
John Livingston
d544a53b38 XMPP clients connections WIP 2023-04-14 11:33:41 +02:00
John Livingston
4a28991497 XMPP client connection WIP:
Adding an option in the «share chat» dialog to display the XMPP room
address.
2023-04-14 11:33:41 +02:00
John Livingston
4d9d9d39b0 XMPP clients connections WIP:
* new option to allow external xmpp account s2s connections
* settings to setup the port and network interfaces
* documentation WIP

Related to issue #114
2023-04-14 11:33:41 +02:00
John Livingston
c81c2eb9bb Diagnostic tool: add the result of prosodyctl check in the debug section. 2023-04-14 11:33:41 +02:00
John Livingston
9d18e401a7
Implements #153: Settings translations (#155)
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.
2023-02-15 11:54:48 +01:00
John Livingston
2950fdeddf
link to the new documentation. 2023-02-13 18:03:23 +01:00
John Livingston
3f47c3c65a
Refactoring and simplification (#122) 2023-01-11 18:05:18 +01:00
John Livingston
c178213e19
Use ESBuild for frontend build.
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.
2022-12-12 19:31:29 +01:00
John Livingston
901d1e96ab
Update @peertube/peertube-types to 4.2.2:
* 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
2022-12-12 19:31:17 +01:00
John Livingston
ed3f236120
Prosody Appimage: supports only x86_64:
* 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.
2022-12-12 19:17:43 +01:00
John Livingston
ae5860e537
Implements #123: «disable websocket» settings». 2022-12-08 11:25:57 +01:00
John Livingston
24696acdbe
#120: adding a certs directory to avoid Prosody error logs. 2022-12-06 17:19:53 +01:00
John Livingston
e6da0a879f
Prosody AppImage: aarch64 architecture. 2022-11-22 11:35:38 +01:00
John Livingston
059c6522b6
Implements #37: diagnostic tools includes last lines from prosody error log files. 2022-11-18 17:48:20 +01:00
John Livingston
6f47ffe19d
Comment update. 2022-11-18 17:06:53 +01:00
John Livingston
174b996b74
Updating comment. 2022-11-18 12:36:14 +01:00
John Livingston
187d8be87f
Documentation update + remove docker build:
* Update documentation and removed deprecated parts
* removed Docker image build files, as it is no more needed
2022-11-15 18:04:51 +01:00
John Livingston
3ba64d3732
Re-ordering the settings page. 2022-11-15 17:19:49 +01:00