35 lines
1.3 KiB
Bash
35 lines
1.3 KiB
Bash
#!/bin/bash
|
|||
|
|
# Gives @discordbot the Discord logo and the display name "Discord Bridge".
|
||
|
|
# Run inside LXC 151 (from the Proxmox node):
|
||
|
|
# pct exec 151 -- bash /opt/matrix-config/discord-bridge/set-bot-profile.sh
|
||
|
|
# Uploads bot-avatar.png as the bridge bot, points config.yaml at it and
|
||
|
|
# restarts the bridge, which applies the profile on startup. Safe to re-run.
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
DIR=/opt/mautrix-discord
|
||
|
|
CFG="$DIR/config.yaml"
|
||
|
|
AVATAR=/opt/matrix-config/discord-bridge/bot-avatar.png
|
||
|
|
BOT="@discordbot:matrix.lotusguild.org"
|
||
|
|
|
||
|
|
AS_TOKEN=$(awk '/^as_token:/ {gsub(/"/, "", $2); print $2; exit}' "$DIR/registration.yaml")
|
||
|
|
[ -n "$AS_TOKEN" ] || { echo "no as_token in $DIR/registration.yaml" >&2; exit 1; }
|
||
|
|
|
||
|
|
MXC=$(curl -fsS -X POST \
|
||
|
|
-H "Authorization: Bearer $AS_TOKEN" \
|
||
|
|
-H "Content-Type: image/png" \
|
||
|
|
--data-binary "@$AVATAR" \
|
||
|
|
"http://127.0.0.1:8008/_matrix/media/v3/upload?filename=discord.png&user_id=${BOT/@/%40}" |
|
||
|
|
python3 -c 'import json, sys; print(json.load(sys.stdin)["content_uri"])')
|
||
|
|
echo "uploaded $MXC"
|
||
|
|
|
||
|
|
# Only the bot block's two lines; the 8-space indent is unique to appservice.bot.
|
||
|
|
sed -i -E \
|
||
|
|
-e 's|^( displayname: ).*$|\1Discord Bridge|' \
|
||
|
|
-e "s|^( avatar: )mxc://.*$|\1$MXC|" \
|
||
|
|
"$CFG"
|
||
|
|
grep -A7 '^ bot:' "$CFG"
|
||
|
|
|
||
|
|
systemctl restart mautrix-discord
|
||
|
|
sleep 3
|
||
|
|
systemctl is-active mautrix-discord
|