Aufnahmen des Mediaportals im Webfront anzeigen

Auf der Grundlage von paresys Skript für Wiedergabelisten habe ich mal die Funktion angepasst um die Aufnahmen des Mediaportals im Webfront anzeigen zu lassen. Später soll noch eine Löschfunktion hinzukommen.

Bitte anpassen bzw. anlegen:
record(„D:/recorded tv“); //Pfad zu den Aufnahmen
$id_tv_aufnahmen = 57681; //anlegen eines Strings fürs WebFront

Im Webfront der String Var $tv_aufnahmen ein Profil ~TextBox zuordnen

P.S. Script nach eigenen Kriterien triggern oder per Timer aufrufen, damit die Liste aktuell ist.


	function record($dir)
	{
     	$id_tv_aufnahmen = 57681 /*[Scripte Allgemein\TV	v_aufnahmen	v_aufnahmen]*/ ;

	   global $tv_aufn;

	 	$allowed = Array("ts");

		$tv_aufn_arr = array();

 		$files = read_record($dir);

		foreach($files as $file)
 		{
  			$ext = pathinfo($dir."/".$file, PATHINFO_EXTENSION);
  			if(in_array(strtolower($ext), $allowed))
  			{
            $file = substr($file, 0, -3);
				$tv_aufn_arr[] = $file;
  			}
 		}
		sort($tv_aufn_arr);
 		$tv_aufn = implode("
", $tv_aufn_arr);
	  	SetValueString($id_tv_aufnahmen, $tv_aufn);
 	}

	function read_record($dir, $subdir = "")
	{
		$result = Array();
  		$files = scandir($dir."/".$subdir);
  		foreach($files as $file)
  		{
   		if(($file != ".") && ($file != ".."))
			{
   			if(is_dir($dir."/".$subdir."/".$file))
				{
					$res = read_record($dir, $subdir."/".$file);
   				$result = array_merge($res, $result);
   			}
				else
				{
   				$filedir = $subdir."/".$file;
   				$filedir = substr($filedir, 1, strlen($filedir));
   				$result[] = $file;
   			}
   		}
  		}
  		return $result;
	}

	record("D:/recorded tv");

Hallo,

leider funktionier dieses Sript nicht mit einem Netzwerklaufwerk! Gibt es hierfür eine andere Möglichkeit?

Einsatz ist W7

Hallo StevieLu,

wenn Du die Aufnahmen noch im Mediaportal hast (also wenn Du sie auch per Mediaportal Client unter TV -> Aufnahmen siehst) und Du nicht über das Filesystem gehen möchtest, kannst Du auch die MediaPortal Datenbank direkt abfragen.
Eventuell bietet MediaPortal für die Abfrage der Aufnahmen auch eine eigene API an (?), damit kenne ich mich aber nicht aus.

Wie die MP DB aus IPS prinzipiell abgefragt werden kann ist in http://www.ip-symcon.de/forum/f53/mediaportal-geplante-aufnahmen-auslesen-10154/ erläutert. Dort werden die nächsten 5 geplanten Aufnahmen ausgelesen und in IPS Variablen geschrieben. Du müsstest dieses Script dahingehend ändern, dass

a) die bereits erfolgten (statt der geplanten) Aufnahmen abgefragt werden
b) die Ergebnisse nicht in IPS Variablen sondern in Ferengi Masters $tv_aufn_arr landen

Für a) musst Du die SQL Abfrage des oben erwähnten Scripts entsprechend ändern. Im Original Script findest Du sie hier:

$schedules = mysql_query("SELECT name, startTime, endTime, programName, ".
                         "preRecordInterval, postRecordInterval ".
                         "FROM schedule INNER JOIN channel ".
                         "ON (schedule.idChannel = channel.idChannel) ".
                         "ORDER BY startTime ASC;"); 

Zum Auslesen des Filenamens der Aufnahmen (wie bei Ferengi Master) lautet die SQL Anweisung


SELECT fileName FROM recording;

Wenn Du aber ohnehin schon gegen die DB gehst, kannst Du natürlich stattdessen auch dedizierte Felder auslesen. Hier z.B. Titel, Beschreibung und Sendezeit, das ganze sortiert nach Sendezeit:


SELECT title, startTime, description 
FROM recording ORDER BY startTime ASC;

Wenn Du auch den Kanal brauchst wird es etwas komplizierter:


SELECT name, title, startTime, description FROM recording 
INNER JOIN channel ON (recording.idChannel = channel.idChannel) 
ORDER BY startTime ASC;

Viel Spass
Andreas

Danke für die Mühe,

wede ich mir mal die Tage anschauen.

Gruß, StevieLu