diff options
author | kaotisk <kaotisk@arching-kaos.org> | 2024-06-04 18:07:39 +0300 |
---|---|---|
committer | kaotisk <kaotisk@arching-kaos.org> | 2024-06-04 18:07:39 +0300 |
commit | 0d1777251dea7d35cd774518959b4377673e1cab (patch) | |
tree | b3d7a15725641c9e3d1d7b45150135e1f8ce9a71 /modules/ak-mixtapes | |
parent | 684dd3e038ae90f0fd1f53211ce4d30141e35bf2 (diff) | |
download | arching-kaos-tools-0d1777251dea7d35cd774518959b4377673e1cab.tar.gz arching-kaos-tools-0d1777251dea7d35cd774518959b4377673e1cab.tar.bz2 arching-kaos-tools-0d1777251dea7d35cd774518959b4377673e1cab.zip |
Refactoring, modules directory introduced
- All modules are now stored separately from the rest of the bin/
- You can run them now with `ak -m <module> <args>`
- Files affected:
* bin/ak-articles -> modules/ak-articles
* bin/ak-categories -> modules/ak-categories
* bin/ak-comments -> modules/ak-comments
* bin/ak-files -> modules/ak-files
* bin/ak-folders -> modules/ak-folders
* bin/ak-mixtapes -> modules/ak-mixtapes
* bin/ak-news -> modules/ak-news
* bin/ak-reference -> modules/ak-reference
* bin/ak-repositories -> modules/ak-repositories
* bin/ak-roadmap -> modules/ak-roadmap
* bin/ak-todos -> modules/ak-todos
Diffstat (limited to 'modules/ak-mixtapes')
-rwxr-xr-x | modules/ak-mixtapes | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/modules/ak-mixtapes b/modules/ak-mixtapes new file mode 100755 index 0000000..712bb54 --- /dev/null +++ b/modules/ak-mixtapes @@ -0,0 +1,86 @@ +#!/bin/bash +## +## The following creates a mixtape data message +## +## Usage: +## +## -a <artist> <title> <file> Adds a file with tags artist and title +## +## -h , --help +## +## -s , --specs +## +# We can extend it by calling the _ak_zblock_pack.sh mixtape/add data ## ORIGINAL LINE +fullprogrampath="$(realpath $0)" +PROGRAM="$(basename $0)" +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 + +} + +if [ ! -z $1 ]; then + case $1 in + -h | --help) _ak_usage; exit;; + -l | --local-index) _ak_modules_mixtapes_index; exit;; + -i | --import) _ak_modules_mixtapes_import $2; exit;; + -a | --add) _ak_modules_mixtapes_add_from_file $2 $3 $4; exit;; + -c | --create) _ak_modules_mixtapes_create; exit;; + -r | --read) _ak_modules_mixtapes_read $2; exit;; + -s | --specs) _ak_modules_mixtapes_specs $2; exit;; + -x | --html) _ak_modules_mixtapes_html $2; exit;; + * ) _ak_usage;; + esac +else _ak_usage +fi |