Files

35 lines
1.3 KiB
Bash
Raw Permalink Normal View History

#!/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