Bouquet Filter

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

Bouquet Filter

Beitrag von Nirvana »

Wegen der Ähnlichkeit zum EPG-Filter habe ich mal nebenbei einen Bouquetfilter gehackt.
Damit soll man dem sectionsd bei aktivierter automatischer Sendersuche abgewöhnen können wirklich jedes signalisierte Bouquet zu aktualisieren. Bsp. gibt es wohl Probleme, weil Sky für jede Sprachversion ein eigenes Bouquet sendet. Jetzt sollte man alle bis auf eines filtern können.
Teilweise gibt es aber auch HD Bouquets, die man filtern möchte usw.

Für das Format siehe hier:
http://download.yousendit.com/085444E6688A0B1F

"0000" als Bouquet_id filtert alle Bouquets. Natürlich gibt es auch wieder eine Whitelist, falls man z.B. nur das tividi Bouquet haben möchte. Die Datei heißt mybouquets.xml, weil ich damit noch mehr Sachen vor habe. Sie liegt bei /var/tuxbox/config/mybouquets.xml.

Zum testen:
http://download.yousendit.com/CB04D5EE0908F6C4
http://download.yousendit.com/2E04992B7072D672

Achtung, ich bin im Ausland und habe keine dbox. Also kann ich nichts testen. Deshalb kann nicht garantieren, was das Ding tut, wenn es denn überhaupt etwas macht!
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Zuletzt geändert von PT-1 am Mittwoch 17. Dezember 2008, 15:13, insgesamt 1-mal geändert.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Nirvana oder JtG Team

wie kann ich das den in einem JTG Image Testen bzw. Norvana wenn er moechte dann per DynDNS auf meine Box ?
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

PT-1 hat geschrieben:@Nirvana oder JtG Team

wie kann ich das den in einem JTG Image Testen bzw. Norvana wenn er moechte dann per DynDNS auf meine Box ?
kannst Du den Satz nochmal aufdröseln? Möchtest Du wissen, wie Du dyndns auf Deine Box lenkst? Du mußt im Router den Telnet Port (und/oder FTP Port 21) auf die IP Deiner DBox lenken. Der Router sollte sich bei dyndns anmelden können.
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Sorry,

nein Ich habe DynDNS auf der Box und es funktioniert.

Ich wuerde gerne den sectionsd auf meiner Box mit dem JtG testen aber das ist SquashFS.

Eventuell werde ich mir eben mal ein DietmarW drauf machen muessen

Danke
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

PT-1 hat geschrieben:Sorry,

nein Ich habe DynDNS auf der Box und es funktioniert.

Ich wuerde gerne den sectionsd auf meiner Box mit dem JtG testen aber das ist SquashFS.

Eventuell werde ich mir eben mal ein DietmarW drauf machen muessen

Danke
Nö brauchst Du nicht!
leg Dir den sectionsd den du testen willst nach /tmp oder /var/bin (755) und gehe ins telnet

Code: Alles auswählen

killall sectionsd
/tmp/sectionsd -d
-d steht für debug und bringt Dir mehr Ausgaben an der Console. Wenn Du das so machst bekommst Du zudem alle ausgaben am Telnet ohne das Du ein Nullmodemkabel anschließen mußt:
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<mybouquets>
	<filter is_whitelist = "0">
		<bouquet bouquet_id="1234"/>
		<bouquet bouquet_id="5678"/>
	</filter>
</mybouquets>
Und die Bouqet ID finde ich dann wo :gruebel:

Und wie kann ich den den SectionsD so starten das er den automatischen sectionsd scan macht ?

Sorry fuer die vielen Fragen

EDIT:

sectionsd [-d][-nu]

so was macht das -nu ?
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

der sectionsscan hängt doch (wenn nicht per parameter übergeben) von einem flag a'la .sectionsscan oder einem eintrag in der neutrino.conf ab (wobei ich letzteres glaube) Das würde heißen wenn Du die Einstellung im menü gemacht hast sollte sollte auch der "Ersatz sectionsd" sich an die vorgaben halten
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Ein neustart von Neutrino hat geholfen ;-)

http://www.pt-1.net/myownsatbox/30_01_0 ... rvices.xml

http://www.pt-1.net/myownsatbox/30_01_0 ... uquets.xml

http://www.pt-1.net/myownsatbox/Sectionsd_-d.txt

Waere jetzt z.B.

<Bouquet type="1" bouquet_id="1009" name="BSkyB Bouquet 9 - Commercial England" hidden="0" locked="0">

1009 eine die ich behalten will und

<Bouquet type="1" bouquet_id="1003" name="BSkyB Bouquet 3 - DTH Wales" hidden="0" locked="0"> die 1003 eine die ich nicht moechte ... :gruebel:
Zuletzt geändert von PT-1 am Mittwoch 17. Dezember 2008, 15:12, insgesamt 1-mal geändert.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Oder du willst 1001 behalten und den Rest blocken. Wer weiß das schon außer dir. :)
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Nirvana

click mal HIER drauf dann siehst du wie riesig mein Bouquets sowieso schon alleine auf 28.2 wird ...

Ich muss mich da mal durchwurschteln da es ja momentan sowieso nicht funktioniert diese automatisch in meine Existierenden Bouquets einzupflegen.

Danke

PT-1
Zuletzt geändert von PT-1 am Mittwoch 17. Dezember 2008, 15:12, insgesamt 1-mal geändert.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Wo ist nun Dein Problem? Hast Du überhaupt eins? Die Größe kannst du doch nun per Blocker einschränken.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Hi,

mein Problem ist das ich ja momentan nicht den automatischen SectionsD scan nutzen kann weil beim neustarten von Neutrino nicht die Bouquets & services aus TMP in die files in .../Zapit/ geschrieben werden.


<Bouquet type="1" bouquet_id="1000" name="BSkyB Bouquet" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="1001" name="BSkyB Bouquet 1 - DTH England" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="1002" name="BSkyB Bouquet 2 - DTH Scotland" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="1003" name="BSkyB Bouquet 3 - DTH Wales" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="1004" name="BSkyB Bouquet 4 - DTH Other" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="1005" name="BSkyB Bouquet 5 - Retail England" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="1006" name="BSkyB Bouquet 6 - Retail Scotland" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="1007" name="BSkyB Bouquet 7 - Retail Wales" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="1008" name="BSkyB Bouquet 8 - Retail Other" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="1009" name="BSkyB Bouquet 9 - Commercial England" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="100a" name="BSkyB Bouquet 10 - Commercial Scotland" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="100b" name="BSkyB Bouquet 11 - Commercial Wales" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="100c" name="BSkyB Bouquet 12 - Commercial Other" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="100d" name="BSkyB Bouquet 13 - Test" hidden="0" locked="0">
<Bouquet type="1" bouquet_id="100e" name="BSkyB Bouquet 14 - Interactive Test" hidden="0" locked="0">


so meine XML wuerde dann so aussehen wenn ich Wales & Schottland und die Test & Interactvie Filtern wuerde. Kann ich die jetzt eigentlich zum Testen auch mal in /var/tuxbox/config/ obwohl die Sectionsd von /tmp momentan arbeitet ..?

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<mybouquets>
	<filter is_whitelist = "0">
		<bouquet bouquet_id="1002"/>
		<bouquet bouquet_id="1003"/>
		<bouquet bouquet_id="100a"/>
		<bouquet bouquet_id="100b"/>
		<bouquet bouquet_id="1006"/>
		<bouquet bouquet_id="1007"/>
		<bouquet bouquet_id="100d"/>
		<bouquet bouquet_id="100e"/>
	</filter>
</mybouquets>
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Es werden die currentbouquets.xml nicht gemerged, weil sie zu groß ist, deswegen willst du doch filtern. Warum tauchen jetzt nicht alle bouquet_ids bis auf eine in deiner Liste auf?
Und wenn du mybouquets.xml reinkopierst, musst du sectionsd neu starten.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Hi,

die Bouquet ID's habe ich so aus der riesen langen currentbouquets.xml so einzeln rauskopiert und numerisch gelistet.

Ich habe die obigen Links auch mal mit den neuesten Dateien erneuert weil der Sectionsd fleissig die Datei immer weiter baut.

Ich habe sie dann mal in bouquets.xml umbenannt und mit meiner vorhandenen services.xml mit BouquetWizard geoeffnet und mal reingeschaut und eigentlich nur die bouquet_id="1000" ist interresant fuer mich.

Also waere die :

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?> 
<mybouquets> 
   <filter is_whitelist = "0"> 
      <bouquet bouquet_id="1001"/>
      <bouquet bouquet_id="1002"/> 
      <bouquet bouquet_id="1003"/>
      <bouquet bouquet_id="1004"/>
      <bouquet bouquet_id="1005"/>
      <bouquet bouquet_id="1006"/>
      <bouquet bouquet_id="1007"/>
      <bouquet bouquet_id="1008"/>
      <bouquet bouquet_id="1009"/> 
      <bouquet bouquet_id="100a"/> 
      <bouquet bouquet_id="100b"/> 
      <bouquet bouquet_id="100c"/> 
      <bouquet bouquet_id="100d"/> 
      <bouquet bouquet_id="100e"/> 
   </filter> 
</mybouquets>
dann richtig ?
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Jepp, wenn es dann richtig klappt.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Klappt anscheinend nicht:
/tmp > /tmp/sectionsd -d
$Id: sectionsd.cpp,v 1.235 2007/01/23 20:23:47 houdini Exp $
[sectionsd] Caching max 5000 events
[sectionsd] Caching 14 days
[sectionsd] Events are old 60min after their end time
/var/tuxbox/config/epgfilter.xml: No such file or directory
Reading Bouquet Filters
Add Bouquet Filter for bouquet_id="1001"
Add Bouquet Filter for bouquet_id="1002"
Add Bouquet Filter for bouquet_id="1003"
Add Bouquet Filter for bouquet_id="1004"
Add Bouquet Filter for bouquet_id="1005"
Add Bouquet Filter for bouquet_id="1006"
Add Bouquet Filter for bouquet_id="1007"
Add Bouquet Filter for bouquet_id="1008"
Add Bouquet Filter for bouquet_id="1009"
Add Bouquet Filter for bouquet_id="100a"
Add Bouquet Filter for bouquet_id="100b"
Add Bouquet Filter for bouquet_id="100c"
Add Bouquet Filter for bouquet_id="100d"
Add Bouquet Filter for bouquet_id="100e"
Segmentation fault
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

/tmp > /tmp/sectionsd -d
$Id: sectionsd.cpp,v 1.235 2007/01/23 20:23:47 houdini Exp $
[sectionsd] Caching max 5000 events
[sectionsd] Caching 14 days
[sectionsd] Events are old 60min after their end time
/var/tuxbox/config/epgfilter.xml: No such file or directory
Reading Bouquet Filters
Add Bouquet Filter for bouquet_id="1001"
Add Bouquet Filter for bouquet_id="1002"
Add Bouquet Filter for bouquet_id="1003"
Add Bouquet Filter for bouquet_id="1004"
Add Bouquet Filter for bouquet_id="1005"
Add Bouquet Filter for bouquet_id="1006"
Add Bouquet Filter for bouquet_id="1007"
Add Bouquet Filter for bouquet_id="1008"
Add Bouquet Filter for bouquet_id="1009"
Add Bouquet Filter for bouquet_id="100a"
Add Bouquet Filter for bouquet_id="100b"
Add Bouquet Filter for bouquet_id="100c"
Add Bouquet Filter for bouquet_id="100d"
Add Bouquet Filter for bouquet_id="100e"
[timeThread] pid 636 start
[eitThread] pid 637 start
[pptThread] pid 638 start
[nitThread] pid 639 start
[sdtThread] pid 640 start
housekeeping-thread started.
[timeThread] - 30.01.2007 17:10:36, tim: Tue Jan 30 17:10:36 2007
[timeThread] Time set via DVB, going to sleep for 1800 seconds.
dmxPPT: no valid pid 0
dmxNIT: going to sleep...
dmxSDT: going to sleep...
[pptThread] going to sleep...
Das sieht doch schonmal besser aus ;-)

BTW:
http://www.pt-1.net/Diffs/NirvanaBouque ... _sectionsd
http://www.pt-1.net/Diffs/NirvanaBouque ... tionsd.cpp
Zuletzt geändert von PT-1 am Mittwoch 17. Dezember 2008, 15:12, insgesamt 1-mal geändert.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Nirvana

Klasse, das hat nun wirklich nur die bouquet ID 1000 erstellt und diese ist nur 46KB gross.

Letzte Frage fuer heute:

in meinem aktuellen Bouquet habe ich durch Faulheit nur die folgenden Programme fuer 28.2 drin weil ich noch keine grosse Lust hatte mehr reinzusortieren weil die current ja immer so gross wurde.

Actuell

Code: Alles auswählen

	<Bouquet type="0" bouquet_id="0000" name="My Favorites" hidden="0" locked="0">
		<channel serviceID="189d" name="BBC 1 London" tsid="07fd" onid="0002" sat="282"/>
		<channel serviceID="189e" name="BBC 2 England" tsid="07fd" onid="0002" sat="282"/>
		<channel serviceID="27d8" name="ITV Channel Is" tsid="0806" onid="0002" sat="282"/>
		<channel serviceID="23f6" name="Channel 4" tsid="07e8" onid="0002" sat="282"/>
		<channel serviceID="247e" name="Five" tsid="07ef" onid="0002" sat="282"/>
		<channel serviceID="1261" name="Sky One" tsid="07eb" onid="0002" sat="282"/>
	</Bouquet>
Wenn ich nun die Box herunterfahre bzw. eventuell bei nicht funktionieren manuell rueber kopiere und z.B. diese Daten nehme:

Code: Alles auswählen

	<Bouquet type="1" bouquet_id="1000" name="BSkyB Bouquet" hidden="0" locked="0">
		<channel serviceID="189d" name="" tsid="07fd" onid="0002"/>
		<channel serviceID="189e" name="" tsid="07fd" onid="0002"/>
		<channel serviceID="2774" name="" tsid="07fc" onid="0002"/>
		<channel serviceID="125f" name="" tsid="07ee" onid="0002"/>
Mir ist klar das die ganze current bouquet Datei ca. ~770 Zeilen hat, werden die Namen aber dann von der Services.xml uebernommen wenn nichts in der Bouquets angegeben ist ..?

Ciao & Danke aus London

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

Beitrag von Nirvana »

Ja. :)
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

Ha du hasch recht !

Bild

Schoen einsortiert ;-)
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Nirvana

das klappt klasse kannst du also wenn du moechtest gerne einchecken ;-)

Andere Frage an alle,

In einem anderen Board habe ich gelesen das diese eine Funktion haben die in der Info Bar anzeigt ob eine neue currentbouquets.xml oder currentservices.xml da ist.

Man faehrt ja nicht immer die Box gleich runter und dort habe ich folgende Antowort erhalten
als erstes musst du rausfinden, wo die info ist, ob der sect scan an oder aus ist.
dann bei angeschalteten scan machst du ne abfrage, ob currentservices oder currentbouquets da sind. wenn ja zeigst du die entsprechenden iconsd an. das sind 5stück

aus
an
serv
bouq
serv & bouq

ich hab ne einfache funktion geschrieben, die in der infoviewer.cpp aufgerufen wird

Code: Alles auswählen

[i]beispiel[/i]
void CInfoViewer::service_anzeige()
{
FILE* finfo = fopen("/var/tuxbox/config/??????????.conf", "r");
if(finfo)
	{
	char buffer[120];
	while(fgets(buffer, 120, finfo)!=NULL)
		{
		sscanf(buffer, "????????=%d", &sect_scan);
		}
	fclose(finfo);
	}
		
	
		if(sect_scan==0)
			frameBuffer->paintIcon("scan_off.raw", BoxEndX - 95 - 16 + 10, BoxEndY- ((InfoHeightY_Info+ 16)>>1) );
	
		if(sect_scan>0)
			frameBuffer->paintIcon("scan_on.raw", BoxEndX - 95 - 16 + 10, BoxEndY- ((InfoHeightY_Info+ 16)>>1) );
	
		if((access("/var/tmp/currentservices.xml", 00) != -1)
			frameBuffer->paintIcon("scan_newserv.raw", BoxEndX- 95 - 16 + 10, BoxEndY- ((InfoHeightY_Info+ 16)>>1) );
		if((access("/var/tmp/currentbouquets.xml", 00) != -1)
			frameBuffer->paintIcon("scan_newbouq.raw", BoxEndX - 95 - 16 + 10, BoxEndY- ((InfoHeightY_Info+ 16)>>1) );
		if((access("/var/tmp/currentservices.xml", 00) != -1)&&if((access("/var/tmp/currentbouquets.xml", 00) != -1)
			frameBuffer->paintIcon("scan_newservbouq.raw", BoxEndX - 95 - 16 + 10, BoxEndY- ((InfoHeightY_Info+ 16)>>1) );
}

Bild
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ich hab mal ein diff auf Nirvanas letzte version gemacht.

Code: Alles auswählen

--- cvs/daemons-sectionsd/sectionsd.cpp	2007-01-29 17:19:34.000000000 +0100
+++ Nirvana_30_01_07_sectionsd.cpp	2007-01-31 17:49:02.000000000 +0100
@@ -153,6 +153,7 @@
 static int scanning = 1;
 static bool epg_filter_is_whitelist = false;
 static bool epg_filter_except_current_next = false;
+static bool bouquet_filter_is_whitelist = false;
 
 //NTP- Config
 #define CONF_FILE "/var/tuxbox/config/neutrino.conf"
@@ -408,6 +409,38 @@
 
 }
 
+struct BouquetFilter
+{
+	t_bouquet_id bid;
+	BouquetFilter *next;
+};
+
+BouquetFilter *CurrentBouquetFilter = NULL;
+
+static bool checkBouquetFilter(t_bouquet_id bid)
+{
+	BouquetFilter *filterptr = CurrentBouquetFilter;
+	while (filterptr)
+	{
+		if ((filterptr->bid == bid) || (filterptr->bid == 0))
+			return true;
+		filterptr = filterptr->next;
+	}
+	return false;
+}
+
+static void addBouquetFilter(t_bouquet_id bid)
+{
+	if (!checkBouquetFilter(bid))
+	{
+		dprintf("Add Bouquet Filter for bouquet_id=\"%04x\"\n", bid);
+        	BouquetFilter *node = new BouquetFilter;
+		node->bid = bid;
+        	node->next = CurrentBouquetFilter;
+        	CurrentBouquetFilter = node;
+	}
+}
+
 // Loescht ein Event aus allen Mengen
 static bool deleteEvent(const event_id_t uniqueKey)
 {
@@ -5417,6 +5450,7 @@
 	int i = 0;
 	int j = 0;
 	int is_actual = 0;
+	bool bouquet_filtered = false;
 
 	dmxSDT.addfilter(0x42, 0xf3 );		//SDT actual = 0x42 + SDT other = 0x46 + BAT = 0x4A
 
@@ -5592,6 +5626,11 @@
 				else if (header.table_id == 0x4a) {
 					t_bouquet_id bid = (header.table_id_extension_hi) << 8 | header.table_id_extension_lo;
 
+					bouquet_filtered = checkBouquetFilter(bid);
+
+					if (((!bouquet_filtered) && (!bouquet_filter_is_whitelist)) || 
+						((bouquet_filtered) && (bouquet_filter_is_whitelist))) {
+
 					// This is 0 .. MAX_BAT - 1 if already started or new and free or -1 if no free slot available.
 					int current_bouquet = get_bat_slot(bid, (int) header.last_section_number);
 
@@ -5634,7 +5673,7 @@
 
 						//dprintf("current bouquet: %d, current section: %d code: %d\n", current_bouquet, header.section_number, messaging_bat_sections_so_far[current_bouquet][header.section_number]);
 					}
-
+					}
 				}
 				else {
 					delete[] buf;
@@ -6835,6 +6874,38 @@
 	xmlFreeDoc(filter_parser);
 }
 
+static void readBouquetFilter(void)
+{
+	xmlDocPtr filter_parser = parseXmlFile("/var/tuxbox/config/mybouquets.xml");
+
+	t_bouquet_id bid = 0;
+
+	if (filter_parser != NULL)
+	{
+		dprintf("Reading Bouquet Filters\n");
+		
+		xmlNodePtr filter = xmlDocGetRootElement(filter_parser);
+		filter = filter->xmlChildrenNode;
+
+		while (xmlGetNextOccurence(filter, "filter") != NULL) {
+
+			if (xmlGetNumericAttribute(filter, "is_whitelist", 10) == 1)
+				bouquet_filter_is_whitelist = true;
+			filter = filter->xmlChildrenNode;
+
+			while (filter) {
+
+				bid  = xmlGetNumericAttribute(filter, "bouquet_id", 16);
+
+				addBouquetFilter(bid);
+
+				filter = filter->xmlNextNode;
+			}
+		}
+	}
+	xmlFreeDoc(filter_parser);
+}
+
 static void printHelp(void)
 {
 	printf("\nUsage: sectionsd [-d][-nu]\n\n");
@@ -6915,6 +6986,7 @@
 		printf("[sectionsd] Events are old %ldmin after their end time\n", oldEventsAre / 60);
 
 		readEPGFilter();
+		readBouquetFilter();
 
 		if (!sectionsd_server.prepare(SECTIONSD_UDS_NAME))
 			return EXIT_FAILURE;
oder als datei hier
http://home.arcor.de/mb407/dbox2/sectio ... 00107.diff
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

@Nirvana,

koenntest du das einchecken wenn du mit meinem erfolgreichen Test einverstanden bist ..?

Danke aus London

PT-1