Tulir Asokan пре 3 година
родитељ
комит
b8990c1898
16 измењених фајлова са 48 додато и 88 уклоњено
  1. 12 53
      README.md
  2. 3 3
      bridge/bridge.go
  3. 3 3
      bridge/commands.go
  4. 1 1
      bridge/portal.go
  5. 1 1
      bridge/provisioning.go
  6. 1 1
      bridge/puppet.go
  7. 1 1
      bridge/user.go
  8. 1 1
      config/cmd.go
  9. 1 1
      config/database.go
  10. 1 1
      database/database.go
  11. 9 8
      example-config.yaml
  12. 1 1
      go.mod
  13. 6 6
      main.go
  14. 2 2
      registration/cmd.go
  15. 3 3
      run/cmd.go
  16. 2 2
      version/cmd.go

+ 12 - 53
README.md

@@ -1,59 +1,18 @@
 # mautrix-discord
+A Matrix-Discord puppeting bridge based on [discordgo](https://github.com/bwmarrin/discordgo).
 
-## Getting Started
+## Documentation
+All setup and usage instructions are located on [docs.mau.fi]. Some quick links:
 
-To get start with this bridge you first need to create the configuration file.
-You can do that by running `./discord generate-config`. By default this will
-output to `config.yaml`. Edit this file as necessary.
+[docs.mau.fi]: https://docs.mau.fi/bridges/go/discord/index.html
 
-Once you're done with the configuration file you need to generate the
-registration for the Synapse. To do so run `./discord generate-registration`.
-This command will update your configuration file as well where necessary.
+* [Bridge setup](https://docs.mau.fi/bridges/go/setup.html?bridge=discord)
+  (or [with Docker](https://docs.mau.fi/bridges/general/docker-setup.html?bridge=discord))
+* Basic usage: [Authentication](https://docs.mau.fi/bridges/go/discord/authentication.html)
 
-Now that you have a registration file, be sure to add it to the
-`app_service_config_files` in the `homeserver.yaml` file of your Synapse
-install. Once you've done this, make sure to reload or restart Synapse.
+### Features & Roadmap
+[ROADMAP.md](https://github.com/mautrix/discord/blob/master/ROADMAP.md)
+contains a general overview of what is supported by the bridge.
 
-You are no ready to start the bridge with `./discord`
-
-From the Matrix client of your choice, create a direct message with
-`@discordbot:localhost` adjusting if you changed these settings in the config.
-This will be your management room with the bot.
-
-From the management room you can now login to Discord with the `login` command.
-This will present you with a QRCode that you can scan with the Discord mobile
-application to login. For more detailed instructions, see the
-[official documentation](https://support.discord.com/hc/en-us/articles/360039213771-QR-Code-Login-FAQ).
-
-You should now be able to send an receive direct messages from both one on ones
-and group dms. However you can't currently create the dm, so you'll have to be
-invited while the bridge is running.
-
-## Status
-
-Complete:
-
- * Login via QRCode
- * Message sending for DMs and Group DMs
- * Message editing for text bodies only (see notes about attachments below)
- * Unicode standard reactions (add/remove)
- * Message deleting
- * Username formatting
- * User avatars
-
-Bugged:
-
- * Changing the room title of a group dm in discord is sent as a message.
-
-Incomplete:
-
- * Attachments; most details including the database layout and database api are done.
-
-Not started:
-
- * Double Puppeting
- * Enumerating DM list
- * Mentions needs to be parsed, they currently show up as `<@!<userid>` in the message body.
- * Custom emoji are not yet implemented. In message emoji show up as `<:text:id>`.
- * Custom emoji reactions are not yet implemented.
- * Additional bot commands like logout
+## Discussion
+Matrix room: [#discord:maunium.net](https://matrix.to/#/#discord:maunium.net)

+ 3 - 3
bridge/bridge.go

@@ -11,9 +11,9 @@ import (
 	"maunium.net/go/mautrix/appservice"
 	"maunium.net/go/mautrix/id"
 
-	"gitlab.com/beeper/discord/config"
-	"gitlab.com/beeper/discord/database"
-	"gitlab.com/beeper/discord/version"
+	"go.mau.fi/mautrix-discord/config"
+	"go.mau.fi/mautrix-discord/database"
+	"go.mau.fi/mautrix-discord/version"
 )
 
 const (

+ 3 - 3
bridge/commands.go

@@ -11,9 +11,9 @@ import (
 	"maunium.net/go/mautrix/format"
 	"maunium.net/go/mautrix/id"
 
-	"gitlab.com/beeper/discord/consts"
-	"gitlab.com/beeper/discord/remoteauth"
-	"gitlab.com/beeper/discord/version"
+	"go.mau.fi/mautrix-discord/consts"
+	"go.mau.fi/mautrix-discord/remoteauth"
+	"go.mau.fi/mautrix-discord/version"
 )
 
 type globals struct {

+ 1 - 1
bridge/portal.go

@@ -15,7 +15,7 @@ import (
 	"maunium.net/go/mautrix/event"
 	"maunium.net/go/mautrix/id"
 
-	"gitlab.com/beeper/discord/database"
+	"go.mau.fi/mautrix-discord/database"
 )
 
 type portalDiscordMessage struct {

+ 1 - 1
bridge/provisioning.go

@@ -17,7 +17,7 @@ import (
 
 	"maunium.net/go/mautrix/id"
 
-	"gitlab.com/beeper/discord/remoteauth"
+	"go.mau.fi/mautrix-discord/remoteauth"
 )
 
 const (

+ 1 - 1
bridge/puppet.go

@@ -9,7 +9,7 @@ import (
 	"maunium.net/go/mautrix/appservice"
 	"maunium.net/go/mautrix/id"
 
-	"gitlab.com/beeper/discord/database"
+	"go.mau.fi/mautrix-discord/database"
 )
 
 type Puppet struct {

+ 1 - 1
bridge/user.go

@@ -16,7 +16,7 @@ import (
 	"maunium.net/go/mautrix/event"
 	"maunium.net/go/mautrix/id"
 
-	"gitlab.com/beeper/discord/database"
+	"go.mau.fi/mautrix-discord/database"
 )
 
 var (

+ 1 - 1
config/cmd.go

@@ -4,7 +4,7 @@ import (
 	"fmt"
 	"os"
 
-	"gitlab.com/beeper/discord/globals"
+	"go.mau.fi/mautrix-discord/globals"
 )
 
 type Cmd struct {

+ 1 - 1
config/database.go

@@ -3,7 +3,7 @@ package config
 import (
 	log "maunium.net/go/maulogger/v2"
 
-	db "gitlab.com/beeper/discord/database"
+	db "go.mau.fi/mautrix-discord/database"
 )
 
 type database struct {

+ 1 - 1
database/database.go

@@ -8,7 +8,7 @@ import (
 
 	log "maunium.net/go/maulogger/v2"
 
-	"gitlab.com/beeper/discord/database/migrations"
+	"go.mau.fi/mautrix-discord/database/migrations"
 )
 
 type Database struct {

+ 9 - 8
example-config.yaml

@@ -1,14 +1,14 @@
 # Homeserver details.
 homeserver:
     # The address that this appservice can use to connect to the homeserver.
-    address: http://localhost:29326
+    address: http://localhost:8008
     # The domain of the homeserver (for MXIDs, etc).
     domain: example.com
 
     # Is the homeserver actually mautrix-asmux?
     asmux: false
     # The URL to push real-time bridge status to.
-    # If set, the bridge will make POST requests to this URL whenever a user's whatsapp connection state changes.
+    # If set, the bridge will make POST requests to this URL whenever a user's discord connection state changes.
     # The bridge will use the appservice as_token to authorize requests.
     status_endpoint: null
 
@@ -16,11 +16,11 @@ homeserver:
 # Changing these values requires regeneration of the registration.
 appservice:
     # The address that the homeserver can use to connect to this appservice.
-    address: http://localhost:29350
+    address: http://localhost:29334
 
     # The hostname and port where this appservice should listen.
     hostname: 0.0.0.0
-    port: 29350
+    port: 29334
     # Database config.
     database:
         # The database type. "sqlite3" and "postgres" are supported.
@@ -29,7 +29,7 @@ appservice:
         #   SQLite: File name is enough. https://github.com/mattn/go-sqlite3#connection-string
         #   Postgres: Connection string. For example, postgres://user:password@host/database?sslmode=disable
         #             To connect via Unix socket, use something like postgres:///dbname?host=/var/run/postgresql
-        uri: mautrix-whatsapp.db
+        uri: mautrix-discord.db
         # Maximum number of connections. Mostly relevant for Postgres.
         max_open_conns: 20
         max_idle_conns: 2
@@ -50,7 +50,7 @@ appservice:
     bot:
       username: discordbot
       displayname: Discord bridge bot
-      avatar: mxc://beeper.com/222332ba2b197e57b73ef2db236232db79af62d0
+      avatar: mxc://maunium.net/nIdEykemnwdisvHbpxflpDlC
 
     # Whether or not to receive ephemeral events via appservice transactions.
     # Requires MSC2409 support (i.e. Synapse 1.22+).
@@ -64,9 +64,10 @@ appservice:
 # Bridge config
 bridge:
     # Localpart template of MXIDs for Discord users.
-    # {{.}} is replaced with the phone number of the WhatsApp user.
+    # {{.}} is replaced with the internal ID of the Discord user.
     username_template: discord_{{.}}
-    # Displayname template for Discord userss.
+    # Displayname template for Discord users.
+    # TODO: document variables
     displayname_template: '{{.Username}}#{{.Discriminator}} (D){{if .Bot}} (bot){{end}}'
 
     portal_message_buffer: 128

+ 1 - 1
go.mod

@@ -1,4 +1,4 @@
-module gitlab.com/beeper/discord
+module go.mau.fi/mautrix-discord
 
 go 1.17
 

+ 6 - 6
main.go

@@ -6,12 +6,12 @@ import (
 
 	"github.com/alecthomas/kong"
 
-	"gitlab.com/beeper/discord/config"
-	"gitlab.com/beeper/discord/consts"
-	"gitlab.com/beeper/discord/globals"
-	"gitlab.com/beeper/discord/registration"
-	"gitlab.com/beeper/discord/run"
-	"gitlab.com/beeper/discord/version"
+	"go.mau.fi/mautrix-discord/config"
+	"go.mau.fi/mautrix-discord/consts"
+	"go.mau.fi/mautrix-discord/globals"
+	"go.mau.fi/mautrix-discord/registration"
+	"go.mau.fi/mautrix-discord/run"
+	"go.mau.fi/mautrix-discord/version"
 )
 
 var cli struct {

+ 2 - 2
registration/cmd.go

@@ -7,8 +7,8 @@ import (
 
 	"maunium.net/go/mautrix/appservice"
 
-	"gitlab.com/beeper/discord/config"
-	"gitlab.com/beeper/discord/globals"
+	"go.mau.fi/mautrix-discord/config"
+	"go.mau.fi/mautrix-discord/globals"
 )
 
 type Cmd struct {

+ 3 - 3
run/cmd.go

@@ -6,9 +6,9 @@ import (
 	"os/signal"
 	"syscall"
 
-	"gitlab.com/beeper/discord/bridge"
-	"gitlab.com/beeper/discord/config"
-	"gitlab.com/beeper/discord/globals"
+	"go.mau.fi/mautrix-discord/bridge"
+	"go.mau.fi/mautrix-discord/config"
+	"go.mau.fi/mautrix-discord/globals"
 )
 
 type Cmd struct{}

+ 2 - 2
version/cmd.go

@@ -3,8 +3,8 @@ package version
 import (
 	"fmt"
 
-	"gitlab.com/beeper/discord/consts"
-	"gitlab.com/beeper/discord/globals"
+	"go.mau.fi/mautrix-discord/consts"
+	"go.mau.fi/mautrix-discord/globals"
 )
 
 type Cmd struct{}