Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ######################################################################
- #Copyright (C) 2021 Kris Occhipinti
- #https://filmsbykris.com
- #This program is free software: you can redistribute it and/or modify
- #it under the terms of the GNU General Public License as published by
- #the Free Software Foundation, either version 3 of the License, or
- #(at your option) any later version.
- #This program is distributed in the hope that it will be useful,
- #but WITHOUT ANY WARRANTY; without even the implied warranty of
- #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- #GNU General Public License for more details.
- #You should have received a copy of the GNU General Public License
- #along with this program. If not, see <http://www.gnu.org/licenses/>.
- ######################################################################
- ip="192.168.1.4"
- port="8080"
- cmd=" play-pause"
- function main(){
- playerid="$(get_playerid)"
- while [ 1 ]
- do
- menu
- done
- }
- function get_playerid(){
- send_cmd '[{"jsonrpc":"2.0","method":"Player.GetActivePlayers","id":1,"params":[]},{"jsonrpc":"2.0","method":"Application.GetProperties","id":2,"params":[["volume","muted"]]}]'|\
- jq -r '.[0].result[0].playerid'
- }
- function menu(){
- cmd="$(echo "$cmd
- quit
- play-pause
- seek 10
- seek -10
- seek 30
- seek -30
- volume"|fzf)"
- $cmd
- }
- function quit(){
- exit
- }
- function send_cmd(){
- curl -s 'http://192.168.1.4:8080/jsonrpc' \
- -H 'Connection: keep-alive' \
- -H 'Accept: application/json, text/javascript, */*; q=0.01' \
- -H 'X-Requested-With: XMLHttpRequest' \
- -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36' \
- -H 'Content-Type: application/json' \
- -H 'Sec-GPC: 1' \
- -H "Origin: http://$ip:$port" \
- -H "Referer: http://$ip:$port/" \
- -H 'Accept-Language: en-US,en;q=0.9' \
- --data-raw "$*" \
- --compressed \
- --insecure|jq .
- }
- function play-pause(){
- send_cmd "{\"jsonrpc\":\"2.0\",\"method\":\"Player.PlayPause\",\"id\":1,\"params\":[$playerid,\"toggle\"] }"
- }
- function seek(){
- send_cmd "{\"jsonrpc\":\"2.0\", \"method\":\"Player.Seek\", \"params\": { \"playerid\":$playerid, \"value\":{ \"seconds\": $* } }, \"id\":1}"
- }
- function volume(){
- volume="$(seq 0 100|fzf --prompt "Select a Volume: ")"
- send_cmd "{\"jsonrpc\":\"2.0\",\"method\":\"Application.SetVolume\",\"id\":1,\"params\":[$volume]}"
- }
- main $*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement