diff --git a/pleroma-cli.sh b/pleroma-cli.sh
index 014421b..aa2fd96 100755
--- a/pleroma-cli.sh
+++ b/pleroma-cli.sh
@@ -66,6 +66,58 @@ auth_api_get_token()
jj -p -i .auth.json -v "$token" "$(echo $instance | sed 's/\./\\\./g')" -o .auth.json
}
+thread_api_statuses()
+{
+ default_curl_opt "$instance_point/statuses/$1/context"
+}
+
+thread_menu()
+{
+ sub_menu_lvl=2
+ jsonthread=$(thread_api_statuses $1)
+ ancestors=$(echo $jsonthread | jj ancestors)
+ descendants=$(echo $jsonthread | jj descendants)
+ if [ '[]' != "$ancestors" ] && [ '[]' != "$descendants" ]; then
+ jsonthread=$(echo "$ancestors""$descendants")
+ elif [ '[]' != "$ancestors" ]; then
+ jsonthread="$ancestors"
+ else
+ jsonthread="$descendants"
+ fi
+ indexator=$(expr $(echo $jsonthread | jj \#) - 1)
+ counter=0
+ while [ $sub_menu_lvl -eq 2 ]; do
+ clear
+ echo '[Thread]'
+ while [ ! $indexator -eq $counter ]; do
+ status=$(echo $jsonthread | jj $counter)
+ uri=$(echo $status | jj uri)
+ id_status=$(echo $status | jj id)
+ dateutc=$(echo $status | jj created_at)
+ reply_to_id=$(echo $status | jj in_reply_to_id)
+ echo "$(date -d $dateutc "$format_time") <$id_status> $uri"
+ if [ -n "$reply_to_id" ]; then
+ echo "Reply to: $reply_to_id"
+ fi
+ echo $status | jj content | sed -e "s/
]*>/\n/g
+ ; s/
]*>/\n/g ; s/<[^>]*>//g + ; s/>*/>/g ; s/<*/> attachments.m3u8 + echo "$attachments" >> attachments.m3u8 + fi + counter=$(expr $counter + 1) + echo '_____' + done + menuthread=$(echo 'Back' | fzy) + case "$menuthread" in + "Back") + sub_menu_lvl=1 ;; + esac + done +} + timeline_api() { default_curl_opt "$instance_point/$timeline?limit=$max_statuses&max_id=$1" | tee preload @@ -104,7 +156,7 @@ timeline_menu() indexator=$(expr $indexator - 1) echo '_____' done - menu=$(echo 'Prev\nNext\nShare\nMain menu' | fzy) + menu=$(echo 'Prev\nNext\nShare\nThread\nMain menu' | fzy) case $menu in "Prev") indexator=$(expr $max_statuses - 1) @@ -133,6 +185,12 @@ timeline_menu() fi done ;; + "Thread") + indexator=$(expr $max_statuses - 1) + echo 'Input id' + read status_id + thread_menu $status_id + ;; "Main menu") sub_menu_lvl=0 ;; esac