[ANNOUNCE] vdr-recording-index v0.1

  • Hi,


    inzwischen nutze ich VDR seit 10 Jahren (http://www.tvdr.de/cgi-bin/vdr-counter.pl?action=list #6). Da sammelt sich natürlich so einiges an Aufzeichnungen an. Am Anfang auf CDs, dann auf DVDs, mittlerweile auf Festplatten. Damit ich den Überblick nicht verliere habe ich ein Programm geschrieben das die Festplatten in einer Datenbank Indexiert und ein kleines PHP das die daraus entstandene Datenbank im Browser anzeigt.


    Vielleicht kann es ja jemand gebrauchen.


    [Blockierte Grafik: http://harhar.net/blog/wp-content/uploads/2011/10/recindex-1.png
    [Blockierte Grafik: http://harhar.net/blog/wp-content/uploads/2011/10/recindex-2.png
    [Blockierte Grafik: http://harhar.net/blog/wp-content/uploads/2011/10/recindex-3.png]


    Demo: http://linvdr.org/projects/vdr-recording-index/
    Download: http://linvdr.org/download/vdr…ecording-index-0.1.tar.gz
    Homepage: http://harhar.net/blog/vdr-recording-index


    Gruß,
    Thomas

  • Hey Thomas,


    genau sowas in der Art hab ich schon lange mal gesucht und hier auch schon mal angefragt. Werd es mir sicher in der nächsten Zeit anschauen und ein Statement dazu abgeben. (bitte ein wenig Geduld, weil mein 3 jähriger Sohn viel Zeit in Anspruch nimmt und vdr dadurch nicht so viel abbekommt ;)
    Was mir auf den ersten Blick auffällt, da meine Zielrichtung ein wenig anders ist (suche auf meinen aktuellen 2 TB, auf denen die alten linvdr Aufnahmen mit aufgenommen wurden und auf dem Dateiserver ofter mal nach einem Jungre, weil meine Frau gerade gerne eine Komödie sehen möchte. Hast Du solche Informationen in der Datenbank mit integriert (z.B. per IMDB o.ä.) und kann man danach suchen?? )


    Auf jeden Fall erst mal Danke für Deine Idee und weiter so!! :)

    Als alter linvdr-Nutzer freut es mich besonders, dass linvdr.org durch das Programm wiederbelebt wurde :)


    Gruß Micha

  • Hallo Micha,



    Was mir auf den ersten Blick auffällt, da meine Zielrichtung ein wenig anders ist (suche auf meinen aktuellen 2 TB, auf denen die alten linvdr Aufnahmen mit aufgenommen wurden und auf dem Dateiserver ofter mal nach einem Jungre, weil meine Frau gerade gerne eine Komödie sehen möchte. Hast Du solche Informationen in der Datenbank mit integriert (z.B. per IMDB o.ä.) und kann man danach suchen?? )


    Ich habe alle Infos die ich bekommen konnte in die Datenbank geschrieben. Auch das Genre. In der Datenbank sind mehr Felder als in der GUI anzeigt werden vorhanden.


    Eine zusätzliche Spalte "Genre" sind nur drei Zeilen Code.


    Gruß,
    Thomas

  • ich habe gerade ein Plugin geschrieben, was die Aufnahmen des VDR zur Laufzeit als virtuelle SQLite-Tabelle anbietet. Es funktioniert momentan nur mit der Klasse "Recordings". Was ich mich jetzt frage, woher bekommst du die restlichen Daten, wie Genre usw.?


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Das steht glaube ich in der crawler.php und müsste wenn ich den PHP-Code richtig verstehe über die Auswertung der info-Dateien im Aufnahmeverzeichnis laufen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • ich habe gerade ein Plugin geschrieben, was die Aufnahmen des VDR zur Laufzeit als virtuelle SQLite-Tabelle anbietet. Es funktioniert momentan nur mit der Klasse "Recordings". Was ich mich jetzt frage, woher bekommst du die restlichen Daten, wie Genre usw.?


    Die Informationen beziehe ich aus der summary.vdr, info oder info.vdr. Je nach VDR Generation wird eines der Dateien verwendet.

  • Bei mir funktioniert das nicht.
    Ich sehe nur:


    Code
    Parse error: syntax error, unexpected $end in /var/www/localhost/htdocs/vdr-recording-index-0.1/index.php on line 90


    Hmm. Kann ich leider nicht nachvollziehen:


    Code
    $ php -l index.php 
    No syntax errors detected in index.php


    Code
    $ wc -l index.php 
    89 index.php


    Schick mir doch mal die Ausgabe der obigen Kommandos und ein "php -v".


    Gruß,
    Thomas

  • Bitteschön: :)


  • Zum Problem von C3PO: ich würde mal in der Zeile 66 den öffnenden PHP Tag ordentlich als <?php schreiben...dann ist der Fehler wohl weg. short tags sind nicht schön :wand Das kann dann natürlich auch mit anderen Dateien knallen, falls das da genau so gemacht ist...


    Ciao Louis

  • Hi,


    in der library.inc sind (mindestens) zwei Bugs ;D Zuerst musst du $db schon ausserhalb des try catch Blocks definieren, da so ein try catch Block einen eigenen Geltungsbereich hat und somit die Variable $db ausserhalb dieses Blocks gar nicht bekannt ist. In Zeile 42 und 46 versuchst du dann auf $db zuzugreifen. Des weiteren ist in der if Abfrage in Zeile 42 ein Bug. Die Datenbank wird nie angelegt:


    Code
    if($db && $create) ...


    $db ist aber NULL, da es zum einen gar nicht definiert ist, und selbst wenn der zugewiesene Wert aus dem try catch Block in $db stehen würde, wäre $db ja trotzdem NULL, da es in Zeile 37 nicht korrekt initialisiert werden konnte. Die if Abfrage sollte doch eigentlich so lauten:


    Code
    if(($db!=NULL) && $create) ...


    Ciao Louis


    PS: du solltest dein "error reporting" beim Entwickeln auf DEBUG stellen, dann siehst du diese notices auch...

  • in der library.inc sind (mindestens) zwei Bugs ;D Zuerst musst du $db schon ausserhalb des try catch Blocks definieren, da so ein try catch Block einen eigenen Geltungsbereich hat und somit die Variable $db ausserhalb dieses Blocks gar nicht bekannt ist. In Zeile 42 und 46 versuchst du dann auf $db zuzugreifen. Des weiteren ist in der if Abfrage in Zeile 42 ein Bug. Die Datenbank wird nie angelegt:


    Das ein Try-Catch Block einen eigenen geltungsbereich hat, ist mir neu. Ich habe es eben noch ein mal explizit ausprobiert, bei mir ist das nicht so. Ich konnte auch keinerlei Infos im Netz darüber finden. Bist du dir sicher?


    Die Datenbank wird bei mir (wenn sie nicht existiert) angelegt.


    # php crawler.php -i /video0
    create Database...
    /video0/ID not found!


    Was genau spricht gegen Short-Tags? Ich kann daran keinen Nachteil entdecken.


    Code
    if($db && $create) ...


    $db ist aber NULL, da es zum einen gar nicht definiert ist, und selbst wenn der zugewiesene Wert aus dem try catch Block in $db stehen würde, wäre $db ja trotzdem NULL, da es in Zeile 37 nicht korrekt initialisiert werden konnte. Die if Abfrage sollte doch eigentlich so lauten:


    Da der Inhalt eines Try-Blocks (zumindest bei mir) keinen eigenen Geltungsbereich hat funktioniert das bei mir. Warum sollte $db == NULL sein, warum ist es in Zeile 37 nicht korrekt initialisiert?


    Wo genau liegt deiner Ansicht nach der unterschied zwischen:


    if($db) ... und if($db != NULL) ...


    Sobald $db ein Objekt zugewiesen wird greift doch if($db), oder?


    Sobald ich die SQlite Datenbank lösche, wird bei mir zuverlässig eine neue angelegt. Ich verwende eine Standart Ubuntu Installation, auf zwei Debian Maschinen hatte ich mit den Standardsettings der Distribution keine Probleme.


    Gruß,
    Thomas

  • Nach dem ich nun den Code bereinigt habe, - THX @ louis :tup - und PHP mit PDO, sqlite, sqlite3 Support und Sqlite intalliert habe, kommt nun:


    [Blockierte Grafik: http://img3.imageshack.us/img3/9782/20111017184722.png]


    database gone <-- Ich frage mich nur, wohin die gegangen sein soll?? :lol2


    Die Meldung ist richtig. Bevor du im Browser die Dateien sehen kannst, müssen ja erst Dateien indiziert werden. Die Datenbank wird automatisch beim ausführen der crawler.php angelegt. Theoretisch würde die Datenbank auch beim Aufruf der index.php angelegt werden, dafür fehlen dem Apachen die Schreibrechte auf das Verzeichnis. Ich berücksichtige das in der nächsten Version.


    Gruß,
    Thomas

  • Hi,


    ich hab mich vertan...ich meinte

    Code
    if(($db==NULL) && $create)


    Das mit dem Geltungsbereich habe ich gerade doch mal ausprobiert, du hast Recht, bei meinem php5.3.1 wirft es mit error_reporting(E_WARNING|E_ALL); auch kein Warning. Anscheinend ist das bis zur 5.3.8 von C3PO geändert worden?! Die Notices sind eindeutig.


    Shorttags sind deshalb nicht schön, weil sie in vielen Standardinstallationen per php.ini abgeschalten sind und dann nix funktioniert...wie beim Roboter :)


    Ciao Louis

  • Vielen Dank für das Programm. Eine schicke Oberfläche und die Suchfunktion ist auch fein. Die Installation war kein Problem unter Debian Squeeze.

  • Hallo,


    auch von mir erstmal ein Danke!
    Leider scheitere ich noch.
    Im Web-Interface sehe ich:
    SQLSTATE[HY000] [14] unable to open database filedatabase gone


    Muss ich vorher noch irgendwo die DB anlegen oder das Video-Verzeichnis konfigurieren?


    Gruß,
    Hendrik

  • Hallo,



    Vielleicht kann es ja jemand gebrauchen.


    Das Teil kommt mir wie gerufen ;) Super, vielen Dank!!!


    Weil bei meinen utf-8 kodierten info-files die Sonderzeichen der info_description nicht richtig angezeigt wurden, habe ich in der detail.php das utf8_encode rausgenommen.


    Code
    </head>
     <body>
    -  <p><? print(utf8_encode($row['info_description'])); ?></p>
    +  <p><? print($row['info_description']); ?></p>
     </body>
     </html>


    falls noch jemand das Problem haben sollte.



    Leider scheitere ich noch.
    Im Web-Interface sehe ich:
    SQLSTATE[HY000] [14] unable to open database filedatabase gone
    Muss ich vorher noch irgendwo die DB anlegen oder das Video-Verzeichnis konfigurieren?


    steht doch oben schon irgendwo und auf der Homepageunter crawler.php


    Gruß
    Tomas

  • Hallo,


    das hatte ich falsch verstanden.
    Ich dachte, crawler.php würde INTERN aufgerufen.


    Drei Vorschläge noch:
    -Wäre es nicht schöner, die Pfade im Web-IF einzugeben und im Web-IF auch einen "Update" Button zu haben?
    -Wie wäre es mit einer Checkbox, ob auch in der Beschreibung gesucht wird
    -Wäre es möglich, nach doppelten Aufnahmen zu suchen? --> Wenn 90% der Beschreibung gleich ist, sind es Kandidaten. Ich bin sicher, beim Tatort-Autotimer habe ich so einiges doppelt.


    Gruß,
    Hendrik



    Gruß,
    Hendrik

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!