169 lines
4.6 KiB
Bash
Executable File
169 lines
4.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# GUID=0d7c1b6929d53
|
|
GUID=70998f4a07e13
|
|
|
|
function get_first_number {
|
|
printf "%03.f" $(echo $1 | sed -r 's/\./_/g' | sed -r 's/^([^.]+).*$/\1/; s/^[^0-9]*([0-9]+).*$/\1/')
|
|
# echo $1 | sed -r 's/\./_/' | sed -r 's/^([^.]+).*$/\1/; s/^[^0-9]*([0-9]+).*$/\1/'
|
|
}
|
|
|
|
# $1 = SEARCH
|
|
function get_tracklist_url {
|
|
LINKS=$(curl -F 'search_selection=9' -F 'main_search='"$1" https://www.1001tracklists.com/search/result.php --silent |\
|
|
grep -o '<a href=['"'"'"][^"'"'"']*['"'"'"]' |\
|
|
sed -e 's/^<a href=["'"'"']//' -e 's/["'"'"']$//')
|
|
|
|
SEARCH=$(echo $1 | tr '[:upper:]' '[:lower:]')
|
|
echo "$LINKS" | grep "$(echo ${SEARCH// /\.*})"
|
|
}
|
|
|
|
function get_tracklist_id {
|
|
SOURCE=$(curl https://www.1001tracklists.com$1 --silent | grep "id_tracklist\" value=")
|
|
ID=$(get_first_number "$SOURCE")
|
|
echo $ID
|
|
}
|
|
|
|
# $1 = ID
|
|
function get_tracklist {
|
|
curl -H "Cookie: guid=$GUID" --data "idTL=$1" https://www.1001tracklists.com/ajax/export_tracklist.php --silent
|
|
}
|
|
|
|
# $1 = JSON
|
|
# $2 = KEY
|
|
function parse_json {
|
|
echo $1 | jq -r ".$2"
|
|
}
|
|
|
|
# $1 = NUMBER
|
|
function write_tracklist {
|
|
echo "Trying to download tracklist"
|
|
JSON=$(get_tracklist "$(get_tracklist_id "$(get_tracklist_url "$SEARCH_BASE $1")")")
|
|
echo "$JSON"
|
|
if "$(parse_json "$JSON" "success")"; then
|
|
# TRACKLIST=$(echo $JSON | jq -r ".tlTxt")
|
|
echo "$(parse_json "$JSON" "tlTxt")" | sed 's/\r//' > "/home/tim/Muziek/$FEED_NAME/$ARTIST - $ALBUM $1.txt"
|
|
else
|
|
echo "FAILED: $(parse_json "$JSON" "message")"
|
|
fi
|
|
}
|
|
|
|
# $1 = FILE
|
|
# $2 = NUMVER
|
|
function tag_file {
|
|
# id3 -M -d -t "$ALBUM $NUMBER" -a "$ARTIST" -l "$ALBUM" -n $2 $1
|
|
# id3v2 --APIC cover.jpg $1
|
|
echo "Tagging $1 $2"
|
|
tageditor --set --force-rewrite --remove-other-fields title="$ALBUM $2" artist="$ARTIST" album="$ALBUM" cover=cover.jpg --files "$1" -v
|
|
tageditor --set --force-rewrite track="$2" --files "$1" -v
|
|
# Maybe we should check if the file is a mp3
|
|
# id3ted -T $2 $1
|
|
rm $1.bak 2> /dev/null
|
|
}
|
|
|
|
# $1 = SONG
|
|
# $2 = NUMBER
|
|
function rename_file {
|
|
|
|
FILENAME=$(echo "$ALBUM" "$2")
|
|
FILENAME=$(echo "${FILENAME// /_}.${1##*.}")
|
|
|
|
echo "$1 -> $FILENAME"
|
|
|
|
mv "$1" "$FILENAME" 2> /dev/null
|
|
}
|
|
|
|
function do_feed {
|
|
echo "$ARTIST - $ALBUM"
|
|
#Check if there are new episodes
|
|
NEW_EPISODE_COUNT=$(podfox update $FEED_NAME | grep "new episode." | wc -l)
|
|
SONGS=""
|
|
|
|
if [ -z $(echo $NEW_EPISODE_COUNT | grep 0) ]; then
|
|
echo "Downloading new episodes"
|
|
SONGS=$(podfox download $FEED_NAME --how-many=$NEW_EPISODE_COUNT)
|
|
fi
|
|
|
|
for SONG in `find . | grep -e "mp3" -e "m4a"`; do
|
|
NUMBER=$(get_first_number "$SONG")
|
|
|
|
if [ ! -f "/home/tim/Muziek/$FEED_NAME/$ARTIST - $ALBUM $NUMBER.txt" ]; then
|
|
# This should be a seperate loop, that downloads all missing tracklists
|
|
# echo "Tracklist disabled"
|
|
echo $SONG $NUMBER
|
|
write_tracklist $NUMBER
|
|
fi
|
|
done
|
|
|
|
for SONG in `echo $SONGS | sed 's/ /\n/g' | grep -v "http" | grep -e ".mp3" -e ".m4a"`; do
|
|
# Now all we need to do is use podfox to figure out if there are new podcasts and tag those
|
|
NUMBER=$(get_first_number "$SONG")
|
|
|
|
tag_file "$SONG" "$NUMBER"
|
|
|
|
rename_file "$SONG" "$NUMBER"
|
|
done
|
|
}
|
|
|
|
# function do_feed2 {
|
|
# echo "$ARTIST - $ALBUM"
|
|
# #Check if there are new episodes
|
|
# # NEW_EPISODE_COUNT=$(podfox update $FEED_NAME | grep "new episode." | wc -l)
|
|
# NEW_EPISODE_COUNT=0
|
|
# SONGS=""
|
|
#
|
|
# if [ -z $(echo $NEW_EPISODE_COUNT | grep 0) ]; then
|
|
# echo "Downloading new episodes"
|
|
# SONGS=$(podfox download $FEED_NAME --how-many=$NEW_EPISODE_COUNT)
|
|
# fi
|
|
#
|
|
# for SONG in `find . | grep -e "mp3" -e "m4a"`; do
|
|
# NUMBER=$(get_first_number "$SONG")
|
|
#
|
|
# if [ ! -f "/home/tim/.lyrics/$ARTIST - $ALBUM $NUMBER.txt" ]; then
|
|
# # This should be a seperate loop, that downloads all missing tracklists
|
|
# # echo "Tracklist disabled"
|
|
# echo $SONG $NUMBER
|
|
# write_tracklist $NUMBER
|
|
# fi
|
|
# done
|
|
#
|
|
# for SONG in `echo $SONGS | sed 's/ /\n/g' | grep -v "http" | grep -e ".mp3" -e ".m4a"`; do
|
|
# # Now all we need to do is use podfox to figure out if there are new podcasts and tag those
|
|
# NUMBER=$(get_first_number "$SONG")
|
|
#
|
|
# tag_file "$SONG" "$NUMBER"
|
|
#
|
|
# rename_file "$SONG" "$NUMBER"
|
|
# done
|
|
# }
|
|
|
|
ARTIST="Oliver Heldens"
|
|
ALBUM="Heldeep Radio"
|
|
SEARCH_BASE="Oliver Heldens Heldeep Radio"
|
|
FEED_NAME="heldeep"
|
|
cd /home/tim/Muziek/heldeep
|
|
do_feed
|
|
|
|
ARTIST="Sam Feldt"
|
|
ALBUM="Heartfeldt Radio"
|
|
SEARCH_BASE="Sam Feldt Heartfeldt Radio"
|
|
FEED_NAME="heartfeldt"
|
|
cd /home/tim/Muziek/heartfeldt
|
|
do_feed
|
|
|
|
# ARTIST="Mr. Belt & Wezol"
|
|
# ALBUM="Music Club"
|
|
# SEARCH_BASE="Mr. Belt Wezol Music Club"
|
|
# FEED_NAME="music-club"
|
|
# cd /home/tim/Muziek/music-club
|
|
# do_feed2
|
|
|
|
ARTIST="Mr. Belt & Wezol"
|
|
ALBUM="The Cuckoo's Nest"
|
|
SEARCH_BASE="Mr. Belt Wezol The Cuckoos Nest"
|
|
FEED_NAME="cuckoos-nest"
|
|
cd /home/tim/Muziek/cuckoos-nest
|
|
do_feed
|
|
|
|
mopidy local scan
|