mx-puppet-discord/README.md

136 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

**THIS PROJECT HAS BEEN MIGRATED OVER TO GITLAB: [mx-puppet-bridge](https://gitlab.com/mx-puppet/discord/mx-puppet-discord)**
[![Support room on Matrix](https://img.shields.io/matrix/mx-puppet-bridge:sorunome.de.svg?label=%23mx-puppet-bridge%3Asorunome.de&logo=matrix&server_fqdn=sorunome.de)](https://matrix.to/#/#mx-puppet-bridge:sorunome.de) [![donate](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/Sorunome/donate)
# mx-puppet-discord
This is a discord puppeting bridge for matrix. It handles bridging private and group DMs, as well as Guilds (servers).
It is based on [mx-puppet-bridge](https://github.com/Sorunome/mx-puppet-bridge).
Also see [matrix-appservice-discord](https://github.com/Half-Shot/matrix-appservice-discord) for an alternative guild-only bridge.
## Setup
You need at least node 12 to be able to run this!
Clone the repo and install the dependencies:
```
git clone https://github.com/matrix-discord/mx-puppet-discord
cd mx-puppet-discord
npm install
```
Copy and edit the configuration file to your liking:
```
cp sample.config.yaml config.yaml
... edit config.yaml ...
```
Generate an appservice registration file. Optional parameters are shown in
brackets with default values:
```
npm run start -- -r [-c config.yaml] [-f discord-registration.yaml]
```
Then add the path to the registration file to your synapse `homeserver.yaml`
under `app_service_config_files`, and restart synapse.
Finally, run the bridge:
```
npm run start
```
## Usage
Start a chat with `@_discordpuppet_bot:yourserver.com`. When it joins, type
`help` in the chat to see instructions.
### Linking a Discord bot account
This is the recommended method, and allows Discord users to PM you through a
bot.
First visit your [Discord Application
Portal](https://discordapp.com/login?redirect_to=%2Fdevelopers%2Fapplications%2Fme).
1. Click on 'New Application'
![](img/bot-1.jpg)
2. Customize your bot how you like
![](img/bot-2.jpg)
3. Go to **Create Application** and scroll down to the next page. Find **Create a Bot User** and click on it.
![](img/bot-3.jpg)
4. Click '**Yes, do it!**
![](img/bot-4.jpg)
5. Find the bot's token in the '**App Bot User**' section.
![](img/bot-5.jpg)
6. Click '**Click to Reveal**'
![](img/bot-6.jpg)
Finally, send the appservice bot a message with the contents `link bot
your.token-here`.
### Linking your Discord account
**Warning**: Linking your user account's token is against Discord's Terms of Service.
First [retrieve your Discord User Token](https://discordhelp.net/discord-token).
If this don't work, use this method:
https://github.com/Tyrrrz/DiscordChatExporter/wiki/Obtaining-Token-and-Channel-IDs#how-to-get-a-user-token
Then send the bot a message with the contents `link user your.token-here`.
### Guild management
As most users are in many guilds none are bridged by default. You can, however, enable bridging a guild. For that use `listguilds <puppetId>`, e.g. `listguilds 1`. (Puppet ID can be found with `list`.)
Then, to bridge a guild, type `bridgeguild <puppetId> <guildId>` and to unbridge it type `unbridgeguild <puppetId> <guildId>`
### Friends management
**IMPORTANT! This is a USER-token ONLY feature, and as such against discords TOS. When developing this test-accounts got softlocked, USE AT YOUR OWN RISK!**
You first need to enable friends management with `enablefriendsmanagement <puppetId>`.
You can view all friends and invitation status with `listfriends <puppetId>`.
You can accept a friends request / send a friends request with `addfriend <puppetId> <user>` where `<user>` is either the user ID (preferred) or the `username#1234`.
You can remove friends with `removefriend <puppetId> <userId>`.
## Docker
Docker image can be found at https://hub.docker.com/r/sorunome/mx-puppet-discord
Alternatively build it yourself:
docker build -t mx-puppet-discord .
You may want some changes in your config.yaml:
```yaml
bindAddress: 0.0.0.0
filename: '/data/database.db'
file: '/data/bridge.log'
```
Once the bridge has generated the `discord-registration.yaml` edit it to fix the
address so that your matrix home server can connect to the bridge:
```yaml
url: 'http://discord:8434'
```