scripts/bash/matrix-upgrade-room.bash

27 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Based on https://gist.github.com/turt2live/a99c8e794d6115d4ddfaadb72aabf063
# Refer to https://spec.matrix.org/unstable/rooms/#complete-list-of-room-versions
# and room versions supported by your homeserver BEFORE adjusting/running this.
# Otherwise the target room version may be outdated or the last one I have
# ran this script for.
ROOMVERSION=10
ACCESSTOKEN=
NEWROOMNAME="CHANGEME (v$ROOMVERSION)"
OLDROOMID=
# Note: $ is not a character that worlks without quotes due to signifying a
# variable
LASTEVENTINOLDROOM=''
HOMESERVER=matrix-client.matrix.org
set -x
# Creating the new room pointing to old one
# Thanks to https://gist.github.com/turt2live/a99c8e794d6115d4ddfaadb72aabf063#gistcomment-3071780 for the awk
NEWROOMID=$(curl -s -X POST -H "Authorization: Bearer $ACCESSTOKEN" -H "Content-Type: application/json" --data-binary "{\"name\":\"$NEWROOMNAME\",\"room_version\":\"$ROOMVERSION\",\"creation_content\":{\"predecessor\":{\"room_id\":\"$OLDROOMID\",\"event_id\":\"$LASTEVENTINOLDROOM\"}}}" https://$HOMESERVER/_matrix/client/v3/createRoom | awk -F\" '{ printf $4 }')
# Sending a tombstone
curl -s -X PUT -H "Authorization: Bearer $ACCESSTOKEN" -H "Content-Type: application/json" --data-binary "{\"replacement_room\":\"$NEWROOMID\"}" "https://$HOMESERVER/_matrix/client/v3/rooms/$OLDROOMID/state/m.room.tombstone"
set +x