Hi all

I'd like to present you 'lms.go' (https://hg.serna.eu/go/lms).

This is a tiny program/utility/library to interact with a Logitech Media
Server and execute some actions from the CLI or from other programs. It
should work at least on GNU/Linux machines. License is GPL 3+.

Lastly I've seen many libraries written in Python to manage LMS… well, I
even confess I wrote one some years ago.
As I'm learning -go- nowdays I thought this could be a nice project, and
nevertheless this code could be useful if anyone wants to create a
complete library in go to manage LMS.

In my case, I map some keybindings on my computer to execute different
tasks: toggle play/pause, volume up or down, and so on. Before I used my
old python-based library, which I substituted with this new one
go-based. Start times are faster.
You can see part of the configuration of my WM/DE (swaywm/i3) below
 .

Some use examples:


Code:
--------------------
    
  └→ $ ./lms server
  ServerInfo{192.168.2.10:9002 v7.9.2  [115days 9h43m22s  S:43472 A:611 L:3344 
G:92]  Players:3  Last scan: Tue, 23 Jun 2020 13:57:59}
  
  └→ $ ./lms players
  Player{⏹ ✘ Squeezebox Radio (baby) - 00:04:20:27:d2:b5 - 
192.168.2.212:40043 - 🔊 0% - stop - No repeat, No shuffle, 0/0}
  Player{⏹ ✔ Marantz NR1504 (squeezelite) - 00:06:78:1b:ab:8d - 
127.0.0.1:47684 - 🔊 33% - stop - No repeat, No shuffle, 7/16}
  Player{♫ ✔ Squeezebox (boom) - 00:04:20:1e:b6:45 - 
192.168.2.211:37657 - 🔊 27% - play - No repeat, No shuffle, 45/135}
  
  └→ $ ./lms status
  |Squeezebox  🔊 27%| Thalia Zedek Band: Do You Remember [“Liars and 
Prayers”] - ♫ 4:25/5:47  [46/135]
  
  └→ $ ./lms song
  SongInfo{'Do You Remember' by Thalia Zedek Band (Liars and Prayers #3, 2008)  
PC: 10  Rating: 70  ID: 418766}
  
  └→ $ ./lms playlist
  Squeezebox: 46/135
  Thalia Zedek Band: JJ85
  Thalia Zedek Band: House Of The Rising Sun
  Thalia Zedek Band: Eastern Hue
  Thalia Zedek Band: Next Exit
  Thalia Zedek Band: Lower Allston
  ♫ Thalia Zedek Band: Do You Remember
  Thalia Zedek Band: We Don't Go
  Thalia Zedek Band: Body Memory
  Thalia Zedek Band: Wind
  Thalia Zedek Band: Circa the End
  Thalia Zedek Band: Come Undone
  Thalia Zedek Band: Green and Blue
  Thalia Zedek Band: Stars
  
  └→ $ ./lms help
  Usage of /home/inigo/devel/go/src/lms/lms [options] command
  
  -h    Show help
  -imageviewer string
        Image viewer program to display cover (default "eog")
  -n    Use system notify to show result
  -player string
        Player to use (default "Squeezebox")
  -url string
        LMS URL and port (default "http://nas:9002";)
  
  Available commands: server, players, status, song, playlist, first, prev, 
next, power, pause, mute, volume [vol], cover, waybar, help
  
--------------------


Note you can specify `-n` flag to display the output in the notification
system instead of using the terminal.


Code is on this repository: https://hg.serna.eu/go/lms


30837


  Extract of my *swaywm* configuration, where I bind some keys to
different LMS actions:

Code:
--------------------
    
  ############################################################################
  ##### squeezebox
  mode "squeezebox" {
  bindsym s                    exec /opt/emacs/bin/emacsclient -e 
"(lms-float)"; mode "default"
  bindsym h                    exec --no-startup-id curl 
'http://nas:9002/settings/player/audio.html' --data-raw 
'saveSettings=1&playerid=XXXX&pref_analogOutMode=2' -s >/dev/null; mode 
"default"
  bindsym Shift+h              exec --no-startup-id curl 
'http://nas:9002/settings/player/audio.html' --data-raw 
'saveSettings=1&playerid=XXXX&pref_analogOutMode=0' -s >/dev/null; mode 
"default"
  bindsym q                    exec --no-startup-id ~/bin/lms -n power; mode 
"default"
  bindsym a                    exec --no-startup-id ~/bin/lms -n status; mode 
"default"
  bindsym i                    exec --no-startup-id ~/bin/lms -n song; mode 
"default"
  bindsym c                    exec --no-startup-id ~/bin/lms cover; mode 
"default"
  bindsym l                    exec --no-startup-id ~/bin/lms -n playlist; mode 
"default"
  bindsym m                    exec --no-startup-id ~/bin/lms -n mute; mode 
"default"
  bindsym XF86AudioMute        exec --no-startup-id ~/bin/lms -n mute; mode 
"default"
  bindsym Down                 exec --no-startup-id ~/bin/lms -n volume -5
  bindsym XF86AudioLowerVolume exec --no-startup-id ~/bin/lms -n volume -5
  bindsym Up                   exec --no-startup-id ~/bin/lms -n volume +5
  bindsym XF86AudioRaiseVolume exec --no-startup-id ~/bin/lms -n volume +5
  bindsym Home                 exec --no-startup-id ~/bin/lms -n first; mode 
"default"
  bindsym XF86AudioPrev        exec --no-startup-id ~/bin/lms -n first; mode 
"default"
  bindsym Left                 exec --no-startup-id ~/bin/lms -n prev; mode 
"default"
  bindsym XF86AudioRewind      exec --no-startup-id ~/bin/lms -n prev; mode 
"default"
  bindsym Right                exec --no-startup-id ~/bin/lms -n next; mode 
"default"
  bindsym XF86AudioForward     exec --no-startup-id ~/bin/lms -n next; mode 
"default"
  bindsym XF86AudioPlay        exec --no-startup-id ~/bin/lms -n pause; mode 
"default"
  bindsym space                exec --no-startup-id ~/bin/lms -n pause; mode 
"default"
  bindsym Return               mode "default"
  bindsym Escape               mode "default"
  }
  bindsym $mod+s mode "squeezebox"
  
--------------------


+-------------------------------------------------------------------+
|Filename: ss-20200625_214255.jpg                                   |
|Download: http://forums.slimdevices.com/attachment.php?attachmentid=30837|
+-------------------------------------------------------------------+

------------------------------------------------------------------------
Iñigo's Profile: http://forums.slimdevices.com/member.php?userid=49912
View this thread: http://forums.slimdevices.com/showthread.php?t=112479

_______________________________________________
plugins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/plugins

Reply via email to