Add script to symlink footspeed and stamina charts
authorCameron Ball <cameron@cameron1729.xyz>
Mon, 8 Apr 2019 08:19:20 +0000 (16:19 +0800)
committerCameron Ball <cameron@cameron1729.xyz>
Mon, 8 Apr 2019 08:19:20 +0000 (16:19 +0800)
Categorise.sh [new file with mode: 0755]
config.sh.example

diff --git a/Categorise.sh b/Categorise.sh
new file mode 100755 (executable)
index 0000000..79fe8c7
--- /dev/null
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+source "$DIR/config.sh"
+
+if [ -z $1 ]; then
+    exit
+fi
+
+songs_file=$(ls "$DIR" | grep songs | tail -n1)
+
+if [ -z "$songs_file" ]; then
+    exit
+fi
+
+if [ "$1" = "apply" ]; then
+    if [ -f "$DIR"/footspeed.txt ]; then
+        IFS=$'\n' read -d '' -r -a lines < "$DIR"/footspeed.txt
+
+        rm -rf "$path_to_songs/$footspeed_folder"
+        mkdir "$path_to_songs/$footspeed_folder"
+
+        pattern=""
+        for i in "${lines[@]}"; do
+            pattern="${pattern}|$i"
+        done
+
+        pattern="${pattern:1}"
+        song_paths=$(grep -E "$pattern" "${DIR}/${songs_file}" | sort -u -k1,1 | cut -sd / -f5-6)
+
+        while read -r song_path; do
+            echo "$song_path"
+            just_song=$(echo "$song_path" | cut -sd / -f2)
+            original_folder=$(echo "$song_path" | cut -sd / -f1)
+            crc32="$(echo -n "/Songs/${footspeed_folder}/${just_song}/" | gzip -c | tail -c8 | hexdump -n4 -e '"%u"')"
+
+            echo "${just_song} -> footspeed"
+            echo -e "\t${path_to_song_cache}/${crc32}"
+
+            #rm "${path_to_song_cache}/${crc32}"
+            ln -s "$path_to_songs/$song_path" "$path_to_songs/$footspeed_folder/$original_folder - $just_song"
+        done <<< "$song_paths"
+    fi
+
+    if [ -f "$DIR"/stamina.txt ]; then
+        IFS=$'\n' read -d '' -r -a lines < "$DIR"/stamina.txt
+
+        rm -rf "$path_to_songs/$stamina_folder"
+        mkdir "$path_to_songs/$stamina_folder"
+
+        pattern=""
+        for i in "${lines[@]}"; do
+            pattern="${pattern}|$i"
+        done
+
+        pattern="${pattern:1}"
+        song_paths=$(grep -E "$pattern" "${DIR}/${songs_file}" | sort -u -k1,1 | cut -sd / -f5-6)
+
+        while read -r song_path; do
+            echo "$song_path"
+            just_song=$(echo $song_path | cut -sd / -f2)
+            original_folder=$(echo "$song_path" | cut -sd / -f1)
+            crc32="$(echo -n "/Songs/${stamina_folder}/${just_song}/" | gzip -c | tail -c8 | hexdump -n4 -e '"%u"')"
+
+            echo "${just_song} -> stamina"
+            echo -e "\t${path_to_song_cache}/${crc32}"
+
+            #rm "${path_to_song_cache}/${crc32}"
+            ln -s "$path_to_songs/$song_path" "$path_to_songs/$stamina_folder/$original_folder - $just_song"
+        done <<< "$song_paths"
+    fi
+fi
index 8d767d5..8c5e334 100644 (file)
@@ -5,5 +5,7 @@ me_highscore_name=JCE
 path_to_songs="/home/cameron/OpenITG beta 2/Songs"
 path_to_stats="/home/cameron/Projects/GrooveNet/Stats.jayce.xml"
 faves_folder="- Favourites - Jayce"
+footspeed_folder="[-] - Footspeed"
+stamina_folder="[-] - Stamina"
 external_favourite_naming_scheme="- Favourites - %person%"
 path_to_song_cache="/root/.openitg/Cache/Songs"