Набашевал скрипт удаляющий из matrix чата всех участников на одном домене (с исключением одного дорогого сердцу юзверя):
#!/usr/bin/env bash
ROOM_ID="!XXXXXXXXXXXXXXXXXX:matrix.org"
ACCESS_TOKEN="НЕСКАЖУК"
TARGET_DOMAIN="XXX.YYY.ZZZ"
EXCLUDE_USER="@ТВОЙДРУГ:XXX.YYY.ZZZ"
REASON="Bulk removal by admin"
curl -s "https://matrix.itrus.su/_synapse/admin/v1/rooms/${ROOM_ID}/members" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" | \
jq -r ".members[] | select(endswith(\":${TARGET_DOMAIN}\"))" | \
grep -v "^${EXCLUDE_USER}$" | \
while read user_id; do
echo "Kicking $user_id..."
sleep 1
curl -s -X POST "https://matrix.itrus.su/_matrix/client/r0/rooms/${ROOM_ID}/kick" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"user_id\": \"$user_id\", \"reason\": \"${REASON}\"}"
sleep 0.1
done
echo "Done!"
Знаю что есть админботы с подобным функционалом, но мне нужно было разовое решение побыстрому и наколенке.