diff --git a/utils/extract_fields_statuses.sh b/utils/extract_fields_statuses.sh new file mode 100755 index 0000000..e366bad --- /dev/null +++ b/utils/extract_fields_statuses.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +# Extract fields from statuses +if [ ! -f "$main_basedir"/statuses/$instance/*/*.json ]; then + exit 0 +fi + +for i in "$main_basedir"/statuses/$instance/*/*.json; do + # Required fields + status_id=$(jj -i $i 'id') + status_date=$(jj -i $i 'created_at') + + # Fields + content=$(jj -i $i content | "$main_basedir"/utils/html_to_txt_render) + status_media_attachments=$(jj -i $i -l 'media_attachments.#.url' | tr -d '"\v') + + chmod 711 "$main_basedir"/statuses/$instance/$status_id + touch -d "$status_date" "$main_basedir"/statuses/$instance/$status_id + + if [ -n "$content" ]; then + echo "$content" > "$main_basedir"/statuses/$instance/$status_id/content + fi + if [ -n "$status_media_attachments" ]; then + echo "$status_media_attachments" > "$main_basedir"/statuses/$instance/$status_id/media_attachments.m3u8 + fi + chmod 600 "$main_basedir"/statuses/$instance/$status_id/* +done + +"$main_basedir"/utils/statuses2files_acct.sh diff --git a/utils/statuses2files.sh b/utils/statuses2files.sh index 54e2901..3e2d84a 100755 --- a/utils/statuses2files.sh +++ b/utils/statuses2files.sh @@ -9,11 +9,13 @@ if [ ! -d "$main_basedir/statuses/$instance" ]; then fi for i in $ids; do - if [ -f "$main_basedir"/statuses/$instance/$i.json ]; then + if [ -f "$main_basedir"/statuses/$instance/$i/$i.json ]; then + continue + elif [ -d "$main_basedir"/statuses/$instance/*/$i ]; then continue fi mkdir -m 711 -p "$main_basedir"/statuses/$instance/$i echo "$json" | jj -p "#[id=$i]" > "$main_basedir"/statuses/$instance/$i/$i.json - chmod 600 "$main_basedir"/statuses/$instance/$i/$i.json done + "$main_basedir"/utils/extract_fields_statuses.sh diff --git a/utils/statuses2files_acct.sh b/utils/statuses2files_acct.sh new file mode 100755 index 0000000..cb131e9 --- /dev/null +++ b/utils/statuses2files_acct.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +# Move statuses to acct dirs +# [statuses] +# | +# |---[acct] +# | | +# | |--- [status_id] +# | |--- ... +# |... + +for i in "$main_basedir"/statuses/$instance/*/*.json; do + status_id=$(jj -i $i 'id') + acct=$(jj -i $i 'account.acct') + mkdir -m 711 -p "$main_basedir"/statuses/$instance/$acct + if [ -n "$status_id" ]; then + mv "$main_basedir"/statuses/$instance/$status_id "$main_basedir"/statuses/$instance/$acct + fi +done +