#!/bin/bash
-# for generating playlist config yaml
+# for generating playlist config yaml.
+# plain playlists are added manually to the yaml.
f=/usr/local/lib/err;test -r $f || { echo "error: $0 no $f" >&2;exit 1;}; . $f
declare -A slow_genres_a
slow_genres=(
ambient
- avantg
+ avant
classical
noise
+ sleep
+ mq
+ jazz
)
+
tags=(
expl
sad
)
+
for g in ${ignore_genres[@]}; do
ignore_genres_a[$g]=t
done
# generate genres based on what is in the db.
genres=()
+
+# relatively upbeat genres to listen, eg while biking
+upbeat_genres=()
for g in $(beet ls -f '$genre' | sort -u); do
if [[ ${ignore_genres_a[$g]} ]]; then continue; fi
genres+=($g)
if [[ ${slow_genres_a[$g]} ]]; then continue; fi
beat_genres+=($g)
+ case $g in
+ chill)
+ continue
+ ;;
+ esac
+ upbeat_genres+=($g)
done
# generate regex for beat playlist
fi
done
+# generate regex for upbeat playlist
+beat_regex=
+first=true
+for g in ${upbeat_genres[@]}; do
+ if $first; then
+ first=false
+ upbeat_regex=$g
+ else
+ upbeat_regex+="|$g"
+ fi
+done
+
for g in ${genres[@]}; do
for r in {3..5}; do
pop|rap)
cat <<EOF
- name: ${g}-${r}.m3u
- query: 'rating:${r}..5 genre:$g ^expl:t'
- - name: ${g}e-${r}.m3u
- query: 'rating:${r}..5 genre:$g'
+ query: 'rating:${r}..5 genre::^$g\$ ^expl:t ^gimicky:t ^lesser_version:t'
+ - name: ${g}-x-${r}.m3u
+ query: 'rating:${r}..5 genre::^$g\$ ^gimicky:t ^lesser_version:t'
EOF
;;
*)
cat <<EOF
- name: ${g}-${r}.m3u
- query: 'rating:${r}..5 genre:$g'
+ query: 'rating:${r}..5 genre:$g ^gimicky:t ^lesser_version:t'
EOF
;;
esac
for r in {3..5}; do
cat <<EOF
- name: ${t}-${r}.m3u
- query: 'rating:${r}..5 $t:t'
+ query: 'rating:${r}..5 $t:t ^lesser_version:t'
EOF
done
for r in {3..5}; do
cat <<EOF
- name: beat-${r}.m3u
- query: 'rating:${r}..5 genre::$beat_regex ^expl:t'
- - name: beate-${r}.m3u
- query: 'rating:${r}..5 genre::$beat_regex'
+ query: 'rating:${r}..5 genre::$beat_regex ^expl:t ^gimicky:t ^lesser_version:t'
+ - name: beat-x-${r}.m3u
+ query: 'rating:${r}..5 genre::$beat_regex ^gimicky:t ^lesser_version:t'
+ - name: upbeat-${r}.m3u
+ query: 'rating:${r}..5 genre::$upbeat_regex ^expl:t ^gimicky:t ^lesser_version:t ^sad:t'
+ - name: upbeat-x-${r}.m3u
+ query: 'rating:${r}..5 genre::$upbeat_regex ^gimicky:t ^lesser_version:t ^sad:t'
+ - name: gimicky-${r}.m3u
+ query: 'rating:${r}..5 gimicky:t ^lesser_version:t'
EOF
done