be safer, keep more leafs around
[distro-setup] / brc2
diff --git a/brc2 b/brc2
index f23de9b53b7195ff0f5f84eb8095b32dbfe26396..c65e578a09afdc9bc00c7c6e4e52315b9f04544a 100644 (file)
--- a/brc2
+++ b/brc2
@@ -742,7 +742,7 @@ beetag() {
 
   # PijokVipiotOzeph is just a random string for a delimiter
   # shellcheck disable=SC2016 # obvious reason
-  mapfile -t initial_ls < <(beet ls -f '%ifdef{rating,$rating }'"$fstring"'$genre | $artist - $album - $title   $length  $id PijokVipiotOzeph $path' "$@" | { if $random; then sort -R --random-source=$pl_seed_path; else cat; fi; } )
+  mapfile -t initial_ls < <(beet ls -f '%ifdef{rating,$rating }'"$fstring"'$genre | $title - $artist - $album   $length  $id PijokVipiotOzeph $path' "$@" | { if $random; then sort -R --random-source=$pl_seed_path; else cat; fi; } )
   id_count=${#initial_ls[@]}
   for line in "${initial_ls[@]}"; do
     path="${line#*PijokVipiotOzeph }"
@@ -782,6 +782,15 @@ beetag() {
       echo "$ls_line"
     fi
   done
+  if $doplay; then
+    #{ mpv --profile=a --volume=$volume --idle 2>&1 & } 2>/dev/null
+    mpv --profile=a --volume=$volume --idle &
+    # if we dont sleep, we get error like this:
+    # socat[1103381] E connect(5, AF=1 "/tmp/mpvsock", 14): Connection refused
+    # and strangely, it persists until mpv is restarted.
+    # .1 sleep was too little.
+    sleep .2
+  fi
 
   while true; do
     id=${ids[j]}
@@ -794,6 +803,8 @@ beetag() {
     if $doplay; then
       # https://stackoverflow.com/a/7687716
       # note: duplicated down below
+      #
+      # notes on old method of invoking mpv each time:
       # https://superuser.com/questions/305933/preventing-bash-from-displaying-done-when-a-background-command-finishes-execut
       # we can't disown or run in a subshell or set +m because all that
       # disabled job control from working properly in ways we want.
@@ -801,7 +812,10 @@ beetag() {
       # is that we are waiting in 2 second intervals and checking if the
       # background job exists. Instead, we should make mpv just idle
       # when it is done with a song and then send it a command to play a new track.
-      { mpv --profile=a --volume=$volume "$path" 2>&1 & } 2>/dev/null
+      #{ mpv --profile=a --volume=$volume "$path" 2>&1 & } 2>/dev/null
+      # old
+      #{ beet play "--args=--volume=$volume" "id:$id" 2>&1 & } 2>/dev/null
+      mpvrpc '{ "command": ["loadfile", "'"$path"'"] }'
       erasable_line=false
     fi
     while true; do
@@ -841,8 +855,7 @@ beetag() {
           else
             doplay=true
             kill-bg-quiet
-            { mpv --profile=a --volume=$volume "$path" 2>&1 & } 2>/dev/null
-            #{ beet play "--args=--volume=$volume" "id:$id" 2>&1 & } 2>/dev/null
+            mpvrpc '{ "command": ["loadfile", "'"$path"'"] }'
             erasable_line=false
           fi
           beetag-nostatus 1
@@ -1290,9 +1303,11 @@ order by timeSent;"
 mycheologs() {
   local days q
   days=${1:-16}
+  # timezone compared to utc. note: this will need adjustment for spring/fall.
+  zone_offset=$(( 60 * 60 * 5 ))
   q="
 select
- datetime(substr(timeSent,0,11),  'unixepoch'),
+ datetime(substr(timeSent,0,11) - $zone_offset,  'unixepoch'),
  body
 from messages
 where timeSent > $(( (EPOCHSECONDS - days * 60 * 60 * 24) * 1000 ))