55 lines
1.9 KiB
Bash
Executable File
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
|