aboutsummaryrefslogtreecommitdiff
path: root/modules/ak-mixtapes
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2024-06-04 18:07:39 +0300
committerkaotisk <kaotisk@arching-kaos.org>2024-06-04 18:07:39 +0300
commit0d1777251dea7d35cd774518959b4377673e1cab (patch)
treeb3d7a15725641c9e3d1d7b45150135e1f8ce9a71 /modules/ak-mixtapes
parent684dd3e038ae90f0fd1f53211ce4d30141e35bf2 (diff)
downloadarching-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-xmodules/ak-mixtapes86
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