12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/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
|