#!/bin/bash # edit.sh if [[ "$page" == "edit-save" ]]; then "$set_var" "$dir/app/etc/Konfiguration.txt" "WORKDIR" "$WORKDIR" "$set_var" "$dir/app/etc/Konfiguration.txt" "DESTDIR" "$DESTDIR" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRkeydir" "$OTRkeydir" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRkeydeldir" "$OTRkeydeldir" "$set_var" "$dir/app/etc/Konfiguration.txt" "decoderactiv" "$decoderactiv" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRuser" "$OTRuser" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRpw" "$OTRpw" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRcutactiv" "$OTRcutactiv" "$set_var" "$dir/app/etc/Konfiguration.txt" "SMARTRENDERING" "$SMARTRENDERING" "$set_var" "$dir/app/etc/Konfiguration.txt" "WaitOfCutlist" "$WaitOfCutlist" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRlocalcutlistdir" "$OTRlocalcutlistdir" "$set_var" "$dir/app/etc/Konfiguration.txt" "FrameversatzAnfangCut" "$FrameversatzAnfangCut" "$set_var" "$dir/app/etc/Konfiguration.txt" "FrameversatzEndeCut" "$FrameversatzEndeCut" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRrenameactiv" "$OTRrenameactiv" "$set_var" "$dir/app/etc/Konfiguration.txt" "TVDBlang" "$TVDBlang" "$set_var" "$dir/app/etc/Konfiguration.txt" "TVDB_APIKEY" "$TVDB_APIKEY" "$set_var" "$dir/app/etc/Konfiguration.txt" "MOVIEDB_APIKEY" "$MOVIEDB_APIKEY" "$set_var" "$dir/app/etc/Konfiguration.txt" "NameSyntax" "$NameSyntax" "$set_var" "$dir/app/etc/Konfiguration.txt" "NameSyntaxSerientitel" "$NameSyntaxSerientitel" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRavi2mp4active" "$OTRavi2mp4active" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRaacqal" "$OTRaacqal" "$set_var" "$dir/app/etc/Konfiguration.txt" "normalizeAudio" "$normalizeAudio" "$set_var" "$dir/app/etc/Konfiguration.txt" "MP4BOX_DELAY" "$MP4BOX_DELAY" "$set_var" "$dir/app/etc/Konfiguration.txt" "dsmtextnotify" "$dsmtextnotify" "$set_var" "$dir/app/etc/Konfiguration.txt" "MessageTo" "$MessageTo" "$set_var" "$dir/app/etc/Konfiguration.txt" "dsmbeepnotify" "$dsmbeepnotify" "$set_var" "$dir/app/etc/Konfiguration.txt" "PBTOKEN" "$PBTOKEN" "$set_var" "$dir/app/etc/Konfiguration.txt" "LOGlevel" "$LOGlevel" "$set_var" "$dir/app/etc/Konfiguration.txt" "LOGmax" "$LOGmax" "$set_var" "$dir/app/etc/Konfiguration.txt" "endgueltigloeschen" "$endgueltigloeschen" "$set_var" "$dir/app/etc/Konfiguration.txt" "reindex" "$reindex" "$set_var" "$dir/app/etc/Konfiguration.txt" "cutlistat_ID" "$cutlistat_ID" "$set_var" "$dir/app/etc/Konfiguration.txt" "useallcutlistformat" "$useallcutlistformat" # "$set_var" "$dir/app/etc/Konfiguration.txt" "customizedConfig" "1" echo '
' echo '

Änderungen wurden gespeichert


' echo '


' echo '
' fi if [[ "$page" == "edit-import-query" ]] || [[ "$page" == "edit-import" ]]; then # echo '
' if [[ "$page" == "edit-import-query" ]]; then echo '

Sollen die aktuellen Einstellungen überschrieben werden (Datenbank bleibt erhalten)?

Um eine frühere Konfigurationsdatei zu importieren, lege zunächst in den Einstellungen das Arbeitsverzeichnist fest. Die zu importierende Konfigurationsdatei muss den Namen "Konfiguration.txt" haben und in das Arbeitsverzeichnis gelegt werden. Klicke dann auf weiter.

Weiter   Abbrechen

' >> "$stop" elif [[ "$page" == "edit-import" ]]; then if [ ! -z "$WORKDIR" ] && [ -d "$WORKDIR" ]; then # "$dir/importconfig.sh" "$WORKDIR" # echo '


Konfiguration wurde importiert.

' SOURCECONFIG="${WORKDIR%/}/Konfiguration.txt" if [ -f "$SOURCECONFIG" ] ; then source $SOURCECONFIG "$set_var" "$dir/app/etc/Konfiguration.txt" "WORKDIR" "$WORKDIR" "$set_var" "$dir/app/etc/Konfiguration.txt" "DESTDIR" "$DESTDIR" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRkeydir" "$OTRkeydir" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRkeydeldir" "$OTRkeydeldir" "$set_var" "$dir/app/etc/Konfiguration.txt" "decoderactiv" "$decoderactiv" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRuser" "$OTRuser" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRpw" "$OTRpw" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRcutactiv" "$OTRcutactiv" "$set_var" "$dir/app/etc/Konfiguration.txt" "SMARTRENDERING" "$SMARTRENDERING" "$set_var" "$dir/app/etc/Konfiguration.txt" "WaitOfCutlist" "$WaitOfCutlist" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRlocalcutlistdir" "$OTRlocalcutlistdir" "$set_var" "$dir/app/etc/Konfiguration.txt" "FrameversatzAnfangCut" "$FrameversatzAnfangCut" "$set_var" "$dir/app/etc/Konfiguration.txt" "FrameversatzEndeCut" "$FrameversatzEndeCut" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRrenameactiv" "$OTRrenameactiv" "$set_var" "$dir/app/etc/Konfiguration.txt" "TVDBlang" "$TVDBlang" "$set_var" "$dir/app/etc/Konfiguration.txt" "TVDB_APIKEY" "$TVDB_APIKEY" "$set_var" "$dir/app/etc/Konfiguration.txt" "MOVIEDB_APIKEY" "$MOVIEDB_APIKEY" "$set_var" "$dir/app/etc/Konfiguration.txt" "NameSyntax" "$NameSyntax" "$set_var" "$dir/app/etc/Konfiguration.txt" "NameSyntaxSerientitel" "$NameSyntaxSerientitel" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRavi2mp4active" "$OTRavi2mp4active" "$set_var" "$dir/app/etc/Konfiguration.txt" "OTRaacqal" "$OTRaacqal" "$set_var" "$dir/app/etc/Konfiguration.txt" "normalizeAudio" "$normalizeAudio" "$set_var" "$dir/app/etc/Konfiguration.txt" "MP4BOX_DELAY" "$MP4BOX_DELAY" "$set_var" "$dir/app/etc/Konfiguration.txt" "dsmtextnotify" "$dsmtextnotify" "$set_var" "$dir/app/etc/Konfiguration.txt" "MessageTo" "$MessageTo" "$set_var" "$dir/app/etc/Konfiguration.txt" "dsmbeepnotify" "$dsmbeepnotify" "$set_var" "$dir/app/etc/Konfiguration.txt" "PBTOKEN" "$PBTOKEN" "$set_var" "$dir/app/etc/Konfiguration.txt" "LOGlevel" "$LOGlevel" "$set_var" "$dir/app/etc/Konfiguration.txt" "LOGmax" "$LOGmax" "$set_var" "$dir/app/etc/Konfiguration.txt" "endgueltigloeschen" "$endgueltigloeschen" "$set_var" "$dir/app/etc/Konfiguration.txt" "reindex" "$reindex" "$set_var" "$dir/app/etc/Konfiguration.txt" "cutlistat_ID" "$cutlistat_ID" "$set_var" "$dir/app/etc/Konfiguration.txt" "useallcutlistformat" "$useallcutlistformat" # neue Konfiguration laden: source $dir/app/etc/Konfiguration.txt echo '

Die Konfiguration wurde importiert


' >> "$stop" else echo '

Die Quellkonfiguration konnte nicht im angegebenen Verzeichnis gefunden werden!

' >> "$stop" fi else echo '


Konfiguration konnte nicht importiert werden,
da kein korrektes Arbeitsverzeichnis in den Einstellungen definiert wurde!

' >> "$stop" fi echo '


' >> "$stop" fi fi if [[ "$page" == "edit-export" ]]; then echo '
' if [ ! -z "$WORKDIR" ] ; then cp "$dir/app/etc/Konfiguration.txt" "$WORKDIR/Konfiguration.txt" cp "$dir/app/etc/synOTR.sqlite" "$WORKDIR/synOTR.sqlite" echo '

Konfigurationsdatei und die synOTR-Datenbank
wurde in das Arbeitsverzeichnis gesichert.


' else echo '

Konfigurationsdatei und die synOTR-Datenbank
konnte nicht in das Arbeitsverzeichnis gesichert werden,
da kein Arbeitsverzeichnis in den Einstellungen definiert wurde!


' fi echo '


' echo '
' fi if [[ "$page" == "edit-restore-query" ]] || [[ "$page" == "edit-restore" ]]; then if [[ "$page" == "edit-restore-query" ]]; then echo '

Sollen die Werkseinstellungen geladen werden (Datenbank bleibt erhalten)?


Ja   Nein

' >> "$stop" elif [[ "$page" == "edit-restore" ]]; then if [ -f "$dir/app/etc/Konfiguration.txt" ]; then rm "$dir/app/etc/Konfiguration.txt" cp "$dir/usersettings/Konfiguration_org.txt" "$dir/app/etc/Konfiguration.txt" chmod 755 "$dir/app/etc/Konfiguration.txt" fi echo '

Werkseinstellungen wurden wiederhergestellt



' >> "$stop" fi fi if [[ "$page" == "edit" ]]; then # Dateiinhalt einlesen für Variablenverwertung if [ -f "$dir/app/etc/Konfiguration.txt" ]; then source "$dir/app/etc/Konfiguration.txt" fi echo '
synOTR Einstellungen
Trage hier deine Einstellungen ein und passe die Pfade an.
Hilfe für die einzelnen Felder erhältst du über das blaue Info-Symbol am rechten Rand.

Achte unbedingt darauf, die kompletten Pfade inkl. Volume (z.B. /volume1/…) einzutragen. Das sicherste ist, wenn du in der Filestation den gewünschten Ordner suchst und du dir über Rechtsklick die Eigenschaften anzeigen lässt. In diesem Dialog kannst du dir den korrekten Pfad kopieren.

' # -> Abschnitt Allgemein # Aufklappbar: echo '


Allgemein

' #ab hier steht der Text, der auf- und zugeklappt werden soll. # _ #

# WORKDIR echo '

' if [ -n "$WORKDIR" ]; then echo '' else echo '' fi echo ' Das Arbeitsverzeichnis ist zunächst einmal optional, ist aber sehr zu empfehlen. Z.B. werden bei aktivierter MP4-Konvertierung alle avi-Dateien im Arbeitsverzeichnis konvertiert. Setzt man kein spezielles Arbeitsverzeichnis ein, so ist das Zielverzeichnis das Arbeitsverzeichnis und alle darin enthaltenen avi-Dateien werden konviertiert!

(wird ggf. erstellt)

' # DESTDIR echo '

' if [ -n "$DESTDIR" ]; then echo '' else echo '' fi echo ' Ausgabeverzeichnis der fertigen Filme

' # OTRkeydir echo '

' if [ -n "$OTRkeydir" ]; then echo '' else echo '' fi echo ' Verzeichnis mit den OTRKEY-Dateien

' # OTRkeydeldir echo '

' if [ -n "$OTRkeydeldir" ]; then echo '' else echo '' fi echo ' Löschverzeichnis der Quelldateien

! ! ! ACHTUNG ! ! !
gleichnamige vorhandene Dateien in dem Verzeichnis werden überschrieben

' # endgueltigloeschen echo '

ein => alle Quelldateien endgültig löschen
aus => Papierkorb verwenden (Pfad siehe oben)

' echo '

' # -> Abschnitt Decoder: echo '


Decodieren

' # decoderactiv echo '

ein => decodieren aktiv
aus => decodieren inaktiv

' # OTRuser echo '

' if [ -n "$OTRuser" ]; then echo '' else echo '' fi echo '

' # OTRpw echo '

' if [ -n "$OTRpw" ]; then echo '' else echo '' fi echo '

' # -> Abschnitt .avi's schneiden echo '


Filme schneiden

' # OTRcutactiv echo '

ein => schneiden aktiv
aus => schneiden inaktiv

' # SMARTRENDERING echo '

Für das Schneiden an Keyframes wird avisplit/avimerge aus Transcode verwendet. Diese Art geht sehr schnell (fast wie das Kopieren der Dateien auf der Festplatte). Der Nachteil ist, dass die Schnittübergänge um mehrere Sekunden ungenau sind und nur avi-Quelldateien scheidbar sind.

Smartrendering: Für das framegenaue Schneiden wird das Programm avcut verwendet. Avcut schneidet im Gegensatz zu avisplit framegenau, allerdings ergeben sich daraus erhöhte Anforderungen an die CPU und RAM (min. installiert: 1GB für HD-Aufnahmen und 500MB für HQ-Aufnahmen). Framegenaue Schnitte sind zeitintensiv.

ACHTUNG: mit avcut geschnittene Filme werden derzeit sehr asynchron. Die Option der Konvertierung zu MP4 löst das Problem!

' # WaitOfCutlist echo '

ein => Film wartet so lange im Arbeitsverzeichnis, bis eine passende Cutlist verfügbar ist
aus => der Film wird ohne warten weiterverarbeitet

' # alternativeCutlist # useallcutlistformat echo '

Es können auch Cutlits für andere Qualitäten gefunden werden (z.B. wird für einen HD-Film, für den es keine Cutlist gibt, die entsprechende Cutlist des HQ-Formats verwendet).

Es können derzeit nur alternative Cutlits mit zeitbasierten Schnitten verwendet werden. Die Schnitte können allerdings ungenau werden. Daher ist eine objektive Bewertung schlecht möglich weshalb die Cuts nicht über die persönliche Benutzer-ID geladen werden - sie erscheinen daher auch nicht im Benutzerkonto von cutlist.at

' # OTRlocalcutlistdir echo '

' if [ -n "$OTRlocalcutlistdir" ]; then echo '' else echo '' fi echo ' optionaler Ordner für lokale Cutlists
(lokale Cutlists müssen generell den kompletten Dateinamen des Films mit zusätzlicher Dateiendung .cutlist haben)
Standardmäßig werden lokalen Cutlist im Download- sowie im Dekodierordner gesucht und ungeprüft (d.h. auch wenn Error wie z.B. missing Ende enthalten sind) verwendet.

=> Cutlists in diesem Pfad werden geprüft und müssen daher direkt zum Film passen und dürfen keine Error definiert haben.

Bei Nichtnutzung leer lassen

' # OTRcutlistserver-ID echo '

' if [ -n "$cutlistat_ID" ]; then echo '' else echo '' fi echo ' Bitte registriert euch bei Cutlist.at und tragt hier die 64 Zeichen lange ID ein (ohne http://cutlist.at/ und ohne abschließenden Slash).
Eure geladenen Cutlists werden in eurem persönlichen Bereich auf cutlist.at aufgelistet. Bitte bewertet sie dort.

Bei Nichtnutzung leer lassen

' # FrameversatzAnfangCut echo '

' if [ -n "$FrameversatzAnfangCut" ]; then echo '' else echo '' fi echo ' Frameversatz, um Cuts manuell zu justieren (positive Werte verschieben jeden Cut nach hinten, negative nach vorn)

=> dieser Wert verschiebt den Beginn der gewünschten Filmteile beim framegenauen Schneiden

(greift nur in Verbindung mit Smartrendering)

' # FrameversatzEndeCut echo '

' if [ -n "$FrameversatzEndeCut" ]; then echo '' else echo '' fi echo ' Frameversatz, um Cuts manuell zu justieren (positive Werte verschieben jeden Cut nach hinten, negative nach vorn)

=> dieser Wert verschiebt das Ende der gewünschten Filmteile beim framegenauen Schneiden

(greift nur in Verbindung mit Smartrendering)

' # -> Abschnitt .avi's / .mp4's umbenennen echo '


Filme umbenennen

folgende Parameter stehen für die Umbenennung zur Verfügung:

Parameter aus Dateinamen:
- §dur (Filmlänge [EPG] - Filmlänge laut EPG / inkl. Werbeblöcke)
- §tit (Titel)
- §ylong (Jahr [4stellig])
- §yshort (Jahr [2stellig])
- §mon (Monat)
- §day (Tag)
- §hou (Stunde)
- §min (Minute)
- §cha (Sender)
- §qua (Qualtität / Format)

Parameter für Serientitel:
- §sertit (Serientitel)
- §epitit (Episodentitel)
- §sta (Staffel [2stellig])
- §epi (Episode [2stellig])

technische Parameter:
- §fps (Framerate)
- §redur (Filmlänge [real])
- §height (Auflösung Höhe)
- §width (Auflösung Breite)
- §asra (Seitenverhältnis)
- §acod (Audiocodec)
- §vcod (Videocodec)
- §ac01 (AC3 vorhanden - Tonspur in AC3 ja ==> " AC3" sonst ==> "")


' # OTRrenameactiv echo '

ein => umbenennen aktiv
aus => umbenennen inaktiv

' # TVDBlang echo '

' if [ -n "$TVDBlang" ]; then echo '' else echo '' fi echo ' Sprache (Ländercode), in welcher nach Serien auf theTVDB.com gesucht werden soll

' # TVDB_APIKEY echo '

' if [ -n "$TVDB_APIKEY" ]; then echo '' else echo '' fi echo ' Falls du einen eigenen API-Key von thetvdb.com nutzen möchtest, kannst du ihn hier hinterlegen

' # MOVIEDB_APIKEY # echo ' #

# ' # if [ -n "$MOVIEDB_APIKEY" ]; then # echo '' # else # echo '' # fi # echo ' # Falls du einen eigenen API-Key von moviedb.com nutzen möchtest, kannst du ihn hier hinterlegen #

' # NameSyntax echo '

' if [ -n "$NameSyntax" ]; then echo '' else echo '' fi echo ' "Name-Syntax" beschreibt den zukünftigen Dateinamen indem du die verfügbaren Parameter als Platzhalter wie gewünscht zusammenstellst. Des weiteren kannst du beliebigen Text hinzufügen (Sonderzeichen können zu unvorhergesehen Verhalten führen und sollten möglichst vermieden werden)

Ein Beispiel:
aus
"Die_Sendung_14.11.21_22-40_orf3_30_TVOON_DE.mpg.HQ.avi"
wird mit der Syntax
"§tit [§ylong-§mon-§day §hou-§min §cha §heightp §redurmin §ac01] autocut"
der Zieldateiname
"Die Sendung [2014-11-21 22-40 ORF3 576p 24min] autocut.avi"

Standardvorgabe ist videostationkonform
Info VideoStation: https://www.synology.com/de-de/knowledgebase/DSM/help/VideoStation/category
Info Plex: https://forums.plex.tv/discussion/135388/anleitung-deutsche-filmtitel-und-bessere-beschreibung-2

' # NameSyntaxSerientitel echo '

' if [ -n "$NameSyntaxSerientitel" ]; then echo '' else echo '' fi echo ' gleicher Aufbau wie "Name-Syntax".
Wird eine Serie erkannt, so wird der Titel (§tit) durch die hier eingetragene Syntax ersetzt.

' # -> Abschnitt .avi's in native MP4's umwandeln echo '


AVI-Filme in native MP4-Filme umwandeln

' # OTRavi2mp4active echo '

ein => konvertieren aktiv
aus => konvertieren inaktiv

' # OTRaacqal echo '

' if [ -n "$OTRaacqal" ]; then echo '' else echo '' fi echo ' Ziel-Bitrate der aac-Audiospur (80k also 80 kbit/s)
AC3 bleibt unverändert

' # normalizeAudio echo '

Normalisierung der Audiospur (ja / nein)
nur in Verbindung mit avi2mp4-Konvertierung bei mp3-Quellspur

' # MP4BOX_DELAY echo '

' if [ -n "$MP4BOX_DELAY" ]; then echo '' else echo '' fi echo ' in Millisekunden
Feinabstimmung für den Audio-Video-Sync
Positive Werte verzögern den Ton; negative Werte verzögern das Bild

' # -> Abschnitt DSM-Benachrichtigung und sonstige Einstellungen echo '


DSM-Benachrichtigung und sonstige Einstellungen

' # dsmtextnotify echo '

ein => Benachrichtigung per Text aktiv im Benachrichtigungszentrum
aus => keine Textbenachrichtigung

' # MessageTo echo '

' if [ -n "$MessageTo" ]; then echo '' else echo '' fi echo ' User, an den die Benachrichtigungen gesendet werden.
Auf diese Art kann man sich in Verbindung mit dem Paket "Notification Forwarder" über synOTR-Ereignisse z.B. über einen Pushdienst benachrichtigen lassen.
Bleibt der Wert leer, so wird die Gruppe "administrators" benachrichtigt.

' # PushBullet-Token echo '

' if [ -n "$PBTOKEN" ]; then echo '' else echo '' fi echo ' Dein persönlicher PushBullet-Token.
Benachrichtigungen werden an den entsprechenden Account gesendet.
Bei Nichtgebrauch leer lassen.

' # dsmbeepnotify echo '

Ein kurzer Piep, sobald ein Film fertig bearbeitet wurde.

' # LOGlevel echo '

0 => es wird keine Log-Datei erstellt
1 => normales Log (standard)
2 => erweitertes Log
Die Logs befinden sich im Dekodierverzeichnis/_LOGsynOTR/

' # LOGmax echo '

' if [ -n "$LOGmax" ]; then echo '' else echo '' fi echo ' LOG-Files können automatisch gelöscht werden, indem hier die maximal gewünschte Anzahl angegeben wird.
Sobald hier ein Wert vergeben wird, werden grundsätzlich alle leeren LOGs gelöscht.
(Die Anzahl bezieht sich also nur auf LOGs mit Einträgen)

' # reindex echo '

Gelöschte Filme bleiben teilweise noch länger im Videostationindex. Hier kann eingestellt werden, ob nach dem 1. Programmlauf des Tages (also in der Regel nachts) der Index der Videostation neu aufgebaut werden soll.

(angepasste Videoinformationen gehen dabei nicht verloren - nur der Dateiindex wird aktualisiert)

' echo '



' echo '
' fi