pleroma-migrator/pleroma-migrate.sh
2023-05-06 11:27:09 -05:00

55 lines
1.9 KiB
Bash
Executable File

#!/bin/sh
#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
# Name: pleroma-migrate.sh
# Desc: Downloads posts from a pleroma account on a foreign server, to post them
# on your new server. Then directly edits Pleroma's database to match the
# new posts' dates with the original posts' dates.
# Reqs: fedi-post.sh, fedi-archive.sh, pleroma-redate.sh
# Date: 2023-05-06
# Auth: @jadedctrl@jam.xwx.moe
#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
usage() {
echo "usage: $(basename "$0") USERNAME OLD-SERVER" 1>&2
echo "" 1>&2
echo "Will archive all posts from your old account (fedi-archive.sh)," 1>&2
echo "post them to your new one (fedi-post.sh), and then modify Pleroma's" 1>&2
echo "database to match the copy-posts' creation dates with the original posts." 1>&2
echo 'The env variable $FEDI_AUTH must contain your authentication key from your browser.' 1>&2
exit 2
}
USERNAME="$1"
SERVER="$2"
if test -z "$USERNAME" -o -z "$SERVER" -o "$1" = "-h" -o "$1" = "--help"; then
usage
fi
mkdir archive
cd archive/
sh ../fedi-archive.sh "$USERNAME" "$SERVER"
for file in ./*; do
sh ../fedi-post.sh "$file" \
>> imports-data.txt
done
IFS="
"
echo "It's time to re-date your posts!"
echo "Are you suuuuuuuuuuuuure you wanna risk your database? Do a backup, first!"
echo "^C now, before you risk it! Hit ENTER, if you're sure."
read
sleep 5
echo "Alright, then, you brave fellow! I'm touched you trust me so much, though :o"
for line in $(cat imports-data.txt); do
sh ../pleroma-redate.sh "$(echo "$line" | awk '{print $3}')" \
"$(echo "$line" | awk '{print $2}')"
done