#!/usr/bin/env bash ### ### arching-kaos-tools ### Tools to interact and build an Arching Kaos Infochain ### Copyright (C) 2021 - 2025 kaotisk ### ### This program is free software: you can redistribute it and/or modify ### it under the terms of the GNU General Public License as published by ### the Free Software Foundation, either version 3 of the License, or ### (at your option) any later version. ### ### This program is distributed in the hope that it will be useful, ### but WITHOUT ANY WARRANTY; without even the implied warranty of ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ### GNU General Public License for more details. ### ### You should have received a copy of the GNU General Public License ### along with this program. If not, see . ### 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_zchain_crawl -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 }