remote_media_killer/matrix-synapse_purge-remote...

43 lines
837 B
Bash
Executable File

#!/bin/bash
version=0.0.3
UserInput() {
read -r -p "$(echo -e 'Domain:\n')" domain
read -r -p "$(echo -e 'Time:\n')" time
read -r -p "$(echo -e 'Token:\n')" token
}
ExecutePurge() {
echo 'Purging remote media, please wait.'
curl -X POST "https://$1/_synapse/admin/v1/purge_media_cache?before_ts=$2&access_token=$3" --data '{}'
}
UnixTimeMs() {
unix_time_ms="$(($(date -d "$1" +'%s') * 1000))"
}
DomainCheck() {
local result=$(perl -pe 's/(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z]{2,63}$)/pass/g' <<< "$1")
if [ "$result" = "pass" ]; then
return 0;
else
echo -e 'Error: Not a valid domain.\n'
exit 1;
fi
}
EchoVersion() {
echo $version
}
main() {
EchoVersion;
UserInput;
DomainCheck "$domain';
UnixTimeMs "$time";
ExecutePurge "$domain" "$unix_time_ms" "$token"
}
main