33 lines
1.3 KiB
Bash
33 lines
1.3 KiB
Bash
|
#!/bin/sh
|
||
|
#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
|
||
|
# Name: pleroma-redate.sh
|
||
|
# Desc: Changes the creation-date of a post in Pleroma's database.
|
||
|
# Reqs: psql, sudo
|
||
|
# Date: 2023-05-06
|
||
|
# Auth: @jadedctrl@jam.xwx.moe
|
||
|
#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
|
||
|
|
||
|
usage() {
|
||
|
echo "usage: $(basename "$0") URL NEW-DATE" 1>&2
|
||
|
echo "" 1>&2
|
||
|
echo "Will change the stored date of an archived fedi post" 1>&2
|
||
|
echo "in fedi-archive.sh format, by editing directly Pleroma's database." 1>&2
|
||
|
echo "URL ought be the direct /object/ URL, and NEW-DATE ought be ISO-8601" 1>&2
|
||
|
echo "up to the milisecond." 1>&2
|
||
|
echo "Assumes you can sudo as 'postgres' and the database is called 'pleroma'." 1>&2
|
||
|
exit 2
|
||
|
}
|
||
|
|
||
|
|
||
|
URL="$1"
|
||
|
NEWDATE="$2"
|
||
|
if test -z "$URL" -o -z "$NEWDATE" -o "$1" = "-h" -o "$1" = "--help"; then
|
||
|
usage
|
||
|
fi
|
||
|
|
||
|
|
||
|
sudo -u postgres psql --dbname=pleroma \
|
||
|
-c "UPDATE objects
|
||
|
SET data = jsonb_set(data, '{published}', '\"$NEWDATE\"'::jsonb, false)
|
||
|
WHERE CAST(data::json->'id' AS TEXT) = '\"$URL\"' ;"
|