+++ /dev/null
-#!/bin/bash
-
-~/.local/bin/uvx --exclude-newer='31 days' --from 'beets[lyrics,discogs]' beet "$@"
lesser_version
)
-nav_convert_query="^genre:spoken-w ^genre:skit ^lesser_version:t rating:3..5"
+nav_convert_query="^genres:spoken-w ^genres:skit ^lesser_version:t rating:3..5"
common_genres=(
- # gangsta rap / angry rap. something like g-rap would make beet queries for genre:rap include it
+ # gangsta rap / angry rap. something like g-rap would make beet queries for genres:rap include it
arp
avant
blues
for r in {3..5}; do
case $g in
pop|rap)
- beetapl ${g}-${r} rating:${r}..5 genre::^$g\$ ^expl:t ^gimicky:t ^lesser_version:t
- beetapl ${g}-x-${r} rating:${r}..5 genre::^$g\$ ^gimicky:t ^lesser_version:t
+ beetapl ${g}-${r} rating:${r}..5 genres::^$g\$ ^expl:t ^gimicky:t ^lesser_version:t
+ beetapl ${g}-x-${r} rating:${r}..5 genres::^$g\$ ^gimicky:t ^lesser_version:t
;;
*)
- beetapl ${g}-${r} rating:${r}..5 genre:$g ^gimicky:t ^lesser_version:t
+ beetapl ${g}-${r} rating:${r}..5 genres:$g ^gimicky:t ^lesser_version:t
;;
esac
done
done
for r in {3..5}; do
- beetapl beat-${r} rating:${r}..5 genre::$beat_regex ^expl:t ^gimicky:t ^lesser_version:t
- beetapl beat-x-${r} rating:${r}..5 genre::$beat_regex ^gimicky:t ^lesser_version:t
- beetapl upbeat-${r} rating:${r}..5 genre::$upbeat_regex ^expl:t ^gimicky:t ^lesser_version:t ^sad:t
- beetapl upbeat-x-${r} rating:${r}..5 genre::$upbeat_regex ^gimicky:t ^lesser_version:t ^sad:t
+ beetapl beat-${r} rating:${r}..5 genres::$beat_regex ^expl:t ^gimicky:t ^lesser_version:t
+ beetapl beat-x-${r} rating:${r}..5 genres::$beat_regex ^gimicky:t ^lesser_version:t
+ beetapl upbeat-${r} rating:${r}..5 genres::$upbeat_regex ^expl:t ^gimicky:t ^lesser_version:t ^sad:t
+ beetapl upbeat-x-${r} rating:${r}..5 genres::$upbeat_regex ^gimicky:t ^lesser_version:t ^sad:t
beetapl gimicky-${r} rating:${r}..5 gimicky:t ^lesser_version:t
done
for r in {3..5}; do
beetapl \
- sy$r rating:${r}..5 genre::$upbeat_regex ^gimicky:t ^lesser_version:t 'artist:sonic youth'
+ sy$r rating:${r}..5 genres::$upbeat_regex ^gimicky:t ^lesser_version:t 'artist:sonic youth'
done
for t in ${nav_tags[@]}; do
# note: PijokVipiotOzeph is just a random string for a delimiter
# shellcheck disable=SC2016 # false positive
- fmt='%ifdef{rating,$rating }'"$tag_query"'$genre | $title - $artist - $album $length $id PijokVipiotOzeph $path'
+ fmt='%ifdef{rating,$rating }'"$tag_query"'$genres | $title - $artist - $album $length $id PijokVipiotOzeph $path'
for tag in "${pl_tags[@]}"; do
continue
fi
if (( char_i <= last_genre_i )); then
- m beetmq "id:$id" genre=$new_item
+ m beetmq "id:$id" genres=$new_item
else
remove=false
for tag in ${tags[@]}; do
# usage: FILE|ALBUM_DIR [GENRE] [RATING]
+#
+# Note: the beets genre field is "genres" with an s in case you use that
+# field to store an ad-hoc set of genres. You'd presumably separate them
+# with something like ; or : or ,
beetadd() {
local import_path genre_arg single_track_arg rating_arg
import_path="$1"
echo "beetadd error: path does not exist"
fi
if [[ $2 ]]; then
- genre_arg="--set genre=$2"
+ genre_arg="--set genres=$2"
fi
if [[ $3 ]]; then
rating_arg="--set rating=$3"
rm "$tmpf"
}
-nav_convert_query="^genre:spoken-w ^genre:skit ^lesser_version:t rating:3..5"
+nav_convert_query="^genres:spoken-w ^genres:skit ^lesser_version:t rating:3..5"
# This deletes files in the converted directory which should no longer
#
beegenre() {
local count artist artregex genre singleartist tmpf tmpf2
- local -a artists genres
+ local -a artists genre_ary
singleartist=false
if [[ $1 == artist:* ]]; then
singleartist=true
while read -r artist; do
artregex=$(er "$artist")
# shellcheck disable=SC2016 # obvious reason
- beet ls -f '$genre' "artist::^$artregex$" "${@/#/^}" | sort | uniq -c | sort -n | tail -n1 >$tmpf2
+ beet ls -f '$genres' "artist::^$artregex$" "${@/#/^}" | sort | uniq -c | sort -n | tail -n1 >$tmpf2
read -r count genre <$tmpf2 || continue
if [[ $count ]]; then
artists+=("$artregex")
- genres+=("$genre")
- echo "beet modify -y $* \"artist::^$artist$\" genre=$genre # $count"
+ genre_ary+=("$genre")
+ echo "beet modify -y $* \"artist::^$artist$\" genres=$genre # $count"
fi
done <$tmpf
read -r -N 1 -s -p "Y/n " char
if [[ $char == [Yy$'\n'] ]]; then
for (( i=0; i<${#artists[@]}; i++ )); do
- beet modify -y "$@" "artist::^${artists[i]}$" genre=${genre[i]}
+ beet modify -y "$@" "artist::^${artists[i]}$" genres=${genre_ary[i]}
done
fi
fi
curl -LsSf https://astral.sh/uv/install.sh | sh
fi
-
+# I tried doing what UV implies is good and using uvx instad of
+# installing, but it was buggy. This was that:
+# ~/.local/bin/uvx --exclude-newer='31 days' --from 'beets[lyrics,discogs]' beet "$@"
+uv tool install --exclude-newer='31 days' --from 'beets[lyrics,discogs]' beets
2 screens: YPosition=2
3840x2160 screen: Height=2156
3840x2160 screen: Width=1916
-3840x2160 screen: XPosition=1282
-3840x2160 screen: YPosition=1082
+3840x2160 screen: XPosition=1922
+3840x2160 screen: YPosition=2
DP-0=DP-0
DP-1 eDP-1=DP-1
DP-1-1 eDP-1=DP-1-1