You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.7 KiB
Bash

#!/bin/bash
if [ -z $(which jq) ]
then
echo "Missing jq package, please install"
exit 1
fi
token_dat="./token.dat"
if [ ! -f $token_dat ]
then
echo "Missing ./token.dat"
exit 1
fi
sources_dat="./music"
if [ ! -d $sources_dat ]
then
echo "Missing ./music/"
exit 1
fi
if [ 0 -eq $(ls ./music | wc -l) ]
then
mv posted_already/* music/
fi
api_base_url="https://udongein.xyz/"
access_token="$(cat ${token_dat})"
folder_name=$(ls music/ | shuf -n 1)
track_name=$(ls music/"${folder_name}" | grep opus | shuf -n 1)
echo "From: $folder_name"
echo "Pick: $track_name"
echo " "
cp -f music/"$folder_name"/"$track_name" temp.opus
cp -f music/"$folder_name"/cover.jpg ./cover.jpg
link=$(cat music/"$folder_name"/link)
full_title=$(exiftool -s -s -s -Title temp.opus)
full_artist=$(exiftool -s -s -s -Artist temp.opus)
media_cover_json=$(curl -X POST "${api_base_url}/api/v1/media" \
-H "Authorization: Bearer ${access_token}" \
-F "file=@`ls cover.*`")
media_music_json=$(curl -X POST "${api_base_url}/api/v1/media" \
-H "Authorization: Bearer ${access_token}" \
-F "file=@`ls temp.opus`")
media_cover_id=$(jq -r ".id" <<< ${media_cover_json})
media_music_id=$(jq -r ".id" <<< ${media_music_json})
echo $media_json
curl -X POST -d '{"status":"'"${full_title}"' by _ IT IS A TEST POST _ '"${full_artist}"' :mikulove: '"${link}"'", "visibility":"'unlisted'", "media_ids":'[\"${media_cover_id}\",\"${media_music_id}\"]'}' \
-H "Authorization: Bearer ${access_token}" \
-H "Content-Type: application/json" \
"${api_base_url}/api/v1/statuses"
rm -f temp.opus
rm -f cover.*
mkdir -p posted_already/
mv music/"$folder_name" posted_already/