commit 6e9e3a8e1ffc04786a4363b7fd9ec141648fa624
Author: selfhoster1312 <selfhoster1312@kl.netlib.re>
Date: Fri Oct 24 17:24:52 2025 +0000
diff --git a/README.md b/README.md
index 420aed7..f084ac9 100644
--- a/README.md
+++ b/README.md
@@ -657 +657 @@ For more development guidelines, see [docs/development/](docs/development/).
Questions or want to test on your favorite platform? Join us on:
-- federated networks: [Gitter][mb-gitter], [Jabber/XMPP][mb-xmpp], [Matrix][mb-matrix]
+- federated networks: [Jabber/XMPP][mb-xmpp], [Matrix][mb-matrix]
- non-free centralized networks: [Discord][mb-discord], [Keybase][mb-keybase], [Slack][mb-slack], [Telegram][mb-telegram], [Twitch][mb-twitch]
- self-hostable centralized networks: [IRC][mb-irc], [Mattermost][mb-mattermost], [Rocket.Chat][mb-rocketchat], [Zulip][mb-zulip]
diff --git a/bridge/config/config.go b/bridge/config/config.go
index 75792ed..0cccdab 100644
--- a/bridge/config/config.go
+++ b/bridge/config/config.go
@@ -978 +978 @@ type Protocol struct {
Debug bool // general
DebugLevel int // only for irc now
DisableWebPagePreview bool // telegram
- EditSuffix string // mattermost, slack, discord, telegram, gitter
- EditDisable bool // mattermost, slack, discord, telegram, gitter
+ EditSuffix string // mattermost, slack, discord, telegram
+ EditDisable bool // mattermost, slack, discord, telegram
HTMLDisable bool // matrix
IconURL string // mattermost, slack
IgnoreFailureOnStart bool // general
@@ -1627 +1627 @@ type Protocol struct {
Team string // mattermost, keybase
TeamID string // msteams
TenantID string // msteams
- Token string // gitter, slack, discord, api, matrix
+ Token string // slack, discord, api, matrix
Topic string // zulip
URL string // mattermost, slack // DEPRECATED
UseAPI bool // mattermost, slack
@@ -2227 +2226 @@ type BridgeValues struct {
Slack map[string]Protocol
SlackLegacy map[string]Protocol
Steam map[string]Protocol
- Gitter map[string]Protocol
XMPP map[string]Protocol
Discord map[string]Protocol
Telegram map[string]Protocol
diff --git a/changelog.md b/changelog.md
index 765eec5..4f54867 100644
--- a/changelog.md
+++ b/changelog.md
@@ -76 +77 @@
repository much lighter. [See issue community/#5](https://github.com/matterbridge-org/community/issues/5).
- Removed protocols, see [issue community/#9](https://github.com/matterbridge-org/matterbridge/issues/9)
- harmony protocol does not exist anymore
+ - gitter protocol does not exist anymore ; gitter.im is now a matrix protocol server
# v1.26.0
diff --git a/docs/FAQ.md b/docs/FAQ.md
index b0a24e4..22297d1 100644
--- a/docs/FAQ.md
+++ b/docs/FAQ.md
@@ -2811 +2811 @@ Matterbridge does not relay messages from the user account that it is logged in
# Support bridging between any protocols
-Supported protocols are Discord, Gitter, IRC, Mattermost, Matrix, RocketChat, Slack, Steam, Telegram, XMPP (and our own rest API)
+Supported protocols are Discord, IRC, Mattermost, Matrix, RocketChat, Slack, Steam, Telegram, XMPP (and our own rest API)
You can bridge between any (number) protocols. Even the same protocol!
-For example you can bridge Discord, Gitter, Matrix and Slack.
-A message typed in Slack will be shown in Discord, Gitter and Matrix (and the other way around)
+For example you can bridge Discord, Matrix and Slack.
+A message typed in Slack will be shown in Discord, and Matrix (and the other way around)
Follow the steps in [[How-to-create-your-config]]
@@ -477 +476 @@ To create the setup above you'll have to create 2 gateways.
See Gateway Config Advanced TODO
# Message edits and deletes
* Support incoming and outgoing edits and deletes: Discord, Mattermost, Slack, Matrix and Telegram.
-* Support only incoming edits: Gitter. (gitter API doesn't support outgoing edits)
* Support only incoming edits/deletes: RocketChat
* Support only edits: XMPP
* Support no deletes or edits: IRC, Steam(NR)
@@ -5810 +5710 @@ NR = Not researched
The logic is: Public links > Native file upload > External mediaserver > Private links
This means that bridges:
-- will receive the "public link" from protocols that have links to files without authentication (Gitter, IRC, Discord)
+- will receive the "public link" from protocols that have links to files without authentication (IRC, Discord)
- that support native file uploads (Discord,Matrix,Mattermost,Slack,Telegram,Rocketchat) will receive a uploaded copy of the file from protocols that have links to files with authentication (Matrix, Mattermost, Slack, Telegram)
-- that do NOT support native file uploads (Gitter, IRC, Steam, XMPP) will receive the "public link" from your "external mediaserver" from protocols that have links to files with authentication (Matrix, Mattermost, Slack, Telegram). (If you have configured an "external mediaserver")
-- that do NOT support native file uploads (Gitter, IRC, Steam, XMPP) will receive the "private link" from protocols that have links to files with authentication (Matrix, Mattermost, Slack, Telegram). (If you have not configured an "external mediaserver")
+- that do NOT support native file uploads (IRC, Steam, XMPP) will receive the "public link" from your "external mediaserver" from protocols that have links to files with authentication (Matrix, Mattermost, Slack, Telegram). (If you have configured an "external mediaserver")
+- that do NOT support native file uploads (IRC, Steam, XMPP) will receive the "private link" from protocols that have links to files with authentication (Matrix, Mattermost, Slack, Telegram). (If you have not configured an "external mediaserver")
For example if you bridge between slack and discord:
@@ -707 +697 @@ When you upload a file to slack. The link you get from slack needs authenticatio
# Username and avatar spoofing
Username spoofing (so it looks like the remote users) only works with webhooks for Discord, Mattermost, Slack.
-Matterbridge reads avatars from Discord, Gitter, Mattermost and Slack but can only send them to Discord, Mattermost and Slack when webhooks are enabled. (Gitter doesn't allow avatar changes).
+Matterbridge reads avatars from Discord, Mattermost and Slack but can only send them to Discord, Mattermost and Slack when webhooks are enabled.
To have avatars from mattermost visible on the other bridges, you'll have to use the external mediaserver setup. This is because avatar images from mattermost aren't publicly visible when not logged into mattermost. This means we need to download the avatar images, and upload them to the public mediaserver, and use this (now public) avatar URL in the messages sent to another bridge, eg slack.
diff --git a/docs/advanced/mediaserver.md b/docs/advanced/mediaserver.md
index 921277d..2f2bbc8 100644
--- a/docs/advanced/mediaserver.md
+++ b/docs/advanced/mediaserver.md
@@ -16 +16 @@
Matterbridge is not going to implement it's own "mediaserver" instead we make use of other tools that are good at this sort of stuff.
This mediaserver will be used to upload media to services that don't have support for uploading images/video/files.
-At this moment this is xmpp, gitter and irc
+At this moment this is xmpp and irc
There are 2 options to set this up:
* You already have a webserver running
diff --git a/docs/api/README.md b/docs/api/README.md
index 99aeeb6..10a3b07 100644
--- a/docs/api/README.md
+++ b/docs/api/README.md
@@ -119 +119 @@ the matterbridge API is here.
Matterbridge API spec can be found on https://app.swaggerhub.com/apis-docs/matterbridge/matterbridge-api/0.1.0-oas3
-## Example discord/gitter/api gateway
+## Example discord/api gateway
-This example creates a gateway containing 3 bridges: discord,gitter and api.
+This example creates a gateway containing 2 bridges: discord, and api.
The API will listen on localhost port 4242.
### Configure matterbridge.toml
@@ -449 +446 @@ The full example
Token="MTk4NjIyNDgzNDcdOTI1MjQ4.Cl2FMZ.ZnCjm1XVW7vRze4b7Cq4se7kKWs-abD"
Server="myserver"
-[gitter.mygitter]
-Token="319fda1761c6875739a489b6772daf2ace4b95d0"
-
[api.myapi]
BindAddress="127.0.0.1:4242"
Buffer=1000
@@ -6010 +576 @@ enable=true
account="discord.mydiscord"
channel="general"
-[[gateway.inout]]
-account="gitter.mygitter"
-channel="42wim/mygreatproject"
-
[[gateway.inout]]
account="api.myapi"
channel="api"
@@ -1277 +1207 @@ At connect you first get a `api_connected` event, then you'll get a http stream
We now post a `test` message from `randomuser` to the gateway `gateway1`
-Every bridge on the gateway (gitter and discord) will now receive this message.
+The discord bridge will now receive this message.
```bash
curl -XPOST -H 'Content-Type: application/json' -d '{"text":"test","username":"randomuser","gateway":"gateway1"}' http://localhost:4242/api/message
diff --git a/docs/development/protocol.md b/docs/development/protocol.md
index af348a4..167ae4e 100644
--- a/docs/development/protocol.md
+++ b/docs/development/protocol.md
@@ -67 +66 @@ This guide explains how to create a new protocol backend to support a new gatewa
- [ ] Create a new catalog in [`/bridge` folder](https://github.com/42wim/matterbridge/tree/master/bridge) and a main file named after the bridge you are creating, such as `whatsapp.go`
- [ ] Implement a [`Bridger` interface](https://github.com/42wim/matterbridge/blob/2cfd880cdb0df29771bf8f31df8d990ab897889d/bridge/bridge.go#L11-L16)
-- [ ] [`gitter`](https://github.com/42wim/matterbridge/blob/master/bridge/gitter/gitter.go) is a relatively simple bridge that you might use as a reference to adapt
- [ ] Mention your bridge exists in [`/gateway/bridgemap/bridgemap.go`](https://github.com/42wim/matterbridge/blob/master/gateway/bridgemap/bridgemap.go)
- [ ] Divide functionality in several files, as it is done for [slack](https://github.com/42wim/matterbridge/tree/master/bridge)
- `yourbridge.go` with main struct and implementation of the `Bridger` interface
diff --git a/docs/settings.md b/docs/settings.md
index 51e005d..e5399ef 100644
--- a/docs/settings.md
+++ b/docs/settings.md
@@ -2327 +2327 @@ Example:
## MediaServerDownload
The MediaServerDownload will be used so that bridges without native uploading support:
-gitter, irc and xmpp will be shown links to the files on MediaServerDownload
+irc and xmpp will be shown links to the files on MediaServerDownload
More information https://github.com/42wim/matterbridge/wiki/Mediaserver-setup-%28advanced%29
Setting: OPTIONAL, RELOADABLE, GENERAL \
diff --git a/gateway/handlers_test.go b/gateway/handlers_test.go
index db7988a..20a7cfc 100644
--- a/gateway/handlers_test.go
+++ b/gateway/handlers_test.go
@@ -489 +489 @@ func TestExtractNick(t *testing.T) {
resultText string
}{
"test1": {
- search: "fromgitter",
+ search: "fromsomething",
extract: "<(.*?)>\\s+",
- username: "fromgitter",
+ username: "fromsomething",
text: "<userx> blahblah",
resultUsername: "userx",
resultText: "blahblah",
diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample
index f85cbe9..f1d4ba2 100644
--- a/matterbridge.toml.sample
+++ b/matterbridge.toml.sample
@@ -51111 +5116 @@ StripNick=false
#OPTIONAL (default false)
ShowTopicChange=false
-###################################################################
-#Gitter section
-#Gitter has been moved to matrix - see https://github.com/42wim/matterbridge/issues/1969 how to migrate
-###################################################################
-
###################################################################
#
# Keybase
@@ -17077 +17027 @@ StripNick=false
#for if Matterbridge has write access to the directory your webserver is serving.
#It is an alternative to MediaServerUpload.
#The MediaServerDownload will be used so that bridges without native uploading support:
-#gitter, irc and xmpp will be shown links to the files on MediaServerDownload
+#irc and xmpp will be shown links to the files on MediaServerDownload
#
#More information https://github.com/42wim/matterbridge/wiki/Mediaserver-setup-%28advanced%29
#OPTIONAL (default empty)
@@ -18498 +18446 @@ enable=true
- # gitter | username/room | general | As seen in the gitter.im URL
- # -------------------------------------------------------------------------------------------------------------------------------------