diff options
Diffstat (limited to 'modules/mixtapes')
-rwxr-xr-x | modules/mixtapes/lib.sh | 87 | ||||
-rwxr-xr-x | modules/mixtapes/main.sh | 57 |
2 files changed, 89 insertions, 55 deletions
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 <<EOF +{ + "timestamp":"$(date -u +%s)", + "artist":"$MIXTAPE_ARTIST", + "title":"$MIXTAPE_TITLE", + "ipfs":"$MIXTAPE_IPFS_HASH", + "detach":"$MIXTAPE_SIGNATURE" +} +EOF + +} + +_ak_modules_mixtapes_get_local_latest(){ + tempdir=$(_ak_make_temp_directory) + cd $tempdir + if [ -z "$1" ] + then + ak-enter -l 1 | jq > 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 +} diff --git a/modules/mixtapes/main.sh b/modules/mixtapes/main.sh index 712bb54..4456009 100755 --- a/modules/mixtapes/main.sh +++ b/modules/mixtapes/main.sh @@ -12,63 +12,10 @@ ## # We can extend it by calling the _ak_zblock_pack.sh mixtape/add data ## ORIGINAL LINE fullprogrampath="$(realpath $0)" -PROGRAM="$(basename $0)" +PROGRAM="$(realpath $0 | rev | cut -d '/' -f 2 | rev)" descriptionString="AK mixtape block creator" -source $AK_LIBDIR/_ak_log source $AK_LIBDIR/_ak_script -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 <<EOF -{ - "timestamp":"$(date -u +%s)", - "artist":"$MIXTAPE_ARTIST", - "title":"$MIXTAPE_TITLE", - "ipfs":"$MIXTAPE_IPFS_HASH", - "detach":"$MIXTAPE_SIGNATURE" -} -EOF - -} +source $AK_MODULESDIR/$PROGRAM/lib.sh if [ ! -z $1 ]; then case $1 in |