Hallo zusammen,
nachdem ich im Ultimativen Plugin-Thread auf das NASsync-Plugin von gutemine gestoßen bin und es bei mir nicht wirklich funktioniert hat, habe ich mich dazu entschlossen das Plugin von Grund auf neu zu schreiben - es wird ja von gutemine schon mehrere Jahre nicht mehr weiter entwickelt. Es ist mein erstes Plugin, deswegen bitte ich um Nachsicht, was die Implementierung der ein oder anderen Funktion angeht. Für Anregungen, was besser programmiert werden kann oder welche Funktionen es noch geben sollte, bin ich offen!
In der Version 0.1 gibt es zunächst nur den Modus "sync". Hierbei werden alle Dateien vom Verzeichnis MOVIE in das Verzeichnis NAS kopiert, die *.ts-Dateien in MOVIE gelöscht und Symlinks auf die Kopien in NAS erzeugt. Die Filme erscheinen so nach wie vor in MOVIE und können in der MovieList bzw. EMC angezeigt und abgespielt werden wie vorher. Die beiden Verzeichnisse könnt ihr frei wählen. Das Plugin taugt also auch dazu, auf eine externe HDD zu synchronisieren. Im Vergleich zur Ur-Version von gutemine kann mein Script auch mit Umlauten und Sonderzeichen in Filmtiteln umgehen.
Voraussetzungen:
(Noch) nicht unterstützt:
"Installation":
Einfach die angehängte sh-Datei irgendwohin auf eure Box kopieren und über Telnet mit chmod 755 sync2nas.sh ausführbar machen. Wenn man das Script in /usr/bin ablegt, kann man es aus jedem Ordner mit sync2nas.sh aufrufen - etwas bequemer, so lange das Plugin nur über die Konsole nutzbar ist. Vor der ersten Benutzung müssen noch drei Pfadangaben im Script angepasst werden. Dies könnt ihr entweder vor dem Kopieren auf die Box mit einem unix-komformen Editor oder direkt auf der Box über die Konsole machen. Direkt am Anfang des Scripts findet ihr die User Settings mit den Pfadangaben.
Alles anzeigen
Außerdem solltet ihr euch vergewissern, ob bash auf eurer Box installiert ist:
Ist dies nicht der Fall:
Anwendung:
Das Script ist momentan nur über die Konsole nutzbar, eine graphische Oberfläche wird es aber auch geben - sobald ich mich in Python genug auskenne :crazy4:.
An dieser Stelle muss ich in diesem frühen Entwickungsstadium noch den Hinweis geben, dass die Benutzung auf eigene Gefahr geschieht. Ich selbst nutze das Script aktiv und bis jetzt ist alles gut gegangen. Ich kann jedoch keine Garantie geben, dass es in anderen Umgebungen ebenso keine Probleme gibt. Am besten, ihr kopiert euch ein paar Filme zum Testen in ein extra Verzeichnis und schaut erstmal, was dabei raus kommt
Das Script kann momentan mit folgenden Parametern aufgerufen werden:
Zeigt die aktuelle Version des Scripts.
Zeigt Informationen zur Verwendung des Scripts.
Das ist der hauptsächliche Verwendungszweck von Sync2NAS. Hier gibt es noch drei optionale Parameter, welche die Richtung der Synchronisierung bestimmen.
So viel erstmal hierzu...ich freue mich auf Rückmeldungen und konstruktive Kritik und hoffe, dass sich ein paar wagemutige finden, die das Script testen möchten
Viele Grüße
Longahr
nachdem ich im Ultimativen Plugin-Thread auf das NASsync-Plugin von gutemine gestoßen bin und es bei mir nicht wirklich funktioniert hat, habe ich mich dazu entschlossen das Plugin von Grund auf neu zu schreiben - es wird ja von gutemine schon mehrere Jahre nicht mehr weiter entwickelt. Es ist mein erstes Plugin, deswegen bitte ich um Nachsicht, was die Implementierung der ein oder anderen Funktion angeht. Für Anregungen, was besser programmiert werden kann oder welche Funktionen es noch geben sollte, bin ich offen!
In der Version 0.1 gibt es zunächst nur den Modus "sync". Hierbei werden alle Dateien vom Verzeichnis MOVIE in das Verzeichnis NAS kopiert, die *.ts-Dateien in MOVIE gelöscht und Symlinks auf die Kopien in NAS erzeugt. Die Filme erscheinen so nach wie vor in MOVIE und können in der MovieList bzw. EMC angezeigt und abgespielt werden wie vorher. Die beiden Verzeichnisse könnt ihr frei wählen. Das Plugin taugt also auch dazu, auf eine externe HDD zu synchronisieren. Im Vergleich zur Ur-Version von gutemine kann mein Script auch mit Umlauten und Sonderzeichen in Filmtiteln umgehen.
Voraussetzungen:
- Einbindung des NAS als NFS-Freigabe (bei Verwendung einer CIFS-Freigabe werden die Dateigrößen nicht korrekt zurückgemeldet, war zumindest bei mir so)
- Ausreichend schnelle Netzwerkverbindung zwischen STB und NAS, da die Filme aufs NAS verschoben und dann auch von dort abgespielt werden
- In diesem frühen Stadium des Scripts sind gute Kenntnisse von sh/bash sehr von Vorteil, da alles über die Shell läuft (Visualisierung kommt auch irgendwann)
- Paket bash muss installiert sein
(Noch) nicht unterstützt:
- Unterverzeichnisse (in Planung)
"Installation":
Einfach die angehängte sh-Datei irgendwohin auf eure Box kopieren und über Telnet mit chmod 755 sync2nas.sh ausführbar machen. Wenn man das Script in /usr/bin ablegt, kann man es aus jedem Ordner mit sync2nas.sh aufrufen - etwas bequemer, so lange das Plugin nur über die Konsole nutzbar ist. Vor der ersten Benutzung müssen noch drei Pfadangaben im Script angepasst werden. Dies könnt ihr entweder vor dem Kopieren auf die Box mit einem unix-komformen Editor oder direkt auf der Box über die Konsole machen. Direkt am Anfang des Scripts findet ihr die User Settings mit den Pfadangaben.
- MOVIE: euer Aufnahmeverzeichnis
- NAS: der Mountpoint, auf den euer NAS gemountet ist
- LOGDIR: das Verzeichnis, in dem das Logfile angelegt werden soll
Quellcode
- ########################################################
- # USER SETTINGS #
- ########################################################
- # change to your movie directory here:
- MOVIE=/media/hdd/movie
- # change to your NAS mount point here:
- NAS=/media/net/video/Aufnahmen
- # change to your log directory here:
- LOGDIR=/var/log
Außerdem solltet ihr euch vergewissern, ob bash auf eurer Box installiert ist:
Ist dies nicht der Fall:
Anwendung:
Das Script ist momentan nur über die Konsole nutzbar, eine graphische Oberfläche wird es aber auch geben - sobald ich mich in Python genug auskenne :crazy4:.
An dieser Stelle muss ich in diesem frühen Entwickungsstadium noch den Hinweis geben, dass die Benutzung auf eigene Gefahr geschieht. Ich selbst nutze das Script aktiv und bis jetzt ist alles gut gegangen. Ich kann jedoch keine Garantie geben, dass es in anderen Umgebungen ebenso keine Probleme gibt. Am besten, ihr kopiert euch ein paar Filme zum Testen in ein extra Verzeichnis und schaut erstmal, was dabei raus kommt
Das Script kann momentan mit folgenden Parametern aufgerufen werden:
Zeigt die aktuelle Version des Scripts.
Zeigt Informationen zur Verwendung des Scripts.
Das ist der hauptsächliche Verwendungszweck von Sync2NAS. Hier gibt es noch drei optionale Parameter, welche die Richtung der Synchronisierung bestimmen.
- movie2nas - MOVIE --> NAS:
Es werden zunächst alle Meta- und Video-Dateien vom MOVIE-Verzeichnis ins NAS-Verzeichnis kopiert. Ob eine Datei erfolgreich kopiert worden ist, wird über die MD5-Hashes der beiden Dateien geprüft. Die Meta-Files werden im MOVIE-Verzeichnis belassen, da sie nicht viel Platz brauchen. Die Video-Dateien werden im MOVIE-Verzeichnis gelöscht und ein Symlink auf ihre Kopie im NAS-Verzeichnis angelegt. So macht es in der MovieList bzw. EMC keinen Unterschied, ob die Filme auf der internen Platte liegen oder auf dem NAS. - nas2movie - MOVIE <-- NAS:
Hierbei wird geprüft, ob alle Filme im NAS-Verzeichnis auch im MOVIE-Verzeichnis vorhanden bzw. verlinkt sind. Fehlende Meta-Files werden nach MOVIE kopiert und fehlende Video-Files im MOVIE-Verzeichnis verlinkt. Dies ist z.B. sehr nützlich, wenn die interne HDD der Box getauscht wird oder gleich die ganze Box. Zu beachten ist hierbei jedoch, dass im MOVIE-Verzeichnis gelöschte Filme wiederhergestellt werden, wenn sie im NAS-Verzeichnis nicht auch gelöscht werden! Für diesen Fall wird es aber in einer der nächsten Versionen eine Option geben, um fehlende Aufnahmen auch auf dem NAS zu löschen. - both: beide Richtungen; erst movie2nas, dann nas2movie; Standard, wenn keine Richtung angegen wird
So viel erstmal hierzu...ich freue mich auf Rückmeldungen und konstruktive Kritik und hoffe, dass sich ein paar wagemutige finden, die das Script testen möchten
Viele Grüße
Longahr