#!/bin/sh #---------------------------------------------------------------------------------- # /var/install/bin/slims-fetch-covers - fetch cover images from amazon # # Copyright (c) 2006-2024 The Eisfair Team, team(at)eisfair(dot)org # # Creation: 2006-06-05 jed # Last Update: $Id$ # # 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 2 of the License, or # (at your option) any later version. #---------------------------------------------------------------------------------- # read eislib etc. . /var/install/include/eislib # exec 2>./slims-trace-$$.log # set -x #SLIMS_DO_DEBUG='yes' #---------------------------------------------------------------------------------- # grep player list #---------------------------------------------------------------------------------- grep_player_list () { _gpl_ret=1 if [ -f ${generate_slimsconf} ] then grep -E "^ *_client:|^ *playername:" ${generate_slimsconf} > ${tmpfile} if [ $? -eq 0 ] then sed -e '$!N;s/\n//' -e 's/^ *_client://g' -e 's/: *playername://g' ${tmpfile} > ${tmpfile}-1 if [ -f ${tmpfile}-1 ] then mv ${tmpfile}-1 ${tmpfile} fi if [ -s ${tmpfile} ] then _gpl_ret=0 fi else rm -f ${tmpfile} fi fi return ${_gpl_ret} } #---------------------------------------------------------------------------------- # print header #---------------------------------------------------------------------------------- print_menu_header() { clrhome mecho --info "Send message to Squeezebox" mecho techo --begin 1 3r 1 25 30 techo --row "" --info "Nr" "" --info "MAC" --info "Playername" } #---------------------------------------------------------------------------------- # print entries # $1 - entry number #---------------------------------------------------------------------------------- print_entries() { nbr=$1 # read line line=`sed -n "${nbr},${nbr} p" ${tmpfile}` mac_address="`echo ${line} | cut -d' ' -f1`" player_name="`echo ${line} | cut -d' ' -f2-`" if [ "${player_name}" = "~" -o -z "${player_name}" ] then player_name="no name given" techo --row "" ${count} "" ${mac_address} --warn "${player_name}" else techo --row "" ${count} "" ${mac_address} "${player_name}" fi } #================================================================================== # main #================================================================================== slims_spoolpath=/var/slims log_dir=${slims_spoolpath}/log slims_prefs_path=${slims_spoolpath}/prefs configfile=/etc/config.d/slims tmpfile=/tmp/slims-playerlist.$$ generate_slimsconf=${slims_prefs_path}/server.prefs # load configuration . ${configfile} if [ "${START_SLIMS}" = "yes" ] then option='' if grep_player_list then # list of playernames exist if [ "${SLIMS_DO_DEBUG}" = "yes" ] then option="-debug=1" fi if [ "${SLIMS_WEB_AUTH}" = "yes" ] then option=" ${option} -user=${SLIMS_WEB_USER} -pass=${SLIMS_WEB_PASS}" fi maxlist=15 maxcount=`cat ${tmpfile} | wc -l` if [ ${maxcount} -gt 0 ] then # entries found - go on ... print_menu_header u_exit=0 until [ ${u_exit} -gt 0 ] do count=1 while [ ${count} -le ${maxcount} ] do if [ ${count} -gt ${maxlist} ] then print_menu_header fi # print entries print_entries ${count} count=`expr ${count} + 1` done count=`expr ${count} - 1` echo /var/install/bin/ask "Select" "" "1-${count}" "^$=Return" "0=Exit" > /tmp/ask.$$ rc=$? nbr=`cat /tmp/ask.$$` rm -f /tmp/ask.$$ if [ $rc = 255 ] then exit 1 fi case "${nbr}" in '' ) # return to previous menu u_exit=1 ;; 0 ) # exit program u_exit=127 ;; * ) # numeric value - read from device list if [ ${nbr} -ge 1 -a ${nbr} -le ${count} ] then name="`sed -n \"${nbr},${nbr} p\" ${tmpfile} | cut -d' ' -f2-`" mecho /var/install/bin/ask "Text line 1 (0=Exit)" "Nachricht vom eisfair-Administrator" "*" > /tmp/ask.$$ rc=$? line1="`cat /tmp/ask.$$`" rm -f /tmp/ask.$$ if [ $rc = 255 ] then exit 1 fi case ${line1} in 0 ) ;; * ) # text line1 entered /var/install/bin/ask "Text line 2 (0=Exit)" "Bitte bei mir melden!" "*" > /tmp/ask.$$ rc=$? line2="`cat /tmp/ask.$$`" rm -f /tmp/ask.$$ if [ $rc = 255 ] then exit 1 fi case ${line1} in 0 ) ;; * ) # text entered # Mandatory parameter: # -name= i.e.: "my slimp3" # # Optional parameters: # -server= default: 127.0.0.1 # -port= default: 9090 # -line1= default: "Line1 text" # -line2= default: "Line2 text" # -user= default: "" # -pass= default: "" # -sound= default: /var/slims/signals/signal_two_times.mp3 # -volinc= default: 20 # -debug=<0|1> default: 0 mecho mecho "Sending message ..." if [ "${SLIMS_DO_DEBUG}" = "yes" ] then echo "--------------------------------------------------" fi /usr/bin/slims-announcement.pl -name="${name}" \ ${option} -line1="${line1}" -line2="${line2}" if [ "${SLIMS_DO_DEBUG}" = "yes" ] then echo "--------------------------------------------------" anykey else sleep 2 fi ;; esac ;; esac print_menu_header fi # squeezebox player selected ;; *) ;; esac done # until [ ${u_exit} -gt 0 ] else # error playerlist contains no entries mecho --warn "playerlist doesn't contain entries!" fi techo --end else # error playerlist contains no entries mecho --warn "playerlist doesn't contain entries!" fi else mecho --info "No SqueezeCenter running on this server!" fi mecho anykey #================================================================================== # end #================================================================================== exit 0