diff --git a/seqs/matrix.sh b/seqs/matrix.sh index 4e2d09f..178d3fa 100755 --- a/seqs/matrix.sh +++ b/seqs/matrix.sh @@ -2,6 +2,7 @@ toolName=synapse toolDeps="build-essential python3-dev libffi-dev python3-pip python3-setuptools postgresql libssl-dev virtualenv libjpeg-dev libxslt1-dev libpq5 libpq-dev" +toolDeps+=" jq" # used as helper for api access toolDepsRaspi="ilibopenjp2-7 libtiff5" toolUser="synapse" toolGroup="synapse" @@ -270,6 +271,7 @@ step_22() { endReturn -o $? "Admin token needed. Check $SEQ_CONFIG_FILE" shift + local arg local synapseIP=localhost local grepOut=" | grep -E '(\"total\":|\"name\":|\"room_id\":)'" @@ -333,11 +335,87 @@ step_24() { exep "curl -sS --header \"Authorization: Bearer $MATRIX_ACCESS\" \"$apiCall\" | python -m json.tool $grepOut" } +step_26_info() { echo "Delete rooms without local users [IP]:8008"; } +step_26_alias() { ALIAS="purge"; } +step_26() { + adminTokenCheck + endReturn -o $? "Admin token needed. Check $SEQ_CONFIG_FILE" + + shift + local i + local arg + local synapseIP=localhost + + if [ ! -z $1 ]; then + synapseIP="$1" + fi + + local apiCall="http://${synapseIP}:8008/_synapse/admin/v1/rooms" + local arrRoom=( $(curl -sS --header "Authorization: Bearer $MATRIX_ACCESS" "$apiCall" | jq '.rooms[] | select(.joined_local_members == 0) | .room_id') ) + + for i in "${!arrRoom[@]}" ; do + arrRoom[$i]="${arrRoom[$i]:1:${#arrRoom[$i]}-2}" + done + + for i in "${arrRoom[@]}" ; do + step deleteroom "$i" + done +} + + +step_28_info() { + echo "Delete room [OPTION] [IP]:8008" +} +step_28_alias() { ALIAS="deleteroom"; } +step_28() { + adminTokenCheck + endReturn -o $? "Admin token needed. Check $SEQ_CONFIG_FILE" + + shift + local roomId="" + local synapseIP=localhost + + if [ ! -z $1 ]; then + roomId="$1" + shift + else + endReturn -o 1 "No room ID specified" + fi + + if [ ! -z $1 ]; then + synapseIP="$1" + fi + + echo " [I] Deleting room with ID: $roomId" + + local apiCall="http://${synapseIP}:8008/_synapse/admin/v1/rooms/$roomId/delete" + exep "curl -sS --header \"Authorization: Bearer $MATRIX_ACCESS\" \ + -X POST \ + -H \"Content-Type: application/json\" -d \"{}\" \ + \"$apiCall\" | python -m json.tool" + + #end +} +# As note for further improvement +# See https://github.com/matrix-org/synapse/blob/develop/docs/admin_api/rooms.md#delete-room-api +postDataDeleteRoom() +{ + cat <