summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorMartin Schirrmacher <vdr.skinflatplus@schirrmacher.eu>2017-05-06 15:09:28 +0200
committerMartin Schirrmacher <vdr.skinflatplus@schirrmacher.eu>2017-05-06 15:09:28 +0200
commitf11dd9525be2ea461fc9a3bb93d0410f84b97a7b (patch)
treebdee6e79afa6daa50dde6347584802aa833dec4a /contrib
parentcd60fe82b3c0dd03b92b10cdc3135a0ef57f835a (diff)
downloadskin-flatplus-f11dd9525be2ea461fc9a3bb93d0410f84b97a7b.tar.gz
skin-flatplus-f11dd9525be2ea461fc9a3bb93d0410f84b97a7b.tar.bz2
update MV-Themes
Diffstat (limited to 'contrib')
-rw-r--r--contrib/MV_switch_channellogo.conf22
-rwxr-xr-xcontrib/MV_switch_channellogo.sh107
-rwxr-xr-xcontrib/flatPlus_MV_Update.sh104
3 files changed, 178 insertions, 55 deletions
diff --git a/contrib/MV_switch_channellogo.conf b/contrib/MV_switch_channellogo.conf
new file mode 100644
index 00000000..36a6251a
--- /dev/null
+++ b/contrib/MV_switch_channellogo.conf
@@ -0,0 +1,22 @@
+# Kofigurationsdatei für MV_switch_channellogo.sh
+
+# Pro Zeile ein Kanal/Logo/Zeit
+# Trennzeichen ist "|"
+# Kanalname|alternatives Logo ohne .png|Zeit in der das alternative Logo aktiv sein soll
+
+# Beispiel: kanal 1|mein logo|06:00-15:00
+
+### Astra 19,2° Ost
+
+# Comedy Central (17:00-6:00). Default Logo ist VIVA (06:00-17:00)
+Comedy Central/VIVA|Comedy Central Germany|17:00-06:00
+
+# Nickelodeon HD (06:00-21:00). Alternativ nicknight HD (21:00-06:00)
+Nickelodeon HD|Nicknight HD|21:00-06:00
+#Nickelodeon|Nicknight|21:00-06:00
+
+### Eurobird 9° Ost
+
+# Paket: Basis 1: Comedy Central HD (17:00-6:00). Default Logo ist VIVA HD (06:00-17:00)
+VIVA/Comedy Central HD|Comedy Central HD|17:00-06:00
+
diff --git a/contrib/MV_switch_channellogo.sh b/contrib/MV_switch_channellogo.sh
new file mode 100755
index 00000000..d2f22915
--- /dev/null
+++ b/contrib/MV_switch_channellogo.sh
@@ -0,0 +1,107 @@
+#!/bin/bash
+
+# MV_switch_channellogo.sh
+# Helferskript für das Skin flatPlus!
+# Zweck ist, dass Kanallogos abhängig von der Uhrzeit getauscht werden, um z. B.
+# bei "Comedy Central/VIVA" Immer das passende Logo anzuzeigen
+# Starten beim VDR-Start und per cron.hourly!
+VERSION=170214
+
+# --- Variablen
+LOGO_DIR='/etc/vdr/plugins/skinflatplus/logos' # Pfad zu den Kanallogos
+ALT_LOGO_DIR="$LOGO_DIR" # Pfad zu den alternativen Kanallogos
+SVDRPSEND='svdrpsend' # VDR's svdrpsend
+SELF="$(readlink /proc/$$/fd/255)" || SELF="$0" # Eigener Pfad (besseres $0)
+SELF_NAME="${SELF##*/}" # skript.sh
+LOGFILE="/var/log/${SELF_NAME%.*}.log" # Log-Datei
+MAXLOGSIZE=$((1024*50)) # Log-Datei: Maximale Größe in Byte
+NOW="$(date +%s)" # Aktuelle Zeit in Sekunden
+DAY_START="$(date +%s --date="0:00")" # 0 Uhr
+
+# --- Funktionen
+f_log() { # Gibt die Meldung auf der Konsole und im Syslog aus
+ logger -s -t "$SELF_NAME" "$*"
+ [[ -n "$LOGFILE" ]] && echo "$(date +'%d.%m.%Y %R') [$$] $*" >> "$LOGFILE" # Log in Datei
+}
+
+f_change_logo() { # Logo anpassen
+ local LOGO_SRC="${1,,}" LOGO_DST="${2,,}" RLFC
+ [[ $# -lt 1 ]] && return 1 # Benötigt mindestens ein Logo als Parameter
+ # f_log "f_log [$1] - [${2:-LEER}]" # DEBUG
+ if [[ $# -eq 1 ]] ; then # Ein Logo = Original Logo aktivieren
+ if [[ -e "${LOGO_DIR}/${LOGO_SRC}.png.org" ]] ; then
+ f_log "Aktiviere original Logo ($1)"
+ mv --force "${LOGO_DIR}/${LOGO_SRC}.png.org" "${LOGO_DIR}/${LOGO_SRC}.png"
+ RLFC=1 # Altes Logo aus Cache entfernen
+ fi
+ else # Alternatives Logo ($2 nicht leer)
+ if [[ ! -e "${LOGO_DIR}/${LOGO_SRC}.png.org" ]] ; then
+ f_log "Aktiviere alternatives Logo ($1 -> $2) [${CONF[2]:0:11}]"
+ cp --force --preserve "${LOGO_DIR}/${LOGO_SRC}.png" "${LOGO_DIR}/${LOGO_SRC}.png.org" # Sichern
+ cp --force --preserve "${ALT_LOGO_DIR}/${LOGO_DST}.png" "${LOGO_DIR}/${LOGO_SRC}.png" # Alternative
+ RLFC=1 # Altes Logo aus Cache entfernen
+ fi
+ fi
+ # Aus dem Changelog von flatPlus
+ # Use svdrp command "RLFC" to remove a logo from cache. Specify logo filename with extension, but without path.
+ # For example: svdrpsend PLUG skinflatplus RLFC "rtl ii.png"
+ if [[ -n "$RLFC" ]] ; then
+ LOGO_SRC="${LOGO_SRC##*/}" # Falls ein "/" enthalten ist nur den letzten Teil verwenden. Bsp.: comedy central/viva -> viva
+ "$SVDRPSEND" PLUG skinflatplus RLFC "${LOGO_SRC}.png" >/dev/null # Altes Logo aus Cache entfernen
+ fi
+}
+
+# --- Start
+# Suche Konfig im aktuellen Verzeichnis, im Verzeichnis des Skripts und im eigenen etc
+CONFIG_DIRS=("." "${SELF%/*}" "${HOME}/etc") ; CONFIG_NAME="${SELF_NAME%.*}.conf"
+for dir in "${CONFIG_DIRS[@]}" ; do
+ CONFIG="${dir}/${CONFIG_NAME}"
+ if [[ -f "$CONFIG" ]] ; then
+ mapfile -t < "$CONFIG" # Konfiguration einlesen
+ CONFLOADED=1
+ break # Die erste gefundene Konfiguration wird verwendet
+ fi
+done
+
+if [[ -z "$CONFLOADED" ]] ; then # Konfiguration wurde nicht gefunden
+ echo -e "\e[1;41m FEHLER \e[0;1m Keine Konfigurationsdatei gefunden!\e[0m (\"${CONFIG_DIRS[*]}\")"
+ exit 1
+fi
+
+# NOW=$(date +%s --date="01:00") ; echo "$NOW" # Test
+
+# Auswerten der Konfiguration
+for i in "${!MAPFILE[@]}" ; do # Kanal|Alternative|Zeit
+ if [[ "${MAPFILE[$i]:0:1}" == "#" || "${#MAPFILE[$i]}" -eq 0 ]] ; then
+ unset -v 'MAPFILE[$i]' # Zeile aus der Liste entfernen!
+ continue # weiter
+ fi
+ IFS='|' ; CONF=(${MAPFILE[$i]}) ; unset -v 'IFS' # Zeile in Array
+ [[ ${#CONF[2]} -lt 11 ]] && { echo "Zeitangabe für ${CONF[0]} fehlerhaft! (${CONF[2]]})"
+ continue ;}
+ # echo "Kanal: ${CONF[0]} Alternative: ${CONF[1]} Zeit: ${CONF[2]}"
+ ST="${CONF[2]:0:5}" ; ET="${CONF[2]:6:5}" # Bsp.: 00:01-12:30
+ START="$(date +%s --date="$ST")" ; END="$(date +%s --date="$ET")"
+ [[ $END -eq $DAY_START ]] && ((END+=60*60*24)) # 24 Stunden dazu (86400)
+ if [[ $END -lt $START ]] ; then # Bsp.: 20:00-06:00 (Ende am nächsten Tag)
+ [[ $NOW -gt $START || $NOW -lt $END ]] && ALTLOGO=1
+ else # Bsp.: 06:00-20:00 (Ende am gleichen Tag)
+ [[ $NOW -gt $START && $NOW -lt $END ]] && ALTLOGO=1
+ fi
+ # echo "${CONF[0]} - Zeitspanne: $ST bis $ET [ALT=${ALTLOGO:-0}] ($START $END)"
+ if [[ $ALTLOGO -eq 1 ]] ; then
+ # echo "Zwischen $ST und $ET [ALT=${ALTLOGO}] ($START $END)"
+ f_change_logo "${CONF[0]}" "${CONF[1]}" # Alternatives Logo
+ else
+ # echo "Ausserhalb $ST und $ET [ALT=${ALTLOGO}] ($START $END)"
+ f_change_logo "${CONF[0]}" # Original Logo
+ fi
+ unset -v 'ALTLOGO'
+done
+
+if [[ -e "$LOGFILE" ]] ; then # Log-Datei umbenennen, wenn zu groß
+ FILESIZE="$(stat -c %s "$LOGFILE")"
+ [[ $FILESIZE -gt $MAXLOGSIZE ]] && mv --force "$LOGFILE" "${LOGFILE}.old"
+fi
+
+exit 0 # Ende
diff --git a/contrib/flatPlus_MV_Update.sh b/contrib/flatPlus_MV_Update.sh
index a35ea980..262e5910 100755
--- a/contrib/flatPlus_MV_Update.sh
+++ b/contrib/flatPlus_MV_Update.sh
@@ -2,86 +2,81 @@
# flatPlus_MV_Update.sh
# Skript zum Updaten der MV-Themen
+VERSION=170319
# Ordner und Dateien
-ICONS="icons" ; THEMES="themes" ; DECORS="decors" ; CONFIGS="configs"
-PREVIEWS="previews" ; INFO="MV_Themes.INFO" ; HIST="MV_Themes.HISTORY"
+ICONS='icons' ; THEMES='themes' ; DECORS='decors' ; CONFIGS='configs'
+PREVIEWS='previews' ; INFO='MV_Themes.INFO' ; HIST='MV_Themes.HISTORY'
# Ordner für Direktupdate (Im aktuellem Filesystem); Beispiel für Gen2VDR
-THEMEDIR="/etc/vdr/themes"
-PLUGINDIR="/etc/vdr/plugins/skinflatplus"
+THEMEDIR='/etc/vdr/themes'
+PLUGINDIR='/etc/vdr/plugins/skinflatplus'
ICONDIR="${PLUGINDIR}/icons"
DECORDIR="${PLUGINDIR}/decors"
CONFIGSDIR="${PLUGINDIR}/configs"
PREVIEWDIR="${PLUGINDIR}/previews"
-timedout_read() {
- timeout="$1" ; varname="$2" ; old_tty_settings="$(stty -g)"
- stty -icanon min 0 time "${timeout}0"
- read "$varname"
- stty "$old_tty_settings" # See man page for "stty."
-}
+LN='-------------------------------'
-_help() {
- echo "-------------------------------"
+f_help() {
+ echo "$LN"
echo "Falsche(r) Parameter: $*"
echo "Aufruf mit ${0##*/}"
- echo "Parameter -Silent Keine Abfragen (Silent Update)."
- echo "Parameter -Direct Direktes Update der Daten im Filesysten (/etc/vdr)."
- echo " !!! Speziell für Gen2VDR angepasst !!!"
+ echo 'Parameter -Silent Keine Abfragen (Silent Update).'
+ echo 'Parameter -Direct Direktes Update der Daten im Filesysten (/etc/vdr).'
+ echo ' !!! Speziell für Gen2VDR angepasst !!!'
exit
}
-### Start
+
+# --- Start ---
# In Skriptordner wechseln (contrib)
cd "$(dirname "$0")" # Skript im contrib-Ordner
-if [[ ! -d "../$ICONS" || ! -d "../$THEMES" || ! -d "../$DECORS" ]] ; then
- echo "Falsches Verzeichnis! Skript muss im ./contrib-Ordner ausgeführt werden"
+if [[ ! -d "../${ICONS}" || ! -d "../${THEMES}" || ! -d "../${DECORS}" ]] ; then
+ echo 'Falsches Verzeichnis! Skript muss im ./contrib-Ordner ausgeführt werden'
exit 1
fi
if [[ -n "$1" ]] ; then # Parameter wurde übergeben
- case $1 in
+ case "$1" in
-Silent) SILENTUPDATE=1 ; echo "Silent Update! ($1)" ;;
- -Direct) DIRECTUPDATE=1 ; echo "Direct Update! ($1)" ; unset -v SILENTUPDATE ;;
- *) _help "$@"
+ -Direct) DIRECTUPDATE=1 ; echo "Direct Update! ($1)" ; unset -v 'SILENTUPDATE' ;;
+ *) f_help "$@" ;;
esac
fi
# MV_Themes Löschen!
if [[ -z "$SILENTUPDATE" ]] ; then
- echo "-------------------------------"
- [[ -n "$DIRECTUPDATE" ]] && echo "ACHTUNG: Dateien in /etc werden gelöscht!"
- echo "MV_Themen löschen? (J/n)"
- timedout_read 5 TASTE
+ echo "$LN"
+ [[ -n "$DIRECTUPDATE" ]] && echo 'ACHTUNG: MV_Themen in /etc werden gelöscht!'
+ read -p 'MV_Themen löschen? (J/n)' -t 5 TASTE
if [[ "${TASTE^^}" == "N" ]] ; then
- echo "Skript abgebrochen. Es wurde nichts gelöscht!"
+ echo 'Skript abgebrochen. Es wurde nichts gelöscht!'
exit
fi
fi
if [[ -n "$DIRECTUPDATE" ]] ; then # Löschen im Dateisystem (/etc)
- [[ -d "$ICONDIR" ]] && rm -rf ${ICONDIR}/MV*
- [[ -d "$THEMEDIR" ]] && rm -f ${THEMEDIR}/flatPlus-MV*
- [[ -d "$DECORDIR" ]] && rm -f ${DECORDIR}/*MV*
- [[ -d "$CONFIGSDIR" ]] && rm -f ${CONFIGSDIR}/*MV*
- [[ -d "$PREVIEWDIR" ]] && rm -f ${PREVIEWDIR}/*MV*
+ [[ -d "$ICONDIR" ]] && rm -rf "${ICONDIR}"/MV*
+ [[ -d "$THEMEDIR" ]] && rm -f "${THEMEDIR}"/flatPlus-MV*
+ [[ -d "$DECORDIR" ]] && rm -f "${DECORDIR}"/*MV*
+ [[ -d "$CONFIGSDIR" ]] && rm -f "${CONFIGSDIR}"/*MV*
+ [[ -d "$PREVIEWDIR" ]] && rm -f "${PREVIEWDIR}"/*MV*
else # Löschen im Source-Dir von skinflatPlus
- rm -rf ../${ICONS}/MV*
- rm -f ../${THEMES}/flatPlus-MV*
- rm -f ../${DECORS}/*MV*
- rm -f ../${INFO} ../${HIST}
- rm -f ../${CONFIGSDIR}/*MV*
- rm -f ../${PREVIEWDIR}/*MV*
+ rm -rf ../"${ICONS}"/MV*
+ rm -f ../"${THEMES}"/flatPlus-MV*
+ rm -f ../"${DECORS}"/*MV*
+ rm -f ../"${INFO}" ../"${HIST}"
+ rm -f ../"${CONFIGS}"/*MV*
+ rm -f ../"${PREVIEWS}"/*MV*
fi
-echo "MV-Themen wurden entfernt."
+echo 'MV-Themen wurden entfernt.'
# MV_Themes neu laden
if [[ -z "$SILENTUPDATE" ]] ; then
- echo "-------------------------------"
- echo "MV_Themes neu herunterladen und entpacken? (J/n)"
- timedout_read 5 TASTE
+ echo "$LN"
+ read -p 'MV_Themes neu herunterladen und entpacken? (J/n)' -t 5 TASTE
[[ "${TASTE^^}" == "N" ]] && exit
fi
@@ -89,37 +84,36 @@ cd .. # In das Source-Verzeichnis von SkinFlatPlus
# Download
[[ -n "$DIRECTUPDATE" ]] && cd /tmp
-wget "https://dl.dropboxusercontent.com/u/1490505/VDR/skinflatplus/MV_Themes.tar.xz"
+wget "https://www.dropbox.com/s/c5mh4g2qonjs25r/MV_Themes.tar.xz"
tar -xJf MV_Themes.tar.xz # Entpacken
rm -f MV_Themes.tar.xz # Archiv entfernen
if [[ -n "$DIRECTUPDATE" ]] ; then
- cp -f ${THEMES}/flatPlus-MV* $THEMEDIR
- cp -f ${DECORS}/*MV* $DECORDIR
- cp -rf ${ICONS}/MV* $ICONDIR
- cp -f ${CONFIGS}/*MV* $CONFIGSDIR
- cp -f ${PREVIEWDIR}/*MV* $PREVIEWDIR
+ cp -f "${THEMES}"/flatPlus-MV* "$THEMEDIR"
+ cp -f "${DECORS}"/*MV* "$DECORDIR"
+ cp -rf "${ICONS}"/MV* "$ICONDIR"
+ cp -f "${CONFIGS}"/*MV* "$CONFIGSDIR"
+ cp -f "${PREVIEWS}"/*MV* "$PREVIEWDIR"
fi
-echo "-------------------------------"
-echo "MV-Themen wurden aktualisiert."
+echo "$LN"
+echo 'MV-Themen wurden aktualisiert.'
[[ -n "$DIRECTUPDATE" ]] && exit
if [[ -z "$SILENTUPDATE" ]] ; then
- echo "-------------------------------"
- echo "MV_Themen installieren (make install)? (j/N)"
- timedout_read 5 TASTE
+ echo "$LN"
+ read -p 'MV_Themen installieren (make install)? (j/N)' -t 5 TASTE
if [[ "${TASTE^^}" == "J" ]] ; then
#cd ..
make install
- echo "-------------------------------"
- echo "MV-Themen wurden installiert."
+ echo "$LN"
+ echo 'MV-Themen wurden installiert.'
fi
else # Silentupdate - Themen instalieren
make install
fi
-echo "-------------------------------"
+echo "$LN"
exit