in einer kleinen Heimbastelei ist das Projekt Save.TV Movie Mailer entstanden, welches ich gerne mit der Community teilen möchte. Im Folgenden wird dieses Projekt kurz vorgestellt. Ihr könnt das Skript bei Github herunterladen (https://github.com/raspispass/savetv-movie-mailer/).
Save.TV Movie Mailer
Einführung
Das Python-Skript "Save.TV Movie Mailer" sucht in den Save.TV Aufnahmen zum einen:
- nach Filmen mit einem IMDB-Rating >= 7.0 und
- nach Suchbegriffen (z. B. hinterlegte Film-Titel, Darsteller oder Themen wie zukünftige Reiseziele).
Die Suchbegriffe werden als reguläre Ausdrücke in einer Datei hinterlegt (ein Suchbegriff pro Zeile).
Das Skript ist mehrbenutzerfähig, sodass benutzerindividuelle Suchbegriffe angegeben werden können und ensprechend die Ergebnisse an unterschiedliche Email-Adressen versand werden.
Das Skript basiert auf Funktionen des von Save.TV veröffentlichten Kodi-Plugins (siehe http://cdn.save.tv/downloads/kodi/plugi ... tv-0.7.zip).
Beispielhafte Mail mit den Suchergebnissen
Vorbereitung und Konfiguration
- Kopieren der Dateien des Skripts in ein eigenes Verzeichnis, z. B.:
Code: Alles auswählen
mkdir /home/pi/save-tv-mailer; cp /folder/of/unzipped/files /home/pi/save-tv-mailer/
- Erstellen eines Verzeichnisses für die benutzerindividuellen SQLite-Datenbanken, z. B:
Code: Alles auswählen
mkdir /home/pi/save-tv-mailer/raspispass
- Hinterlegung der Save-TV-Zugangsdaten in der Datei "savetv.py":
Code: Alles auswählen
username = ''
password = ''
- Hinterlegung der Mail-Zugangsdaten in der Datei "savetv-movie-mailer.py":
Code: Alles auswählen
[...]
# Mail configuration
from_address = ['RaspiVDR', 'savetv@domain.com']
recipient = ['Raspispass', 'raspispass@domain.com']
subject = "[RaspVDR] Neue Film-Treffer in Save.TV"
smtpserver = 'smtp.domain.com'
smtp_username = "savetv@domain.com"
smtp_password = "mail-password"
- Erstellung der Movie-Liste mit regulären Ausdrücken. Eine kurze Beschreibung mit Beispielen wie folgt:
Code: Alles auswählen
WICHTIG: Keine Leerzeichen, da dann ALLE Einträge erfasst werden.
REGEXP-BEFEHL: ^ = Zeilenanfang
REGEXP-BEFEHL: . = Ein beliebiges Zeichen
REGEXP-BEFEHL: \s = Leerzeichen/Tab und Satz-Zeichen
REGEXP-BEFEHL: .* = Ein beliebiges Zeichen - Aber beliebig oft -> *
REGEXP-BEFEHL: $ = Ende des Titels
REGEXP-BEFEHL: \. = Tatsächlicher Punkt
REGEXP-BEFEHL: (?=Terminator)(?=^((?!S.C.C.).)*$) => Ein Schlüsselbegriff (Terminator) soll enthalten sein, aber nicht in Kominbation mit einem anderen Schlüsselbegriff (S.C.C.)
====== Darsteller
Norton
Deniro
Pacino
Damon
====== Filme
Sherlock.*Holmes
Blade.*Runner
James.*Bond
Cumberbatch
Di.*Caprio
Aufruf
Code: Alles auswählen
Usage: python savetv-movie-mailer.py --recipient-mail-addr=<test@example.com> --recipient-name=<username> --savetv-movie-list=<movie-liste.txt>
Parameter:
Code: Alles auswählen
--recipient-mail-addr=<recipient@domain.com>
The mail address of the recipient is specified.
--recipient-name=<username>
This parameter specifies the local directory where the search result databases are stored for each user
--savetv-movie-list=<filename-of-movie-list.txt>
This parameter specifies the filename that contains the regular expressions (by each line) for the movie matches
Beispielhafte Ausgaben beim Aufruf des Skripts von der Konsole:
Code: Alles auswählen
[-] Connect to SaveTV server:
[*] Access Token: [...]
[*] Session Expire: 1463230528.45
[*] Refresh Token: [...]
[*] Authentication succeeded
[*] Using pysqlite version 2.6.0
[*] Using SQLite version 3.7.13
[*] Using pysqlite version 2.6.0
[*] Using SQLite version 3.7.13
[*] Connected to SQLite database raspispass/savetvRecordings.db
[*] Created new SQLite database raspispass/savetvRecordings.db
[*] Using pysqlite version 2.6.0
[*] Using SQLite version 3.7.13
[*] Connected to SQLite database raspispass/epgEventsMatched.db
[*] Created new SQLite database raspispass/epgEventsMatched.db
[-] Fetch SaveTV recordings:
------------------------------------------------------------------------
[-] TotalCound: 1778
[-] Limit: 5000
[-] Offset: 0
------------------------------------------------------------------------
[*] Das Wunder von Merching (IMDB: 5.9)
[*] Lena Lorenz - Spurlos verschwunden (IMDB: )
[*] John Woo's Blackjack (IMDB: )
[*] Der Teufel trägt Prada (IMDB: )
[*] Coyote Ugly (IMDB: 5.6)
[*] Werner - Volles Rooäää!!! (IMDB: 5.1)
[...]
[*] Aristocats (IMDB: 7.1)
[*] Zweimal lebenslänglich (IMDB: 6.6)
[*] Ticket nach Telluride - Drei Freundinnen in Amerika (IMDB: )
[*] Xxy (IMDB: 7.2)
[*] Searching for regular expression in recordings database: Sherlock.*Holmes
[*] Searching for regular expression in recordings database: Blade.*Runner
[*] Searching for regular expression in recordings database: James.*Bond
[*] Searching for regular expression in recordings database: Cumberbatch
[*] Searching for regular expression in recordings database: Di.*Caprio
[*] IMDB Match(es) found! (4)
[*] Added movie for IMDB rating: Marianne
[*] IMDB Match(es) found! (4)
[*] Added movie for IMDB rating: Marianne
[*] Added movie for IMDB rating: Mammon - Per Anhalter durch das Geldsystem
[*] Added movie for IMDB rating: Xxy
[*] Added movie for IMDB rating: Aristocats
[*] No backup file yet exists ... creating one
[---------------
[-] Title: Aristocats
[-] Description: Paris im Jahr 1910: Die etwas exzentrische und schwerreiche Madame Adelaide Bonfamille bestimmt ihre geliebten Katzen als Erben und sorgt damit für eine Enttäuschung bei ihrem treuen Butler Edgar, der sich selbst gute Chance auf den Nachlass seiner Herrin ausgerechnet hatte. Edgar ist so wütend, dass er die reichen Erben kurzerhand weit außerhalb der Stadt aussetzt, um sie ein für allemal loszuwerden. Er ahnt ja nicht, dass die Katzen sich der Herausforderung stellen und sich schon bald auf den beschwerlichen Weg zurück nach Paris machen ...Disney-Klassiker aus dem Jahr 1970!
[---------------
[-] Title: Insomnia - Schlaflos
[-] Description: In einem der besten Psychothriller der letzten Jahre glänzt Al Pacino als schlafloser Cop, der in dem Mordfall an einer 17-jährigen ermittelt. Diese Tat hat die Bewohner einer Kleinstadt nördlich des Polarkreises aufgeschreckt. Doch schon bald haben der erfahrene Will Donner und sein Kollege Hap eine heiße Spur in dem Ort, an dem die Sonne niemals untergeht. Doch der verdächtige Autor Walter Finch – brillant: Robin Williams – kann entkommen. Plötzlich fallen wie aus dem Nichts Schüsse, und Hap wird tödlich getroffen. Damit hat ein psychologisch ausgefeiltes Katz-und-Maus-Spiel begonnen, in dessen Verlauf der schlaflose Donner an seinem Verstand zweifelt. Pacino und Williams liefern sich ein Psycho-Duell, das den Zuschauern den Atem raubt.
[...]
Successfully sent email
[*] Disconnected from DB
[*] Disconnected from DB
Integration mit Dropbox
Damit die Movie-Liste komfortabel vom Desktop-Rechner aus bearbeitet werden kann, ist eine Synchronisierung der Datei über den Dienst Dropbox möglich. Hierfür kann folgendes Bash-Skript auf dem Server verwendet werden, welches in regelmäßigen Abständen die Movie-Liste aus der Dropbox herunterlädt. Hinterlegt werden muss der individuelle Download-Link:
Code: Alles auswählen
#!/bin/bash
wget https://www.dropbox.com/sh/[...]/[...]?dl=1 -O dropbox_tmp.zip;unzip -o dropbox_tmp.zip;rm dropbox_tmp.zip; dos2unix savetv-movie-liste-from-dropbox.txt