From f49a1ea2cafb09b90e43f1ff30cba77423ae41c6 Mon Sep 17 00:00:00 2001 From: kaotisk Date: Sun, 30 Jun 2024 05:42:28 +0300 Subject: mixtapes module: refactoring --- modules/mixtapes/lib.sh | 87 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100755 modules/mixtapes/lib.sh (limited to 'modules/mixtapes/lib.sh') diff --git a/modules/mixtapes/lib.sh b/modules/mixtapes/lib.sh new file mode 100755 index 0000000..58d7beb --- /dev/null +++ b/modules/mixtapes/lib.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +source $AK_LIBDIR/_ak_log +source $AK_LIBDIR/_ak_ipfs +source $AK_LIBDIR/_ak_gpg +source $AK_LIBDIR/_ak_zblock + +_ak_modules_mixtapes_specs(){ + datetime_mask=$(printf '^[0-9]\{8\}_[0-9]\{6\}$' | xxd -p) + ipfs_mask=$(printf '^Qm[a-zA-Z0-9]\{44\}$' | xxd -p) + text_dash_underscore_space_mask=$(printf '^[a-zA-Z0-9][a-zA-Z0-9[:space:]\_]\{1,128\}$' | xxd -p -c 64) + echo ' + { + "datetime": "'$datetime_mask'", + "artist": "'$text_dash_underscore_space_mask'", + "title": "'$text_dash_underscore_space_mask'", + "ipfs": "'$ipfs_mask'", + "detach": "'$ipfs_mask'" + }' | jq +} + +_ak_modules_mixtapes_add(){ + if [ ! -z $3 ]; + then + echo $1 + PWD="$(pwd)" + MIXTAPE_ARTIST="$1" + MIXTAPE_TITLE="$2" + MIXTAPE_FILE="$PWD/$3" + _ak_modules_mixtapes_main $1 + cat $PWD/data | jq -M + _ak_zblock_pack mixtape/add $PWD/data + fi +} + +_ak_modules_mixtapes_main(){ + echo $MIXTAPE_FILE "by" $MIXTAPE_ARTIST "named as" $MIXTAPE_TITLE + + MIXTAPE_IPFS_HASH=$(_ak_ipfs_add $MIXTAPE_FILE) + + MIXTAPE_SIGN_FILE=$MIXTAPE_FILE".asc" + _ak_gpg_sign_detached $MIXTAPE_SIGN_FILE $MIXTAPE_FILE + + MIXTAPE_SIGNATURE=$(_ak_ipfs_add $MIXTAPE_SIGN_FILE) + + cat > data < aktempzblock + else + ak-enter -l 1 $1 | jq > aktempzblock + fi + curzblock="`cat aktempzblock | jq -r '.[].zblock'`" + curaction="`cat aktempzblock | jq -r '.[].action'`" + curmodule="`cat aktempzblock | jq -r '.[].module'`" + curdata="`cat aktempzblock | jq -r '.[].data'`" + curipfs="$(cat aktempzblock | jq -r ".[].$curdata" | jq -r ".ipfs")" + curprevious="`cat aktempzblock | jq -r '.[].previous'`" + + if [ "$curmodule" == "mixtape" ] && [ "$curaction" == "add" ] + then + artist="$(cat aktempzblock | jq -r ".[].$curdata" | jq -r ".artist")" + title="$(cat aktempzblock | jq -r ".[].$curdata" | jq -r ".title")" + echo "Found zblock: $curzblock" + echo "$title by $artist" + _ak_ipfs_get $curipfs + mpv $curipfs + else + seek $curprevious + fi + rm -rf $tempdir + exit 0 +} -- cgit v1.2.3