Skip to content

Commit b8391d9

Browse files
committed
Log via dbus-send
1 parent e15e119 commit b8391d9

8 files changed

+47
-22
lines changed

.gitignore

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
./local/vdr.d/conf/*
2-
vdr
1+
local/vdr.d/conf/*
2+
local/vdr.d/conf/vdr

bin/copy2usb.sh

+10-10
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ SRC="$1"
2020

2121
if ! declare -F f_logger >/dev/null ; then
2222
f_logger() { logger -t yaVDR "copy2usb.sh: $*" ;}
23-
f_svdrpsend_msgt() { svdrpsend "$@" ;}
23+
f_dbus_send_message() { svdrpsend "$@" ;}
2424
fi
2525

2626
: "${TITLE//_/ }" # Alle _ durch Leerzeichen ersetzen
@@ -53,7 +53,7 @@ fi
5353

5454
if [[ -e "${1}/.timer" ]] ; then # Prüfen ob Aufnahme noch läuft
5555
f_logger "Recording $SRC still running! Aborting!"
56-
f_svdrpsend_msgt "%Aufnahme \"${TITLE}\" läuft noch. Abbruch!"
56+
f_dbus_send_message "%Aufnahme \"${TITLE}\" läuft noch. Abbruch!"
5757
exit 1
5858
fi
5959

@@ -62,7 +62,7 @@ if [[ -e "${1}/${FLAG}" ]] ; then # Prüfen ob kopiervorgang schon läuft
6262
rm "${1}/${FLAG}" # Entfernen, falls älter als eine Stunde
6363
else
6464
f_logger "Recording $SRC still in copy process! Aborting!"
65-
f_svdrpsend_msgt "%Aufnahme \"${TITLE}\" wird gerade kopiert. Abbruch!"
65+
f_dbus_send_message "%Aufnahme \"${TITLE}\" wird gerade kopiert. Abbruch!"
6666
exit 1
6767
fi
6868
fi
@@ -83,16 +83,16 @@ if [[ -n "$TARGET" && -d "$TARGET" && -n "$SRC" && -d "$SRC" ]] ; then
8383
echo 'source /_config/bin/yavdr_funcs.sh &>/dev/null'
8484
echo 'if ! declare -F f_logger >/dev/null ; then'
8585
echo " f_logger() { logger -t yaVDR \"$CP2USB: $*\" ;}"
86-
echo ' f_svdrpsend_msgt() { svdrpsend "$@" ;}'
86+
echo ' f_dbus_send_message() { svdrpsend "$@" ;}'
8787
echo 'fi'
8888
echo "if ! mkdir --parents \"${TARGET}${TD}\" ; then"
89-
echo " f_svdrpsend_msgt \"@FEHLER beim erstellen von '[${TARGET_DISK}]${VIDEO}/${TITLE}'\""
89+
echo " f_dbus_send_message \"@FEHLER beim erstellen von '[${TARGET_DISK}]${VIDEO}/${TITLE}'\""
9090
echo 'fi'
91-
echo "f_svdrpsend_msgt \"Kopiere '${TITLE}' nach [${TARGET_DISK}]${VIDEO}\""
91+
echo "f_dbus_send_message \"Kopiere '${TITLE}' nach [${TARGET_DISK}]${VIDEO}\""
9292
echo "if rsync --archive --bwlimit=${LIMIT} --no-links \"${SRC}\" \"${TARGET}${TD}\" &> \"${CP2USB%.*}.rsync.log\" ; then"
93-
echo " f_svdrpsend_msgt \"'${TITLE}' wurde nach [${TARGET_DISK}]${VIDEO} kopiert\""
93+
echo " f_dbus_send_message \"'${TITLE}' wurde nach [${TARGET_DISK}]${VIDEO} kopiert\""
9494
echo 'else'
95-
echo " f_svdrpsend_msgt \"@FEHLER beim kopieren von '${TITLE}'\""
95+
echo " f_dbus_send_message \"@FEHLER beim kopieren von '${TITLE}'\""
9696
echo ' exit 1'
9797
echo 'fi'
9898
echo "rm \"${1}/${FLAG}\"" # Kopier-Flag löschen
@@ -102,6 +102,6 @@ if [[ -n "$TARGET" && -d "$TARGET" && -n "$SRC" && -d "$SRC" ]] ; then
102102
"$CP2USB" &>/dev/null & disown # Temporäres Skript im Hintergrund starten
103103

104104
else
105-
f_logger -s "Illegal parameter <${1}> or no usb drive found!"
106-
f_svdrpsend_msgt "@Ungültiger Parameter <${1}> oder kein USB-Laufwerk gefunden!"
105+
f_logger -s "Invalid parameter <${1}> or no usb drive found!"
106+
f_dbus_send_message "@Ungültiger Parameter <${1}> oder kein USB-Laufwerk gefunden!"
107107
fi

bin/yavdr_funcs.sh

+28-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env bash
22
# This file has to be included via source command
3-
# VERSION=240219
3+
# VERSION=250224
44

55
trap f_exit EXIT
66

@@ -27,7 +27,8 @@ f_logger() {
2727
-o|--osd)
2828
parm='--stderr' ; shift
2929
#/usr/bin/vdr-dbus-send /Skin skin.QueueMessage string:"$*" ;;
30-
f_svdrpsend_msgt "$*" ;;
30+
#f_svdrpsend_msgt "$*" ;;
31+
f_dbus_send_message "$@" ;;
3132
esac
3233
logger "$parm" --tag 'yaVDR' "[$$] ${SELF_NAME}: $*"
3334
fi
@@ -66,7 +67,7 @@ f_rotate_log() { # Log rotieren wenn zu groß
6667
# return 1
6768
#}
6869

69-
f_svdrpsend_msgt() {
70+
f_svdrpsend_msgt() { # Benötigt gepatchten VDR
7071
mapfile -t < <("$SVDRPSEND" MSGT "$*") # Prüfen ob VDR den Befehl kennt
7172
# 220 vdr01 SVDRP VideoDiskRecorder 2.6.1; Thu Oct 27 15:30:24 2022; UTF-8
7273
# 500 Command unrecognized: "MSGT"
@@ -77,4 +78,28 @@ f_svdrpsend_msgt() {
7778
fi
7879
}
7980

81+
# Sends a message to the VDR (Video Disk Recorder) system via D-Bus.
82+
#
83+
# Parameters:
84+
# $1 - The message to be sent. If the message starts with '%', it is treated as a warning.
85+
# If it starts with '@', it is treated as an error. Otherwise, it defaults to an info message.
86+
# $2 - (Optional) The type of message (e.g., info, warning, error). Defaults to 'info' if not provided.
87+
#
88+
# The function uses the dbus-send command to dispatch the message to the VDR system, modifying the
89+
# message type based on the prefix of the message if necessary.
90+
91+
f_dbus_send_message() {
92+
local message="$1" type="${2:-info}"
93+
if [[ "${message[0]}" == '%' ]] ; then
94+
message="${message:1}" # % entfernen
95+
type='warning'
96+
elif [[ "${message[0]}" == '@' ]] ; then
97+
message="${message:1}" # @ entfernen
98+
type='error'
99+
fi
100+
101+
dbus-send --system --type=method_call --dest=de.tvdr.vdr --print-reply \
102+
/Skin de.tvdr.vdr.skin.SendMessage string:"$message" string:"$type"
103+
}
104+
80105
f_logger '<START>'

bin/yavdr_log.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ for i in /proc/asound/card[0-9] ; do
7171
done
7272

7373
tar -cJf "$LOG_ARCH" .
74-
#f_svdrpsend_msgt "$LOG_ARCH wurde erstellt"
74+
#f_dbus_send_message "$LOG_ARCH wurde erstellt"
7575
f_logger -s "$LOG_ARCH wurde erstellt"
7676
cd ..
7777
rm -rf "$LOG_DIR"
@@ -81,11 +81,11 @@ if [[ "$OUTPUT" == '-m' ]] ; then
8181
OUTPUT="${TARGET}/"
8282
cp -f "$LOG_ARCH" "$TARGET/"
8383
sleep 3
84-
f_svdrpsend_msgt "$LOG_ARCH wurde nach $TARGET kopiert"
84+
f_dbus_send_message "$LOG_ARCH wurde nach $TARGET kopiert"
8585
f_logger -s "$LOG_ARCH wurde nach $TARGET kopiert"
8686
fi
8787
elif [[ -n "$OUTPUT" ]] ; then
8888
cp "$LOG_ARCH" "$OUTPUT.tar.xz"
89-
f_svdrpsend_msgt "$LOG_ARCH wurde nach $OUTPUT.tar.xz kopiert"
89+
f_dbus_send_message "$LOG_ARCH wurde nach $OUTPUT.tar.xz kopiert"
9090
f_logger -s "$LOG_ARCH wurde nach $OUTPUT.tar.xz kopiert"
9191
fi

local/sbin/dvbapi_unknown.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ if [[ "$(pidof syslog-ng)" ]] ; then # Syslog-NG läuft
108108
MESG="%>> 'DVBAPI Read Unknown Command' entdeckt! (${LOGNUM}) <<"
109109

110110
# Meldung am VDR
111-
f_svdrpsend_msgt "$MESG"
111+
f_dbus_send_message "$MESG"
112112
[[ $LOGNUM -gt 3 ]] && continue # Weiter
113113

114114
# Beim 2. mal VDR neu starten und Flag setzen

local/sbin/vdsb.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ if pidof "$logdaemon" >/dev/null ; then # rsyslog läuft (yaVDR)
104104
[[ $DIFF -gt $(( 30 * 60 )) ]] && LOGNUM=0 # Älter als 30 Minuten -> Bei 0 beginnen
105105
((LOGNUM+=1)) # Zähler um 1 erhöhen
106106
if [[ $LOGNUM -lt 5 || $DIFF -ge $(( 5 * 60 )) ]] ; then # Ab 5 nur ein mal pro 5 Minuten
107-
f_svdrpsend_msgt "%>> VDSB entdeckt! (${LOGNUM}) <<" # Meldung am VDR
107+
f_dbus_send_message "%>> VDSB entdeckt! (${LOGNUM}) <<" # Meldung am VDR
108108
LAST_MSG="$SECONDS"
109109
fi
110110

local/sbin/vdsb_metalog.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ else # Metalog?
273273
fi
274274

275275
# Meldung am VDR
276-
f_svdrpsend_msgt "$MESG"
276+
f_dbus_send_message "$MESG"
277277
# [[ $LOGNUM -gt 3 || $RINGBUFFER -gt 2 ]] && f_cleanup
278278

279279
echo "$0 - $1 - $2 - $3" > "$TMP_DIR/info.txt"

local/sbin/vdsb_timer.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ if [ "${1^^}" == "TEST" ] ; then
6262
fi
6363

6464
# Meldung am VDR
65-
#f_svdrpsend_msgt "$MESG"
65+
#f_dbus_send_message "$MESG"
6666
#[ $LOGNUM -gt 3 ] && cleanup # Ende
6767

6868
# Laufende Aufzeichnungen und Timer

0 commit comments

Comments
 (0)