You are not logged in.

Dear visitor, welcome to Dreamboard. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Saturday, November 24th 2007, 4:49pm

Kanäle samt ServiceReference über script ermitteln

Hallo,

ich würde gerne über ein Script die Kanäle samt deren ServiceReference über das WebIF von E2 ermitteln.

Damit erhalte ich schon mal die Kanallisten samt der ServiceReference:

wget -O- http://user:pass@ip/web/getservices

Das brauche ich jetzt auch für die einzelnen Kanäle der Kanallisten.

Ich habe versucht, bei der ServiceReference der Kanallisten die ":" durch "%3a" zu ersetzen und hiermit auszulesen:

wget -O- http://user:pass@ip/web/getservices?ServiceListBrowse=$encodedRef

Dabei kommt aber leider das Selbe raus wie beim ersten Befehl.


Jemand eine Idee?
MfG Ali
DM8000 | DM8000 | DM500HD | DM500HD | DM7020S

Source code

1
2
3
4
5
6
#!/bin/sh
while [ 1 ]
do
	echo "i love my dreams!!!"
	sleep 1
done

2

Saturday, November 24th 2007, 5:18pm

RE: Kanäle samt ServiceReference über script ermitteln

Die Liste, die Du mit /web/getservices bekommst, mußt Du nach den einzelnen e2servicereference-Einträgen parsen und dann jeden als Parameter sRef=... abfragen, also z. B.

Source code

1
http://dm7025/web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:FROM%20BOUQUET%20"userbouquet.favourites.tv"%20ORDER%20BY%20bouquet

für die Favoriten. Nach der Methode bekommst Du aber nur die Sender, die in irgendeinem Bouquet sind. Wenn Du alle willst, kannst Du per FTP die Datei /etc/enigma2/lamedb lesen. In der Datei stehen erst die einzelnen Transponder und dann alle Sender.

HeiRos

3

Saturday, November 24th 2007, 6:11pm

Hmmm, bekomme dabei nur das zurück:

Quoted

<?xml version="1.0" encoding="UTF-8"?>
<e2servicelist>

</e2servicelist>
MfG Ali
DM8000 | DM8000 | DM500HD | DM500HD | DM7020S

Source code

1
2
3
4
5
6
#!/bin/sh
while [ 1 ]
do
	echo "i love my dreams!!!"
	sleep 1
done

4

Saturday, November 24th 2007, 7:17pm

Vergiß meine vorherige Antwort, der Weg war sowieso zu kompliziert. Mit

Source code

1
http://dm7025/web/getallservices

bekommst Du alles bouquetübergreifend geliefert.

HeiRos

This post has been edited 1 times, last edit by "HeiRos" (Nov 24th 2007, 7:17pm)


5

Saturday, November 24th 2007, 7:38pm

Weltklasse! :D

Danke dir vielmals.
MfG Ali
DM8000 | DM8000 | DM500HD | DM500HD | DM7020S

Source code

1
2
3
4
5
6
#!/bin/sh
while [ 1 ]
do
	echo "i love my dreams!!!"
	sleep 1
done

6

Monday, May 19th 2008, 10:48am

Hallo,

ich hätte dazu nochmal eine Frage, mit http://dm7025/web/getallservices funktioniert es einwandfrei, aber leider sehe ich keine Radiokanäle, weiss zufällig jemand wie ich diese abrufen könnte?

gruß

7

Monday, May 19th 2008, 11:59am

was ich auch noch sehr merkwürdig finde, ist wenn man http://DM7025/web/getservices?ServiceLis…:0:0:0:0:0:FROM BOUQUET "bouquets.radio" ORDER BY bouquet;1:7:2:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.dbe0a.radio" ORDER BY bouquet

eingibt bekomm ich die bouquets für TV, weiss vlt. jemand warum?

This post has been edited 2 times, last edit by "visiomr2008" (May 19th 2008, 12:01pm)


8

Monday, May 19th 2008, 2:55pm

eine Sache: getallservices bitte behutsam benutzen, das belastet die Box gerade bei etwas größeren Senderlisten u.U. doch sehr stark und kann auch ordentlich RAM verbrauchen!

Das soll heißen, man kann es gerne benutzen, aber bitte nicht "ständig" abfragen! (also nicht alle 2 minuten oder so).
mfg ,
Reichi

"Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


9

Monday, May 19th 2008, 3:02pm

Source code

1
http://dm7025/web/getservices?sRef=1:7:2:0:0:0:0:0:0:0:(type%20==%202)FROM%20BOUQUET%20%22bouquets.radio%22%20ORDER%20BY%20bouquet


Das funktioniert auf meinem relativ neuen CVS-Image. Irgendwann hatte sich von den Befehlen des Web-API die Syntax geändert, in der alten hieß es wahrscheinlich

Source code

1
http://dm7025/web/fetchchannels?ServiceListBrowse=1:7:2:0:0:0:0:0:0:0:(type%20==%202)FROM%20BOUQUET%20%22bouquets.radio%22%20ORDER%20BY%20bouquet


Ich weiß allerdings nicht mehr, wann die Änderung war und ob die alte Syntax wirklich korrekt ist.

HeiRos

10

Monday, May 19th 2008, 3:04pm

ach ja... wenn eine ServiceRef nicht korrekt ist findet aktuell immer noch ein Fallback auf die Favouriten TV statt (ich weiß, dass das WebIf aktuell nicht wirklich sowas wie error-handling hat...).
mfg ,
Reichi

"Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


11

Tuesday, May 20th 2008, 9:09am

Vielen vielen dank erstmal :-)

Mit der neuen Syntax lassen sich die Radio Services abrufen :-)

Wenn man "getallservices" nicht jedesmal aufrufen soll, was wäre denn da eine sinnvolle alternative?

Was ist denn der Unterschied zwischen:

Source code

1
http://dm7025/web/getservices?ServiceListBrowse


Source code

1
http://dm7025/web/getservices?sRef=

12

Tuesday, May 20th 2008, 10:00am

ersteres ist eigentlich nicht korrekt ;) (das ist ne alte syntax afair).
mfg ,
Reichi

"Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


13

Tuesday, May 20th 2008, 3:45pm

Quoted

Original von visiomr2008
Wenn man "getallservices" nicht jedesmal aufrufen soll, was wäre denn da eine sinnvolle alternative?


Das kommt darauf an, wie Du die Liste weiterverarbeiten willst. Da Du sicher nicht im Minutentakt die Bouquets änderst, könntest Du das Ergebnis zwischenspeichern und nur von Zeit zu Zeit die Liste abrufen. Ansonsten kannst Du, wie am Beginn dieses Threads geschrieben, mit getservice zuerst die Bouquets und dann deren Inhalt abfragen. Ein

Source code

1
http://dm7025/web/getservices


liefert als Ergebnis

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<e2servicelist>

	<e2service>
		<e2servicereference>1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet</e2servicereference>
		<e2servicename>Favourites (TV)</e2servicename>
	</e2service>
	
	<e2service>
		<e2servicereference>1:7:1:0:0:0:0:0:0:0:(type == 1) FROM BOUQUET "userbouquet.test___tv_.tv" ORDER BY bouquet</e2servicereference>
		<e2servicename>Test  (TV)</e2servicename>
	</e2service>
	
</e2servicelist>


und den Inhalt der Bouquets bekomme ich per Browser anschließend mit

Source code

1
2
http://dm7025/web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:FROM%20BOUQUET%20"userbouquet.favourites.tv"%20ORDER%20BY%20bouquet
http://dm7025/web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:(type%20==%201)%20FROM%20BOUQUET%20"userbouquet.test___tv_.tv"%20ORDER%20BY%20bouquet


Wenn Du wget benutzt, gibt es wahrscheinlich irgendwelche unerwarteten Seiteneffekte mit der Interpretation von einigen Zeichen der URL. In der CMD-Konsole von XP sendet der Befehl (das " zusätzlich noch zu %22 geändert)

Source code

1
wget http://dm7025/web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:(type%20==%201)%20FROM%20BOUQUET%20%22userbouquet.test___tv_.tv%22%20ORDER%20BY%20bouquet -O-


folgendes an die Box:

Source code

1
2
3
4
5
GET /web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:(type%20==%201)%20FROM%20BOUQUET%20%22userbouquet.test___tv_.tv%22%20ORDER%20BY%20bouquet HTTP/1.0
User-Agent: Wget/1.9.1
Host: dm7025
Accept: */*
Connection: Keep-Alive


und bekommt als Antwort die korrekte Senderliste. Der selbe Befehl über die 4NT-Konsole abgesetzt wird zu

Source code

1
2
3
4
5
GET /web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:(type==)20BOUQUET22userbouquet.test___tv_.tv20ORDER20bouquet HTTP/1.0
User-Agent: Wget/1.9.1
Host: dm7025
Accept: */*
Connection: Keep-Alive


was natürlich die falsche Syntax ist und als Ergebnis eine leere Senderliste wie aus Deiner Eröffnungsfrage ergibt. Du könntest zur Fehlersuche einen Sniffer auf das wget ansetzen, ich vermute, daß es bei Dir ein ähnliches Problem ist und Du einige Zeichen (das % ist für mich der erste Kandidat) für die Kommandozeile zusätzlich noch maskieren mußt.


Quoted

Was ist denn der Unterschied zwischen:

Source code

1
http://dm7025/web/getservices?ServiceListBrowse


Source code

1
http://dm7025/web/getservices?sRef=


Der erste Befehl funktioniert nur in älteren Versionen des WebIf, der zweite nur in neueren. Da ich nicht weiß, welches Image Du benutzt, habe ich lieber beide angegeben.

HeiRos

14

Tuesday, May 20th 2008, 3:52pm

das "älteren Images" kann man getrost durch "Images aus der Steinzeit" ersetzen ;)
mfg ,
Reichi

"Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


15

Wednesday, May 21st 2008, 9:15am

Vielen dank ihr habt mir sehr weitergeholfen :)

Ich bin gerade noch am Testen welches Image für meine gegebenheiten am besten ist, entweder das von DMM oder eins von BoxMan. Eben eines der aktuellsten....

Nein die Liste wird eigentlich nie verändert. Beim Bouqet umschalten muss ich die Liste abrufen, bzw. Sender umschalten, ich muss das mal Testen wie das dann beim Zappen so abläuft, ansonsten ist das mit dem wget wahrscheinlich besser :)

16

Wednesday, May 21st 2008, 9:22am

Also es gibt 2 möglichkeiten das (aus Sicht der Belastung der Box) effizient zu nutzen:

1. Du holst nur was du gerade wirklich brauchst - das ist dann immer aktuell
2. Du holst alles auf einmal und hältst es vor (kann u.U. dann veralten... aber Bouquets sollten sich ja nicht so oft ändern...
mfg ,
Reichi

"Die Deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


17

Wednesday, May 21st 2008, 9:37am

Nochmal zum letzten Posting, habe mich eben mit nem Kollegen unterhalten, die wollen nun die Datei gar nicht per XML im Browser abrufen, sondern über samba zugreifen und auslesen, dann sollten ja die Performance Probleme vergessen sein, oder?