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