Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP-Skript zur webbasierten Timerprogrammierung
So, ich hab mal einfach ein PHP-Skript begonnen, das als Grundgerüst für eine webbasierte Timerprogrammierung genommen werden kann. Sowas kann dann auf einem beliebigen Webserver mit PHP-Unterstützung im Netz mit der Box laufen.
In der jetzigen Version kann man schon CRID-Dateien erstellen und die Senderliste einlesen. Zeitzonen sind noch nicht berücksichtigt.
Irgendwie hab ich keine elegantere Methode gefunden, wie man Binärdaten in eine Datei schreibt. Vielleicht kennt ja jemand eine bessere.
Dateipfade können auch FTP-URLs sein, was das ganze noch interessanter macht.
Später kommen dann noch EPG-Daten dazu und halt noch das, was noch nicht reverse engineered wurde, um den Timer tatsächlich zu programmieren. Hoffentlich finden wir das bald mal raus.
Hier der Code, tobt Euch aus!
<?php
//CRID-Datei schreiben
function WriteCRID($startzeit, $stoppzeit, $senderID, $titel) {
$CID=$startzeit.$senderID;
//Dezimal -> Hex als String
$CID=str_pad(base_convert($CID, 10, 16), 16, "0", STR_PAD_LEFT);
$handle = fopen("test.crid", "wb");
if($handle) {
//Header schreiben
fwrite($handle, chr(0x00).chr(0x00).chr(0x00).chr(0x02));
//Jedes Byte im CID-String binaer in Datei schreiben
for ($i=0; $i<8; $i++) {
fwrite($handle, chr((int)base_convert(substr($CID, $i*2, 2), 16, 10)));
}
//Status (noch nicht aufgenommen)
fwrite($handle, chr(0x00).chr(0x00).chr(0x00).chr(0x01));
//Startzeit-Timestamp
fwrite($handle, chr($startzeit >> 24).chr(($startzeit & 0x00FF0000) >> 16).chr(($startzeit & 0x0000FF00) >> 8).chr($startzeit & 0x000000FF));
//Stoppzeit-Timestamp
fwrite($handle, chr($stoppzeit >> 24).chr(($stoppzeit & 0x00FF0000) >> 16).chr(($stoppzeit & 0x0000FF00) >> 8).chr($stoppzeit & 0x000000FF));
//Unbekannte Bytes
fwrite($handle, chr(0x00).chr(0x00).chr(0x00).chr(0x00));
fwrite($handle, chr(0xFF).chr(0xFF).chr(0xFF).chr(0xFF));
fwrite($handle, chr(0xFF).chr(0xFF).chr(0xFF).chr(0xFF));
//EPG-Aufnahme
fwrite($handle, chr(0x00).chr(0x00).chr(0x00).chr(0x01));
//Unbekannte Bytes
fwrite($handle, chr(0x00).chr(0x00).chr(0x00).chr(0x00));
//Sperrflag
fwrite($handle, chr(0x00).chr(0x00));
//Laenge des Titels
fwrite($handle, chr(0x00).chr(0x00).chr(0x00).chr(strlen($titel))) ;
//Titel-String
fwrite($handle, $titel);
//Anzahl der FMPG-Dateinamen
fwrite($handle, chr(0x00).chr(0x00).chr(0x00).chr(0x00));
//Laenge Art/Herkunft
fwrite($handle, chr(0x00).chr(0x00).chr(0x00).chr(0x00));
//Laenge Beschreibung
fwrite($handle, chr(0x00).chr(0x00).chr(0x00).chr(0x00));
//Flag, ob Film bereits gestartet wurde
fwrite($handle, chr(0x00).chr(0x00).chr(0x00).chr(0x00));
}
fclose($handle);
}
/*-------------------------------------------------------------------*/
//Sonderzeichen loeschen/ersetzen
function clean_str($str) {
//$str=str_replace(chr(0x05), "", $str);
$str=trim($str, "\x00..\x20");
return $str;
}
/*-------------------------------------------------------------------*/
//Vergleichsfunktion zum Sortieren
function compare($a, $b) {
return strcmp(strtolower($a[0]), strtolower($b[0]));
}
/*-------------------------------------------------------------------*/
//MAIN
//Senderliste aus services.txt einlesen
$sender=array();
$count=0;
$handle = fopen("services.txt", "rb");
if($handle) {
while (!feof($handle)) {
$line=fgets($handle, 4096);
$sendername=clean_str(substr($line, 0, 24));
$senderkurzname=clean_str(substr($line, 87, 3));
$senderEPGID=substr($line, 112, 4).substr($line, 102, 4).substr($line, 107, 4);
$senderID=substr($line, 140, 5);
if (!empty($sendername)) {
$sender[$count]=array($sendername, $senderkurzname, $senderID, $senderEPGID);
$count++;
}
}
fclose($handle);
}
//Senderliste sortieren
usort($sender, "compare");
//Senderliste ausgeben
echo "<table border='1'>";
for ($i=0; $i<count($sender); $i++) {
list($sendername, $senderkurzname, $senderID, $senderEPGID)=$sender[$i];
echo "<tr><td>$sendername</td><td>$senderkurzname</td><td>$senderID</td><td>$senderEPGID</td></tr>";
}
echo "</table>";
WriteCRID(mktime(20, 15, 0, 1, 18, 2005), mktime(21, 0, 0, 1, 18, 2005), 10012, "Harald Schmidt oder was");
?>
spitt
21.01.2005, 14:33:04
Kein schlechter Anfang. Weiter so! Danke.
hagalulu
21.01.2005, 16:32:24
hallo,
habe ein skript zum holen und zur umwandlung von epg daten gefunden. die daten werden in das xmltv format exportiert und ließen sich dann doch sicher relativ einfach in das php skript einbinden. so wie ich das sehe sind alle wichtigen sender vorhanden :D
link zum parser: http://zaval.org/products/atv/download/atv-parser-1.7.zip
link zur doku: http://zaval.org/products/atv/user_guide/index.html#usage_parser
gruß,
hagalulu
Die Links sind bei mir leider nicht im Bereich des Funktionstüchtigen.
hagalulu
21.01.2005, 17:20:47
Die Links sind bei mir leider nicht im Bereich des Funktionstüchtigen.
also bei mir funktionieren sie, trotzdem habe ich mal den parser angehängt
Hm, also im ersten Schritt sollte man doch am besten die EPG-Daten verwenden, die die Box ohnehin bereitstellt. Das Format ist ja schon verstanden:
http://www.m740.de/forum/showthread.php?t=282
hagalulu
21.01.2005, 20:16:04
Hm, also im ersten Schritt sollte man doch am besten die EPG-Daten verwenden, die die Box ohnehin bereitstellt. Das Format ist ja schon verstanden:
http://www.m740.de/forum/showthread.php?t=282
na ja, wenn ich mir so die epg daten meiner box anschaue, vor allem was dir daten der zukünftigen tage angeht, so fände ich es schon ganz nett, wenn ein webbrowser mir ein 2 wöchiges programm anzeigen würde, das ich dann einfach programmieren würde.
hagalulu
frostdiver
21.01.2005, 20:59:00
Eben. Das was mich an der "Ferngesteuerten" Programmierung interessiert, ist eben ein EPG das mehr Tage beareitstellt. Gar nicht mal so das programmieren von der Arbeit aus...
So, im Anhang ist das deutlich weiter entwickelte PHP-Skript namens epg.php.
Es ist jetzt möglich, die kompletten EPG-Daten der Box anzuzeigen und Sender auszuwählen. Die Daten werden automatisch per FTP geholt, es muss also FTP auf der Box serviert werden. Dazu muss eigentlich nur die IP-Adresse der Box in dem Skript eingetragen werden. Alles weitere steht im Skript ganz oben.
Viel Spaß, und hoffentlich kriegen wir bald raus, wie man wirklich von außen den Timer programmiert. Vorbereitet ist jetzt jedenfalls alles.
tier-isch gut!
epg.php lief bei mir auf Anhib!
Ich habe folgende kleine Änderung eingebaut:
//Programmliste ausgeben
echo "<table border='1'>";
for ($i=0; $i<count($programmliste); $i++) {
list($start, $titel, $art, $beschreibung)=$programmliste[$i];
if($start > time()-7200) {
echo "<tr><td nowrap>".strftime("%d.%m.%Y %H:%M:%S", $start)."</td><td>$titel";
if (!empty($art))
echo "<br><i>$art</i>";
echo "</td><td>";
if (!empty($beschreibung))
echo "<a href=\"javascript:void()\" onMouseover=\"ddrivetip('".newline2br(htmlspecialchars($beschreibung)).
"')\" onMouseout=\"hideddrivetip()\">Beschreibung</a>";
echo "</td></tr>\n";
}
}
echo "</table>";
Damit werden nur noch Sendungen angezeigt, deren Beginn maximal
2 Stunden vor der aktuellen Zeit lag.
Gert
Und noch eine kleine Änderung zu epg.php:
Bei der Ausgabe der Programmbeschreibung habe ich zusätzlich
zu htmspecialchars, die Stringfunktion addslashes eingebaut:
also: htmlspecialchars(addslashes($beschreibung))
Damit werden auch Beschreibungen, welche einfache oder/und
doppelte Anführungszeichen enthalten, korrekt dargestellt
(vorher kam unten im Browser eine Fehlermeldung und manche
Beschreibungen (die mit einfachen Tüddelchen) waren nicht darstellbar.
Gert
Pretender
26.01.2005, 16:48:44
Moin!
Das Script ist echt super! thx.
Ich habe noch ein paar Änderungen hinzugefügt.
1. Sender werden in einer Tabelle als Logos angezeigt. (Derzeit 8 Logos in einer Zeile)
2. Der aktuelle Sender wird markiert.
3. Die aktuelleSendung wird "gehighlighted"
4. Wenn $titel und die $art identisch sind wird $art nicht nochmal ausgegeben.
5. Weil ein paar Logos transparenten Hintergrund haben, habe ich die Farben geändert. Kann man ja schnell wieder ändern...
In dem zip-File sind noch weitere Logos enthalten, auch welche die ich nicht hier in Düsseldorf empfange.
Die Logos die angezeigt werden habe ich mit hilfe der service.txt aus D in dei SenderID umbenannt. Gibt es eine ID die immer gültig ist?
Weil 10102 ist glaube ich nicht überall "WDR Düsseldorf"
Alle bisherig veröffentlichte Änderungen habe ich schon mit eingefügt.
***Edit: Da ich eine neue Version hochgeladen haben, habe ich die alte gelöscht.***
CU Sven
Hallo zusammen!
Das PHP-Scipt entwickelt sich ja prächtig.
Sieht klasse aus mit den Logos. Leider sind die SenderIDs der RegionalProgramme je nach Region unterschiedlichen Sendern zugeordnet.
Ich musste daher etwas puzzeln bis es bei mir passte.
Vorschlag:
Die Logodateien werden nicht nach der ID benannt sondern nach den
Sendernamen. Dann brauchen wir nur noch alle regionalen
"services.txt" Dateien sammeln und für alle jemals auftretenden
Sendernamen die Logos erstellen.
Als Anhang schon mal meine "services.txt" für den Raum
Hannover-Braunschweig
(ich hoffe das klppt mit dem Anhang, hab ich noch nie gemacht)
Gert
spitt
26.01.2005, 22:52:38
Das Skript gefällt mir. Ich habe allerdings noch einen Verbesserungsvorschlag:
Alle Vorkommen von "epg.php" durch $SCRIPT_NAME ersetzen, falls jemand (ich z.B.) auf die dumme Idee kommt das Skript umzubenennen ;).
Pretender
27.01.2005, 00:03:26
Moin!
Die Wünsche sind eingearbeitet und die Logografiken auch umbenannt.
Da es bei mir Probleme mit den Umlauten und dem "/" gab, wandel ich die Sendernamen intern noch ein wenig um.
Ich habe mal Script und Logos getrennt...
Die Logos in "images/logo/" entpacken
Viel Spaß
CU Sven
****
Neue Version vorhanden... Aktuelleste Vesionen immer unter:
http://www.m740.de/wiki/index.php/%C3%9Cbersicht_%C3%BCber_hilfreiche_Software#EPG_P HP-Skript
Schön schön! Freut mich, dass es Euch gefällt und auch direkt weiterentwickelt wird.
Über $SCRIPT_NAME hatte ich auch schon nachgedacht, aber in meinem Setup wird dann z.b. immer die php.exe zurückgegeben. Daher ist das noch keine Lösung. Für die meisten wirds allerdings funktionieren, denk ich mal.
Die 5stelligen SenderIDs sind übrigens nicht eindeutig in ganz Deutschland vergeben. Wir kommen nicht drum herum, die Logos mit den Sendernamen zu benennen. Macht ja aber nichts, funktioniert doch gut!
joemj
27.01.2005, 11:16:08
Hallo,
super Sache! Läuft auch auf dem IIS6 sehr gut.
Das einzige, was bei mir streikt ist Südwest3 - warscheinlich aufgrund des "ü" ? Da ich noch nicht bis zum Ende Eurer Meisterleistung durchgestiegen bin... nur 'ne kurze Meldung... Hab 'grad erst die ISAPI eingebastelt...
SPITZE!!! Ihr seid die Helden! :D
Pretender
27.01.2005, 12:06:04
Das einzige, was bei mir streikt ist Südwest3 - warscheinlich aufgrund des "ü"
Moin!
Das Problem ist, dass ich nicht alle "Sendernamen" zur Verfügung habe. Daher konnte ich nicht alle Logo's richtig benennen. Das Logo von Südwest 3 hat noch den Namen swr.gif.
Ich hatte bisher nur die services.txt von mir aus Düsseldorf und von Gert für den Raum Hannover-Braunschweig... Postet einfach eure services.txt, dann änder ich die Logonamen.
***Edit: Zum schnellen selber Ändern:
Entferne alle "/", Leerzeichen und wandel Umlaute um, wie "ä" zu "ae". Dann noch alles in Kleinbuchstaben und fertig :-) ***
CU Sven
spitt
27.01.2005, 12:33:28
@tier: Hast du es alternativ mal mit $PHP_SELF probiert?
@tier: Hast du es alternativ mal mit $PHP_SELF probiert?Ja, da kommt das gleiche...
spitt
27.01.2005, 14:22:31
Das ist dann natürlich schlecht...
joemj
27.01.2005, 15:32:07
... Postet einfach eure services.txt, dann änder ich die Logonamen.
Siehe Anhang ;-) Eigentlich fehlte nur "südwestrp.gif" :D Nochmal - Ihr seid die Helden ;-)
Anhang: Düsseldorf/Krefeld NRW
Pretender
27.01.2005, 16:22:54
... Eigentlich fehlte nur "südwestrp.gif" :D ...
Da werden wohl noch mehr fehlen, da noch die Regionalfenster der 3. Programme dazu kommen.
Änderungen an egp.php:
1. Aufruf des Scriptes mittels $PHP_SELF (Ist die "bessere" Variante, auch wenn es bei tier nicht funzt :confused: )
2. Reihenfolge der Umwandlung der Sendernamen geändert. (Erst klein machen, danach umwandeln)
CU Sven
***Edit: Neuere Version vorhanden ***
Wolle
27.01.2005, 17:25:55
Moin...
Danke fuer den Code. Laeuft super !
Micky
29.01.2005, 07:48:13
Hallo Leute,
Habe jetzt auch das epg.php am laufen aber irgendwie kann ich nichts programmieren oder verstehe ich hier was falsch? Jedenfalls bekomme ich das EPG angezeigt aber das war es dann auch schon.
Gruß
Michael
hagalulu
29.01.2005, 09:13:38
hallo, micky,
neine, du hast nichts falsch verstanden. im moment ist das nur eine grundlage für die timerprogrammierung. leider ist noch nicht raus, wie genau die programierung auf der box aussehen soll. aus diesem grund hast du im moment nur die daten.
gruß,
hagalulu
Pretender
29.01.2005, 22:04:42
Moin,
Ich habe das Script noch mal dahingehend geändert, dass Sendungen die über zwei Stunden länge trotzdem noch angezeigt werden.
Bei dem Script timer.php habe ich noch ein kleines Problem.
Es werden die ersten Einträge angezeigt und dann bekomme ich eine Warnung:
Warning:fopen(ftp://...@192.168.0.4/data/.timer/0001E3FAC346_1109008200010002.crid): failed to open stream: No error in F:\Server\xampp\htdocs\m740av\timer.php on line 75
Ich vermute, dass es ein FTP Problem der Box ist, denn danach funzt für ein paar Minuten auch epg.php nicht mehr :-(
CU Sven
*** Edit: Neuere Versionen vorhanden. ***
joemj
29.01.2005, 23:06:28
Ich staun immer mehr - ;-)
ich raff zwar nülle, wie ihr das hinkriegt (mag am bacardi liegen) - bin total gespannt auf das was da noch kommt...
Zeile 38: if($VerbindungsID)
bei mir sieht's inzwischen so aus...
joemj
29.01.2005, 23:55:51
:confused:
Diese blöden quadrate...
Zeile 141/142 ?
Pretender
30.01.2005, 00:27:35
Gut, das mit den längen hatte ich in der zwischenzeit auch schon geändert ;-)
Mit den Quadraten schaue ich morgen mal, hab da gerade was in dem Thread über den Aufbau der Crid Dateien gelesen.
Ansonsten, das Script ist im frühen alpha Stadium, ich hatte es nur gepostet weil ich mit der Fehlermeldung nicht weiterkomme :confused:
Der Fehler tritt übrigens nicht immer nach der gleichen Anzahl auf (>17).
Aber ist jetzt auch ein wenig spät ;)
***Edit: Der Fehler tritt auch bei epg.php auf wenn man "mutwillig" sehr schnell und häufug die Sender wechselt. ***
Bis nachher
CU Sven
Wolle
30.01.2005, 09:37:44
Moin...
Wieder mal super arbeit.
Aber ich meine ein kleiner Fehler ist da noch drin.....
Warning: fread() [function.fread]: Length parameter must be greater than 0. in O:\xampp\htdocs\m740av\timer.php on line 145
Ich vermute es liegt daran, dass in EPG nix drin steht.....weis nur nicht wie ich das abfangen kann....
...vielleicht hat ja schon jemand was passendes geschrieben.... ;-)
Cul8
Micky
30.01.2005, 10:27:20
Hallo,
Kann mir einer sagen wie ich die 3 Pic vom NDR angezeigt bekomme? Denn in der Senderkennung ist ein * und das kann man in dem Dateinamen nicht angeben.
Gruß Michael
Pretender
30.01.2005, 10:39:41
Moin,
das Script entfernt jetzt auch die "*", die Anzeige sollte also nach umbenennen der Logos klappen.
Bei timer.php, überprüfe ich jetzt die Länge der Strings und nur wenn diese >0 sind werden sie ausgelesen.
Ich begebe mich jetzt wieder an das FTP Problem.
CU Sven
*** Edit: Neue Version Vorhanden ***
Wolle
30.01.2005, 10:56:10
@Pretender : Danke....wollte es grade posten, aber du warst schneller ;-)
P.S.: Vielleicht kannst du noch ein Space in den Variablen einbauen, wenn sie keinen Inhalt haben. Ist nur wegen der Kosmetik und so....
$episode = " ";
$epg = " ";
$filep = " ";
Cul8
joemj
30.01.2005, 12:48:17
***Edit: Der Fehler tritt auch bei epg.php auf wenn man "mutwillig" sehr schnell und häufug die Sender wechselt. ***
Definitiv. Dann ist auch erst mal Sendepause. Ich hab die Box deswegen nicht neu gestartet, weil sie gerade Ronin aufgenommen hatte. Heute morgen (13 Uhr) wollt' ich ma gucken, ob alles in Ordnung ist - und da geht's wieder !?
Ich begebe mich jetzt wieder an das FTP Problem.
Leider kommt es beim direkten Zugriff auf die Box häufig zu Störungen beim ftp-Server. Der Server erlaubt manchmal minutenlang gar keine Anmeldung mehr.
Ich habe eine Variante erstellt, welche die Daten von der Box via ftp in ein temp. Verzeichnis im Web-Server kopiert.
Von dort kann sich dann das Programm zur Anzeige der Daten bedienen. (Siehe Bildschirmausschnitt)
Als Vorlage habe ich das Script und die Logos von pretender verwendet.
Pretender
31.01.2005, 00:13:53
Moin,
erst mal danke @wolle für die Tips und Anregungen.
Ich habe jetzt die Variante von api genommen und erweitert...
Gestartet wird ab jetzt über die index.htm
Als erstes solltet ihr über Konfiguration eure Einstellungen ändern.
Der Rest ist glaube ich selbst erklärend :-)
Ich werd dann mal ins Bett gehen.
Die Logos müssen noch in das entsprechende Verzeichnis gespeichert werden.
CU Sven
Ich werd dann mal ins Bett gehen.CU Sven
Moin!
Klappt, sieht gut aus.
In der index.htm könntest Du
<frame src="\top.htm" ...
<frame src="\left.htm" ...
<frame src="\start.htm"...
durch
<frame src="top.htm" ...
...
ersetzen.
Mit relativen Angaben würde das auch dann laufen, wenn die index.htm *nicht* in der Wurzel des Web-Servers liegt.
@pretender: Du hast Post!
Pretender
31.01.2005, 11:57:12
In der index.htm könntest Du
<frame src="\top.htm" ...
<frame src="\left.htm" ...
<frame src="\start.htm"...
durch
<frame src="top.htm" ...
...
ersetzen.
Habe ich ersetzt.
In der update.zip sind zusätzlich die Dateien epg.php, config.php und config/common.php enthalten.
Ich habe versucht eine Sicherheitslücke zu schließen. (Hoffentlicht auch geschafft ;) )
CU Sven
Wolle
31.01.2005, 12:03:15
Moin...
Danke fuer die schnelle Umsetzung...
Ich habe es zwar nicht auf anhieb zum laufen bekommen. Aber jetzt gehts. Keine Ahnung woran es lag.
Jetzt fehlt nur noch die Funktion "Aufnahmen" ;)
Cul8
Hallo Sven!
Ich habe epg.php noch etwas verändert.
Folgende Punkte habe ich angepaßt:
- Den Code für die Tooltips habe ich in externe Dateien ausgelagert. (dhtmltooltip_style.htm, dhtmltooltip_body.htm)
- Falls service.txt nicht da ist, wird die Datei jetzt auf jeden Fall geladen.
- Das Nachladen der Epg-Daten und die Anzeige des Status habe ich korrigiert.
(Die Anzeige zeigte den Stand vor dem Nachladen...)
cu Arno
scoep
31.01.2005, 20:27:35
Hi Leute!
Könntet ihr mal einen Link posten, wo man alle Dateien herunterladen kann, die man für die PHP-Skripte braucht? Ich weiß, daß man damit noch keine Timer programmieren kann...
Danke und weiter so!
Gruß,
Scoep
spitt
31.01.2005, 20:43:21
Für dieses Script benötigst du einen Webserver und den PHP-Interpreter.
Ein Komplettset für Windows, Linux und Solaris findest du unter http://www.apachefriends.org/en/xampp.html
Das ist zwar ein wenig wie mit Kanonen auf Spatzen zu schießen, da das Paket viel mehr enthält, als eigentlich benötigt wird, aber sicher die einfachste Lösung.
scoep
31.01.2005, 21:28:03
schon klar ;-)
ich meinte ein Zip-File mit allen Skripten, Logos und sonstigen Dateien.
Gruß,
Scoep
Wolle
31.01.2005, 21:28:42
Moin...moin...
@Pretender und Api
...wie ich jetzt feststelle, wird bei der Timer-Funktion, Sendungen die bendet sind, nicht aus der Liste geloscht.
Ich denke mal, da mueste bei dem Befehl...
"Daten aus der Box via Ftp abholen und zwischenspeichern..."
... die alten Dateien im Verzeichnis Daten/timer/*.crid geloescht werden.
Damit nur noch die aktuellen zu sehen sind.
Cul8
spitt
31.01.2005, 23:45:42
@scoep: Mis(s/t)verständnis... :o :D
Pretender
01.02.2005, 00:03:47
... die alten Dateien im Verzeichnis Daten/timer/*.crid geloescht werden.
Damit nur noch die aktuellen zu sehen sind.
Moin!
Der Fehler lag in der Überprüfung der zu löschenden Dateien. Ich habe das Script jetzt dementsprechend geändert.
@scoep Ich bin leider nicht der Threadstarter sonst würde ich die neuesten Versionen immer in das 1. Posting schieben. So gibt es ab und zu komplette Versionen, ansonsten nur die Updates.
Vielleicht fällt mir ja eine "benutzerfreundlichere" Methode ein, evtl. eine eigene Seite oder so... Aber ich bin ja auch nicht der Urheber der "ersten" Version ;)
CU Pretender
schon klar ;-)
ich meinte ein Zip-File mit allen Skripten, Logos und sonstigen Dateien.
Gruß,
Scoep
http://www.m740.de/wiki/index.php/%C3%9Cbersicht_%C3%BCber_hilfreiche_Software#EPG_P HP-Skript
Wolle
01.02.2005, 18:48:53
Moin...
@Pretender : Hab es gewust, das es sehr schnell geht. Es luept !
Danke.
@Api : Danke fuer den Link !
Cul8
Pretender
01.02.2005, 18:52:53
http://www.m740.de/wiki/index.php/%C3%9Cbersicht_%C3%BCber_hilfreiche_Software#EPG_P HP-Skript
Moin,
man lernt doch nie aus. Das kommt davon wenn man nur in einem Forum unterwegs ist :rolleyes:
Ich habe mal meine Version der Logos noch mal Online gestellt.
Derzeit befinden sich 78 Senderlogos in dem File:
***
3sat, arte, atv, bahntv, bbcworld, bibeltv, bloomberg, br3, bralpha, cnbce, cnnint, daserste, dokukika, dsf, dw, einsextra, einsfestival, einsmuxx, euronews, eurosport, franken_sat, gotv, hrfernsehen, hse24, info3sat, kabel1, kinderkanal, mdrfernsehen, mtv, mtv2pop, n24, nbceurope, ndrfshh, ndrfsmvp, ndrfsnds, ndrfssh, neunlive, ntv, orf1, orf2, phoenix, prosieben, qvc, rbbfernsehen, rheinmaintv, rnfplus, rtl2, rtlshop, rtltelevision, sat1, sf1, sf2, spika, suedwestrp, superrtl, tele5, terranova, Thumbs, tsr1, tsr2, tv, tvnrw, tw1, viva, vivaplus, vox, wdrdortmund, wdrduesseldorf, wdressen, wdrkoeln, xxp, zdf, zdfdoku, zdfinfo, zdftheater
***
Sollten noch Senderlogos fehlen, meldet euch einfach!
Es geht darum im wiki, eine Datei mit den Logos bereit zu stellen.
CU Sven
Pretender
01.02.2005, 23:47:47
Moin,
ich kann es einfach nicht lassen...
Es gibt eine neue Version, da ich einiges umgestellt habe gibt es mal wieder eine komplette Version. (allerdings ohne Logos)
Neu hinzu gekommen ist die Anzeige der Aufnahmen.
Bitte zuerst in der Konfig die Daten ändern!
Pfade für PC1-Pc5 und USB sind die Pfade auf der Box.
CU Sven
Moin,
ich kann es einfach nicht lassen...
CU Sven
Hoffentlich bleibt das so.
Es gibt eine neue Version, da ich einiges umgestellt habe gibt es mal wieder eine komplette Version. (allerdings ohne Logos)
CU Sven
Das nimmt ja langsam Formen an.
Neu hinzu gekommen ist die Anzeige der Aufnahmen.
Bitte zuerst in der Konfig die Daten ändern!
Pfade für PC1-Pc5 und USB sind die Pfade auf der Box.
CU Sven
case('ubs');
$dataBoxDir = $PATH_USB;
Ups! ubs -> usb
Nebenbei:
Für USB könnte man den Standardpfad /var/media/USB-HDD/Video/ voreinstellen.
Die Eingabefelder der Pfade könnten etwas breiter sein.
Wolle
02.02.2005, 09:17:35
Moin...
Danke, fuer die neue Version.
.....Post geaendert.......
@ api : nett von dir mit dem Hinweis :
case('ubs');
$dataBoxDir = $PATH_USB;
..nach aenderung in case('usb'); luept es auch bei mir ;-)
Cul8
Mahlzeit.
Moin,
ich kann es einfach nicht lassen...
CU Sven
Ich auch nicht.
- Ich habe die html und php-Dateien derart angepasst, dass die Seiten auch dann laufen, wenn ein Browser ohne Frames verwendet wird.
Alle erzeugten Ausgaben sind jetzt syntaktisch richtige html-Dateien. (Hoffe ich)
- Ich habe mal alle Warnungen eingeschaltet:
Das führt zu folgenden Warnungen in timer.php
Notice: Undefined variable: rstart in D:\Programme\xampp\htdocs\m740av\includes\crid.php on line 150
...
@pretender: Woran liegt das? Ich habe mir den Code in crid.php noch nicht genau angeschaut.
- Die Tooltip-Dateien habe ich in den Ordner includes verschoben.
Hier das aktuelle vollständige Archiv. (ohne Logos)
Mahlzeit.
- Ich habe mal alle Warnungen eingeschaltet:
Das führt zu folgenden Warnungen in timer.php
Notice: Undefined variable: rstart in D:\Programme\xampp\htdocs\m740av\includes\crid.php on line 150
...
Die Ursache für die Warnungen habe ich entfernt.
Hier das aktuelle vollständige Archiv. (ohne Logos)
Noch einige kleine Änderungen:
-Anzeige des Datenstandes jetzt auch für services.txt (auf der Seite Konfiguration)
-kleinere optische Änderungen
Im Anhang das aktuelle vollständige Archiv. (ohne Logos)
ps:
Die Anzeige der Infos aus der Box ist ja jetzt vorhanden. Wie ist denn der Stand der Dinge in Sachen Timerprogrammierung?
Noch einige kleine Änderungen:
-Es erscheint jetzt nach einer Sekunde eine entsprechende Fehlermeldung falls die Box nicht erreichbar ist.
Bisher dauerte das etwa eine Minute.
-einige Korrekturen bei der Anzeige von Sonderzeichen in den EPG-Daten
Im Anhang das aktuelle vollständige Archiv. (ohne Logos)
ps:
Das Ermitteln der Dateinamen im Aufnahmeordner der Box via ftp mit ftp_nlist() dauert ewig. (Minuten)
Das eigentliche Laden der crid-Dateien via ftp mit ftp_get() geht dann schnell. (Sekunden)
Kennt jemand eine schnellere Möglichkeit als ftp_nlist() zum Ermitteln der Dateinamen der crid-Dateien?
Warum dauert das solange?
@Lemmi: Kann das am verwendeten ftp-Server liegen?
Wolle
04.02.2005, 16:58:47
Moin...
Danke, so schnell wie ihr seit, kommt man garnicht nach mit dem testen ;-)
Jetzt fehlt wirklich nur noch das man ueber das Web seine Box programieren kann..... :)
Cul8
Moin!
Ich habe eine weitere experimentelle Ansicht der EPG-Daten erstellt:
Es werden alle EPG-Daten auf einer Seite gezeigt.
Die Zeitachse ist horizontal, die Sender sind zeilenweise angordnet. Die einzelnen Sendungen werden zeitlich synchron dargestellt. Die ausführlichen Texte werden als Tooltip angezeigt. So sieht man den Umfang der EPG-Daten auf einen Blick.
Die Seite besteht aus komplexen, ziemlich umfangreichen Tabellen. Ich bin mir weder sicher, ob die Tabelle vollständig syntaktisch korrekt ist, noch ob Tabelle von allen Browsern dargestellt werden kann.
getestet mit:
- Mozilla Firefox 1.0: OK
- IE 6.0 Sp1: OK
- Opera 7.54: hat leider Darstellungsprobleme mit der Tabelle und die Tooltips werden bei dieser Größe nicht mehr dargestellt.
Im Anhang ein Bildschirmausschnitt und das aktuelle vollständige Archiv.
Moin.
hier die nächste experimentelle Version:
- alle dargestellten Seiten sind gegen das Testprogramm http://validator.w3.org/ geprüft und OK.
- einige zusätzliche Sonderzeichen wurden für die html-Darstellung umgewandelt
- Die vollständige EPG-Darstellung wird jetzt neben Mozilla Firefox und IE jetzt auch mit Opera korrekt dargestellt.
- Die Reihenfolge der Sender kann jetzt beliebig per Knopfdruck gewählt werden.
- - In der EPG-Einzeldarstellung geht das dann, wenn ein Sender gewählt ist.
- - In der Gesamtdarstellung gibt es für jeden Sender einen Knopf zum hoch oder runterschieben.
- Die Darstellung in der EPG-Gesamtansicht kann vom Benutzer bestimmt werden. Folgende Werte sind frei vom Benutzer einstellbar:
- - Zeitpunkt Beginn der Darstellung, relativ zum aktuellen Zeitpunkt
- - Zeitpunkt Ende der Darstellung, relativ zum aktuellen Zeitpunkt
- - Maßstab der Zeitachse
Im Anhang ein Bildschirmausschnitt und das aktuelle vollständige Archiv.
Micky
07.02.2005, 04:57:02
Moin Api,
Ich habe mir gerade deine neue Version runter geladen. Glückwunsch das mit dem Sortien ist spitze. Jetzt der wehrmut ich bekomme eine Fehlermeldung.
Aber so wie ich hier die Comuniti kenne wird das wieder schnell behoben...
Gruß Michael
ich bekomme eine Fehlermeldung.
Gruß Michael
Das ist nur ne Warnung. Zu Testzwecken habe ich die Warnungen aktiviert.
Du kannst einfach in der EPG-Ansicht den Knopf 'Speichern' drücken, dann wird die angemahnte Datei angelegt und die Meldung sollte in Zukunft weg sein.
Warnungen kannst Du übrigens auch abschalten, indem Du in includes/common.php
//error_reporting(0);
error_reporting(E_ALL);
durch
error_reporting(0);
//error_reporting(E_ALL);
ersetzt.
Micky
07.02.2005, 09:29:36
Hallo Api,
Danke für die schnelle Hilfe. Hat wunderbar geklappt.
Gruß Michael
Moin.
Fehler beseitigt:
- Bei der Anzeige der Timer- und Aufnahmedaten fehlte in der Spalte "Titel Episode Inhalt" der Teil Episode.
Hier das aktuelle vollständige Archiv.
Hier die nächste experimentelle Version.
Änderungen 2005-02-13:
- 'EPG Alle'-Darstellung:
- - Es können jetzt Sender ausgeblendet werden.
- - Die Formularfelder Beginn und Ende können auch leer sein
- - - Beginn leer bedeutet Darstellungsbeginn mit der frühesten vorhandenen Sendung
- - - Ende leer bedeutet Darstellung bis zur letzten vorhadenen Sendung
- - Es gibt jetzt Direktwahllinks:
- - - Jetzt: aktuelles Programm (-1h bis 3h)
- - - 1 Tag: 24h ab jetzt (-1h bis 24h)
- - - 1 Tag zurück: verschiebt die aktuelle Darstellung um einen Tag zurück
- - - 1 Tag vor: verschiebt die aktuelle Darstellung um einen Tag vor
- - - Alles ab jetzt: Zeigt ab jetzt alle vorhandenen Daten (-1h bis ...)
- - - Alles: Zeigt alle vorhandenen Daten an (... bis ...)
- - - - Diese sehr große Tabelle gibt einen Überblick über alle verfügbaren EPG-Infos.
- - Tabellenaufbau geändert. Erzeugung der Tabellen in kleine Happen zerlegt.
- In der 'EPG Einzeln'-Darstellung wird jetzt, falls vorhanden, in allen Fällen auch
die vorhergehende Sendung angezeigt.
- Frameaufteilung geändert.
- Hinweistext auf der Startseite.
- neues Unterverzeichnis prefs/
Hier liegen alle Dateien in denen Einstellungen gespeichert werden.
- Beim erstmaligen Sart ohne Konfigdateien erscheint ein Hinweis auf die
Konfigurationsseite wo dann die IP-Adresse eingetragen werden kann.
- Beim Start ohne Konfigdateien werden alle Einstellungen mit Defaultwerten
vorbelegt. (Ausnahme IP-Adresse)
- Aufbereitung alle EPG-Texte für die HTML-Darstellung vereinheitlicht.
Sonderzeichen, ', ", ... und Zeilenumbrüche sollten jetzt in allen Tabellen
und in den Tooltips korrekt erscheinen.
- Anzeige von Fehlern und Warnungen: error_reporting(E_ALL & ~E_NOTICE)
Es sollten jetzt nur noch Fehler angezeigt werden.
Warnungen beim Öffnen von nicht vorhandenen Dateien unterbleiben jetzt.
- <meta http-equiv="expires" content="0"> in den erzeugten Seiten erzwingt Neuladen.
- Alle Ausgaben sind jetzt auch bei leeren Listen syntaktisch korrektes Html.
http://validator.w3.org/
- includes/config.php in readconfig.php umbenannt
Was immer noch nicht geht:
- Timerprogrammierung in der Box.
Bildschirmfotos und Beschreibung siehe
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv.
Lemmi
13.02.2005, 11:26:15
Ich habe gerade die neuste ersion auf meinem neuen Server installiert -- es war also ein Blanko-Installation. Folgende Probleme:
index.htm wurde nicht automatisch aufgerufen, da normalerweise index.html (das 'L' machts) gesucht wird. Ich weiß, das ich meinen Server großzügiger einstellen kann und auch werde.
Das Konfig-Script legt keine Datei an, auch wenn ich 'chmod 777 prefs' mache.
Das Konfig-Script legt keine Datei an, auch wenn ich 'chmod 777 prefs' mache.
[/list]
Darf PHP bei dir überhaupt Dateien anlegen?
Ist die alte Version bei dir gelaufen?
Hat jemand der Anwesenden das Script bereits unter Linux getestet? Bisher gibt es keine anderen Rückmeldung bzgl. Linux (weder positiv noch negativ).
Meine Testumgebung: XAMPP Win32
Lemmi
13.02.2005, 13:55:40
Fehler gefunden:
Setze register_globals = On
php-Erweiterung 'php4-ftp' installieren
Nachdem ich mir die alten EPG-Zips angeschaut hatte, war mir Fehler 1.) klar. Dann erschien die Meldung
Fatal error: Call to undefined function: ftp_connect() ....
Daraus ergab sich dann Punkt 2.)
Fehler gefunden:
Setze register_globals = On
php-Erweiterung 'php4-ftp' installieren
Nachdem ich mir die alten EPG-Zips angeschaut hatte, war mir Fehler 1.) klar. Dann erschien die Meldung
Fatal error: Call to undefined function: ftp_connect() ....
Daraus ergab sich dann Punkt 2.)
zu 1.: Die nächste Fassung wird auch mit register_globals = off laufen. Besser ist das!
zu 2.: Ich werde einen Hinweis auf die nötige Version in die Beschreibung einfügen.
Hier die nächste experimentelle Version.
Änderungen 2005-02-13 18:09:
- Das Script läuft jetzt auch mit der Einstellung register_globals = off; in der PHP-Konfigurationsdatei php.ini.
Was immer noch nicht geht:
- Timerprogrammierung in der Box.
Bildschirmfotos und Beschreibung siehe
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv.
Lemmi
13.02.2005, 19:42:48
Hier die nächste experimentelle Version.
Änderungen 2005-02-13 18:09:
- Das Script läuft jetzt auch mit der Einstellung register_globals = off; in der PHP-Konfigurationsdatei php.ini.
Kann ich als Linuxer (apache 2.0.50, php 4.3.8) bestätigen.
Jetzt fehlt nur noch 'ne Info der benötigten PHP-Module.
Lengemann
13.02.2005, 20:22:06
Also bei mir läuft das Tool auch auf Linux und mit chmod -R 777 hat alles geklappt.
Hatte nur bei ersten installieren der neuesten Version das -R vergeseen ;)
Aber sonst hut ab, ist wirklich sehr schön, mal schnell zu schauen, was auf der Box läuft ohne den Fernseher anzuschalten. Thx
Lutz
datajunkie
13.02.2005, 20:50:44
Hey Leute,
das PHP-Skript ist ja schon 'n echter Kracher, Respekt.
Einen kleinen, für mich wichtigen Ergänzungsvorschlag hätte ich noch: Die Auflistungen der Timer- und Aufnahmen-EInträge hätte ich gerne zeitlich aufsteigend sortiert.
Folgende vier Zeilen im File 'includes/crid.php', direkt vor dem 'return $cridDaten' tun's hier (diff-Output):
170a171,175
> foreach ($cridDaten as $key => $row) {
> $vstart[$key] = $row['start'];
> $vcid[$key] = $row['cid'];
> }
> array_multisort($vstart, SORT_ASC, $vcid, SORT_ASC, $cridDaten);
Das multisort-Kommando sortiert hier erst nach der Startzeit und dann, bei Gleichheit, nach der Programm-ID.
Wer's lieber andersherum sortiert hätte, kann einfach SORT_ASC durch SORT_DESC ersetzen.
170a171,175
> foreach ($cridDaten as $key => $row) {
> $vstart[$key] = $row['start'];
> $vcid[$key] = $row['cid'];
> }
> array_multisort($vstart, SORT_ASC, $vcid, SORT_ASC, $cridDaten);
Gute Idee. Hab ich eingebaut. Allerdings mit SORT_DESC, also neue Daten zuerst.
Da werde ich auch noch einen Knopf zum Auswählen der Sortierung spendieren.
Kann ich als Linuxer (apache 2.0.50, php 4.3.8) bestätigen.
Jetzt fehlt nur noch 'ne Info der benötigten PHP-Module.
Mach ich noch.
Für 'EPG_PHP-Skript/Installation' im Wiki:
Welche Schritte sind unter Linux notwendig?
Lemmi
14.02.2005, 10:26:59
Welche Schritte sind unter Linux notwendig?
Lege dem Paket doch einfach das angehängt Script im Hauptverzeichnis bei. Es muß einmalig aus dem Verzeichnis aufgerufen werden:
#!/bin/sh
chown -R wwwrun.www .
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
Wichtig: Das Script im Anhang hat die richtigen Zeilenenden (LF und nicht CR+LF).
Hier die nächste experimentelle Version.
Änderungen 2005-02-14:
Anzeige Timerdaten
Spalten Datum, Start und Ende zu Spalte Zeit zusammengefaßt.
Liste nach Spalte Zeit aufsteigend oder absteigend sortierbar.
Default aufsteigend. (naechster Timer zuerst)
Letze Sortierung wird gespeichert.
variable Spaltenbreiten.
Anzeige Aufnahme
Spalten Datum, Start und Ende zu Spalte Zeit zusammengefaßt.
Liste nach Spalte Zeit aufsteigend oder absteigend sortierbar.
Default absteigend. (neueste Aufnahme zuerst)
Letze Sortierung wird gespeichert.
variable Spaltenbreiten.
im temp. Verzeichnis /data/records gibt es jetzt für PC1..PC5 und USB je ein
eigenes Unterverzeichnis.
Auswahl des Aufnahmeordners jetzt mit Knöpfen oberhalb der Liste.
Neue Möglichkeit des Zugangs zu den Aufnahmedaten:
Es können jetzt auch direkte Pfade zu den Aufnahmeordnern angegeben werden.
Falls die Daten direkt vom Webserver aus erreichbar sind, kann der
Umweg über fpt entfallen. Einstellbar sind auch hier Pfade für PC1..PC5 und USB.
(USB prophylaktisch, falls irgendwann die Platte mit SMB erreichbar sein sollte.)
Konfigurationsseite
Speichern verwendet jetzt post statt get.
neue Einstellungen hinzugefügt. (==> alte config.txt nicht wiederverwenden)
Script setup.sh zum Setzen der Rechte, falls Webserver unter Linux.
Was immer noch nicht geht:
Timerprogrammierung in der Box.
Bildschirmfotos und Beschreibung siehe
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv.
(Achtung! Alte Dateien in den prefs/ und data/ Verzeichnisen nicht wiederverwenden!)
lunzet
14.02.2005, 21:28:39
echt klasse.
bei mir wird allerdings das logo für wdr köln als wdr essen angezeigt.
wdr köln = 211419000106 --> aber logo ist wdr essen obwohl der hovertext wdr köln sagt.....
bei mir wird allerdings das logo für wdr köln als wdr essen angezeigt.
Sieh mal einer an. Die beiden Logodateien wdressen.gif und wdrkoeln.gif haben den gleichen Inhalt.
@pretender: Wo hast Du die Logos her?
Hier die nächste experimentelle Version.
Änderungen 2005-02-15:
Beim Nachladen aus der Box mit ftp wird jetzt eine Wartemeldung ausgegeben.
Damit ist der Benutzer darüber informiert, was gerade geschieht.
Das scheint leider nicht bei allen Browsern zu klappen.
Mozilla und OE stellen die Meldung wie gewünscht dar, bevor die Wartezeit beginnt.
Opera wartet mit der Darstellung manchmal bis die Wartezeit vorbei ist.
Der Flushvorgang dringt hier nicht immer bis zur Anzeige vor.
Falls jemand einen Tip hat, wie man die Ausgabepuffer wirkungsvoll flushen kann, her damit.
Das Löschen der alten Daten in den temp. Aufnahmenordnern funktioniert jetzt wieder.
Logo für WDR-Köln zeigt jetzt Köln und nicht Essen.
(Hätte schlimmer kommen können. Man stelle sich vor, da wäre irrtümlich Düsseldorf reingerutscht.
Nicht auszudenken.)
Bildschirmfotos und Beschreibung siehe
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv.
lunzet
15.02.2005, 22:15:24
jeden tag was neues. super danke.
auch sehr schön das einige hier den humor nicht verlieren.... :D
Pretender
15.02.2005, 23:17:30
Moin,
da feiert man mal schön Karneval und geht danach fleißig arbeiten und schon erkennt man sein Script nicht wieder...
Tolle Arbeit api!!!
@pretender: Wo hast Du die Logos her?
Die Logos habe ich von SIEHFERN Info entnommen und gegebenfalls verändert, dort gab es nur WDR als Logo, die Regionalfenster habe ich selber umgestaltet.
Beim NDR könnte es auch Regionalfenster geben die nicht richtig angezeigt werden.
Mit der Aufnahme bin ich leider noch nicht weitergekommen, evtl. kommt in den nächsten Tagen die Konfiguration der Box über PHP hinzu, ich muss nur noch rausfinden wann änderungen übernommen werden.
CU Pretender
ralfk
18.02.2005, 11:46:45
Bei mir passt das hr-fernsehen-logo nicht.
hr-fernsehen 0 0 0036T H 1241 1242 1240 1241 1244 1FFF 1FFF 99999T 0 1401 0041 2114 0 10104
geladen werden soll
http://server/m740av-epg/epg-einzeln.php?s_id=211414010041
das Logo gibt es aber :-(.
Bei mir passt das hr-fernsehen-logo nicht.
hr-fernsehen 0 0 0036T H 1241 1242 1240 1241 1244 1FFF 1FFF 99999T 0 1401 0041 2114 0 10104
Versuch bitte mal im Verzeichnis images/logos/ die Datei hrfernsehen.gif umzubenennen in hr-fernsehen.gif
Geht's dann?
Pretender
18.02.2005, 16:23:51
Moin,
Bei mir passt das hr-fernsehen-logo nicht.
Der Gedankenstrich "-" wurde noch nicht entfernt... fixed.
Änderungen in der Version 2005-02-18:
GetSendernamenlogo entfernt jetzt auch "-"
In der Konfiguration gibt es jetzt einen Link mit dem man die Sender in der gleichen Reihenfolge bekommt wie sie auf der Box ist.
Bei "EPG-Einzeln" habe ich die Anzahl der Logos in einer Zeile von 8 auf 9 erhöht, dadurch findet man bei "richtger" Reihenfolge der Sender diese leichter.
In der Konfiguration Textfelderbreite angepaßt
Bildschirmfotos und Beschreibung siehe
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Viel Spaß
CU Sven
ralfk
18.02.2005, 16:47:05
Danke, jetzt klappt es.
In der Konfiguration gibt es jetzt einen Link mit dem man die Sender in der gleichen Reihenfolge bekommt wie sie auf der Box ist.
Gedankenübertragung. Ich wollte gerade damit anfangen, die Datei user_services.txt im Wiki zu dokumentieren und dann fragen fragen, ob wir die Sortierung als Vorgabe aus der Box holen sollen. Und da war's im Script schon drin.
Was hast Du als nächstes vor?
Pretender
18.02.2005, 17:13:08
Gedankenübertragung. Ich wollte gerade damit anfangen, die Datei user_services.txt im Wiki zu dokumentieren und dann fragen fragen, ob wir die Sortierung als Vorgabe aus der Box holen sollen. Und da war's im Script schon drin.
Ich weiß allerdings nicht was die ganzen Einträge die sonst noch in der user_services.txt (132) sind. Und wieso wird beim Abholen der user_services.txt die services.txt gelöscht, wenn ich danach aber die services.txt neu lade die user_services.txt nicht? :confused:
Was hast Du als nächstes vor?
Das entscheide ich spontan, ich wollte eigentlich die Konfiguration der Box mit ins Script nehmen, aber anscheinend übernimmt die Box die Änderungen nur wenn die Box neu gestartet wird. Sonst könnte man den Aufnahmeordner dynamisch ändern...
Hast Du denn noch Ideen?
CU Sven
Ich weiß allerdings nicht was die ganzen Einträge die sonst noch in der user_services.txt (132) sind.
Dann dokumentiere doch schonmal das, was Du schon weisst im Wiki.
Und wieso wird beim Abholen der user_services.txt die services.txt gelöscht, wenn ich danach aber die services.txt neu lade die user_services.txt nicht? :confused:
siehe Anhang
Anhang entfernt, siehe Folgenachricht.
Hast Du denn noch Ideen?
CU Sven
Anzeige Aufnahmen:
Serien gebündelt anzeigen, die ganze Serie an der Stelle an der die frischeste Snedung hinsortiert wird.
Einstellbar, ob Serie komplett gelistet oder nur die frischeste Aufnahme.
Und wieso wird beim Abholen der user_services.txt die services.txt gelöscht, wenn ich danach aber die services.txt neu lade die user_services.txt nicht?
@pretender: Verzeihung. In der letzen Fassung waren noch ein Paar Fehler von mir:
z.B. '^services.txt$' statt '^services\.txt$'
Das voneinander unabhängie Löschen der services.txt und der user_services.txt klappt jetzt.
Die Funktion zum Übernehmen der Sortierung habe ich noch etwas abgewandelt:
- Die vorhandene Sortierung wird erst dann gelöscht, wenn auch die Datei aus der Box wirklich da ist.
- Die Dateien werden nur dann geschlossen, wenn sie vorher auch geöffnet wurden.
Hier nochmal die beiden betroffenen Dateien.
Pretender
18.02.2005, 19:31:09
@api Danke für die schnelle Überprüfung, hatte ich wohl echt Tomaten auf den Augen.
zu der user_services.txt:
Ich habe da drin noch keinen logischen Sinn gefunden. :confused:
19:10002: = Das Erste
19:10001: = ?
19:10037: = ZDF
19:10102: = WDR Düsseldorf
19:10004: = ?
19:10005: = ?
19:10006: = ?
19:10007: = ?
19:10008: = ?
19:10026: = RTL Television
19:10010: = ?
19:10011: = ?
19:10027: = SAT.1
19:10035: = VOX
CU Sven
zu der user_services.txt:
Ich habe da drin noch keinen logischen Sinn gefunden. :confused:
19:10002: = Das Erste
19:10001: = ?
19:10037: = ZDF
19:10102: = WDR Düsseldorf
19:10004: = ?
19:10005: = ?
19:10006: = ?
19:10007: = ?
19:10008: = ?
19:10026: = RTL Television
19:10010: = ?
19:10011: = ?
19:10027: = SAT.1
19:10035: = VOX
Mutmaßung:
Es gibt 130 mögliche Indexnummern von 10000 bis 10129
Welcher Sender dabei welche Indexnummer bekommt, keine Ahnung.
In services.txt sind alle vorhandenen Sender sortiert nach Indexnummer enthalten. Die Folge der Nummern der vorhanden Sender muß nicht lückenlos sein. (Aber streng monoton steigend.)
Zur Sortierung:
In user_services.txt stehen zunächst alle 130 Nummer aufsteigend sortiert:
10000
10001
...
10129
Also auch diejenigen Nummern, welche im Augenblick keinen aktiven Sender haben.
Beim Umsortieren landen diese blinden Nummern eben irgenwo dazwischen. Das macht aber nichts. Die vorhandenen Sender bilden trotzdem eine eindeutige Reihenfolge. Dein Programm übergeht nicht vorhanden Indexnummern. Also alles klar.
Nachdem das Script jetzt die Senderreihenfolge aus der Box übernehmen kann, liegt es nahe, die Reihenfolge die der Benutzer im Script verändert hat, wieder auf die Box zu übertragen.
Erste Versuche, die user_services.txt zu verändern und nach /var/etc/ zu schreiben, stimmen mich nicht ganz hoffnungslos.
Nach dem Schreiben muß die Box allerdings neu gestartet werden um die Änderung in der Box wirksam werden zu lassen.
Fragen an die Analysten der wavebox:
Welche Möglichkeiten bieten sich an, um die Box zur Übernahme der Daten zu bewegen?
Kann man wavebox irgendwie neu starten?
lunzet
19.02.2005, 11:26:49
also bei mir klappt die sendersortierung so wie in der box nur mit pretenders version...nicht mit dem api update.
kann das jemand bestätigen?
vielleicht kann ja api oder pretender nochmal ne "all-in-one" version bereitstellen.
danke
also bei mir klappt die sendersortierung so wie in der box nur mit pretenders version...nicht mit dem api update.
kann das jemand bestätigen?
vielleicht kann ja api oder pretender nochmal ne "all-in-one" version bereitstellen.
danke
Momentchen Geduld. Nächste komplette Fassung (mit testweiser Speicherung der Senderreihenfolge) kommt bald.
lunzet
19.02.2005, 14:49:33
will auch keinen stress machen. wollt euch das nur wissen lassen
gruss
spitt
19.02.2005, 20:43:08
@api: Das Problem kennen wir doch von den Timerdaten auch schon. Ohne Neustart geht es einfach nicht. Aber bisher hat ja noch keiner eine Möglichkeit gefunden... :(
@api: Das Problem kennen wir doch von den Timerdaten auch schon. Ohne Neustart geht es einfach nicht. Aber bisher hat ja noch keiner eine Möglichkeit gefunden... :(
Ich denke, das Problem bei den Timerdaten liegt etwas anders.
Bei den Timerdaten reicht Hochladen der crid-Dateien und Neustart nicht aus. Die crid-Dateien werden scheinbar immer ignoriert.
Bei der Senderreihenfolge jedoch reicht Hochladen der user_services.txt und Neustart aber sehrwohl.
Die Möglichkeit des ferngesteuerten Neustartes würde also bei der Senderreihenfolge durchaus weiterhelfen bei den Timerdaten jedoch nicht.
In diesem Unterschied lag meine erneute Frage begründet.
Es muss doch möglich sein, die wavebox ferngesteuert neu zu starten.
spitt
19.02.2005, 22:15:31
Ich dachte eigentlich vor einiger Zeit hier gelesen zu haben, dass es jemand durch einen Neustart der Box geschafft habe die Timerdaten zu schreiben.
Da ich aber den Beitrag nicht mehr entdecken kann, muss ich wohl geträumt haben... :o
Ich dachte eigentlich vor einiger Zeit hier gelesen zu haben, dass es jemand durch einen Neustart der Box geschafft habe die Timerdaten zu schreiben.
Da ich aber den Beitrag nicht mehr entdecken kann, muss ich wohl geträumt haben... :o
Ach. Also doch. Bei meinen Versuchen wurden ausnahmslos alle crid-Dateien auch nach Neustart ignoriert.
Aber jetzt, wo Du das sagst: War da nicht mal jemand, der die wavebox irgendwie gestoppt hat? Ich kann mich dunkel erinnern...
Was sagen denn die Versuche anderer: Lassen sich Timerdaten mit Neustart aktivieren?
Lemmi
19.02.2005, 23:43:31
Schaut mal hier (http://www.m740.de/forum/showthread.php?p=4462&highlight=wavebox#post4462)
Schaut mal hier (http://www.m740.de/forum/showthread.php?p=4462&highlight=wavebox#post4462)
Ah. Sieh mal an. Danke!
spitt
20.02.2005, 01:27:38
Doch nicht geträumt?!
Muss ich wohl nochmal suchen... vielleicht finde ich den Beitrag, den ich meinte doch noch.
Hier die nächste experimentelle Version.
Änderungen 2005-02-20:
Senderreihenfolge:
Beim erstmaligen Start wird die Senderreihenfolge aus der Box automatisch geladen und als Vorgabe verwendet
Umsortierungen im Script werden wie bisher unabhängig von der Box dauerhaft gespeichert.
Link Konfiguration/'Senderreihenfolge jetzt aus der Box abholen und damit die scriptinterne Reihenfolge überschreiben'
Link Konfiguration/'Senderreihenfolge zur Box übertragen'
Hier wird erstmals testweise von diesem Script eine Änderung von Daten in der Box vorgenommen.
Das kann unerwünschte Nebenwirkungen auf der Box haben. Benutzung auf eigene Gefahr.
Der Link überträgt die scriptinterne Reihenfolge auf die Box. Die dort vorhandene Reihenfolge
in user_services.txt wird damit überschrieben.
Damit die neue Reihenfolge auf der Box wirksam wird, muss diese neu gestartet werden.
Standardbenutzer/Kennwort ist jetzt root/root. (mit ftp/ftp war kein schreibender Zugriff möglich)
Wer sicherheitshalber nicht mit dem Script auf die Box schreiben möchte,
der kann weiterhin ftp/ftp verwenden.
Bildschirmfotos und Beschreibung siehe (keine Änderung seit letzter Version.)
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv. (Bitte alte prefs/Dateien nicht wiederverwenden)
Lemmi
20.02.2005, 12:54:30
@api+pretender
Wunschliste für Dummies (bitte nicht Böse für den Begriff sein; ich will keinen angreifen, denn jeder ist ein Dummie in den meisten Wissensgebieten):
Info-Seite mit der Darstellung der Werte der Datei /ver/etc/settings mit Erläuterungen und Plausibilitätskontrolle.
Plausibilitätskontrolle:
IP Adressen und DeviceRecordingFolder auf gültige Zeichen und Format überprüfen
DeviceRecordingFolder zusätzlich auf Existens prüfen.
Ich weiß, dass es weniger mit dem eigentlichen Sinn -- EPG -- zu tun hat, aber dennoch:
Ihr wertet die Sachen sowieso schon teilweise aus.
Werbung für euer Tool ;)
Könnte hilfreich bei der Fehlersuche von Dummies sein.
P.S.: Ein Export zum Posten im Forumsformat wäre auch noch praktisch.
@api+pretender
Info-Seite mit der Darstellung der Werte der Datei /ver/etc/settings mit Erläuterungen und Plausibilitätskontrolle.
Plausibilitätskontrolle:
IP Adressen und DeviceRecordingFolder auf gültige Zeichen und Format überprüfen
DeviceRecordingFolder zusätzlich auf Existens prüfen.
Ja. Sowas hat Pretender ja auch schon andeutungsweise erwähnt. Ich denke, das wäre sicherlich hilfreich.
Man könnte auch hier ein Speichern der Daten erwägen.
<Franz B.>Schaumermal.</Franz B.>
P.S.: Ein Export zum Posten im Forumsformat wäre auch noch praktisch.
Export von was? Die Einstellungen aus /var/etc/settings.txt?
Momentan stehen bei mir eher folgende Punkte an:
gemeinsame Anzeige von Serienaufnahmen
Aufnahmeprogrammierung
Aufnahmeprogrammierung
...
evtl. Fernsteuerung via LAN und lircd
Lemmi
20.02.2005, 15:21:30
Soltle nur 'ne Anregung sein.
Dann packt es nach ganz hinten auf die 2do Liste.
Lengemann
20.02.2005, 17:31:14
Ich hab auch noch eine Anregung:
Wie wäre es mit Einbindung von IMDb-Links für Filme. Man müsste zwar erst herausfilnden welche Sendungen Filme sind, und dann die passenden Links finden ;)
Also ich fände es ne schöne Idee, ist aber natürlich nicht lebensnotwendig
Super Arbeit api und Pretender
Lutz
Pretender
20.02.2005, 18:48:31
Ich hab auch noch eine Anregung:
Wie wäre es mit Einbindung von IMDb-Links für Filme. Man müsste zwar erst herausfilnden welche Sendungen Filme sind, und dann die passenden Links finden ;)
Habe ich auch schon überlegt, allerdings denke ich eher an die ofdb (ist auf deutsch), als Filmerkennung wollte ich erst mal die Länge nehmen (z.B. alles über 70 Minuten). Mal sehen wann ich dazu komme.
Steht also auf meiner ToDo Liste ;-)
Zu den Einstellungen:
Ich habe mal ein Script erstellt, welche die settings.txt auswertet.
Ist nur ein Anfang, das Formular wird noch mit Radiobuttons, Textfelder usw. ausgestattet.
Aber ein paar Fragen stellen sich mir noch:
1. Wann wird die setting.txt auf der Box gespeichert?
- Nach Änderung z.B. des Bildformates, nein
- nach Änderung des Aufnahmeordners, ja (dann auch alle Änderungen vorher sichtbar)
2. Was bedueten die mit ??? gekennzeichneten Einstellungen?
CU Sven
RainerW
24.02.2005, 19:46:43
api + pretender
Hallo Ihr 2,
habe da noch ein paar Vorschläge für euer Script.
Wie Ihr vielleicht hier : M740 Forum (http://www.m740.de/forum/showthread.php?t=304)
gelesen habt, versuche ich Aufnahmen in TS oder PS Streams per Kommandozeile unter Linux zu erstellen.
Das mit dem TS klappt schon, ein PS mit replex erstellt,
läuft zur Zeit nur auf der Box oder mit einem Soft DVD Player.
Wie wär's wenn mann diese Funktionalität mit in das Script integriert ??
Mann/Frau geht auf Aufnahme, wählt den Film aus und erstellt einen TS oder PS, jagt das ganze in den Hintergrund und etwas später kann mann/frau sich dann den PS per Webbrowser ansehen :-)
Könnte dann so aussehen
Timer Typ Zeit Sender Titel Dateipräfix TS erstellen PS erstellen DeMux (M2V+MPA) erstellen
Episode
Inhalt
oder so ähnlich. Mann könnte ja auch anzeigen ob die entsprechende Streams schon erstellt worden sind.
Die Konfigurationsdatei sollte dann noch um folgende Einträge ergänzt werden
Pfad zum TS-Stream (aus Sicht des Webservers)
Pfad zum PS-Stream (aus Sicht des Webservers)
Pfad zum DEMUX-Stream (aus Sicht des Webservers)
Programm zum erstellen des TS-Streams (aus Sicht des Webservers)
Programm zum erstellen des PS-Streams (aus Sicht des Webservers)
Programm zum erstellen des Demux-Streams (aus Sicht des Webservers)
Das Programm kann dann ein shellscript oder irgenwas anderes sein,
dem die entsprechenden Parameter übergeben werden.
Damit hättet Ihr CRIDical einiges vorraus ;)
Es gibt bestimmt viele User die sich freuen würden wenn Sie Ihre Box
bzw. die Aufnahmen per WebBrowser konvertieren könnten.
Grüße aus dem hohen Norden
Rainer
Hier die nächste experimentelle Version.
Änderungen 2005-02-24:
Anzeige Timer und Aufnahmen
SerienID wird angezeigt
Sendungen mit gleicher SerienID werden hintereinander dargestellt.
In diesem Fall entscheidet die Startzeit der neuesten Sendung über die
Reihenfolge in der Gesamtliste.
Sendungen werden mit alternierenden Farben dargestellt, wobei Sendungen
gleicher SerienID auch die gleiche Farbe bekommen.
Anzeige Aufnahmen
aktuell laufende Aufnahmen werden mit rotem Icon dargestellt.
Aufnahmefehler werden mit Icon (Dreieck) angezeigt
Überschreibsperre wird als Schloss angezeigt
Anzeige Boxsettings
settings.txt wird nur bei Bedarf aus der Box geladen.
Bildschirmfotos und Beschreibung siehe (keine Änderung seit letzter Version.)
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv.
golem
25.02.2005, 09:04:10
Es gibt bestimmt viele User die sich freuen würden wenn Sie Ihre Box
bzw. die Aufnahmen per WebBrowser konvertieren könnten.
Ja ja hier ich
bitte bitte....
nein im ernst, meine Filme werden eh auf einem Linux Rechner abgelegt, auf dem auch der Webserver für das PHP Script laüft. Ich kann aber leider nicht von ausserhalb auf die GUI oder per SSH/Telnet auf den Rechner zugreifen um mit CRIDical einen TS oder PS zu erstellen. Da die aber auf einem 700Mhz Rechner ein wenig länger dauert, würd ich das gerne von der Arbeit aus anstossen können, damit es fertig ist wenn ich zuhause bin.
golem
Lemmi
25.02.2005, 22:03:03
Momentan stehen bei mir eher folgende Punkte an:
...
Aufnahmeprogrammierung
Aufnahmeprogrammierung
...
Dann lies mal das: Timer Daten bei FW Update retten (http://www.m740.de/forum/showthread.php?t=707)
Das ist doch ein Schritt in Richtung Aufnahmeprogrammierung.
Dann lies mal das: Timer Daten bei FW Update retten (http://www.m740.de/forum/showthread.php?t=707)
Das ist doch ein Schritt in Richtung Aufnahmeprogrammierung.
Bin dran!
Ich mache allerdings erstmal das Ändern der SerienID und der Überschreibsperre im Aufnahmeordner fertig.
RainerW
27.02.2005, 09:10:13
Hallo api + pretender
habe euer script mal gem. meinen Vorschlägen in diesem thread modifiziert.
Mann/Frau hat jetzt die Möglichkeit das erzeugen der verschiedenen Streams
auf dem Webserver im Hintergrund laufen zu lassen.
Der Status des jeweiligen Streams wird entsprechend angezeigt.
Die Konfigurationsdatei wurde um die entsprechenden Einträge ergänzt.
Könntet ihr diese Änderungen fest übernehmen ??
Was muss der User machen ?
Ein script (shell/perl oder was auch immer) das die Streams erstellt programmieren.
Hier ein Beispiel zum erzeugen eines Transport Streams (Unix Shell Script) :
FILM=$1
VON=$2
NACH=$3
STATUS=$VON$FILM.ts.status
echo "yellow" > $STATUS
echo "cat $VON$FILM.*.mpg > $NACH$FILM.ts" >> /srv/www/htdocs/intern/dvb/ts.log
cat $VON$FILM.*.mpg > $NACH$FILM.ts
echo "green" > $STATUS
TODO von mir:
shell scripte zum erstellen von MPEG's und zum Demuxen fertigstellen.
Ich muss bloß noch rausfinden mit welchen Programmen ich das am
besten machen kann.
Anstatt des Dateipräfixes den Titel der Aufnahme nutzen.
Evtl. erst noch eine Bestätigung erfragen bevor das Programm anfängt
zu konvertieren.
Ich bin leider nicht sehr fit in PHP, falls ich also nicht sauber programmiert habe, bitte entsprechend korrigieren.
Screenshot Aufnahmen (http://www.m740.de/forum/attachment.php?attachmentid=196&stc=1)
Screenshot Konfiguration (http://www.m740.de/forum/attachment.php?attachmentid=197&stc=1)
Die Skripte (http://www.m740.de/forum/attachment.php?attachmentid=199&stc=1)
habe euer script mal gem. meinen Vorschlägen in diesem thread modifiziert.
Was ähnliches hab ich inzwischen fast fertig. Es werden Schaltflächen für alle möglichen Aktionen bereitgestellt.
Die Aktionen werden jeweils nach einer Sicherheitsabfrage durchgeführt.
Die jeweiligen Aktionen liegen jeweils in einer separaten php-Datei. Hier kann dann jedermann tätig werden.
Hier könntest Du auch deine Bearbeitung der Aufnahmen einbauen.
Die Konfigurationsdatei wurde um die entsprechenden Einträge ergänzt.
Ich hab mir jetzt nur die Bilder angeschaut.
Warnung:
Das Einlesen der ausführbaren Programme über ein Formular halte ich für eine ganz üble Sicherheitslücke!
Hier kann jedermann mit den Rechten des Scriptes beliebige Programme ausführen. Du brauchst dazu nur eine entsprechend präparierte Seite irgendwo im Web aufrufen und dein Rechner ist gekapert.
Das werde ich mit Sicherheit nicht einbauen.
Man kann die ausführbaren Programme auch fest verdrahten.
RainerW
27.02.2005, 10:54:22
wie ich schon schrieb, ich bin nicht gerade der PHP Profi :D
wenn du schon was anderes fast fertig hast, nur zu :)
Hier die nächste experimentelle Version.
Änderungen 2005-02-27:
Seiten Timer und Aufnahmen
Sortierung von Serien arbeitet jetzt korrekt.
Neue Seite Sender Einstellungen
Senderliste abholen und Datenstand Senderliste verschoben
aus Konfigurationsseite nach Seite Sender Einstellungen.
Senderreihenfolge abholen, Datenstand Senderreihenfolge
und Senderreihenfolge zur Box übertragen... verschoben
aus Konfigurationsseite nach Seite Sender Einstellungen.
Anzeige von Sendernummern und Kanalnummern der Sender
Schaltflächen zum Umsortieren der Sender.
left-Frame umsortiert.
Datenstruktur aus GetSender() mit Schlüsseln indiziert.
Datenstruktur aus ReadCrid() mit Schlüssel Dateiname indiziert.
Seite Aufnahmen
Sperre setzen, entfernen mit Speichern in der Box
neue Schaltflächen als Anregung dort etwas einzubauen:
SerienID setzen, ändern, entfernen mit Speichern in der Box (noch ohne Funktion)
Weiterbearbeitung einer Sendung. (TS, PS, ...) (noch ohne Funktion)
Anschauen einer Sendung (noch ohne Funktion)
Sendung löschen (noch ohne Funktion)
EPG-DAten ändern (noch ohne Funktion)
Seite Timer
neue Schaltflächen als Anregung dort etwas einzubauen:
Timer Löschen (noch ohne Funktion)
Timer ändern (noch ohne Funktion)
Seite EPG Einzeln
neue Schaltfläche als Anregung dort etwas einzubauen:
Sendung aufnehmen(noch ohne Funktion)
Jede Schaltfläche besitzt eine eigene php-Datei. Damit kann jedermann, der sich berufen fühlt, die Funktionen mit Leben füllen.
Bildschirmfotos und Beschreibung siehe (keine Änderung seit letzter Version.)
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv.
RainerW
07.03.2005, 16:18:22
Warnung:
Das Einlesen der ausführbaren Programme über ein Formular halte ich für eine ganz üble Sicherheitslücke!
Hier kann jedermann mit den Rechten des Scriptes beliebige Programme ausführen. Du brauchst dazu nur eine entsprechend präparierte Seite irgendwo im Web aufrufen und dein Rechner ist gekapert.
Das werde ich mit Sicherheit nicht einbauen.
Man kann die ausführbaren Programme auch fest verdrahten.
Im Prinzip gebe ich dir recht, aber :
Wer würde seine Box schon aus dem Web heraus für jedermann zugänglich machen ??
Gruß
Rainer
Im Prinzip gebe ich dir recht, aber :
Wer würde seine Box schon aus dem Web heraus für jedermann zugänglich machen ??
Gruß
Rainer
Es geht nicht um die Box. Es geht um den WEB-Server auf dem das Script läuft!
Nochmal: Dein Script nimmt die Namen von ausführbaren Kommandos mit get/post entgegen. Die Antworten die dein Script vom eigenen Formular erwartet, müssen aber nicht von deinem Formular stammen! Die Antworten können auch aus irgendeinem Link auf irgendeiner WEB-Seite stammen. Der Angreifer braucht nur zu wissen, dass Du ein unsicheres Script auf deinem Server hast und er muß die Wirkungsweise des Scriptes kennen. Du hast das Script sogar hier veröffentlicht. Es ist also jedermann bekannt.
Das ist geradezu eine Einladung zum Einbruch.
Ich kann meine Warnung nur wiederholen!
Ich kann dir wärmstens empfehlen, dich über Sicherheitsaspekte bei der Auswertung von Formularen auf WEB-Servern zu informieren.
RainerW
07.03.2005, 17:42:12
Es geht nicht um die Box. Es geht um den WEB-Server auf dem das Script läuft!
Ist mir schon klar, habe mich da wohl nicht richtig ausgedrückt.
Ich meine warum sollte jemand über seinen von aussen erreichbaren WebServer
Seiten für jedermann zur Verfügung stellen die eigentlich nur für den privaten Hausgebrauch sind.
Normalerweise würde ich ja den sogenannten "Internen Bereich" nicht für jedermann zugänglich machen, oder ?
Hast du einen WebServer der auf deine Box mit deinen Skripten zugreift ?
Sind diese Seiten für jedermann zugänglich ?
Wenn ja, könnte also auch jedermann
die Sendereihenfolge ändern
deine Aufnahmen löschen
oder oder oder.....
Das das natürlich nicht so gefährlich ist wie ein unsicheres Skript auszuführen, ist mir schon klar. Aber ich persönlich möchte eigentlich nicht das jemand mir meine Aufnahmen versaut :mad:
Gruß
Rainer
Ist mir schon klar, habe mich da wohl nicht richtig ausgedrückt.
Ich meine warum sollte jemand über seinen von aussen erreichbaren WebServer
Seiten für jedermann zur Verfügung stellen die eigentlich nur für den privaten Hausgebrauch sind.
Normalerweise würde ich ja den sogenannten "Internen Bereich" nicht für jedermann zugänglich machen, oder ?
Hast du einen WebServer der auf deine Box mit deinen Skripten zugreift ?
Sind diese Seiten für jedermann zugänglich ?
Wenn ja, könnte also auch jedermann
die Sendereihenfolge ändern
deine Aufnahmen löschen
oder oder oder.....
Das das natürlich nicht so gefährlich ist wie ein unsicheres Skript auszuführen, ist mir schon klar. Aber ich persönlich möchte eigentlich nicht das jemand mir meine Aufnahmen versaut :mad:
Gruß
Rainer
Die Gefahr, dass das Script mißbräuchlich verwendet wird, besteht auch dann, wenn der WEB-Server nicht öffentlich zugänglich ist.
Es reicht aus, wenn die Tatsache bekannt ist, dass lokal ein unsicheres Script läuft und Du im WEB irgendwelche Seiten aufrufst.
Der maximale Schaden besteht normalerweise eben in unerwünschten Manipulationen der Aufnahmen, unter der Prämisse, dass das Script tut, was es soll.
Dein Script tut aber auch das, was es NICHT soll!
Es tut nämlich ALLES was der Angreifer will!
RainerW
07.03.2005, 18:22:18
Hallo api,
Das mit den Shell-Skripten die auf dem Server ausgeführt werden und so das ist
mir jetzt klar geworden.
Aber das hier:
Die Gefahr, dass das Script mißbräuchlich verwendet wird, besteht auch dann, wenn der WEB-Server nicht öffentlich zugänglich ist.
?? Wie soll jemand auf den Server zugreifen können wenn er nicht öffentlich ist ??
Vielleicht kannst du mir das ja mit einer PM erklären oder einen Link in dem sowas erklärt wird. Muss ja nicht unbedingt jeder wissen wie mann sowas macht :)
Hallo api,
?? Wie soll jemand auf den Server zugreifen können wenn er nicht öffentlich ist ??
Jede lokale Seite kann auch von externen Seiten referenziert werden.
Eine einfache Möglichkeit, die Scripte zu testen, besteht z.B. darin, auf dem Rechner einen lokalen WEB-Server einzurichten. Ich bin mir sicher, dass diese Möglichkeit hier von einigen verwendet wird. Diese Server sind ganz einfach mit einem simplen Link auf localhost ansprechbar.
Ein solcher Link könnte jetzt z.B. auch in dieser Nachricht vorhanden sein. (Ein Angreifer der eine Nachricht hier in diesem Thread positioniert, kann sich sicher sein, dass die Nachricht von allen PHP-Script-Anwendern gelesen wird.)
Auch Links auf gängige lokale IPs z.B 192.168.*.* führen zum Ziel.
Die Links können auch in Referenzen z.B. auf Bilder verborgen sein.
Erzähle ich da wirklich etwas derart Neues? Das sind die natürlichen Konsequenzen eines lokalen WEB-Servers.
Auch Scripte, welche lokal verfügbar sind, haben grundsätzlich mit Mißbrauch zu rechnen! Solche Scripte dürfen genau das tun, was sie tun sollen. Dann ist auch der mögliche Schaden begrenzt. Scripte, die auch das tun, was sie NICHT tun sollen, sind gefährlich; das gilt auch lokal und ganz besonders dann, wenn die Scripte öffentlich bekannt sind.
RainerW
07.03.2005, 19:21:59
Ich glaube da bin ich von anderen Voraussetzungen ausgegangen :D
Ich habe hier eine Mini-Netzwerk (5 PC's + 1 Linux Server)
Die Scripte liegen auf meinem WebServer in einem Unterverzeichniss
das von aussen nicht zugänglich ist.
Also localhost geht in diesem Fall nicht, aber der Zugriff auf gängige lokale IPs z.B 192.168.*.* gehen natürlich.
Dann muss der Angreifer aber noch die IP-Adresse von meinem Linux-Server herausbekommen und dann noch das Verzeichniss in dem die Scripte liegen, richtig ??
Das erfordert aber schon eine Menge Energie oder ?
Gruß
Rainer
Nachtrag:
Natürlich hast du recht und ich will mich auch nicht verteidigen, das was ich gemacht habe ist so nicht 100% sicher.
Es war auch erstmal nur quick & dirty gemacht um überhaupt zu einem Ergebniss zu kommen.
Danke nochmal für deine Hinweise. :)
Ich glaube da bin ich von anderen Voraussetzungen ausgegangen
Bedenke: Du veröffentlichst ein Script, welches auch von anderen verwendet werden soll.
Ich habe hier eine Mini-Netzwerk (5 PC's + 1 Linux Server)
Die Scripte liegen auf meinem WebServer in einem Unterverzeichniss
das von aussen nicht zugänglich ist.
Also localhost geht in diesem Fall nicht, aber der Zugriff auf gängige lokale IPs z.B 192.168.*.* gehen natürlich.
Dann muss der Angreifer aber noch die IP-Adresse von meinem Linux-Server herausbekommen und dann noch das Verzeichniss in dem die Scripte liegen, richtig ?? Das erfordert aber schon eine Menge Eneriger oder ?
Für diese Art Glauben an Sicherheit hat sich die Bezeichnung 'security by obscurity' etabliert. ;-)
IP-Adressen und Scriptnamen lassen sich nicht geheimhalten; vor allem dann nicht, wenn die Scripte veröffentlicht werden.
Hier die nächste experimentelle Version.
Änderungen 2005-03-13:
Linker Frame enthält eine einfache Fernbedienung für die Box.
(Verwendet den veränderten Lircd-daemon ab 1.29.5.lemmi-04 bzw. 1.18.lemmi-07)
Bildschirmfotos und Beschreibung siehe (Die Fotos habe ich noch nicht erneuert.)
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv.
Firefigther
13.03.2005, 16:37:22
Bei mir wird diese Fehlermeldungen angezeigt:
Notice: ob_end_flush() [ref.outcontrol]: failed to delete and flush buffer. No buffer to delete or flush. in c:\programme\apache group\Apache\htdocs\test\remotecontrol.php on line 49
Notice: ob_flush() [ref.outcontrol]: failed to flush buffer. No buffer to flush. in c:\programme\apache group\Apache\htdocs\test\remotecontrol.php on line 50
Ich habe den Apache 1.3.33 und PHP 5.0.3 installiert. Ich kenne mich mit PHP leider nicht aus.
Die funktionen werden an die M740 übertragen.
Gruß FF
Lemmi
13.03.2005, 18:55:47
Linker Frame enthält eine einfache Fernbedienung für die Box.
(Verwendet den veränderten Lircd-daemon ab 1.29.5.lemmi-04 bzw. 1.18.lemmi-07)
[/list]@siemens:
Nicht nur FTP abkupfern, sondern auch lircd.
Denn lircd wird benutzt!
Lemmi
13.03.2005, 19:02:11
@api: Feature Request
Das Programm #14 einzuschalten ist etwas zeitkritisch.
Lösung: Es fehlen die Zahlenkombinationen von 10 bis N (siehe Senderliste), um 2-stellige Programmnummern direkt einzugeben. Die Zahlen könnten gleich mit einem Mini-Senderlogo versehen werden.
P.S.: Ein dickes Lob von mir für die stetige Weiterentwicklung :) :) :)
Lemmi
13.03.2005, 19:06:47
Noch was:
Die neue FB hatte ich zuerst vergebens gesucht. Erst nach dem Löschen des Caches wurde sie angezeigt. Evtl sollte die Gültigkeit der HTML-Seiten stak (in Sekunden oder wenigen Minuten) begrenzt werden. Hilfreich wäre es auch, an geeigneter Stelle die Versionsnummer anzuzeigen.
Klasse, bin echt begeistert...
Nur konnte ich nicht warten bis die Timerprogrammierung mit
der simulierten FB eingebaut wird und hab dann selber paar Dateien modifiziert.
remotecontrol.php
- neue Funktion > remoteSendeTasteFolge
-- akzeptiert nun mehrere Codes statt nur einer
-- alle mit Komma getrennt, fehlt ein Code, gibs ne Pause von 0,5 Sekunden
- neue Funktion > usleepWindows
-- notwendig, da usleep unter Windows nicht funktioniert.
epg-einzeln.php
- Funktion ProgrammlisteAusgeben geändert um
-- richtige Codefolgen an die remotecontrol.php zu senden.
- neue Funktion > getSenderPos
-- richtige Senderposition im EPG-Menu ermitteln um
-- richtige Anzahl CURSOR_DOWN zu senden.
alle 200ms wird der nächste Code gesendet, mit der Firmware 1.18 geht das recht gut.
sieht funny aus...viel Spass damit... :D
Firefigther
13.03.2005, 19:55:14
hast recht ist schon witzig.
bei mit hat es den 1. Timer umprogramiert.
es sollte 4 Kommata zwichen yello und green oder die Pausenzeit etwas erhöhen.
ansonsten ziemlich genial
Gruß FF
Moonpaw
14.03.2005, 14:25:59
@DonS:
Super Sache =)
Kannst du bitte noch ein "Timer x Löschen" einfügen ?
Danke
Christian
Firefigther
14.03.2005, 17:16:31
Ich habe das epg-einzel von DonS noch mal etwas umprogramiert jetzt programiert er nicht mehr manuell über den Timer sondern über das EPG es müßten noch ein paar Feinarbeiten gemacht werden.
Bei mir funktioniert das mit den pausen gut.
Bitte auf eigene Gefahr ausprobieren.
Es funktioniert nur mit dem remortecontrol.php von DonS
Gruß FF
scoep
14.03.2005, 20:40:09
Hi Leute!
Gute Arbeit, habe Timerprogrammierung soeben erfolgreich getestet. Wobei ab und zu die Pause zwischen den Tasten zu kurz ist, wenn meine Box mal wieder lahmt. Das hat zur Folge, daß dann z.B. die falsche Sendung aufgenommen wird. Vielleicht kann man die Wartezeit zwischen den Taste konfigurierbar machen (wenn ich aus der Ferne programmiere, kann die Zeit dazwischen ja auch ohne weiteres eine Sekunde oder mehr betragen).
Schön wäre auch ein Dialog für einen manuellen Timer (Dropdownliste Sender, Anfangs- und Endzeit etc.), wenn mal keine EPG-Daten zur Verfügung stehen.
Ansonsten: weiter so!
Gruß,
Scoep
Eine Anmerkung zum remotecontrol.php habe ich.
Die Funktion "Aus" sollte evtl. erst nach Rückfrage ausgeführt werden. Ich Dussel dachte natürlich nicht an das Ausschalten der Box, sondern hatte ein Deaktivieren der Fernbedienung über das Web-Interface im Hintersinn -- dann war sie aus...
Gruß
Jan
Lemmi
14.03.2005, 21:48:00
Betreff: EPG Programmierung
Bei mir wurde ein paar mal das falsche Programmiert. Dann habe ich die Wartezeit auf 300 ms hochgeschraubt und die drei nächsten Test funktionierten.
Firefigther
16.03.2005, 06:32:26
Mir fällt da gerade noch as ein. bin leider auf der Arbeit und kann nicht rumprobiern.
Wenn man eine Aufnahme die 2 Tage in der Zukunft liegt programiert, funktioniert das nicht.
entweder ist die Adresse dann zu lang oder in der remotecontrol.php ist nur eine begrenzte eingabe möglich.
Wenn das 2. zutrifft, sollte die Pause zwichen den Sendebefehlen erhöht werden(evt. auf 400ms), damit die Pausen Kommata weggenommen werden können.
Wenn das an der Adresslänge liegt, müssen wir irgendwie den Tagessprung mit einbauen. Dann stellt sich die frage wie weit springt der??? Genau 24 Stunden???
Wer will kann sich ja schon mal drangeben. Ich werde da erst heute abend zu kommen.
Gruß FF
Lemmi
16.03.2005, 08:28:58
Wenn das an der Adresslänge liegt, müssen wir irgendwie den Tagessprung mit einbauen. Dann stellt sich die frage wie weit springt der??? Genau 24 Stunden???
Wenn 's an den Adressen liegt, dann hilft evtl auch ein andere Kodierung:
1. Kürzel für die Cursortasten: U, D, L, R
2. Multiplikatoren: 3*EXIT,5*D
Lengemann
16.03.2005, 11:41:13
Hi
Super Sache mit der eingebauten Ferndedienung. Hat einer von Euch einen Bild von der Fernbedienung? Ich möchte die originale Fernbedienung als Bilder einbinden.
Bitte schick mir doch einer von Euch mal ein Bild der Fernbedienung, dann werde ich mich da mal dransetzen.
Bis dann
Lutz
Sid001
16.03.2005, 11:45:50
Bitte schick mir doch einer von Euch mal ein Bild der Fernbedienung, dann werde ich mich da mal dransetzen.
Da haste: 72 dpi (http://communications.siemens.com/repository/691/69106/Gigaset_M740_AV_FERN_F_72dpi.jpg), 300 dpi (http://communications.siemens.com/repository/690/69095/Gigaset_M740_AV_FERN_F_300dpi.jpg) (Pressebilder von Siemens)
http://communications.siemens.com/repository/691/69106/Gigaset_M740_AV_FERN_F_72dpi.jpg
condor1975
16.03.2005, 11:47:18
Ich habe leider ÜBERHAUPT keine Ahnung von webserver und php, trau mich auch gar nicht zu fragen, ob mir da jemand mit DAU-klaren Worten unter die Arme greifen kann..
*Timerprogrammierung auch haben will*
aber mit einem Bild kann ich aushelfen:
http://www.siemens-mobile.de/repository/690/69095/Gigaset_M740_AV_FERN_F_300dpi.jpg
ciao,
condor
(schade, ich war 10 sec zu spät)
Lengemann
16.03.2005, 11:48:34
Danke sehr, dann setzt ich mich mal dran ...
Bis dann
Lutz
Lemmi
16.03.2005, 11:56:02
Da haste: 72 dpi (http://communications.siemens.com/repository/691/69106/Gigaset_M740_AV_FERN_F_72dpi.jpg), 300 dpi (http://communications.siemens.com/repository/690/69095/Gigaset_M740_AV_FERN_F_300dpi.jpg) (Pressebilder von Siemens)
http://communications.siemens.com/repository/691/69106/Gigaset_M740_AV_FERN_F_72dpi.jpg
Ich würd' ja aus Uerheberrechtsgründen ein eigenes Foto verwenden.
Firefigther
16.03.2005, 12:21:05
Ich habe leider ÜBERHAUPT keine Ahnung von webserver und php, trau mich auch gar nicht zu fragen, ob mir da jemand mit DAU-klaren Worten unter die Arme greifen kann..
Ich benutze den Apache Webserver für Windows Hier (http://httpd.apache.org/download.cgi) zu finden (Direcktlink (http://mirrorspace.org/apache/httpd/binaries/win32/apache_1.3.33-win32-x86-no_src.exe))
dazu brauchst du noch das PHP pragramm: Hier (http://www.php.net/downloads.php)
php-5.0.3-Win32.zip --> Downloaden, und dann in der (ich glaube) Install.txt steht drin was gemacht werden muß. Es müssen ein paar Zeilen in die Apache Config geschrieben werden.
In den ordner HTdocs muß dann nur noch die PHP skript dateien entpackt werden.
Vorraussetzung ist Natürlich die FW 1.29.5-lemmi07 oder FW 1.37.4-lemmi02
ich habe von Webservern leider fast keine ahnung aber bei mir läufts.
Gruß FF
Sid001
16.03.2005, 12:22:06
Ich würd' ja aus Uerheberrechtsgründen ein eigenes Foto verwenden.
Soll ich heute abend mal eins machen?
- Was für'n Hintergrund?
- Welche Größe?
condor1975
16.03.2005, 12:29:16
Ja, copyright, richtig.
Hab mal meine FB verewigt (die Macke unten rechts nicht beachten)
http://www.directupload.net/show_image.php?d=195&n=pXOCN6Tv.jpg
200dpi, ca 420 KB.
ciao, condor
condor1975
16.03.2005, 12:35:19
Danke, firefighter,
apache hatte ich schon mal installiert, der fragt da nach meiner domain;... irgendwas eintragen oder muß man da die Box (ip) einbinden?
Tut mir echt leid, daß ich so dau-ige Fragen stelle, in so einem so technischen thread. Wäre auch dankbar über eine pm.
Merci,
condor
Lengemann
16.03.2005, 12:38:37
Also ich hab jetzt schonmal mit den Siemens Bildern eine Version gemacht.
Kann aber verstehen, dass dies nicht "vertreibbar" ist. Also werde ich mich wohl nochmal an das andere Bild dran wagen. Ich muss aber sagen, dass es mir so wie es jetzt ist sehr gut gefällt.
Wenn ich die legale Version fertig habe, stelle ich sie hier rein.
Bis dann
Lutz
Kaum ist die Timerprogrammierung mit PHP möglich,
stürzen sich auf einmal viele freiwillige Helfer auf api's PHP-Skript :D
Tja, soviele verspielte Jungs :cool:
Übrigens hab ich bald Urrrrrrlaub. api, dein Skript werd ich mir mal anschauen
und kräftig mitmischen. Ich hoffe, du hast nichts dagegen?
Warum arbeitest du nicht mit Session?
Ist doch easy, damit lassen sich wunderbar alles zwischenspeichern und
muss nicht alles per File nachladen.
Manos
16.03.2005, 15:22:07
Gibt es eigentlich noch Leute die versuchen einen Webserver auf der Box mit solchen Funktionen ans laufen zu bringen oder ist die Idee aufgrund von Platz und Geschwindigkeit ganz gestorben?
Lescho
16.03.2005, 16:09:37
Gibt es eigentlich noch Leute die versuchen einen Webserver auf der Box mit solchen Funktionen ans laufen zu bringen oder ist die Idee aufgrund von Platz und Geschwindigkeit ganz gestorben?
Hallo,
ich bin noch dabei. Habe bereits einen Web-Server übersetzt.(inzwischen auch mit SSL). Leider habe ich sehr wenig Zeit im Moment. Schicke aber in nächster Zeit mal was ich habe. Wäre für einen Mitstreiter auf jedenfall Dankbar. CGI kann ich auch machen, aber HTML/CSS/JavaScript würde ich auch gerne abgeben. Also halt mal ausschau schicke demnächst meine Sachen. (Muss noch alles zusammen sammeln ;) )
Gruß,
Dennis
Firefigther
16.03.2005, 18:17:02
Hallo zusammen,
Ich habe die Timerprogramierung noch mal etwas überarbeitet:
-nach dem senden eines Befehls macht ist eine pause von 500ms
-eine pause ist jetzt 1 sec. lang.
Ich habe noch etwas rumprobiert. Irgendwie ist die Befehlskette auf 60 Befehle beschränkt, egal ob ausgeschriebene Befehle oder Abkürzungen.
Die Programierung mit dem 24H Sprung ist mir noch nicht geglückt, etwas komplizierter. Versuche ich vieleicht am Freitag Abend nochmal.
Vieleicht findet jemand von euch raus warum das nur 60 Befehle abarbeitet.
Gruß Alex
Im Anhang die dateien dich ich verändert habe
epg-einzel.php
remotecontrol.php
@Lengemann: was macht die fernbedienung???
Lengemann
16.03.2005, 18:21:02
Im Anhang die dateien dich ich verändert habe
epg-einzel.php
remotecontrol.php
@Lengemann: was macht die fernbedienung???
Ich wollts grad hochladen, aber dann arbeite ich deine veränderte remotecontrol noch rein ;)
Wird in 10 min hochgeladen
Bis dann
Lutz
Lengemann
16.03.2005, 18:28:55
So:
Hier ist die erste Version der Fernbedienung, sie sieht noch nicht 100% schön aus, das ist mir auch bewusst. Aber ich wollte jetzt nicht weiter arbeiten. Es gibt ja noch andere Sachen.
Bei Fehlern einfach Bescheid geben.
Viel Spaß
Lutz
hi, ich hab noch ein kleines problem mit dem apache server und dem php script.
ich kann mich durch das script klicken und alles sieht gut aus, nur wenn ich bei der fernbedienung auf eine taste drücke oder bei der konfigurationsseite auf speichern klicke zeigt er die fehlermeldung: The requested URL /php.exe was not found on this server.
mit anderen worten: server kann die php scripte anzeigen aber sobald ich auf eine url mit *php.exe?code=* klicke bekomm ich die fehlermeldung. kann mir jemand sagen was ich noch falsch konfiguriert hab?
ndac
Hier die nächste experimentelle Version.
Die Fernbedienung hat ja einige Helfer auf den Plan gerufen. Schön. Ich habe einige der Vorschläge und Lösungen zusammengefaßt und eingebaut.
Änderungen 2005-03-16:
Fernbedienung im linken Frame verwendet für alle Tasten Bilder. (Danke @Lengemann für die Bilder)
Fernbedienung enthält Kurzwahltasten mit Minilogos für alle Sender. (Danke @Lemmi für die Idee)
includes/common-remote.php enthält ein Programm zum Senden der Codes. (einzelne oder mehrere Codes)
EPG-Einzeln kann jetzt Timereinträge anlegen.
(Danke @firefighter und @DonS für die Ermittlung der Codefolgen)
Das Programm liegt jetzt in includes/timersendungaufnehmen.php.
Es wird jetzt zusätzlich die Bestätigung des Benutzers eingeholt.
Die Codefolge wird vorab angezeigt.
Die Codefolge wird nicht mehr als Link übergeben sondern direkt an das Ausgabeprogramm geschickt.
Leider ist das Senden der Codefolgen noch ziemlich unzuverlässig. (Besonders bei weiter in der Zukunft liegenden Sendungen.)
Man müßte irgendwie eine Rückkopplung haben, um den erfolgreichen Empfang eines Codes zu bestätigen.
Ist es irgendwie möglich, an die Ausgaben des OSD der Box heranzukommen?
Ich erinnere mich dunkel, dass hier mal jemand sowas angedeutet hat.
Bildschirmfotos und Beschreibung siehe (Die Fotos habe ich noch nicht erneuert.)
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv.[/QUOTE]
siehe auch http://www.m740.de/forum/showpost.php?p=7922&postcount=163
Lemmi
16.03.2005, 22:58:26
@api:
Bin gerade mit der neuen Version auf einen Fehler aufgelaufen: :mad:
Fatal error: Call to undefined function: str_split() in .../m740av-epg/remotecontrol.php on line 154
Nachtrag: str_split() ist PHP 5.
@api:
Bin gerade mit der neuen Version auf einen Fehler aufgelaufen: :mad:
Fatal error: Call to undefined function: str_split() in .../m740av-epg/remotecontrol.php on line 154
str_split() steht erst ab PHP5 zur Verfügung.
Welche ältere Funktion zerlegt einen String in ein Array mit einzelnen Buchstaben?
Bin jetzt zu müde zum Suchen.
Lemmi
16.03.2005, 23:33:00
Ersetze die Zeile
."?code=TV,".implode(',',str_split($i+1, 1))."\""
durch
."?code=TV,".implode(',',preg_split('//', $i+1, -1, PREG_SPLIT_NO_EMPTY ))."\""
Lemmi
16.03.2005, 23:43:58
Ich habe noch etwas rumprobiert. Irgendwie ist die Befehlskette auf 60 Befehle beschränkt, egal ob ausgeschriebene Befehle oder Abkürzungen.
Ist 60 evtl der (undokumentierte) Default-Wert für den 3. Parameter von explode() ?
Ersetze die Zeile
."?code=TV,".implode(',',str_split($i+1, 1))."\""
durch
."?code=TV,".implode(',',preg_split('//', $i+1, -1, PREG_SPLIT_NO_EMPTY ))."\""
Done. Sollte jetzt auch mit Versionen < PHP5 laufen.
Verzeihung.
Lemmi
16.03.2005, 23:56:09
Verzeihung.OK: Ich verzeihe Dir die Schaffung dieses tollen EPG-Tools. ;)
OK: Ich verzeihe Dir die Schaffung dieses tollen EPG-Tools. ;)
Schön, dann kann ich mich ja jetzt beruhigt hinlegen. Gute Nacht.
Firefigther
17.03.2005, 07:31:22
Ich habe gestern abend noch einwenig rumprobiert.
Der Tagsprung für timer die >24 stunden liegen geht auch nur leider will der nicht das machen was ich will wenn der timer 48 Stunden in der zukunft liegt. hatte da gesatern abend irgendwie keinen nerv mehr.
Ich muß wenn ich nachhause kommen erst mal die Neue Version von Api einbinden und dann meine bisherige Programierung übertragen. Ich denke allerdingst , dass es nichts vor Freitag wird. Dann sollte das Problem mit den 60 Befehlen egal sein.
Gruß FF
(Danke @firefighter und @DonS für die Ermittlung der Codefolgen)
Gern geschehen!! Sorry für meine evt. etwas unübersichtliche und primate Programierung. Kenne mich mit PHP nicht aus und nutze mein selbst angeeigneten Amiga-/Visual-Basic und HTML Kenntnisse.
p.s. mein DV Lehrer hat machmal die Hände über dem Kopf zusammengeschagen wegen meiner Programierung, aber zumindest liefen die Programme :rolleyes:
Gruß FF
Lemmi
17.03.2005, 20:26:34
@api und die anderen PHP-Script Experten
Irgendetwas stimmt mit der Sortierung der Timer-Daten nicht.
Als Beispiel habe ich die Timer-Daten und eine Hardcopy mit Markierung beigelegt.
@api und die anderen PHP-Script Experten
Irgendetwas stimmt mit der Sortierung der Timer-Daten nicht.
Als Beispiel habe ich die Timer-Daten und eine Hardcopy mit Markierung beigelegt.
Bei dir werden Serien nicht als solche erkannt. Auch sonst scheint es keine Sortierung zu geben.
Bei mir werden deine Timerdaten korrekt sortiert. Siehe Bild im Anhang.
Sieht so aus, als ob bei dir gar nicht sortiert wird.
War das bei dir schon immer so?
Arbeitet array_multisort() bei dir? Sollte mit PHP4 und PHP5 laufen.
Lemmi
17.03.2005, 21:10:34
Ist schon komisch: Egal in welche Richtung ich sortiere, der eine Eintrag bleibt immer unten.
Zu den Serien: ich habe sie extra nach dem FW Update manuell neu Programmiert -- ohne jegliche Tricks.
Ich werde das ganze mal weiter beobachten.
Zu den Serien: ich habe sie extra nach dem FW Update manuell neu Programmiert -- ohne heglioche Tricks.
Gleichgültig wie die Serien auch immer programmiert wurden:
Sendungen mit gleicher Serien-ID sollten zusammenhängend sortiert werden.
Check doch mal die grundsätzliche Funktionsfähigkeit von array_multisort().
Wie sieht das denn bei den anderen aus? Werden bei euch Serien zusammenhängend angezeigt? (So wie im Bild in meinem letzten Beitrag)
Lemmi
17.03.2005, 21:20:33
Bei dir werden Serien nicht als solche erkannt. Wenn ich mich recht erinnere, wurden Serien immer schon als Mehrfacheinträge dargestellt.
Auch sonst scheint es keine Sortierung zu geben.
...
Sieht so aus, als ob bei dir gar nicht sortiert wird.
War das bei dir schon immer so? Der Rest wird ja sortiert, eben nur der eine Eintrag nicht.
Arbeitet array_multisort() bei dir? Sollte mit PHP4 und PHP5 laufen. So etwas fragst Du mich? Die split-Sache gestern waren meine ersten PHP-Schritte überhaupt, wenn man mal von der Korrektur der Wartezeit für die Fernbedienung absieht.
Lengemann
17.03.2005, 21:33:01
Moin!
Hab die Fernbedienung nochmal weiter entwickelt. Mir gefällt sie jetzt sehr gut.
Ich hab nochmal alle Bilder neu gemacht, und jetzt ist die gesamte Fernbedienung auf der linken Seite zu sehen. Schön wäre natürlich noch die direkte Senderauswahl in den unteren Teil der FB einzubauen, hab mich da aber noch nicht rangetraut.
Viel Spaß aber beim Zappen
Bis dann
Lutz
Wenn ich mich recht erinnere, wurden Serien immer schon als Mehrfacheinträge dargestellt.
Wie jetzt:
- Alle Sendungen mit gleicher Serien-ID zusammen
oder
- Sortierung nur nach Datum/Uhrzeit ohne Berücksichtigung der Serien-ID
Der Rest wird ja sortiert, eben nur der eine Eintrag nicht.
Verstehe ich das richtig? Alle Sendungen werden sortiert, je nach Wunch aufwärts oder abwärts. Nur die eine Sendung entzieht sich der Sortierung?
Donnerwetter. Hexenwerk!
Deine PHP-Installation verhält sich merkwürdig.
Welche Version war das nochmal? (Sagtest Du zwar schonmal. Hab ich aber vergessen.)
So etwas fragst Du mich?
Wen sonst.
Lemmi
17.03.2005, 21:49:32
Wie jetzt:
- Alle Sendungen mit gleicher Serien-ID zusammen
oder
- Sortierung nur nach Datum/Uhrzeit ohne Berücksichtigung der Serien-ID genauso, wie in Screenshot, also unabhängig von der Serien-ID.
Verstehe ich das richtig? Alle Sendungen werden sortiert, je nach Wunch aufwärts oder abwärts. Nur die eine Sendung entzieht sich der Sortierung?
Donnerwetter. Hexenwerk! Genau so!
Deine PHP-Installation verhält sich merkwürdig.
Welche Version war das nochmal?
PHP4 V4.3.8-8.3
Apache2 V2.0.50-7.2
Apache2-mod_php4 V4.3.8-8.3
Alles unter Linux 2.6.8-24.11
Genau so!
Also da bin ratlos. Hab ich keine Erklärung für.
PHP4 V4.3.8-8.3
Apache2 V2.0.50-7.2
Apache2-mod_php4 V4.3.8-8.3
Alles unter Linux 2.6.8-24.11
Bei mir klappt die Sortierung sowohl mit
Apache/2.0.52 (Win32) PHP/4.3.10
als auch mit
Apache/2.0.52 (Win32) PHP/5.0.3
Lengemann
18.03.2005, 00:33:54
So, jetzt hab ich noch die Schnellauswahl der Sender mit eingebunden.
Todo ist in der Zip drin. Es muss aber vorher meine letzte Fernbedienungsversion installiert sein. Dies ist nur eine Erweiterung.
Viel Spaß
Lutz
Hier die nächste experimentelle Version.
Änderungen 2005-03-19:
Seite Aufnahmen:
Die SerienID der Aufnahmen kann jetzt geändert werden.
Dazu wird die crid-Datei manipuliert.
Damit können z.B. solche Serienaufnahmen wieder sichtbar gemacht werden, welche mit einer älteren Firmware aufgenommen wurden, aber mit der neuen Firmware am Fernseher im Menü Aufnahmen nicht sichtbar sind.
Man kann nachträglich Einzelaufnahmen zu Serien zusammenfassen.
Man kann mehrere Serien zu einer Serie zsammenfassen.
Man kann Serienaufnahmen in Einzelaufnahmen umwandeln.
...
Bildschirmfotos und Beschreibung siehe (Die Fotos habe ich noch nicht erneuert.)
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv.
Irgendetwas stimmt mit der Sortierung der Timer-Daten nicht.
@Lemmi:
Ich vermute, daß array_multisort() auf deinem Server anders arbeitet als hier. Warum auch immer.
Ich habe testweise array_multisort() durch uasort() mit eigenen Vergleichsfunktionen ersetzt. (Siehe Anhang)
Würdest Du bitte mal testen, ob damit auch auf deinem System alle Sendungen gleicher SerienID grundsätzlich zusammen sortiert erscheinen? (Sowohl für Timer als auch für Aufnahmen.)
Die Reihenfolge sollte genau so sein wie im Foto aus http://www.m740.de/forum/showpost.php?p=8038&postcount=168
Die folgende Datei gehört in das Verzeichnis includes/ und ersetzt die dort vorhandene Datei crid.php.
Lemmi
20.03.2005, 13:16:42
@api:
hat leider nichts geändert.
@api:
hat leider nichts geändert.
Nochmal zur Sicherheit:
Dein Foto zeigt eine aufsteigende Sortierung bezüglich der Startzeiten. Die SerienIDs werden offenbar ignoriert. So weit so schlecht.
Wie wird sortiert, wenn Du jetzt die Reihenfolge mit dem dafür vorgesehenen Knopf umkehrst?
Lemmi
20.03.2005, 14:07:52
Wie wird sortiert, wenn Du jetzt die Reihenfolge mit dem dafür vorgesehenen Knopf umkehrst?Genau umgekehrt.
Ich hatte übrigens auch die alten Timer-Daten manuell eingespielt. Der Sonderfall, der unabhängig von der Sortierung immer unten angezeigt wurde, ist auch mit dem neuen Sortierverfahren vorhanden.
Genau umgekehrt.
Entschuldige bitte die blöde Frage:
Hast Du auch wirklich die neue Datei verwendet? Lag die neue Datei crid.php wirklich im Verzeichnis include? Ich kann's kaum glauben.
Lemmi
20.03.2005, 15:26:25
Entschuldige bitte die blöde Frage:
Hast Du auch wirklich die neue Datei verwendet? Lag die neue Datei crid.php wirklich im Verzeichnis include? Ich kann's kaum glauben.Ist schon ok.
Ich habe
im Includes Verzeichnis die Datei crid.php, Größe 8046, Datum: heute 11:50
Den WebServer neu gestartet.
Den Linux-Rechenr neu gestartet
Den Firefox-Cache geleert
Mit Opera gesurft
Einen ganz normalen WebServer von der Stange (SuSE 9.2). Einzige Abnormalität: Virtuelle Hosts.
Lemmi
20.03.2005, 15:29:37
Gibt es hier noch andere Linuxer, die das EPG-Tool einsetzen und sich zu den Problemen äußern können?
Ist schon ok.
Ich habe
im Includes Verzeichnis die Datei crid.php, Größe 8046, Datum: heute 11:50
Den WebServer neu gestartet.
Den Linux-Rechenr neu gestartet
Den Firefox-Cache geleert
Mit Opera gesurft
Einen ganz normalen WebServer von der Stange (SuSE 9.2). Einzige Abnormalität: Virtuelle Hosts.
Also da muß ich die Flügel strecken. Das Verhalten kann ich mir nicht erklären.
Ich denke, wir lassen das mal ein wenig ruhen. Mal schauen, was andere Linux-Nutzer dazu sagen. Dann sehen wir weiter. Die Ursache muß doch zu finden sein.
Lengemann
20.03.2005, 19:05:12
Gibt es hier noch andere Linuxer, die das EPG-Tool einsetzen und sich zu den Problemen äußern können?
Hi!
Ja, ich hab das gleiche Problem. Die Serien werden immer zusammen sortiert. Egal in welche Richtung ich sortieren lasse.
Hilft zwar nicht, aber baut auf, da es nicht ein Einzelfall dann ist.
Bis dann
Ja, ich hab das gleiche Problem. Die Serien werden immer zusammen sortiert. Egal in welche Richtung ich sortieren lasse.
Witzbold.
Die Serien sollen immer zusammen sortiert werden. Nur bei Lemmi geht das eben nicht.
Mach mal ein Foto! Nur für den Fall, daß ich dich falsch verstanden habe.
Nochmal zur Erläuterung:
So sieht es bei Lemmi aus: http://www.m740.de/forum/showpost.php?p=8031&postcount=167
Sortierung nur nach Datum. SerienID wird ignoriert.
So sollte es aussehen:
http://www.m740.de/forum/showpost.php?p=8038&postcount=168
Sendungen gleicher SerienID erscheinen als ein Block.
Welches System verwendest Du als Web-Server?
Lengemann
20.03.2005, 19:45:44
Oups, dann hab ichs doch falsch verstanden.
Aber ich find das nicht so schön, ich würde gern sehen was als nächstes aufgenommen wird. Aber mach Dir keine Sorgen, ich werd mich da selber mal dransetzen, hab bis jetzt auch schon ein wenig daran rumgespielt.
Aber wirklich gute Arbeit.
Bis dann
Lutz
PS: Hier noch mein Screenshot. Mein Webserver ist nen Debian mit Apache 1.3.29, PHP 4.1.2
Hier die nächste experimentelle Version.
Änderungen 2005-03-20:
Seite 'Box Einstellungen':
Programm zum Einlesen der Datei settings.txt verallgemeinert.
Die Werte werden jetzt für unterschiedliche Firmwareversionen mit unterschiedlicher Anzahl an Einstellungen korrekt angezeigt.
Die Erläuterungen sind ausführlicher.
Gültige Wertebereiche sind angegeben.
Frame-Aufbau geändert:
Die Fernbedienung hat jetzt mehr Platz.
Bildschirmfotos und Beschreibung siehe (Die Fotos habe ich noch nicht erneuert.)
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv:
Oups, dann hab ichs doch falsch verstanden.
Aber ich find das nicht so schön, ich würde gern sehen was als nächstes aufgenommen wird.
Die nächste Aufnahme steht auch bei dieser Methode immer oben!
Die Anzeige verhält sich ähnlich wie die Anzeige der Box am Fernseher.
Auch hier wird eine Serie gebündelt dargestellt. (Bei neueren Firmwareversionen auch bei den fertigen Aufnahmen.)
Die Art der Darstellung ist aber grundsätzlich hochgradig Geschmacksache.
Möglicherweise werde ich die gebündelte Darstellung auch wählbar machen.
PS: Hier noch mein Screenshot. Mein Webserver ist nen Debian mit Apache 1.3.29, PHP 4.1.2
Danke. Also arbeitet die Sortierung prinzipiell auch unter Linux wie erwartet.
Bleibt die Frage, warum das bei Lemmi nicht klappt.
Lemmi
20.03.2005, 20:46:57
@api
Nur son' Gedanke: Fehlt mir evtl irgendein Modul?
@api
Nur son' Gedanke: Fehlt mir evtl irgendein Modul?
Möglich.
Aktiviere doch mal bitte alle Meldungen:
error_reporting(E_ALL | E_STRICT);
statt
error_reporting(E_ALL & ~E_NOTICE);
in common.php
Gibt's dann irgendwelche Meldungen?
Lemmi
20.03.2005, 21:05:03
Ich glaibe, die Sortierfunktion ist die falsche Baustelle.
Habe den folgenden code in crid.php ans Ende der Funktion CridReadListe() eingebaut:
if (count($cridDaten)>0)
uasort($cridDaten, ($sort=='absteigend'?'sort_ab':'sort_auf'));
//-------- test begin -----------
foreach ($cridDaten as $key => $datei)
{
echo "<!-- " . $cridDaten[$key]['startserie'] . " / "
. $cridDaten[$key]['start'] . " / "
. $cridDaten[$key]['cid'] . " -->\n";
}
//--------- test ende -------------
return $cridDaten;
Und die überraschende Ausgabe:
<!-- 1111372500 / 1111372500 / 1,1113725001E+14 -->
<!-- 1111372500 / 1111401600 / 1,1114016001E+14 -->
<!-- 1111372500 / 1111488000 / 1,1114880001E+14 -->
<!-- 1111372500 / 1111574400 / 1,1115744001E+14 -->
<!-- 1111372500 / 1111605000 / 1,11160500101E+15 -->
<!-- 1111372500 / 1111660800 / 1,1116608001E+14 -->
<!-- 1111372500 / 1111747200 / 1,1117472001E+14 -->
<!-- 1111372500 / 1111845600 / 1,11184560101E+15 -->
<!-- 1111372500 / 1112209800 / 1,11220980101E+15 -->
<!-- 1111372500 / 1112450400 / 1,11245040101E+15 -->
<!-- 1111372500 / 1112814600 / 1,11281460101E+15 -->
<!-- 1111372500 / 1113055200 / 1,11305520101E+15 -->
Ich habe mich zwar noch nicht richtig in php und der Programmlogig eingedacht, aber sollte der erste Wert für verschiedenen Serien nicht auch unterschiedlich sein?
Lemmi
20.03.2005, 21:10:04
Möglich.
Aktiviere doch mal bitte alle Meldungen:
error_reporting(E_ALL | E_STRICT);
statt
error_reporting(E_ALL & ~E_NOTICE);
in common.php
Gibt's dann irgendwelche Meldungen? Jede Menge:
Notice: Undefined index: sort in /disk/local/www/server/www/m740av-epg/timer.php on line 171
Notice: Undefined index: abholen in /disk/local/www/server/www/m740av-epg/timer.php on line 174
Timer-Daten jetzt aus der Box via Ftp abholen und zwischenspeichern
Timer Datenstand So 20.03.2005 21:42, Alter 26 Minuten
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 3 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 2 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 1 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined offset: 0 in /disk/local/www/server/www/m740av-epg/includes/common.php on line 204
Notice: Undefined variable: serie in /disk/local/www/server/www/m740av-epg/timer.php on line 63
sollte der erste Wert für verschiedenen Serien nicht auch unterschiedlich sein?
Selbstverständlich sollte er unterschiedlich sein.
Bei mir ist das auch mit deinem Code unterschiedlich.
Stellt sich also die Frage, warum das bei dir nicht so ist.
Mach doch bitte auch mal die gleiche Testausgabe zusätzlich vor der Sortierung.
Lemmi
20.03.2005, 21:27:24
Hatte ich auch schon probiert: Ist bis auf Sortierung identisch.
Jede Menge:
Eijeijei! Das werde ich noch abstellen.
Die Meldungen sind aber scheinbar nicht relevant für unser Problem.
Hatte ich auch schon probiert: Ist bis auf Sortierung identisch.
Aha. Da irgendwo liegt wohl der Hund begraben.
Das werden wir aber später ergründen. Die Beste aller Ehefrauen ruft. Gute Nacht.
Lemmi
20.03.2005, 22:11:06
Fehler gefunden!?
Ich habe den code wie folgt erweitert
// Sortieren
$serien=array();
// liefert zu einer Serie die Startzeit der neuesten/aeltesten Sendung
foreach ($cridDaten as $key => $datei)
{
echo "<!-- D1 " . $key . ": " . $datei['serienid'] ." -->\n";
if (
$datei['serienid']!=0
&& (
(!isset($serien[$datei['serienid']]))
|| (($sort=='absteigend')
?($serien[$datei['serienid']]<$datei['start'])
:($serien[$datei['serienid']]>$datei['start']))))
{
echo '<!-- SET $serien[' . $datei['serienid'] . '] = ' . $datei['start'] . " -->\n";
$serien[$datei['serienid']]=$datei['start'];
}
}
foreach ($serien as $key => $val)
echo "<!-- S2 " . $key . ": " . $val . " -->\n";
Die Ausgabe ist:
<!-- D1 0001E3FABE15_1112450401010025.crid: 3183634210 -->
<!-- SET $serien[3183634210] = 1112450400 -->
<!-- D1 0001E3FABE15_1112209801010025.crid: 3183634261 -->
<!-- SET $serien[3183634261] = 1112209800 -->
<!-- D1 0001E3FABE15_1111605001010025.crid: 3183634261 -->
<!-- SET $serien[3183634261] = 1111605000 -->
<!-- D1 0001E3FABE15_111148800010013.crid: 3184039378 -->
<!-- SET $serien[3184039378] = 1111488000 -->
<!-- D1 0001E3FABE15_111140160010013.crid: 3184039378 -->
<!-- SET $serien[3184039378] = 1111401600 -->
<!-- D1 0001E3FABE15_1112814601010025.crid: 3183634261 -->
<!-- D1 0001E3FABE15_1111845601010025.crid: 3183634210 -->
<!-- D1 0001E3FABE15_111137250010027.crid: 3183750227 -->
<!-- SET $serien[3183750227] = 1111372500 -->
<!-- D1 0001E3FABE15_1113055201010025.crid: 3183634210 -->
<!-- D1 0001E3FABE15_111166080010013.crid: 3184039378 -->
<!-- D1 0001E3FABE15_111174720010013.crid: 3184039378 -->
<!-- D1 0001E3FABE15_111157440010013.crid: 3184039378 -->
<!-- S2 -2147483648: 1111372500 -->
Anscheindend wird $serien nicht richtig gesetzt. Liegt daran, dass Index 3184039378 ungültig (keine INT32) ist.
Ändere ich die Zuweisung auf
$serien[$datei['serienid']/10]=$datei['start'];
^^^
dann wird auch $serien gefüllt:
<!-- S2 318363421: 1113055200 -->
<!-- S2 318363426: 1112814600 -->
<!-- S2 318403937: 1111574400 -->
<!-- S2 318375022: 1111372500 -->
Mein Vorschlag (aus dem Bauch): Die Serien-ID transformieren.
Lemmi
20.03.2005, 22:25:54
Nachtrag: Konsequent $serien mit index&0x7fffffff inidizert: Die Serien sind zusammenhängend! Auch der Aussreiser, mit dem alles Anfing, ist korrekt einsortiert.
Ich weiß ja nicht, wie die Serien-ID zustande kommt.
Ich mutmaße aber, dass index & 0x7FFFFFFF generell gut funktionieren würde.
Im Anhang befindet sich eine entsprechend modifizierte crid.php, die auch bei mir zu den gewünschten Ergebnissen führt.
Nachtrag: Konsequent $serien mit index&0x7fffffff inidizert: Die Serien sind zusammenhängend! Auch der Aussreiser, mit dem alles Anfing, ist korrekt einsortiert.
Ich weiß ja nicht, wie die Serien-ID zustande kommt.
Ich mutmaße aber, dass index & 0x7FFFFFFF generell gut funktionieren würde.
Neuer Firmwareversionen vergeben scheinbar nur noch SerienIDs mit gesetztem höchstem Bit. (Also grundsätzlich negative 32-Bit-Zahlen)
Deshalb stelle ich die IDs in der Ausgabe auch in Hex dar.
Ich werde für den Index des Serien-Arrays den typ String erzwingen. Dann sollte das Problem behoben sein.
Trotzdem, warum akzeptiert dein PHP keine negativen 32-Bit-Zahlen als Index?
In php.ini sind mir keine diesbezüglichen Einstellungen aufgefallen
Ich werde für den Index des Serien-Arrays den typ String erzwingen.
So, Indizierung mit SerienID als Hex-String mit Präfix x, damit keine automatische Umwandlung dazwischenfunken kann. Schau mal, ob's geht.
lunzet
21.03.2005, 12:30:03
also die lircd funktion ist ja wirklich klasse.
leider dauert es nur ne halbe ewigkeit wenn ich eine aufnahme aus epg-einzeln timen möchte die ein paar tage im voraus liegt. denn das skript geht ja dann durch jeden tag durch ...eintrag für eintrag.
1) kann man das vielleicht auch ohne bildschirmausgabe (osd) machen?
2) wäre es möglich dass die timerfunktion auch tageweise vorspringen kann um so die dauer der übertragung (blockieren des osd) zu verkürzen?
3) arbeitet noch jemand daran die timerdaten direkt (ohne lircd) auf die box zu bekommen, so dass auch verzögerungen im ansprechverhalten des osd keine fehlprogrammierung erzeugen?
ansonsten weiterso....super goile entwicklungen !!!
gruss,
thomas
Firefigther
21.03.2005, 13:49:39
2) wäre es möglich dass die timerfunktion auch tageweise vorspringen kann um so die dauer der übertragung (blockieren des osd) zu verkürzen?
Daran bin ich am Basteln der vorsprung +1 tag funktioniert bei mir allerdings wenn ich dann noch weiterspringe stimmt es vorne und hinten nicht mehr. ist leider noch nciht ausgereift genug dafür. Muß meine Programiereung erstmal in die aktuelle Version einbinden. zu den anderen Punkten kann ich nichts sagen, da ich an der Box noch nicht viel rumgespielt habe.
In der 1. Version der Timerprogramierung wurden die Aufnahmedaten einzeln eingetragen. Das ging schneller allerdings waren da dann EGP daten nicht vorhanden. Es währe zu überlegen. Ob man die Händische Timer Programierung mit eingabe felder wieder reinmacht.
Unter die Ferbedienung könnte man noch die Funktion Zeichenkette übertragen einfügen. Das macht das benennen von Paylisten und das einrichten von Netzlaufwerken evt. etwas einfacher.
Hm mal sehen ob ich heute abend dazu komme weiter zu tüfteln.
Gruß FF
Hallo,
habe gestern euere Skripts installiert und bin schwer begeistert.
Und wenn jetzt immer mehr leute mithelfen wollen und änderungen schicken, könnte man das Projekt doch bei sourceforge eincheken.
hallo @api, was meinst du ?
leider dauert es nur ne halbe ewigkeit wenn ich eine aufnahme aus epg-einzeln timen möchte die ein paar tage im voraus liegt. denn das skript geht ja dann durch jeden tag durch ...eintrag für eintrag.
Tja, das ist eben der Nachteil dieser Methode: Die Wartezeit nach jedem Tastendruck muß nach dem worst case gewählt werden.
Das würde sich verkürzen lassen, wenn man an das Echo des OSD herankäme.
Möglicherweise will ja jemand erforschen wie die OSD-Ausgabe zustandekommt.
1) kann man das vielleicht auch ohne bildschirmausgabe (osd) machen?
Klar, über direkte Manipulation der Dateien RA_FILE, SM_FILE im /data Verzeichnis sowie der crid-Dateien im /data/.timer Verzeichnis.
Unerforschtes Gelände.
2) wäre es möglich dass die timerfunktion auch tageweise vorspringen kann um so die dauer der übertragung (blockieren des osd) zu verkürzen?
Möglich, allerdings ist auch die Vorhersage sehr unzuverlässig.
Unter die Ferbedienung könnte man noch die Funktion Zeichenkette übertragen einfügen. Das macht das benennen von Paylisten und das einrichten von Netzlaufwerken evt. etwas einfacher.
Gute Idee.
Und wenn jetzt immer mehr leute mithelfen wollen und änderungen schicken, könnte man das Projekt doch bei sourceforge eincheken.
hallo @api, was meinst du ?
Erscheint sinnvoll. Ich habe allerdings noch keine Erfahrung damit. Ich werde mich mal reinlesen.
In der 1. Version der Timerprogramierung wurden die Aufnahmedaten einzeln eingetragen. Das ging schneller allerdings waren da dann EGP daten nicht vorhanden. Es währe zu überlegen. Ob man die Händische Timer Programierung mit eingabe felder wieder reinmacht.
Das könnte als eine Auswahlmöglichkeit auf derjenigen Seite untergebracht werden, welche nach Klicken auf die rote Taste erscheint. Hier könnte auch eine Auswahlmöglichkeit für EPG-Serie eingebaut werden.
Lemmi
21.03.2005, 19:10:44
Neuer Firmwareversionen vergeben scheinbar nur noch SerienIDs mit gesetztem höchstem Bit. (Also grundsätzlich negative 32-Bit-Zahlen)
Deshalb stelle ich die IDs in der Ausgabe auch in Hex dar.
Ich werde für den Index des Serien-Arrays den typ String erzwingen. Dann sollte das Problem behoben sein.
Trotzdem, warum akzeptiert dein PHP keine negativen 32-Bit-Zahlen als Index?
In php.ini sind mir keine diesbezüglichen Einstellungen aufgefallenEin einfaches echo gibt die Zahl als positiven Wert (64-Bit oder unsigned?) aus. Ich nehme an, dass dieser positive Wert nicht erlaubt ist und daher auf den Minimalwert 0x80000000 abgebildet wird. Daher gab es sortiertechnisch auch nur eine einzige Serie.
So, Indizierung mit SerienID als Hex-String mit Präfix x, damit keine automatische Umwandlung dazwischenfunken kann. Schau mal, ob's geht.Geht!
Lemmi
21.03.2005, 19:16:40
Das muß ich noch loswerden:
Ich habe mich nur auf PHP gestürzt, weil ich anscheinend der einzige war, bei dem es nicht richtig funktionierte. Ich konnte ja schließlich nicht das Gerücht aufkommen lassen, ich hätte einen vermurksten Linux-Server ... ;)
Resümee meines PHP Einstiegs:
PHP ist ganz easy, wenn man C und BASH kennt und ein brauchbares Nachschlagewerk im Internet gefunden hat.
Ein einfaches echo gibt die Zahl als positiven Wert (64-Bit oder unsigned?) aus. Ich nehme an, dass dieser positive Wert nicht erlaubt ist und daher auf den Minimalwert 0x80000000 abgebildet wird.
Eigenwilliges Verhalten das!
Geht!
Schön, dann können wir das Thema als erledigt zu den Akten legen.
twitti
21.03.2005, 23:12:32
Ist ja eine Spitzensache, das Script.
Vielleicht mach ich ein Fehler:
Komfiguration w2k3 SBS Server mit PHP 4.3.10.
Das Programmieren von Timeraufnahmen klappt bei mir nicht. Wenn ich einen Sendung übertragen will, zuckt bei mir das OSD nur manchmal zum EPG hin, das wars dann. Ist dies ein Timinigproblem, Windows.... ?
Normale Befehle senden über die FD im Script klappt.
Gruss Twitti
Ist dies ein Timinigproblem, Windows.... ?
Ja, eine PHP Funktion usleep funktioniert unter Windows nicht.
In common-remote.php baust du mal diese Ersatz Funktion ein.
und ändere usleep in usleepW um. Dann muss es gehen.
function usleepW($usec) {
$start = gettimeofday();
do {
$stop = gettimeofday();
$timePassed = 1000000 * ($stop['sec'] - $start['sec']) + $stop['usec'] - $start['usec'];
}
while ($timePassed < $usec);
}
twitti
22.03.2005, 09:34:34
Jepp - fast....
es kommt ein bei "weit entfernten" sendern (am unterem ende der senderliste):
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Inetpub\epg\includes\common-remote.php on line 58
hast du noch ein tipp ?
Update auf PHP 5, dort glaub ich, gibt es keine Probleme mit usleep
Ja, eine PHP Funktion usleep funktioniert unter Windows nicht.
Hier arbeitet usleep() unter Windows fehlerfrei.
Jepp - fast....
es kommt ein bei "weit entfernten" sendern (am unterem ende der senderliste):
Fatal error: Maximum execution time of 30 seconds exceeded in C:\Inetpub\epg\includes\common-remote.php on line 58
hast du noch ein tipp ?
Die Meldung sagt doch alles. Du hast deinen Server so eingerichtet, daß dieser nur max 30 Sekunden für eine Anfrage verwenden darf.
Hannilein
23.03.2005, 10:54:06
Nachdem ich endlich auch mal Apache und PHP auf meinem Rechner (unter Win XP) installiert habe, muß ich mich jetzt mal zu Wort melden.
DANKE!
Das ist ja echt klasse! Allein die Möglichkeit zur Fernbedienung der Box... Aber natürlich auch die übersichtlichen EPG-Informationen zu den Aufnahmen sind super zu gebrauchen. An die Timerprogrammierung habe ich mich noch nicht rangewagt, das scheint aufgrund der Nutzung des OSD und der Fernbedienung ja nicht sehr zuverlässig zu laufen und kann allenfalls als "experimentell" eingestuft werden - bitte nicht als Kritik werten, das ist ja ein prinzipielles Problem. Vielleicht rückt ja jemand bei Siemens doch mal mit einen Tip raus, wie man der wavebox ein selbst erstelltes CRID-File mit den Timerdaten unterschiebt, ohne daß die Box durchgestartet werden muß. Wenn ich das richtig in Erinnerung habe, dann funktioniert letzteres doch, oder?
Eins ist mir gerade noch aufgefallen: In der Liste der Aufnahmen fehlen bei mir zu einer Serie die letzten drei Aufnahmen (fünf sind insgesamt vorhanden). Direkt auf der Box werden mir alle fünf gruppiert angezeigt, mit dem Browser sehe ich nur die ersten beiden Folgen. Da hilft auch kein Aktualisieren bzw. erneutes Laden von der Box - komisch.
Hanno
twitti
23.03.2005, 19:22:20
Die Meldung sagt doch alles. Du hast deinen Server so eingerichtet, daß dieser nur max 30 Sekunden für eine Anfrage verwenden darf.
Manchmal muss man eben angestossen werden...
In php.ini -> max_execution_time = 30 -> eben nur höher setzen.
Firefigther
23.03.2005, 23:18:54
So es ist mal wieder ein Update da:
Es ist jetzt Möglich eine Zeichenkette (Bustaben, Zahlen und Sonderzeichen) die in ein Eingabefeld geschrieben werden müssen abzusenden.
dies erleichtert die Eingabe bei den Netzwerkeinstellungen und das Benennen von Playlisten.
Wichtig ist, dass man vorher in das Eingabefeld wechselt. Ansonsten könnte die Box ungewollte Funktionen ausführen.
Verwendung wie immer auf eigenen Gefahr.
Gruß FF
Hier die nächste experimentelle Version.
Änderungen 2005-03-24:
Fernbedienung:
Textfeld zum Senden von Text zur Box. Das kann für die Eingabe von Texten wie z.B. Freigabenamen, Passwort usw. hilfreich sein. (Danke @Firefighter)
usleep() durch usleepW ersetzt. (wg. Versionen vor PHP 5 unter Win.)
Diverse Korrekturen...
Bildschirmfotos und Beschreibung siehe (Die Fotos habe ich noch nicht erneuert.)
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv:
Lemmi
24.03.2005, 22:56:47
@api wegen Box Einstellungen
Ein paar Ergänzungen:
Videoformat
0=TV:FBAS,VCR:FBAS
?=TV:FBAS,VCR:S-Video
?=TV:S-Video,VCR:FBAS
3=TV:S-Video,VCR:S-Video <<<<<<
Tastenton
?=aus
1=Ton 1 ein
?=Ton 2 ein
3=Ton 3 ein <<<<<<<<<<
Oberfläche
0=Standard Skin
1=LCD TV Skin <<<<<<<<<<<
Bild in Bild Position
?=oben rechts
1=unten rechts <<<<<<<<<
2=unten links
?=oben links
@api wegen Box Einstellungen
Ein paar Ergänzungen:
Videoformat
0=TV:FBAS,VCR:FBAS
?=TV:FBAS,VCR:S-Video
?=TV:S-Video,VCR:FBAS
3=TV:S-Video,VCR:S-Video <<<<<<
Tastenton
?=aus
1=Ton 1 ein
?=Ton 2 ein
3=Ton 3 ein <<<<<<<<<<
Oberfläche
0=Standard Skin
1=LCD TV Skin <<<<<<<<<<<
Bild in Bild Position
?=oben rechts
1=unten rechts <<<<<<<<<
2=unten links
?=oben links
Habe ich ergänzt, Danke.
Lengemann
25.03.2005, 00:23:56
Dann mache ich mal weiter:
Bildformat
?=Auto
1=4:3 Letterbox
2 =4:3 Pan & Scan <<<<<<<<
? =16:9 Letterbox
? =16:9 Pan & Scan
Audio Ausgang
0=Stereo Ausgang
1=Digital Ausgang <<<<<<<
Info-Anzeigedauer [Sekunden] (1, 2, ...30, 36000=unbegrenzt) >>>unbegrenzt<<<<
Menü-Sprache
0=Deutsch
1=Englisch <<<<<<
?=Türkisch
Bild in Bild Position
0=oben rechts <<<<<<<<<
1=unten rechts
2=unten links
?=oben links
Bis dann
Lutz
Lemmi
25.03.2005, 08:01:12
Info-Anzeigedauer [Sekunden] (1, 2, ...30, 36000=unbegrenzt) >>>unbegrenzt<<<<
Schon ausprobiert, ob es nicht doch nur 10h sind? ;)
Lengemann
25.03.2005, 08:44:07
Ich habs ausprobiert, und soviel stand dann da drin ;)
Lutz
Dann mache ich mal weiter:
Bildformat
2 =4:3 Pan & Scan <<<<<<<<
Audio Ausgang
1=Digital Ausgang <<<<<<<
Info-Anzeigedauer [Sekunden] (1, 2, ...30, 36000=unbegrenzt) >>>unbegrenzt<<<<
Menü-Sprache
1=Englisch <<<<<<
Bild in Bild Position
0=oben rechts <<<<<<<<<
Habe ich ergänzt, merci.
scoep
26.03.2005, 18:53:14
Hallo api,
kannst du (oder jemand anderes) eine weitere EPG-Alle-Übersicht programmieren, in der die Sender nicht in Zeilen, sondern in Spalten dargestellt werden? Also so wie bei TVGenial (http://www.tvgenial.com/tv_zeitschrift_designbeispiel_330_nacht.htm). Das hat den Vorteil, daß man auch bei sehr kurzen Sendungen den Titel lesen kann.
Frohe Ostern,
Scoep
Lengemann
27.03.2005, 15:16:41
Hi!
Hab mal ein paar Logos verändert. Wenn man nämlich keinen weissen Hintergrund hat, sehen die alten sehr schlecht aus.
@api: Kannst du ja bei einer neuen Version "einbauen"
Bis dann
Lutz
Hier die nächste experimentelle Version.
Änderungen 2005-03-27:
Fernbedienung: Die Sender werden in der Kurzwahl immer in der Reihenfolge der Box dargestellt. (Das gilt jetzt auch dann, wenn im Script eine andere Sortierung aktiv ist!)
EPG Alle: Sender ausblenden geht jetzt wieder ohne Fehlermeldungen.
Box Einstellungen: zu jedem Wert wird jetzt zur Information auch die jeweilige Werkseinstellung angezeigt.
Timer: Die SerienID wird jetzt, wenn möglich, in Form eines Datums angezeigt. (Zeitpunkt der Erstellung der Serie.) Das Datum wird genau dann dargestellt, wenn der negierte Wert der SerienID ein gültiges Datum liefert. (Danke @Lemmi für die Entfernung der Tomaten auf den Augen.)
Aufnahmen: Die SerienID wird jetzt, wenn möglich, in Form eines Datums angezeigt. Die SerienID kann mit dem Textfeld auch verändert werden. Als Eingabe wird ein Datum oder eine ganze Zahl akzeptiert.
Diverse Korrekturen...
Bildschirmfotos und Beschreibung siehe (Die Fotos habe ich teilweise erneuert.)
http://www.m740.de/wiki/index.php/EPG_PHP-Skript
Hier das aktuelle vollständige Archiv und eine Korrektur:
Lemmi
27.03.2005, 16:19:46
Die SerienID wird jetzt, wenn möglich, in Form eines Datums angezeigt. (Zeitpunkt der Erstellung der Serie.) Das Datum wird genau dann dargestellt, wenn der negierte Wert der SerienID ein gültiges Datum liefert. (Danke @Lemmi für die Entfernung der Tomaten auf den Augen.)Die Tomaten hatten wir wohl alle am falschen Platz ;)
Bei der Übertragung der crid-Dateien zur Box kam es zu einem Fehler.
Korrektur siehe http://www.m740.de/forum/showpost.php?p=8701&postcount=231
Die Datei aus 2005-03-27-Update-Api-EPG_PHP-Script.zip (http://attachment.php?attachmentid=253) ersetzt die gleichnamige Datei im Verzeichnis includes/
Lengemann
27.03.2005, 18:47:59
Ich hab in der Ansicht EPG-Alle mal eine Zeitachse eingebaut. Müsste auch überall dynamisch funktionieren. Wenn jedoch kein Ende angegeben wird, kann die Anzeige nicht erzeugt werden.
Bis dann
Lutz
Ich hab in der Ansicht EPG-Alle mal eine Zeitachse eingebaut. Müsste auch überall dynamisch funktionieren. Wenn jedoch kein Ende angegeben wird, kann die Anzeige nicht erzeugt werden.
Bis dann
Lutz
Gute Idee. Habe ich eingebaut. Eine Achse oben, eine unten.
itcssr
28.03.2005, 13:31:53
@api
ich habe vor ein paar tagen zum ersten mal das script getestet und es funktioniert hervorragend, vielen dank für deine mühe
meine frage: könnte man eine trennung in funktion und front-end / template vornehmen (z.b. mit smarty) so dass man an der optik / positionierung der einzelelemente slebst arbeiten kann, ohne dass man nach den updates modifikationen wieder einbauen muss, man könnte so auch einzelne elemente in schon vorhandene seiten integrieren kann. alternativ, wenn der aufwand zu gross ist oder du es für blödsinn hälst, wie sieht es mit css für schriften ... aus
eine kleinigkeit hätte ich noch, ich habe auf meinem notebook (1024x768) bei dem remotecontrolframe einen horizontalen scrollbalken, am arbeitsplatz mit (1280x1024) habe ich keine scrollbalken auf der startseite.
bei der funktion epg alle hört der inhalt bereits vor dem anzeigebereich auf, die horizontale scrolleiste ist dennoch da.
läßt sich ohne grossen aufwand das script so bauen, dass auf 1024 in dem remotebereich am liebsten weder horizontale noch vertikel scrollbalken entstehen, durch die frame nutzung hat man halt den balken "mitten" auf der seite hängen.
es soll keine kritik sein ich bin froh über das script und dankbar dass du dir eine solche mühe damit gibst und da es noch nicht mal geld kostet ist es noch komischer da irgendwelche wünsche zu äußern.
sebastian
@api
meine frage: könnte man eine trennung in funktion und front-end / template vornehmen (z.b. mit smarty) so dass man an der optik / positionierung der einzelelemente slebst arbeiten kann, ohne dass man nach den updates modifikationen wieder einbauen muss, man könnte so auch einzelne elemente in schon vorhandene seiten integrieren kann. alternativ, wenn der aufwand zu gross ist oder du es für blödsinn hälst, wie sieht es mit css für schriften ... aus
Ich halte es durchaus für sinnvoll, die Optik mit Stylesheets zu steuern. Das ist hier auch schon mehrfach vorgeschlagen worden. Konkrete Vorschläge zur Umsetzung sind willkommen.
eine kleinigkeit hätte ich noch, ich habe auf meinem notebook (1024x768) bei dem remotecontrolframe einen horizontalen scrollbalken, am arbeitsplatz mit (1280x1024) habe ich keine scrollbalken auf der startseite.
bei der funktion epg alle hört der inhalt bereits vor dem anzeigebereich auf, die horizontale scrolleiste ist dennoch da.
läßt sich ohne grossen aufwand das script so bauen, dass auf 1024 in dem remotebereich am liebsten weder horizontale noch vertikel scrollbalken entstehen, durch die frame nutzung hat man halt den balken "mitten" auf der seite hängen.
Zeig doch mal die Bilder...
Grundsätzlich:
Ich strebe an, das Script möglichst Browser- und Umgebungsunabhängig zu gestalten. Das gelingt leider nur teilweise. Das Script verwendet möglichst wenig konkrete Größenangaben. Lediglich bei den Frames müssen konkrete Größen angegeben werden. Falls der im Browser eingestellte Schriftgrad sehr weit von den Standardeinstellungen abweicht, sind die Breiten und Höhen der Frames leider unpassend. Ich habe vor, die Frames zu entfernen, und die Teilbereiche über Tabellen einzubinden. Die aktuellen Seiteninformationen könnten dann in Sessions gehalten werden. (Ist hier auch schon mehrfach vorgeschlagen worden.)
ps: Groß-Kleinschreibung erleichtert dem Leser das Leben und erhöht die Bereitschaft beim Leser, sich mit dem Geschriebenen auseinanderzusetzten. ;-)
Diese fu... Serien Timer...
Man sieht ja nicht was man schon für Serien programmiert hat, und sichtbar werden sie ja nur wenn passend EPG Daten verfügbar sind.
Also hab ich mich hingesetzt und diese per PHP sichtbar gemacht.
Anbei der neue Serien Anzeige Tool, einfach in api's PHP Script entpacken.
Im oberen Menü erscheint der neue "Serien" Link und alle unsichtbaren programierten Serien werden sichtbar.
Es sind noch Rohdaten, einiges versteh ich nicht, aber dafür hab ich ja euch Helfer :D
Verändert habe ich nur die Datei "link.htm" und eine neue Datei "serien.php"
itcssr
29.03.2005, 02:05:24
Screenshot von der 1024er Auflösung
Moin Jungs,....
hab ne Möglichkeit gefunden, jede "Bewegung" im OSD zu überwachen
und somit ist ein "schnellere" Fernbedienung per PHP möglich.
Man kann z.B. mit "cat /dev/fb0 > bild.raw" einen Screenshot vom OSD machen.( Tip von andreas.koch )
Die Datei wird ständig größer, je mehr OSD "geändert" wird.
Nach jedem Senden der Fernbedienung-Befehle, einfach Datei Größe überwachen. Nach jeder Veränderung Datei auf 0 Bytes verkleinen und nächsten Befehl senden.
Bin auf der Arbeit, kann das leider nicht sofort ausprobieren... :(
Moin Jungs,....
hab ne Möglichkeit gefunden, jede "Bewegung" im OSD zu überwachen
und somit ist ein "schnellere" Fernbedienung per PHP möglich.
Man kann z.B. mit "cat /dev/fb0 > bild.raw" einen Screenshot vom OSD machen.( Tip von andreas.koch )
Die Datei wird ständig größer, je mehr OSD "geändert" wird.
Nach jedem Senden der Fernbedienung-Befehle, einfach Datei Größe überwachen. Nach jeder Veränderung Datei auf 0 Bytes verkleinen und nächsten Befehl senden.
Bin auf der Arbeit, kann das leider nicht sofort ausprobieren... :(
Keine schlechte Idee. Bei mir ist allerdings die Datei immer gleich groß. (2093056 Byte, egal, ob OSD vorhanden oder nicht.) Ich habe allerdings nicht während des Aufbaus die Größe abgefragt.
Wie stellt Du dir das vor?
Befehl abschicken
solange Größe abfragen, bis diese kleiner als 2093056 Byte ist (OSD in Arbeit)
solange Größe abfragen, bis wieder 2093056 Byte erreicht sind (OSD fertig)
Befehl ist fertig bearbeitet
Screenshot von der 1024er Auflösung
Die Fernbedienung ist leider immer noch zu groß. Ich werde die FB evtl. noch verkleinern. Auch das Textfeld kann schmaler werden.
Ansonsten habe das nochmal mit IE getestet. Funktioniert bei unterschiedlichen Fenstergrößen und Schriftgraden eigentlich brauchbar.
btw:
@Lengemann: Der Grund dafür, dass ich deine finale Version der Fernbedienung bis jetzt nicht eingebaut habe, liegt allein in der Größe derselben. Du hast zwar die Optik der Fernbedienung perfekt hinbekommen; allein, die FB paßt damit leider überhaupt nicht mehr auf den Bildschirm.
Bei mir wird die Datei permanent größer, auch wenn ich kein OSD benutze.
Lege ich den Output auf den Screen ( cat /dev/fb0 ) sieht man was sich da ändert.
Statt in einer Datei zu schreiben , schicken wir das ganze doch zu dem PHP Script.
Könnte wohl so aussehen: cat /dev/fb0 > /dev/tcp/192.168.0.2/5555
Der PHP Script muss dann nur Port 5555 abfragen. Alles nur Theorie...
Ich test das mal.... leider kein Erfolg :mad:
Lengemann
29.03.2005, 18:31:52
@Lengemann: Der Grund dafür, dass ich deine finale Version der Fernbedienung bis jetzt nicht eingebaut habe, liegt allein in der Größe derselben. Du hast zwar die Optik der Fernbedienung perfekt hinbekommen; allein, die FB paßt damit leider überhaupt nicht mehr auf den Bildschirm.
Hatte ich mir schon fast gedacht. Aber das macht ja nichts, jeder kann selber entscheiden ;) Ich kann es auch verstehen, da dadurch der Traffic zumindest am Anfang etwas größer ist, und wenn man von ausserhalb auf die Weboberfläche zugreifft kann der Upload manchmal klein werden ;)
Lutz
Hatte ich mir schon fast gedacht. Aber das macht ja nichts, jeder kann selber entscheiden ;) Ich kann es auch verstehen, da dadurch der Traffic zumindest am Anfang etwas größer ist, und wenn man von ausserhalb auf die Weboberfläche zugreifft kann der Upload manchmal klein werden ;)
Lutz
Äh. Ich meinte jetzt nicht die Größe in Bytes sondern die Größe in Pixeln auf dem Bildschirm.
Bei mir wird die Datei permanent größer, auch wenn ich kein OSD benutze.
Lege ich den Output auf den Screen ( cat /dev/fb0 ) sieht man was sich da ändert.
Kannst Du nochmal, für Blöde wie mich, erklären wo da was wächst? Wie groß in Bytes wird die Datei denn bei dir?
Lengemann
29.03.2005, 19:18:18
Äh. Ich meinte jetzt nicht die Größe in Bytes sondern die Größe in Pixeln auf dem Bildschirm.
Ich hab mich falsch ausgedrügt. Klar, dass du die Größe der Pixel meinstert, dachte nur noch an den anderen Punkt, da ich letztens das Tool von ausserhalb genutzt habe, und da hatte ich die Ladezeiten doch gemerkt ;)
itcssr
30.03.2005, 15:15:00
Screenshot 1280er Auflösung. Menüpunkt EPG Alle
Screenshot 1280er Auflösung. Menüpunkt EPG Alle
Ich nehme an, dich stört der horizontale Scrollbalken. Richtig?
Der vertikale Scrollbalken erscheint, weil die Seite länger ist als das Fenster.
Der horizontale Scrollbalken erscheint beim IE deshalb, weil durch den vertikalen Balken plötzlich weniger Platz zur Verfügung steht. Das ist 'ne Macke des IE.
Damit müssen IE-Nutzer leben. Das ist hier auch nicht weiter schlimm.
Der Effekt tritt auch bei der Startseite auf: Hier könnte IE den Text auf die passende Breite umbrechen. IE bricht aber so um, dass der Text ohne den rechten Balken passen würde. Wird die Seite dann länger und der rechte Balken erscheint, dann ist der Umbruch plötzlich falsch und dann ist auch der horizontale Balken nötig.
Richtige Browser (TM) sollten hier nur den vertikalen Balken darstellen.
Logan
30.03.2005, 16:32:58
Es liess mir keine rechte Ruhe und so habe ich behelfsmäßig etwas losgestümpert. :D
In Bremen wird das Erste (trotz der inzwischen erfolgten "Harmonisierung" zum Jahreswechsel (voher hatten wir immer Regionalnachrichten während alle anderen Pilawa guckten, während er bei uns dafür schon früher dran war, etc.) offenbar immer noch als "Das Erste RB" ausgestrahlt und so versucht sich das php-Skrip an einer dasersterb.gif die es nicht gibt. OK, das wr einfach ... da habe ich einfach nur daserste.gif entsprechend dupliziert.
Das dritte läuft unter ndrrb.gif und da ging das Drama mit meinen mangelnden künstlerischen (und das schließt auch Technik in diesem Bereich ein ;)) Fähigkeiten los. Habe mir also das rbTV Logo gegriffen, entsprechend verkleinert und die Hintergrundfarbe auf weiss gesetzt. Dabei hat das Logo erwarteterweise ein wenig gelitten (das AA der Schriftzeichen passt nicht mehr ganz und beim Verkleinern ist's auch schon ein wenig aus dem Lot geraten), aber zur Not geht's erstmal denke ich. Vielleicht findet sich ja mal jemand der's besser kann.
Powered by vBulletin® Version 4.1.9 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.