Nirvana's sectionsd Testecke

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Du stellst Fragen. ;)

Ohne Gewähr:
/apps/tuxbox/neutrino/daemons/sectionsd.cpp
/apps/tuxbox/neutrino/daemons/SIevents.cpp
/apps/tuxbox/neutrino/daemons/SIevents.hpp
/apps/tuxbox/neutrino/src/neutrino.cpp
/apps/tuxbox/neutrino/src/system/settings.h
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

:) naja ich werd mal sehen.
Papst
Developer
Beiträge: 279
Registriert: Mittwoch 26. Juni 2002, 22:19

Beitrag von Papst »

Nach ersten Tests kann ich nur sagen: Daumen hoch.
Alles bestens bisher
Gruß

Der Papst
doktorknow
Interessierter
Interessierter
Beiträge: 99
Registriert: Dienstag 27. November 2001, 00:00

Beitrag von doktorknow »

Hallo,
besten Dank zunächst für all die Zeit und Mühe die Ihr in dieses Projekt investiert!!!
Ich habe heute ein neues Image mit dem aktuellen Patch erstellt. Nun habe ich eine Frage zu der epg.xml Funktion. Es wird beim erstmaligen Start bzw. beim Shutdown werden 188 xml-Dateien auf dem Server erstellt, allerdings passiert das nur beim ersten Mal. ich habe beim ersten Start nur ARD geschaut. Beim zweiten Start habe ich Pro 7 und RTL geschaut und gehofft, dass beim Neustart nun die EPGs von ARD, RTL, Pro 7 und Co angezeigt werden. Dem ist aber nicht so. Und auf dem Server sind die Dateien noch von 13:15 Uhr. Der zweite Start war allerdings um 15:00 Uhr.
Habe ich das Prinzip falsch verstanden?
MfG
doktorknow
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

also, ich hoffe ich erzähle nix falsch.
-beim beenden von neutrino speichert der alle gecachten epg daten auf ein mountlaufwerk.
-beim neustart holt der die daten dann wieder vom laufwerk(mounten ok ? beim start)
-logmeldungen sagen mehr als 1000 worte.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

@drno

Genauso wie du hoffst klappt das auch. Was du falsch machst, ist aber für mich aus der Beschreibung nicht ersichtlich. Du schreibst: "epg.xml" - Funktion. Hast du auch wirklich ein Verzeichnis angegeben? Eine Datei epg.xml gibt es nicht mehr.
Hast du vielleicht nicht lange genug gewartet? Die Daten werden sehr langsam eingelesen und stehen natürlich nicht unmittelbar nach dem Booten zur Verfügung.
Außerdem werden die Daten bei jedem Shutdown geschrieben. Das kannst du ja leicht überprüfen, indem du die xml-Dateien auf dem NFS-Share löscht.

Einfacher Test ist immer: Clean Boot. Nur RTL lesen. Auf MTV ausschalten. Einschalten. Warten. EPG auf RTL steht nach < 1 Minute wieder zur Verfügung.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

also bei mir geht es wunderbar. hole mir immer alle epg daten von den sendern. dann auf Das Vierte und shutdown. nach neustart ist dann der epg bei allen wieder da :) ich seh die aktivität an den netzwerk-status-leds.

ich hab den shutdown und reboot getrennt. bei reboot wird nix geschrieben, wodurch der schneller geht. da wird einfach alles ignoriert. evtl ist das ja ne anregung.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

...wobei das Vierte den gesamten EPG von APS (Pro7, Premiere) vom Sat holt. Entscheidend ist der Transponder...
doktorknow
Interessierter
Interessierter
Beiträge: 99
Registriert: Dienstag 27. November 2001, 00:00

Beitrag von doktorknow »

Okay, danke!
Es funktioniert jetzt auch bei mir!! Tolle Sache - und so macht das ja auch Sinn! Bei mir liegt der Fehler noch in der Konfiguration bzw. im zweiten Mountpunkt des Fli4l. Irgendwie klappt es nicht ein Unterverzeichnis vom Streamingverzeichnis zu mounten. Direkt von /data/dboxfilme klappt es wunderbar. Das mit dem Mountverzeichnis werde ich auch noch rausbekommen... Vielen Dank erstmal!
MfG
doktorknow
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

@Nirvana
ich hab mal bisserl in der sectionsd.cpp rumgestöbert :) , weil ich currentbouquets+currentservices schreiben konfigurierbar machen wollte und das gefunden.

Code: Alles auswählen

static void addBouquetToCurrentXML(xmlNodePtr bouquet, t_bouquet_id bouquet_id)
{
	FILE * dst = NULL;
	std::string name;
	xmlNodePtr node;
	
	if (!(dst = fopen(CURRENTBOUQUETS_TMP, "w"))) {
		dprintf("unable to open %s for writing", CURRENTSERVICES_TMP);
		return;
	}
muss das nicht so lauten ??

dprintf("unable to open %s for writing", CURRENTBOUQUETS_TMP);


ps manchmal bröselt mir das epg speichern einfach so mitten drin ab
[neutrino] event INITID_SECTIONSD - unknown eventID 0x4
terminate called after throwing an instance of 'std::length_error'
terminate called recursively
Aborted
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

@Nirvana
kommt da was neues von Dir ? wenn du wieder da bist ?
Artzka hat ja in der sectionsd.cpp was geändert, wodurch dein zeugs da nicht mehr geht :(
in der funktion meckert er rum

Code: Alles auswählen

static void *insertEventsfromFile(void *)
....
if (xmlGetNextOccurence(node, "description") != NULL) {
							if (xmlGetAttribute(node, "name") != NULL) {
								e.name = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "name")));
							}
							//printf("Name: %s\n", e->name);
							if (xmlGetAttribute(node, "text") != NULL) {
								e.text = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "text")));
							}
							if (xmlGetAttribute(node, "item") != NULL) {
								e.item = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "item")));
							}
							if (xmlGetAttribute(node, "item_description") != NULL) {
								e.itemDescription = std::string(UTF8_to_Latin1(xmlGetAttribute(node,"item_description")));
							}
							if (xmlGetAttribute(node, "extended_text") != NULL) {
								e.extendedText = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "extended_text")));
							}
							node = node->xmlNextNode;
...
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

@ Nirvana

Wo drückst Du Dich denn rum?? So schön is das Wetter doch noch
garnicht... :D :D


Gruß
____Paule
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

mb405 hat geschrieben:@Nirvana
kommt da was neues von Dir ? wenn du wieder da bist ?
Artzka hat ja in der sectionsd.cpp was geändert, wodurch dein zeugs da nicht mehr geht :(
in der funktion meckert er rum

Code: Alles auswählen

static void *insertEventsfromFile(void *)
....
if (xmlGetNextOccurence(node, "description") != NULL) {
							if (xmlGetAttribute(node, "name") != NULL) {
								e.name = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "name")));
							}
							//printf("Name: %s\n", e->name);
							if (xmlGetAttribute(node, "text") != NULL) {
								e.text = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "text")));
							}
							if (xmlGetAttribute(node, "item") != NULL) {
								e.item = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "item")));
							}
							if (xmlGetAttribute(node, "item_description") != NULL) {
								e.itemDescription = std::string(UTF8_to_Latin1(xmlGetAttribute(node,"item_description")));
							}
							if (xmlGetAttribute(node, "extended_text") != NULL) {
								e.extendedText = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "extended_text")));
							}
							node = node->xmlNextNode;
...
Du musst überall ein 'lang' dazu edieren.

z.B. - alt, + neu

- name=e.name;
- text=e.text;
+ langName=e.langName;
+ langText=e.langText;
- extendedText=e.extendedText;
+ langExtendedText=e.langExtendedText;

Hat Artzka mal einer angeschrieben warum er so eine Baustelle hinterlässt? :gruebel:
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Er hat keine Baustelle hinterlassen sondern Nirvana's Sachen sind nicht im CVS und jetzt passts halt nicht mehr.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

jep Houdini. genau so isses

@Nico 77

????????? verstehe ich nicht, was du da gepostet hast ??
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

PauleFoul hat geschrieben:@ Nirvana

Wo drückst Du Dich denn rum?? So schön is das Wetter doch noch
garnicht... :D :D


Gruß
____Paule
http://wetter.rtl.de/welt/uebersicht.ph ... ort=George

Was'n daran nicht so schön? Okay, die 33 Grad letzte Woche - war vielleicht ein bisschen warm. Aber sonst... :P
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

mb405 hat geschrieben:jep Houdini. genau so isses

@Nico 77

????????? verstehe ich nicht, was du da gepostet hast ??
Naja Artzka hat doch nur die Namen der Attribute geändert, diese passt du einfach an bei Nirvana zusätzlichen Sachen.

@Houdini
Achso, wußte ich nicht. Dachte der Fehler wäre im CVS(habe lange nicht ausgecheckt). 8)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

da bin ich wohl zu doof dafür ;( ich kann das nicht finden.
dwilx

Beitrag von dwilx »

Hallöle!

Ich würde auch gern mal testen, aber die Links sind off oder ist das ganze im CVS!
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

Nirvanas patch greift nicht mehr, wegen artzkas einchecken von MultilanguageEPG. ich warte auf Nirvana, eh ich da wieder was zerschiesse bei mir :)
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Nico 77 hat geschrieben: Du musst überall ein 'lang' dazu edieren.

z.B. - alt, + neu

- name=e.name;
- text=e.text;
+ langName=e.langName;
+ langText=e.langText;
- extendedText=e.extendedText;
+ langExtendedText=e.langExtendedText;
So einfach ist das leider nicht! Die Variablen sind private und müssen über eigene Funktionen geschrieben und gelesen werden.
Das ist aber nicht alles, denn leider führen arzkas Änderungen dazu, dass sich das EPG - speichern nicht mehr oder besser nicht mehr trivial realisieren lässt, weil man zwar über die getFunktionen die Informationen bekommt, aber nicht weiß, in welcher Sprache sie sind. Meiner Meinung nach hätte er beser die Struktur der SIEvents ändern sollen und die Namen/Texte nach Sprachen sortiert gespeichert. Das wäre sauber. Vielleicht blicke ich aber die Genialität seines Konzeptes einfach nicht.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ooor :( also das epg speichern ist bestimmt die genialere sache, als das mit den sprachen.

@Nirvana
ich versteh das ganze zwar nicht, aber kann man nicht einfach alles abspeichern ??
arzka
Developer
Beiträge: 19
Registriert: Sonntag 10. April 2005, 23:21

Beitrag von arzka »

Hi,

Sorry about writing in english, but my german vocabulary is very small :) (It is interesting to follow this thread by using babelfish :) )

If I understood correctly my patch broke system what stores gathered EPG data. Unfortunately I haven't even noticed this system before so I didn't notice that it went broken. I am sorry about that.
(I have told about my patch about half year ago in english forum, and got only one bug report so I thought that it was OK)

I need to look the code more to find out where that storing procedure should be done, but if I guessed correctly in my quick look it is done by method SIevent::saveXML2(). I made small modification to that method and it can be found from http://www.hyper.fi/dbox2/SIevents.patch. Hopefully this helps. I haven't commited it since don't know yet where that saveXML2() is really used.

--
Arzka
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

That was quick! I think that will provide the necessary language information to the xml. Hopefully I can get it working again. Thanks for the answer.

P.S. save2xml isn't used anywhere else afaik.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

also der fehler kommt beim compilen
sectionsd.cpp: In function `void* insertEventsfromFile(void*)':
sectionsd.cpp:3218: error: 'class SIevent' has no member named 'name'
sectionsd.cpp:3222: error: 'class SIevent' has no member named 'text'
sectionsd.cpp:3231: error: 'class SIevent' has no member named 'extendedText'
zeile 3218

Code: Alles auswählen

e.name = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "name")));
zeile 3222

Code: Alles auswählen

e.text = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "text")));
zeile 3231

Code: Alles auswählen

e.extendedText = std::string(UTF8_to_Latin1(xmlGetAttribute(node, "extendedText")));