Commit Graph

414 Commits

Author SHA1 Message Date
John Livingston
5316b7eb2b
Settings: orange warning for the "Enable connection to room using external XMPP accounts" settings. 2024-03-11 16:03:55 +01:00
John Livingston
dd56328490
Changelog 2024-03-11 15:54:11 +01:00
John Livingston
de15b7d480
Slow mode duration:
* channel option is no more a default value, but the current value
* changing naming in accordance
* changing labels and documentation
2024-03-07 17:56:27 +01:00
John Livingston
e67b21dd9f
Updating slow mode duration on existing rooms when changing channel options (related to #332). 2024-03-07 17:33:18 +01:00
John Livingston
5f58246a10
Changelog. 2024-03-07 16:37:41 +01:00
John Livingston
4dd4f18965
Fix #87: updating chat room title when video/channel title is changed:
* renaming module list_rooms to manage_rooms
* added some API to update room info
* when a video or a channel is updated, sending an API call to update
  the room
2024-03-07 16:22:14 +01:00
John Livingston
2115b352a4
Updating xmppjs-chat-box version. 2024-03-07 10:14:36 +01:00
John Livingston
7c544600f9
Bump version 8.3.2 + npm audit fix. 2024-03-01 15:31:21 +01:00
John Livingston
f5b9ffe616
Temporary security fix for #332: rollback of v8.3.1:
* Setting video owner as room owner as side effects. Like leaking the instance moderator/admin list. And maybe others.
  * So we rollback this feature, waiting for a better way to allow room admins/moderators to change room settings.
  * As a consequence, users that are not Peertube moderator/administrator can't change the slow mode configuration without deleting/recreating the room. This will be fixed in a later plugin version.
2024-03-01 15:25:29 +01:00
John Livingston
97b85be4ad
Fix #322: "Sepia is no longer an owner of this groupchat" message when joining the chat.
* This was related to the fact that the bot was owner because of the "admins" Prosody config key, and not registered in the room.
* To fix it, i added the bot as owner when creating rooms.
* This means that the fix only work for newly created rooms.
* There might still be an issue in ConverseJS or Prosody, don't know exactly where.
2024-03-01 12:20:32 +01:00
John Livingston
9ec7167da1
Debug Mode: new option to promote some JIDs as admins on the MUC component. 2024-02-29 15:58:41 +01:00
John Livingston
93f2cc277d
Fix mod_muc_slow_mode: add min value for slow_mode_duration field. 2024-02-23 15:50:43 +01:00
John Livingston
3ec09ce267
Fix: video owner must be room owner, not only admin. Otherwise they can't edit room parameters (including slow mode settings). 2024-02-22 18:08:06 +01:00
John Livingston
48fb636bf5
Bump version v8.3.0. 2024-02-22 16:22:16 +01:00
John Livingston
f34958fbb3
Changelog 2024-02-21 16:07:24 +01:00
John Livingston
2fb22ff00b
Changelog 2024-02-21 15:54:27 +01:00
John Livingston
7d13f567d4
Slow Mode WIP (#192):
* front-end: disable the message field during the slow mode duration.
2024-02-16 17:35:55 +01:00
John Livingston
3d9237624d
Naming:
* changing delay by duration for slow mode options
* better labels
2024-02-16 17:35:55 +01:00
John Livingston
1e876ec43c
Slow Mode WIP (#192):
* frontend: display an infobox when slow mode is active (WIP)
2024-02-16 17:35:55 +01:00
John Livingston
9efd53b2a7
Fix ConverseJS: room information not correctly refreshed when modifications are made by other users 2024-02-16 17:35:55 +01:00
John Livingston
cd97d91f79
Replaced a sync file operation by an async one, to avoid blocking the server. 2024-02-16 17:35:54 +01:00
John Livingston
9ed689b5f1
Slow mode WIP (#192):
* backend rejects messages when the slow mode is not respected.
2024-02-16 17:35:54 +01:00
John Livingston
cf179d7f72
Slow mode WIP (#192):
* default delay is configurable in channel's chat rooms options.
2024-02-16 17:35:53 +01:00
John Livingston
ee71d3f729
Slow mode WIP (#192):
* new option in room configuration to set the slow mode delay (new prosody module mod_muc_slow_mode).
2024-02-16 17:35:48 +01:00
John Livingston
d83b3e6561
Fix ConverseJS build: translations were missing, and only english was available. 2024-02-15 15:11:48 +01:00
John Livingston
1f3677684d
Fix new avatars content-type. 2024-02-12 17:20:21 +01:00
John Livingston
8a400d2d9f
New abstract avatars 2024-02-12 16:50:08 +01:00
John Livingston
fb8a2144c4
Version 8.2.0 2024-02-12 16:26:11 +01:00
John Livingston
f30a45d1fd
UI improvements (fix some colors):
* Fix #310: autocomplete background color.
* Fix #314: input colors.
* Autocomplete: adding a border, for better UI/UX.
2024-02-12 16:14:02 +01:00
John Livingston
1cfaf18517
Translations. 2024-02-12 10:06:46 +01:00
John Livingston
91ef261c16
Fenec avatars. 2024-02-09 15:35:40 +01:00
John Livingston
fbeffef34b
Bird avatars. 2024-02-09 15:12:48 +01:00
John Livingston
9561f36b93
Cats avatars. 2024-02-09 13:17:12 +01:00
John Livingston
a8165fe441
Changelog 2024-02-09 12:42:29 +01:00
John Livingston
b9b0eb41d9
New avatars set WIP:
* 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.
2024-02-08 18:49:49 +01:00
John Livingston
99f01014b2
Fix ConverseJS input borders/outline/shadow. (#311) 2024-02-08 11:33:43 +01:00
John Livingston
7b8c961faf
Fix inconsistency between browsers on textarea outlines (#311) 2024-02-08 11:06:35 +01:00
John Livingston
87997826c5
Bump version 8.1.0 + npm audit fix 2024-02-07 16:22:06 +01:00
John Livingston
13135f6df0
Destroy room: remove the challenge, and the new JID 2024-02-07 16:13:40 +01:00
John Livingston
48ecf96375
Removing unecessary plugins:
Removing headless/pubsub, minimize, notifications, profile, omemo, push, roomlist, dragresize.
Generated JS is about 10% lighter.
2024-02-07 16:03:02 +01:00
John Livingston
c17fbeef0a
UI improvement: Adding "users" icon in the menu toggle button 2024-02-07 14:46:21 +01:00
John Livingston
a8e3524a94
Custom settings livechat_load_all_vcards for the readonly mode 2024-02-07 12:22:40 +01:00
John Livingston
91b44497bd
Changing the default avatar to minimize blinking effect when a user sends his first message 2024-02-07 11:38:15 +01:00
John Livingston
5cdbcec3e8
Performance improvement: don't load all vCards when right menu is not visible (partially fix #106) 2024-02-06 16:43:10 +01:00
John Livingston
98c9bb8788
303 registered users avatars avoid multiple parallel request to peertube (#309)
Peertube users avatars optimization (Fix #303):

* avoid multiple parallel request to load same avatar from Peertube
* send "item-not-found" stanza when no avatar, instead of a vCard without avatar
2024-02-06 11:01:29 +01:00
John Livingston
c008e84da7
Fix #295: Prosody: disabling message carbons for anonymous users.
Anonymous users can't use carbons, as they cannot connect with multiple
tabs on the same anonymous account.
So we disable carbons on the anonymous virtualhost, to improve
performances.

See here for some performances tests: https://github.com/JohnXLivingston/livechat-perf-test/tree/main/tests/50-anonymous-carbons
2024-02-01 15:20:52 +01:00
John Livingston
2b1e0fd3e9
Fix typo: improvment/improvement 2024-01-31 18:25:19 +01:00
John Livingston
bfef57b1a5
Implement #305: UI/UX improvement:
Don't group "followup" messages, and always display avatar/nickname/datetime besides messages, even when it is the same user as previous one.
2024-01-31 18:23:32 +01:00
John Livingston
9eb986ea85
Changelog. 2024-01-29 17:45:35 +01:00
John Livingston
890ea6c873
Changelog. 2024-01-17 17:09:28 +01:00
John Livingston
873067d2a2
Fix #136: display anonymous users at the end of the participants list 2024-01-16 18:52:18 +01:00
John Livingston
21efc85523
Performance improvments:
* build-conversejs.sh: adding the ability to use a specific commit (to
  include some patches that are not upstream for now)
* Using patched ConverseJS for performance improvment (related to #96):
  * debounce MUC sidebar rendering in ConverseJS (Fix #138)
  * force history pruning, even if messages keep coming (Fix #140)
2024-01-16 12:27:44 +01:00
John Livingston
ee48b01ae7
UI/UX improvment:
Hide nickname changes when previous nickname was like "Anonymous 12345".
Helps to improve performances when massive anonymous users are joining (#138), and prevent displaying unnecessary messages (#111).
2024-01-15 17:48:56 +01:00
John Livingston
5e60060052
Anonymous chat user: store last nickname in localStorage, and expires
after 12 hours
2024-01-09 17:56:33 +01:00
John Livingston
e3a61b95b6
Fix #287: add a label before the anonymous nickname prompt. 2024-01-09 16:55:13 +01:00
John Livingston
a56467c6cd
Authenticated users: if current user nickname is already used in the room, automatically add a suffix. 2024-01-09 16:17:47 +01:00
John Livingston
d0a250a91d
Better Anonymous chat user UX:
* Remember the chosen nickname in sessionStorage, to avoid entering it again too often.
* Fix: if an anonymous chat user enter spaces in the nickname choice, it will allows them to keep the random nickname.
2024-01-09 12:54:30 +01:00
John Livingston
10406aaed0
Translation changelog. 2024-01-09 10:04:58 +01:00
John Livingston
985fdb410e
npm audit fix + Bump v8.0.4 2023-12-27 10:59:05 +01:00
John Livingston
6d7a8199ae
Fix #140:using ConverseJS prune_messages_above to purge old messages, keeping only last 100. 2023-12-21 16:01:29 +01:00
John Livingston
e14c349ddf Changelog 2023-12-12 09:23:25 +01:00
John Livingston
ffc736c71f
npm audit fix 2023-11-16 11:17:14 +01:00
John Livingston
9cee881383
Bump version 8.0.3 2023-11-16 11:15:10 +01:00
John Livingston
73922680c1
Fix #276: Peertube v6.0.0 compatibility in chatrooms page:
Using channel.avatars if channel.avatar is not available.
2023-11-16 10:46:58 +01:00
John Livingston
27b32f022b
Fix #275: Peertube v6.0.0 compatibility for avatars:
Using account.avatars if account.avatar is not available in
mod_vcard_peertubelivechat.
2023-11-16 10:33:16 +01:00
John Livingston
1949580eb9
Changelog. 2023-11-16 09:56:35 +01:00
John Livingston
6be175eacb
changelog 2023-09-28 09:29:52 +02:00
John Livingston
5614987901
Fix self-signed certificates on ubuntu + v8.0.2:
* On some Ubuntu server, the self-signed certificates generation fails:
  * See [issue #268](https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/268)
  * This prevents the bot to connect to the server
  * As a fallback, we directly call openssl to generate the certificates
2023-09-27 14:29:17 +02:00
John Livingston
05b45fe6b5
Bump v8.0.1 2023-09-26 15:22:20 +02:00
John Livingston
af2798366c
Renaming "pre-recorded messages" to "timers" 2023-09-26 14:41:46 +02:00
John Livingston
353f2d03f3
Fix disabling bot 2023-09-26 14:37:56 +02:00
John Livingston
89fb6a7ac6
Don't validate hidden fields. 2023-09-26 14:28:06 +02:00
John Livingston
03dfa3de6f
Help button. 2023-09-26 14:21:32 +02:00
John Livingston
eb99369bea
Fix button margin 2023-09-26 14:15:29 +02:00
John Livingston
8506b38adf
Fix dark mode for channel configuration buttons. 2023-09-26 14:12:30 +02:00
John Livingston
6ed5e4497a
Bump v8.0.0 2023-09-25 17:48:20 +02:00
John Livingston
d80cedfee5
Auto ban anonymous IP:
* 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
2023-09-22 18:17:54 +02:00
John Livingston
2735ae703a
Changelog 2023-09-22 16:45:09 +02:00
John Livingston
f97e54d499
Moderation Bot integration WIP:
* Start and stop the bot WIP
* Prosody: removing the BOSH module from the global scope (must only be present on relevant virtualhosts)
* Some refactoring
2023-09-22 16:45:06 +02:00
John Livingston
862076b9b9
Changelog. 2023-09-22 16:45:03 +02:00
John Livingston
85e7598c1f
Clean changelog after rebase 2023-09-22 16:45:02 +02:00
John Livingston
d0ba7d017d
External Components interface configuration:
You can now configure on which network interfaces Prosody will listen for external components.
2023-09-22 16:45:02 +02:00
John Livingston
efb8710f67
Moderation configuration screen: WIP. 2023-09-22 16:45:01 +02:00
John Livingston
64668733c8
Code refactoring:
Splitting API code in several files.
2023-09-07 17:20:01 +02:00
John Livingston
5ecff1d916
Localized help urls:
Links to documentation are now using the front-end language to point to the translated documentation page
(except for some links generated from the backend, in the diagnostic tool for example).

Partial fix for #224.
2023-09-06 17:58:54 +02:00
John Livingston
0cc6298229
ConverseJS 10.1.6. 2023-09-04 12:16:14 +02:00
John Livingston
d8cce224e8
Changelog 2023-09-04 12:08:36 +02:00
John Livingston
759809cf0a Changelog 2023-08-15 16:35:28 +02:00
John Livingston
0eb5ae5d97
Bump version 7.2.2 2023-08-07 17:12:26 +02:00
John Livingston
22f7d8fcef
Fix #200: externalizing the Prosody AppImage build:
The build process for the Prosody AppImage only worked on Debian based
stations.
See: https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/200

With this commit, the Prosody AppImage is no more built in this plugin, but downloaded from [prosody-appimage](https://github.com/JohnXLivingston/prosody-appimage).
2023-08-07 16:59:06 +02:00
John Livingston
16587a0d0b
Changelog 2023-08-07 10:20:12 +02:00
John Livingston
609b9e99ec Fix #100: API endpoint enhancement
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.
2023-08-02 17:08:42 +02:00
John Livingston
6184205e36
Fix client tsc check 2023-08-01 16:09:33 +02:00
John Livingston
9621f717d1
Adding a help button in the share chat modal. 2023-07-27 16:39:05 +02:00
John Livingston
46727a1511
Fix link to documentation in french. 2023-07-27 16:12:56 +02:00
John Livingston
4873e34389
Bump version 7.2.0 2023-07-26 18:25:16 +02:00
John Livingston
3fd6b9b563
Links to online documentation:
* 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.
2023-07-26 18:16:30 +02:00
John Livingston
56df985745
Documentation translation (#199)
Documentation translation using weblate.

* Use po4a to generate .po files from the english markdowns, then to generate translated files
* Some pages can be marked as «english only» (for technical documentation for example)
* New Hugo shortcode to use application strings in documentation (for example for settings names)
* The code of conduct is no more translated, but there is a link to official Contributor Covenant translations
* Adding all plugin's supported languages

Related to https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/117
2023-07-14 19:15:30 +02:00
John Livingston
0c4c22b323
Changelog update. 2023-07-07 10:09:54 +02:00
John Livingston
995dfa4dff Some refactoring. 2023-07-06 14:10:05 +02:00
John Livingston
9ae7107f3a
Fix FEP name and url. 2023-07-05 15:56:48 +02:00
John Livingston
f7e7cddf72
FEP-1970: implementation WIP:
Adding the data on outgoing objects.

Related to #113.
2023-07-04 18:09:50 +02:00
John Livingston
abed34ec07
Bump version 7.1.0 2023-06-28 11:21:35 +02:00
John Livingston
89a11cd3d6
Changing the way the translations are handled:
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.
2023-06-09 17:08:39 +02:00
John Livingston
8f66ea4032
Fix #180: Letsencrypt import not working
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`.
2023-06-08 10:22:43 +02:00
John Livingston
472caf9f5b
Fix: direct s2s connection not always possible
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).
2023-06-01 13:06:59 +02:00
John Livingston
3a597065ea
Bump version 7.0.0 2023-05-31 18:21:39 +02:00
John Livingston
f644ad0d88
Fix #124 (dirty hack):
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.
2023-05-31 18:13:35 +02:00
John Livingston
0185b56cab
Some comments. 2023-05-31 17:08:17 +02:00
John Livingston
dbf43ae016
Prosody recommended version is 0.12.x. 2023-05-31 16:52:55 +02:00
John Livingston
46cd201724
changelog update. 2023-05-31 16:52:54 +02:00
John Livingston
743c4eabd9
Chat Federation, avoid spoofing:
When sanitizing remote informations, we check that urls and hosts are on
the correct domain or subdomain.
2023-05-31 16:52:54 +02:00
John Livingston
4faf8a3aea
Fix DNS documentation. 2023-05-31 16:52:54 +02:00
John Livingston
c097f5a596
Enabling again direct s2s. 2023-05-31 16:52:54 +02:00
John Livingston
b3582e6bfa
Fix missing self signed certificates is some conditions. 2023-05-31 16:52:53 +02:00
John Livingston
2f52dc802a
Bump version 6.4.0-alpha5 2023-05-31 16:52:53 +02:00
John Livingston
a6e361d1dd
Fix typo + secure test 2023-05-31 16:52:53 +02:00
John Livingston
8132e7f51a
Bump version 6.4.0-alpha4 2023-05-31 16:52:53 +02:00
John Livingston
fddf68a0cc
Disabling direct s2s for alpha.4 2023-05-31 16:52:53 +02:00
John Livingston
3b8042ebe2
Fix timer. 2023-05-31 16:52:52 +02:00
John Livingston
589db6566c
Bump version 6.4.0-alpha3 2023-05-31 16:52:52 +02:00
John Livingston
c00ffc31b2
Federated chat: enabling the direct s2s mode. 2023-05-31 16:52:52 +02:00
John Livingston
2de38661d6
Websocket S2S: ping every 55s to keep alive. 2023-05-31 16:52:52 +02:00
John Livingston
92d92e3350
Fix: i misunderstood the parameter s2s_close_timeout. And removing a duplicate hook. 2023-05-31 16:52:52 +02:00
John Livingston
9d40405f75
Fix session.secure for outgoint websocket s2s. 2023-05-31 16:52:51 +02:00
John Livingston
cf6dce693a
Some TODO. 2023-05-31 16:52:51 +02:00
John Livingston
5d0b80e8d4
Some TODO. 2023-05-31 16:52:51 +02:00
John Livingston
c52d231435
6.4.0-alpha.2 version. 2023-05-31 16:52:51 +02:00
John Livingston
ff96ff7763
Bump version 6.4.0-alpha.1 2023-05-31 16:52:50 +02:00
John Livingston
627b45ffc7
Chat Federation WIP: code cleaning. 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
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
1174f661be
TODO notes 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
3ac504a345
Fix changelog. 2023-04-21 19:44:31 +02:00
John Livingston
252dd30db1
Bump version 6.3.0-beta1 2023-04-21 17:35:14 +02:00
John Livingston
a07a7a6ce8
Changelog 2023-04-21 17:09:24 +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
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
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
7cae2de92f
Version 6.2.3 2023-03-08 10:25:47 +01:00
John Livingston
e5c063afb5
Fix italian translation + v6.2.2. 2023-03-07 16:03:57 +01:00
John Livingston
b9c93c41fd
update npm dependencies. 2023-03-07 15:57:14 +01:00
John Livingston
6716888fd1
Changelog. 2023-03-07 14:59:48 +01:00
John Livingston
3bb8b9886a
Changelog v6.2.0 2023-03-06 12:10:02 +01:00
John Livingston
d964a96654
Credits. 2023-02-17 09:47:21 +01:00
John Livingston
20a9530992
update changelog 2023-02-16 07:00:41 +01:00
John Livingston
c97cb5bb18
Partial german settings translations. 2023-02-15 15:02:22 +01:00