Kann die größe der Datei auf verschiedenen Systemen und Filesystem nicht leicht unterschiedlich sein?
Saxman2k:
Kann man dein Programm schon irgend wo bekommen?
Gruß
matrix79
Kann die größe der Datei auf verschiedenen Systemen und Filesystem nicht leicht unterschiedlich sein?
Saxman2k:
Kann man dein Programm schon irgend wo bekommen?
Gruß
matrix79
Das "Programm" ist bis jetzt lediglich ein Shell-Script für die Anbindung an VDR und eine PHP-Seite. Was natürlich nocht fehlt ist eine Dokumentation und etwas überarbeitete Scripte. Da sind noch viele Debugausgaben drin, die ich später rausnehmen werde.
Ebenfalls wird sich die Datenbankgrundlage noch ändern. Habe z. B. gerade von dem Screenshot-Plugin gelesen. Es wird definitiv möglich sein, ein Bild der Aufzeichnung mit abzuspeichern. Das muß ich mir aber noch genauer ansehen. Bei dem Stichwort Bild sind mir dann auch direkt PDFs für das Cover der DVD eingefallen.
[träum] Cover mit Bildern und allen Infos auf Mausclick [/träum]
QuoteOriginal von HFlor
Hallo,in der index.vdr wird doch jeder Frame mit Typ gespeichert. Also ist die
Aufnahmelänge [sek] = Dateigröße [Byte] /8 [Byte/Frame] /25 [Frame/sek, bei Pal]
Hardy
So wie ich das beim Rumprobieren und Dateibetrachten gesehen habe, wird nicht jeder Frame indiziert. Bleibt noch die Frage, in welchen Abständen ein Index gesetzt wird. Ich werde mich da mal vertrauensvoll an Klaus wenden.
Asche auf mein Haupt!
Es wird wirklich jeder Frame indiziert! Der "Meister" hat mich schnell mal erleuchtet.
Dann ist die Sache mit der Aufnahmelänge nur noch eine "Fingerübung".
Also ich hab dann mal eine ALPHA-Version angehängt. Da ist leider noch nicht viel mit README. Also ein paar kurze Erläuterungen.
- Es wird MySQL benötigt!
- Es wird lynx benötigt!
- Es wird ein Webserver benötigt!
- Es wird PHP für den Webserver benötigt!
Wer vor der Installation nicht zurückschreckt, darf nun weiterlesen.
Das Script addrecording sollte selbsterklärend sein:
# ! /bin/sh
addrecordingtodb="localhost/testparameter.php"
dummyfile="/tmp/addrecording.tmp"
echo $1>>$dummyfile
lynx -dump -width 40 $addrecordingtodb?dummyfile=$dummyfile
exit 0
Es wird in einer temporären Datei der Pfad der Aufnahme abgelegt und anschließend lynx aufgerufen.
Die temporäre Datei sollte vorher angelegt werden und mit zugriffsrechten für den Webserver ("wwwrun") und den VDR-User versehen werden. Dieser Umweg war nötig, weil ich keine zuverlässige Möglichkeit gefunden habe, das Verzeichnis mit allen möglichen Sonderzeichen als Parameter an die PHP-Seite weiterzugeben.
Die PHP-Seite testparameter.php sieht wie folgt aus:
<?php
/* Datenbankserver - In der Regel die IP */
$db_server = "localhost";
/* Datenbankname */
$db_name = "vdr";
/* Datenbankuser */
$db_user = "root";
/* Datenbankpasswort */
$db_passwort = "";
/* Tabelle für die Datensätze */
$tab_name = "recordings";
$indexsize = 8;
$frames_per_second = 25;
$summary_file = "/summary.vdr";
$index_file = "/index.vdr";
$dummyfilename = $HTTP_GET_VARS["dummyfile"];
//echo "<h1>Parameter an dieses Script: " . $dummyfilename . "</h1>";
if(file_exists($dummyfilename)){
/* Erstellt Connect zu Datenbank her */
$db = MYSQL_CONNECT($db_server,$db_user,$db_passwort) or die ("Konnte keine Verbindung zur Datenbank herstellen");
$db_check = MYSQL_SELECT_DB($db_name);
if($db){
// echo "Verbindung zur Datenbank wurde hergestellt.<br>";
// echo "Dummyfile found.<br>";
$recordingdirectories = file($dummyfilename);
// echo $recordingdirectories . "<br>";
// echo "Directories: " . implode(", ", $recordingdirectories) . "<br>";
while($recordingdir = rtrim(current($recordingdirectories))){
echo "<b>Verzeichnis:</b> " . $recordingdir . "<br>";
$directory = explode("/", $recordingdir);
/* while($dir = current($directory)){
echo "Verzeichnis " . $i . ": " . $dir . "<br>";
next($directory);
}
*/ end($directory);
sscanf(end($directory), "%d-%d-%d.%d.%d.%d.%d.rec", $year, $month, $day, $hour, $minute, $prio1, $prio2);
echo sprintf("<b>Datum:</b> %02d.%02d.%04d<br>", $day, $month, $year);
echo sprintf("<b>Uhrzeit:</b> %02d:%02d<br>", $hour, $minute);
echo "<b>Prioritäten:</b> " . $prio1 . ", " . $prio2 . "<br>";
if(sizeof($directory)>4)
$subtitle = prev($directory);
else
$subtitle = null;
$title = prev($directory);
$title = str_replace("_", " ", $title);
while(gettype($pos = strpos($title, "%"))=="integer"){
// echo "Pos: " . $pos . "<br>";
$title = substr($title, $pos+1);
// echo "Neuer Titel: " . $title . "<br>";
}
echo "<b>Titel:</b> " . $title . "<br>";
echo "<b>Untertitel:</b> " . $subtitle . "<br>";
$length = null;
$filesize = filesize($recordingdir . $index_file);
if($filesize!=false){
$length = sprintf("%02d:%02d:%02d", floor($filesize/($indexsize*$frames_per_second*60*60)), floor($filesize/($indexsize*$frames_per_second*60))%60, floor($filesize/($indexsize*$frames_per_second))%60);
}
if($length!=null)
echo "<b>Aufnahmelänge:</b> " . $length . "<br>";
if(file_exists($recordingdir . $summary_file)){
$summary_file = fopen($recordingdir . $summary_file, "r");
$summary = "";
// echo "Lese Beschreibung";
while(!feof($summary_file)){
// echo ".";
$summary .= fgets($summary_file, 1024);
}
// echo "<br>";
fclose($summary_file);
echo "<b>Inhaltsbeschreibung:</b>";
echo "<ul><li>" . htmlentities($summary) . "</li></ul>";
}
$query = "INSERT INTO `" . $db_name . "`.`" . $tab_name . "` (`recdatetime`, `rectitle`, `recsubtitle`, `rectitleedited`, `recsubtitleedited`, `recdescription`, `reclength`)";
$query .= " VALUES(";
$query .= " '" . sprintf("%04d-%02d-%02d %02d:%02d:00", $year, $month, $day, $hour, $minute) . "',";
$query .= " '" . addslashes($title) . "',";
$query .= " '" . addslashes($subtitle) . "',";
$query .= " '" . addslashes($title) . "',";
$query .= " '" . addslashes($subtitle) . "',";
$query .= " '" . addslashes($summary) . "',";
$query .= " '" . $length . "');";
// echo "Query: " . $query . "<br>";
$result = mysql_query($query, $db);
if(!$result)
echo "Fehler: " . mysql_error($db) . "<br>";
else
echo "Aufnahme hinzugefügt.<br>";
next($recordingdirectories);
}
mysql_close($db);
$dummyfile = fopen($dummyfilename, "w");
fclose($dummyfile);
}
else{
echo "Konnte keine Verbindung zum Datenbankserver aufbauen!<br>";
echo "Bitte Verbindungseinstellungen überprüfen!<br>";
}
}
else
echo "File not found: " . $dummyfilename;
?>
Display More
Die Variablen im Kopfteil sind entsprechend der eigenen Rechnerkonfiguration anzupassen.
Nun zu dem Aufbau der Datenbank:
CREATE TABLE recordings (
recid int(10) unsigned NOT NULL auto_increment,
recdatetime datetime NOT NULL default '0000-00-00 00:00:00',
rectitle varchar(255) default NULL,
recsubtitle varchar(255) default NULL,
rectitleedited varchar(255) default NULL,
recsubtitleedited varchar(255) default NULL,
recdescription text,
reclength time default NULL,
recpicture blob,
PRIMARY KEY (recid),
UNIQUE KEY titlesubtitle (rectitle(250),recsubtitle(250))
) TYPE=MyISAM COMMENT='archived recordings';
Display More
recid = eindeutiger Schlüssel
recdatetime = Aufnahmedatum und Uhrzeit
rectitle = Titel der Aufnahme
recsubtitle = Untertitel der Aufnahme
rectitleedited = für Später (siehe Unten)
recsubtitleedited = für Später (siehe Unten)
recdescription = Beschreibung aus dem EPG
reclength = Dauer der Aufnahme
recpicture = für Später, Screenshot
Die Felder rectitleedited und recsubtitleedited haben volgenden Hintergedanken. Leider wird nicht bei allen Sendungen Gebrauch von Titel und Untertitel gemacht. Es ist daher manchmal nötig, den Titel/Untertitel nachträglich von Hand zu ändern. Damit trotzdem keine doppelten Einträge angelegt werden, werden die originalen Einträge beibehalten und die geänderten in *edited gespeichert. Später beim Cover werden dann die bearbeiteten Einträge ausgedruckt. Beim Eintragen neuer Aufnahmen wird aber weiterhin auf den originalen Titel und Untertitel hin geprüft, ob die Aufnahme schon vorhanden ist.
Ich hoffe, man kann verstehen, was ich mir dabei gedacht habe.
Anregungen erwünscht!
Aber Lynx brauchst du nicht unbedingt.
Du kannst php Seiten, wo du nur eine Variable übergeben willst auch mit wget aufrufen.
wget --spider "http://localhost/testparameter.php?variable1=abc&variable2=abc"
Wichtig, dass die url in "" steht, dann werden auch die variablen mit übergeben.
Gruß
matrix79
Wäre es nicht besser, wenn du den Datenbankeintrag per Shell Skript einträgst?
Dann braucht man keinen Apache.
Einen Datenbank eintrag mit der Shell könnte man so machen:
#!/bin/sh
variable1="12345"
variable2="67890"
echo "INSERT INTO Tabelle (variable1, variable2) VALUES ('$variable1','$variable2')" > tmp.mysql
mysql -u $mysqluser -h $host -p"$password" $database < tmp.mysql
Display More
Was hälst du davon?
Gruß
matrix79
QuoteDisplay MoreOriginal von matrix79
Saxman2k:Wäre es nicht besser, wenn du den Datenbankeintrag per Shell Skript einträgst?
Dann braucht man keinen Apache.Einen Datenbank eintrag mit der Shell könnte man so machen:
Bash Display More#!/bin/sh variable1="12345" variable2="67890" echo "INSERT INTO Tabelle (variable1, variable2) VALUES ('$variable1','$variable2')" > tmp.mysql mysql -u $mysqluser -h $host -p"$password" $database < tmp.mysql
Was hälst du davon?
Gruß
matrix79
Hab ich absolut Nichts dagegen.
Ich kenne mich halt nur nicht mit den ganzen Tricksereien und regulären Ausdrücken absolut nicht aus. Das müßtest Du dann übernehmen.
Werde am Wochenende hoffentlich etwas weiter kommen.
Und Tschüß!
QuoteOriginal von Saxman2k
Werde am Wochenende hoffentlich etwas weiter kommen.
Und, bist du schon weiter gekommen?
Ich habe es mal probiert, aber irgend wie hat nicht alles funktioniert.
So habe ich es aufgerufen:
user~> ./addrecording /mnt/Hollow_Man_-_Unsichtbare_Gefahr/
Verzeichnis:
/mnt/Hollow_Man_-_Unsichtbare_
Gefahr/
Datum: 00.00.0000
Uhrzeit: 00:00
Prioritäten: ,
Titel: Hollow Man -
Unsichtbare Gefahr
Untertitel:
Warning: filesize()
[[1]function.filesize]: Stat
failed for
/mnt/Hollow_Man_-_Unsichtbare_
Gefahr//index.vdr (errno=2 -
No such file or directory) in
/home/vdr/test_datenbank/testp
arameter.php on line 61
Aufnahme hinzugefügt.
Verzeichnis:
/mnt/Hollow_Man_-_Unsichtbare_
Gefahr/
Datum: 00.00.0000
Uhrzeit: 00:00
Prioritäten: ,
Titel: Hollow Man -
Unsichtbare Gefahr
Untertitel:
Warning: filesize()
[[2]function.filesize]: Stat
failed for
/mnt/Hollow_Man_-_Unsichtbare_
Gefahr//index.vdr (errno=2 -
No such file or directory) in
/home/vdr/test_datenbank/testp
arameter.php on line 61
Fehler: Duplicate entry
'Hollow Man - Unsichtbare
Gefahr-' for key 2
Warning:
fopen(/tmp/addrecording.tmp)
[[3]function.fopen]: failed to
create stream: Permission
denied in
/home/vdr/test_datenbank/testp
arameter.php on line 108
Warning: fclose(): supplied
argument is not a valid stream
resource in
/home/vdr/test_datenbank/testp
arameter.php on line 109
Verweise
1. [URL]http://www.php.net/function.filesize[/URL]
2. [URL]http://www.php.net/function.filesize[/URL]
3. [URL]http://www.php.net/function.fopen[/URL]
Display More
In die Datenbank wurde etwas geschrieben. Aber nur der Name des Filmes.
Die Länge des Films fehlt.
Hier der Datenbank eintrag:
mysql> SELECT * FROM recordings;
+-------+---------------------+---------------------------------+-------------+---------------------------------+-------------------+----------------+-----------+------------+
| recid | recdatetime | rectitle | recsubtitle | rectitleedited | recsubtitleedited | recdescription | reclength | recpicture |
+-------+---------------------+---------------------------------+-------------+---------------------------------+-------------------+----------------+-----------+------------+
| 1 | 0000-00-00 00:00:00 | Hollow Man - Unsichtbare Gefahr | | Hollow Man - Unsichtbare Gefahr | | | 00:00:00 | NULL |
+-------+---------------------+---------------------------------+-------------+---------------------------------+-------------------+----------------+-----------+------------+
1 row in set (0.01 sec)
Gruß
matrix79
QuoteOriginal von matrix79
Und, bist du schon weiter gekommen?
Hatte leider noch nicht wirklich viel Zeit.
Quote
Du mußt das Script schon so aufrufen, wie VDR das auch machen würde:
Dann klappts auch. Am einfachsten in der reccmds.conf einen Eintrag für das Script anlegen.
Habe es noch mal ausprobiert. Jetzt wurde die Länge und der Text aus der summary Datei in die Datenbank geschrieben.
Leider ist die Spalte "recdatetime" nur mit Nullen gefüllt.
Sollte dort nicht die aufnahmezeit stehen?
Ist es eigentlich möglich dem VDR zu sagen, dass er nach dem Schneiden auch ein Programm ausführen soll?
Meine es so wie bei einer Aufnahme, da ist es möglich nach der Aufnahme ein Programm aufzurufen.
Dann wäre somit möglich automatisch aufgenommene Sendungen in die Datenbank schreiben zu lassen.
Gruß
matrix79
QuoteOriginal von matrix79
Habe es noch mal ausprobiert. Jetzt wurde die Länge und der Text aus der summary Datei in die Datenbank geschrieben.Leider ist die Spalte "recdatetime" nur mit Nullen gefüllt.
Sollte dort nicht die aufnahmezeit stehen?
Kannst Du mal den genauen Pfad und die Ausgabe des PHP-Skriptes posten? Mal sehen, woran es gelegen hat.
QuoteOriginal von matrix79
Ist es eigentlich möglich dem VDR zu sagen, dass er nach dem Schneiden auch ein Programm ausführen soll?
Meine es so wie bei einer Aufnahme, da ist es möglich nach der Aufnahme ein Programm aufzurufen.Dann wäre somit möglich automatisch aufgenommene Sendungen in die Datenbank schreiben zu lassen.
Natürlich ist das möglich. Schau Dir mal das Startskript zu noad an. Ich habe es jetzt nicht genau im Kopf, aber es wird ein Parameter an das Script gesendet, aus dem man erkennen kann zu welchem Zeitpunkt es aufgerufen wurde. Nach der Aufnahme, nach einem Schnitt und ich glaube auch vor der Aufnahme. Wenn bei "nach einem Schnitt" das addrecording Skript aufgerufen wird, hast Du direkt einen Eintrag in der Datenbank.
Ich versuche gerade verzweifelt herauszubekommen, wie ich einen Screenshot einem Datenbankeintrag hinzufügen kann.
Als nächstes werde ich dann Webseiten zur weiteren Strukturierung der Aufnahmen erstellen. Dann sollte man mehrere Aufnahmen zu DVDs zusammenstellen können. Hier ist später vielleicht eine Anbindung an vdrconvert oder vdrsync sinnvoll. Dann können direkt die für die DVD Erstellung zusammengefügten Aufnahmen auch in der Datenbank zu einer logischen Einheit verknüpft werden.
Als weitere drüberliegende Struktur werde ich dann mehrere DVDs zu "Hüllen" (oder Boxen oder wie auch immer) zusammenfassen. Ich habe z. B. immer 2er oder sogar 3er Hüllen für meine DVDs um Platz zu sparen. Für die Hüllen lassen sich dann am Ende aus den Informationen der Aufnahmen Cover als PDF generieren. Wie das aussieht, weiß ich aber noch nicht. PDFs habe ich noch nicht mit PHP erstellt, wenn ich beim kurzen Überfliegen von SelfPHP mich nicht total geirrt habe, sollte das aber analog zu Grafiken sein.
Die komplette GUI werde ich in PHP machen. Perl mag da etwas schlanker sein, damit kenne ich mich aber wirklich nicht aus. Also wird ein Webserver mit PHP-Modul Pflicht werden. Gerne darf aber jemand anderes eine Portierung nach Perl vornehmen, wenn er auf den Overhead eines Webservers verzichten möchte.
Soviel zu den Plänen. Konstruktive Kritik und Verbesserungsvorschläge erwünscht!
Ich habe gerade was zu Bildern in einer Datenbank gefunden. Mal sehen, wie sich das mit dem Screenshot Plugin kombinieren läßt...
QuoteOriginal von Saxman2k
Kannst Du mal den genauen Pfad und die Ausgabe des PHP-Skriptes posten? Mal sehen, woran es gelegen hat.
Also das php Skript ligt unter /home/internet/public_html/testparameter.php
Und hat die Rechte 755
Und hier die Ausgabe von dem php Skript:
user~> ./addrecording /mnt/Nur_noch_60_Sekunden/2003-09-07.20.10.99.99.rec/
Verzeichnis:
/mnt/Hollow_Man_-_Unsichtbare_
Gefahr/
Datum: 00.00.0000
Uhrzeit: 00:00
Prioritäten: ,
Titel: Hollow Man -
Unsichtbare Gefahr
Untertitel:
Warning: filesize()
[[1]function.filesize]: Stat
failed for
/mnt/Hollow_Man_-_Unsichtbare_
Gefahr//index.vdr (errno=2 -
No such file or directory) in
/home/vdr/test_datenbank/testp
arameter.php on line 61
Fehler: Duplicate entry
'Hollow Man - Unsichtbare
Gefahr-' for key 2
Verzeichnis:
/mnt/Hollow_Man_-_Unsichtbare_
Gefahr/
Datum: 00.00.0000
Uhrzeit: 00:00
Prioritäten: ,
Titel: Hollow Man -
Unsichtbare Gefahr
Untertitel:
Warning: filesize()
[[2]function.filesize]: Stat
failed for
/mnt/Hollow_Man_-_Unsichtbare_
Gefahr//index.vdr (errno=2 -
No such file or directory) in
/home/vdr/test_datenbank/testp
arameter.php on line 61
Fehler: Duplicate entry
'Hollow Man - Unsichtbare
Gefahr-' for key 2
Verzeichnis:
/mnt/E-Mail_für_Dich/2004-02-0
1.20.10.50.50.rec/
Datum: 00.00.0000
Uhrzeit: 00:00
Prioritäten: ,
Titel: E-Mail für Dich
Untertitel:
2004-02-01.20.10.50.50.rec
Warning: filesize()
[[3]function.filesize]: Stat
failed for
/mnt/E-Mail_für_Dich/2004-02-0
1.20.10.50.50.rec//index.vdr
(errno=2 - No such file or
directory) in
/home/vdr/test_datenbank/testp
arameter.php on line 61
Fehler: Duplicate entry
'E-Mail für
Dich-2004-02-01.20.10.50.50.re
c' for key 2
Verzeichnis:
/mnt/Nur_noch_60_Sekunden/2003
-09-07.20.10.99.99.rec/
Datum: 00.00.0000
Uhrzeit: 00:00
Prioritäten: ,
Titel: Nur noch 60 Sekunden
Untertitel:
2003-09-07.20.10.99.99.rec
Aufnahmelänge: 01:46:07
Inhaltsbeschreibung:
* Nur noch 60 Sekunden
Oscar-Preisträger Nicolas
Cage spielt Memphis
Raines, einen legendären
Autodieb, der sich zur
Ruhe gesetzt hat. Als er
erfährt, dass sein kleiner
Bruder Kip einen brisanten
Autoklau verbockt hat,
muss er ihm unter die Arme
greifen.
Aufnahme hinzugefügt.
Verzeichnis:
/mnt/Nur_noch_60_Sekunden/2003
-09-07.20.10.99.99.rec/
Datum: 00.00.0000
Uhrzeit: 00:00
Prioritäten: ,
Titel: Nur noch 60 Sekunden
Untertitel:
2003-09-07.20.10.99.99.rec
Aufnahmelänge: 01:46:07
Fehler: Duplicate entry 'Nur
noch 60
Sekunden-2003-09-07.20.10.99.9
9.rec' for key 2
Verzeichnis:
/mnt/Nur_noch_60_Sekunden/2003
-09-07.20.10.99.99.rec/
Datum: 00.00.0000
Uhrzeit: 00:00
Prioritäten: ,
Titel: Nur noch 60 Sekunden
Untertitel:
2003-09-07.20.10.99.99.rec
Aufnahmelänge: 01:46:07
Fehler: Duplicate entry 'Nur
noch 60
Sekunden-2003-09-07.20.10.99.9
9.rec' for key 2
Verzeichnis:
/mnt/Nur_noch_60_Sekunden/2003
-09-07.20.10.99.99.rec/
Datum: 00.00.0000
Uhrzeit: 00:00
Prioritäten: ,
Titel: Nur noch 60 Sekunden
Untertitel:
2003-09-07.20.10.99.99.rec
Aufnahmelänge: 01:46:07
Fehler: Duplicate entry 'Nur
noch 60
Sekunden-2003-09-07.20.10.99.9
9.rec' for key 2
Verzeichnis:
/mnt/Nur_noch_60_Sekunden/2003
-09-07.20.10.99.99.rec/
Datum: 00.00.0000
Uhrzeit: 00:00
Prioritäten: ,
Titel: Nur noch 60 Sekunden
Untertitel:
2003-09-07.20.10.99.99.rec
Aufnahmelänge: 01:46:07
Fehler: Duplicate entry 'Nur
noch 60
Sekunden-2003-09-07.20.10.99.9
9.rec' for key 2
Warning:
fopen(/tmp/addrecording.tmp)
[[4]function.fopen]: failed to
create stream: Permission
denied in
/home/vdr/test_datenbank/testp
arameter.php on line 108
Warning: fclose(): supplied
argument is not a valid stream
resource in
/home/vdr/test_datenbank/testp
arameter.php on line 109
Verweise
1. [URL]http://www.php.net/function.filesize[/URL]
2. [URL]http://www.php.net/function.filesize[/URL]
3. [URL]http://www.php.net/function.filesize[/URL]
4. [URL]http://www.php.net/function.fopen[/URL]
Display More
Ich finde die Überprüfung auf Dublicate im php Skript überflüssig. Somit wird die Ausgabe vom php Skript auch immer länger jemehr Filme in der Datenbank sind.
Es würde doch langen, wenn du in der Datenbank dublicate verbietest.
Oder was meinst du?
Das mit noad weis ich ja, weis halt nicht, wie und ob es nach dem Schneiden auch möglich ist.
Gruß
matrix79
Quote
Du hast einen "/" zuviel am Ende des Parameters!
QuoteOriginal von matrix79
Ich finde die Überprüfung auf Dublicate im php Skript überflüssig. Somit wird die Ausgabe vom php Skript auch immer länger jemehr Filme in der Datenbank sind.Es würde doch langen, wenn du in der Datenbank dublicate verbietest.
Die Meldungen kommen direkt von der Datenbank. In dem Skript wird Nichts auf doppelte Einträge überprüft sondern lediglich bei einem Fehler der Datenbankabfrage die Fehlermeldung ausgegeben.
Wuste nicht, dass der Schrägstrich probleme macht.
Jetzt funktioniert das.
Sag mal für was ist das dummy File "addrecording.tmp"?
Mir der Datei gibt es Probleme, wenn man einen Eintrag in der Datenbank löscht.
Da du mit
echo $1>>$dummyfile
die neuen Filme immer an diese datei mit anfügst.
Würde es nciht reichen wenn der hinzu zu fügender Film da drin steht?
echo $1 > $dummyfile
Mir ist der Sin von diesen Spalten nicht ganz klar.
rectitleedited und recsubtitleedited
Denn wo wäre den das Problem, wenn du den Titel oder Untertitel später in der Datenbank änderst.
Dann ist es doch egal, wie der Film davor mal geheisen hat, oder?
Denn wenn ich den Namen in der Datenbank ändere, dann würde ich auch den Ordnernamen ändern, wo die VDR Dateien drin liegen.
Ich weis ja nicht ob du geplant hast, wenn man einen Film aus der Datenbank raussucht, dass man diesen dann auch direkt abspielen kann.
Wenn so was geplant ist, dann würde ich noch eine zuzätzliche Spalte in die Tabelle aufnehmen, wo der komplete Pfad drin steht, wo die Aufnahme ist.
Gruß
matrix79
QuoteOriginal von matrix79
Wuste nicht, dass der Schrägstrich probleme macht.
Jetzt funktioniert das.Sag mal für was ist das dummy File "addrecording.tmp"?
Da drin wird der von VDR übergebene Pfad abgelegt. Das war nötig, damit auch alle Sonderzeichen ohne "Nebenwirkungen" an das PHP-Skript übergeben werden.
QuoteOriginal von matrix79
Mir der Datei gibt es Probleme, wenn man einen Eintrag in der Datenbank löscht.
Da du mit
echo $1>>$dummyfiledie neuen Filme immer an diese datei mit anfügst.
Würde es nciht reichen wenn der hinzu zu fügender Film da drin steht?
echo $1 > $dummyfile
Wenn das PHP-Skript ohne Fehler durchläuft, werden alle abgearbeiteten Einträge aus dieser Datei gelöscht. Im Normalfall sollte also wirklich nur der gerade übergebene Eintrag drin sein.
QuoteDisplay MoreOriginal von matrix79
Mir ist der Sin von diesen Spalten nicht ganz klar.
rectitleedited und recsubtitleeditedDenn wo wäre den das Problem, wenn du den Titel oder Untertitel später in der Datenbank änderst.
Dann ist es doch egal, wie der Film davor mal geheisen hat, oder?Denn wenn ich den Namen in der Datenbank ändere, dann würde ich auch den Ordnernamen ändern, wo die VDR Dateien drin liegen.
Ich weis ja nicht ob du geplant hast, wenn man einen Film aus der Datenbank raussucht, dass man diesen dann auch direkt abspielen kann.
Wenn so was geplant ist, dann würde ich noch eine zuzätzliche Spalte in die Tabelle aufnehmen, wo der komplete Pfad drin steht, wo die Aufnahme ist.
Gruß
matrix79
Der Grund für die beiden Spalten ist folgender:
Doppelte Einträge werden anhand von Titel und Untertitel von der Datenbank erkannt und nicht neu angelegt. Wenn Du jetzt den Titel oder Untertitel veränderst, funktioniert dieser Mechanismus nicht mehr. Daher die edited-Spalten. Die werden später zur Anzeige verwendet.
Hoffe, alle Klarheitenbeseitigt zu haben.
Hallo Saxman2k,
wie siehts mit einen Patch für den VDR aus, damit auch diese Datenbank für die Anzeige der Aufnahmen verwendet wird?
Bei mir dauert der Aufruf der Aufzeichnungen bereits ca. 20 Sekunden, bei ca. 80 Aufnahmen.
Hardy
QuoteOriginal von HFlor
Hallo Saxman2k,wie siehts mit einen Patch für den VDR aus, damit auch diese Datenbank für die Anzeige der Aufnahmen verwendet wird?
Bei mir dauert der Aufruf der Aufzeichnungen bereits ca. 20 Sekunden, bei ca. 80 Aufnahmen.
Hardy
Wird es definitiv NICHT von mir geben.
Das wäre für einen kleinen Rechner wirklich zu viel overhead. Als optionale Erweiterung OK, aber nicht für die Aufnahmeliste.
Sorry
QuoteOriginal von HFlor
Hallo Saxman2k,wie siehts mit einen Patch für den VDR aus, damit auch diese Datenbank für die Anzeige der Aufnahmen verwendet wird?
Bei mir dauert der Aufruf der Aufzeichnungen bereits ca. 20 Sekunden, bei ca. 80 Aufnahmen.
Hardy
Genau an sowas habe ich auch schon gedacht.
Ich habe die Vermutung, warum es bei mir recht lange dauert, bis die Aufzeichnungen angezeigt werden, dass dies an mehreren Unterverzeichnissen liegt.
Und da die Aufnahmne per find ermittelt wird, dauert es eben eine weile.
Dies ist nur eine Vermutung von mir.
Mir schwäbt vor, dass jede Aufnahme automatisch in eine Datenbank eingetragen wird und wenn ich im VDR auf Aufnahmen gehe, diese dann aus der Datenbank gelesen wird.
Das schreiben in die Datenbank wird nicht schwer sein, da man ein Skript nach jeder Aufnahme gestartet werden kann (automatisch).
Wenn es beim Schneiden auch geht, wäre es nciht schlecht.
Bis dahin bräuchte man den VDR nicht patchen.
Zum auslesen aus der Datenbank, müste man wohl den VDR patchen und zwar dort, wo sonst der find Befehl aufgerufen wird.
Aber von C-Programmierung habe ich so gut wie keine Ahnung.
ich habe da immer einen Fehler, wenn das php Skript aufgerufen wurde.
schau hier:
fopen(/tmp/addrecording.tmp)
[[4]function.fopen]: failed to
create stream: Permission
denied in
/home/vdr/test_datenbank/testp
arameter.php on line 108
Warning: fclose(): supplied
argument is not a valid stream
resource in
/home/vdr/test_datenbank/testp
arameter.php on line 109
Display More
Quote
Der Grund für die beiden Spalten ist folgender:
Doppelte Einträge werden anhand von Titel und Untertitel von der Datenbank erkannt und nicht neu angelegt. Wenn Du jetzt den Titel oder Untertitel veränderst, funktioniert dieser Mechanismus nicht mehr. Daher die edited-Spalten. Die werden später zur Anzeige verwendet.
Deshalb habe ich doch gemeint, wenn man den Namen ändern sollte, dann müste der reale Verzeichnis Name auch geändert werden.
Denn dann können auch keine doppel Einträge zustandekommen.
Dies könnte man mit einer Weboberfläche realisieren.
Gruß
matrix79
Don’t have an account yet? Register yourself now and be a part of our community!