WebIf enhanced for Gemini and CVS Image

  • Quote

    Original von Einsteini
    Update
    greets Einsteini


    Was ist neu?

    Best Enigma2 Plugins:
    TV Charts Plugin, EPGRefresh, AutoTimer, VPS Plugin, SeriesPlugin

  • hi muelleimer321
    habbich aufer ersten seite als //edit geschrieben.

    Quote

    Original von Einsteini
    //edit
    neue version. änderungen: tarball is zu deinstallieren, per telnet im verzeichnis /usr/lib/enigma2/python/Plugins/Extensions/WebInterface den script getquitWI.sh ausführen. webif sollte dann den original-stand von GP 1.90 wieder haben. tools/dateien wie streamts oder libtuxbo.... fasse ich nich an, da auch von anderen genutzt, aber das webi-verzeichnis is wieder sauber. anschliessend nach ausführung des scriptes ein reboot, alles is wie neu.
    das 'clevere' plugin.py hab ich noch nich drin, da sollten wir nochn bisschen dran arbeiten


    häv fan, Einsteini

  • GuteMine
    eigentlich wollte ich die movieliste 'verhübschen' umse noch heute mit innen tar aufzunehmen. abgesehen davon, dass ich wieder nen kleinen lernschritt weiter im python bin, bin ich kläglich gescheitert.


    die woche über werd ich mit sicherheit nich dazu kommen, muss wieder arbeiten. sollte jemand innerhalb der woche damit weiterkommen kann ich dann gern nen tarball zusammenzippen.


    greets Einsteini

  • Danke, auf sowas hab ich schon ewig gewartet.
    hab mich mal drangehockt und rausgefunden, wie des paket heißt des man für des plugin für mozilla unter linux braucht.
    Es heißt mozilla-vlc-plugin und installieren könnt ihrs so:


    sudo apt-get install mozilla-vlc-plugin


    meint ihr ihr bekommts auch noch hin das man am fernseher z.b. ard und aufm pc pro7 gucken kann?
    (hat ja nen twin tuner)

    Ich bin root, ich darf das!

  • Quote

    Original von Einsteini
    also, ich schlage als erstes vor, dass module des webif grundsätzlich benannt werden mit 'WI_modulname', und zwar jedes vom modul genutzte teil, das dazukommt. egal ob .py, .xml, .js, .html oder was auch immer. nur so oder ähnlich lässt sich das teil irgendwann auch wieder säubern.


    zum einklinken in den ganzen frame gibt es dazu ne steuerung namens 'WI_modulname.ins', in der als parameter die benötigten zeilen für plugin.py stehen. als parameter sehe ich den import-teil, die zeile für die /html-oberfläche und die defnition des child_-objektes. es gibt dann nen script names 'WebIfActivate' oder sowas, der aus den vorliegenden installations-dateien nen neuen plugin.py generiert - reboot von enigma und schon bin ich drin.


    Naja, ich würde sagen, solche Informationen sollten im Modul ganz oben stehen, mit einer Kurzbeschreibung, oder?

  • hi jjbig,


    jo, haste recht. nur ich bin da das kleinste licht, war ne idee und gedacht 'to be discussed'. aus einem solchen konzept könnte man webif schön modular aufbauen, nur ihr als die entwickler 'der ersten stunde' seid für mich ausschlaggebend und müsstet mit sowas leben können. ich setz dann im anschluss etwas zeit dran, daraus nen paket zu schnüren. und da ihr mir bis jetzt meine grössten wünsche verwirklicht habt mach ichs gerne wenns denn hilft.


    nach ganz oben muss das ding, wenn es abgestimmt is.


    greets Einsteini

  • jetzt muss ich mal zur Abwechslung muelleimer recht geben, so kann es nicht funktionieren sobald die Module integriert sind und sich gegenseitig aufrufen gibt es Abhängigkeiten, etc.


    Bezüglich dem auslesen des Infos aus den WI*.py - schaut Euch mal an wie im enigma die Plugin Subdirectories beim Start gebrowsed werden, das ist eigentlich auch keine Raketenwissenschaft und völlig dynamisch (nur eben directorynamen, ein plugin.py und ein __*.py)


    Ich denke an das sollte man sich halten, schon damit wir nicht am Schluss Eckige Räder haben, ich wollte mit meinem cleveren plugin.py ja auch nur zeigen das man das manuelle Editieren schnell loswerden kann.


    LG
    gutemine

  • hi gutemine,
    ich folge mit der idee ja auch deinem vorschlag. das manuelle programmieren wird in diesem fall ersetzt durch das script. deine grundidee 'was da is wird eingebunden' is ja dieselbe. zu jedem modul gehort dann so eine steuerungsdatei. beispiel: WImovielist.py + WImovielist.ins - kein plugin.py! nach einspielen des tarballs eines neuen modules wird nur noch das script gestartet, die infos werden vom script ausgelesen (for every WI*.ins......) und ein neues plugin.py geschrieben. neustart und das wars. so ähnlich wie deine filosofie enable - disable. haste oft genuch vorgemacht, is ja gar nich so schlecht, oder?


    eine interaktion zwischen einzelnen modulen halte ich auch nur dann für möglich, wennse als paket zusammengehören - in etwa so wie die epg-programmierung von Homey[GER] mit dem timer-editor von jjbig.


    aber wie gesagt - to be discussed. nur in einem scheinen wir uns ja einig zu sein - irgendsowas wie den plugin-parser von enigma brauchen wir. nur den kann ich im moment nich nachvollziehen, dafür fehlt mir noch viel zu viel.


    greets Einsteini

  • Ich habe ja auch nur gesagt das man dabei aufpassen muss, und auch
    nicht an DMM vorbeiarbeitet.


    Im Zuge des Rausfinden wie man die Movielist klauen kann, oder bei meinem ersten Addtimer habe ich gesehen, das DMM bereits die Standard Aufrufe mit 2 Eingängen versehen hat, einen HTML/Webaufruf und einen fürs Python/Userinterface.


    Weil im Idealfall verwendest Du auch die selben Grundmodule, weil nur dann kann das ganze auch stabil und gewartet funktionieren. Das Problem ist halt das es noch nicht fertig ist, und oft das Ergebnis der routinen halt noch nur in eine für das GUI optimierte Liste geschrieben wird,...


    Ausserdem ist das alles nicht dokumentiert und man kann nur raten wie es werden soll.


    Wenn Dich interessiert wie ich für die ersten Sachen und die Movielist draufgekommen bin wo man ansetzen muss - dies ist nicht die Feine Art aber man kommt damit relativ rasch zum Ziel:


    Code anschauen (Die python Namen sind meist eh sprechend und jenachdem was man sucht fängt man halt in Screens, Components oder Tools zu suchen an) und wenn man glaubt zu wissen wo die interessanten/gesuchten sachen passieren das original Enigma mit os.system("wall %s" % gesuchterwert) oder entsprechenden Textausgaben vollpflastern. Wenn man dann wie im Falle der movielist weis wo was drinnensteht und in welchem Format das man haben möchte, dann muss man nur schauen ob man die Routine direkt aufrufen kann (import xxx from *) bzw. ob man die Übergabeparameter alle hat, wenn nicht geht die Suche einen Level höher weiter ...


    Das ist zwar mühsame Schnitzeljagd, aber auf der anderen Seite versteht man so nach und nach wie die Module zusammenspielen
    und was man mit Ihnen machen kann.


    Man könnte jetzt natürlich wie bei einem Computerspiel warten bis jemand es durchgespielt hat und einen Walk-Trough geschrieben, oder man macht sich halt so wie ich dran und versucht einen Level nach dem anderen Freizuspielen, damit die anderen dann Spass haben in dem Level alle Sachen auszuprobieren.


    Weswegen ich auch dann auch einfach für die Movielist erstmals die entsprechende Routine (load) aus dem Movielist geklaut habe, weil der Rest verwirrt nur (am Anfang - die Tags wirst Du später z.B. noch gut brauchen können).


    Jetzt das aber selber zu Ende zu bringen und eine entsprechende Routine Library aufzubauen ist aber eine Heidenarbeit und am Schluss wird doch die von DMM gewinnen - aber wann wird die wohl
    fertig sein ;-)


    Daher finde ich auch für den Momen nicht so verwerflich Form follows Function zu machen und sich einfach zu freuen wenn es geht.


    Sobald Du Dich wieder aus den standard Enigma Code zurückziehst (hast du ja beim getpid gesehen) kann da nicht wirklich viel passieren.


    Was ich aber eigentlich meine ist solange die WebAPI/Classes stabil sind (das was du im Browser adressfenster nach hostname/ipaddress siehst) kann man den Code drunter noch 20x Umschreiben aber man kann schon Tools drauf laufen lassen (wie deinen VLC Player),...


    Deswegen habe ich Euch auch immer den HTML Code vom E1 als Basis gegeben, weil die routinen und variablen Namen die dabei verwendet werden sind schon eingefahren und bei Sachen wie addtimer send message auch durchaus sinnvoll, bei Web-X-TV schon nicht mehr so 100% wie du ja an der Problematik siehst wie man 2 Tuner auswählt, oder welche streamts man nehmen soll - daher auch mein Vorschlage &tuner=1/2&stream=exclusive/nonexclusive zu implementieren.


    So, ich hoffe jetzt seit Ihr nicht noch mehr verwirrt.


    LG
    gutemine

    Edited 4 times, last by gutemine ().

  • mir is da ne idee gekommen aber ich kann sowas nicht, nur rein teoretisch


    man kann ja einen film gucken und nen andern aufnehmen und man kann ja auch zeitversetz fernsehen.
    kann mans dann nicht wenn man nicht 2 sachen gleichzeitig einfach gucken kann so machen das man eins aufnimmt und immer 10 sekunden später wieder löscht oder so. also das man quasie den film dann vllt 1 sekunde zeitverzögert immer sieht.


    also is jetzt nur ne überlegung, ich kenn mich da noch nicht so aus, mein wissen beschränkt sich (noch) auf php ;)

    Ich bin root, ich darf das!

  • Quote

    Original von aqualuk
    mir is da ne idee gekommen aber ich kann sowas nicht, nur rein teoretisch


    man kann ja einen film gucken und nen andern aufnehmen und man kann ja auch zeitversetz fernsehen.
    kann mans dann nicht wenn man nicht 2 sachen gleichzeitig einfach gucken kann so machen das man eins aufnimmt und immer 10 sekunden später wieder löscht oder so. also das man quasie den film dann vllt 1 sekunde zeitverzögert immer sieht.


    also is jetzt nur ne überlegung, ich kenn mich da noch nicht so aus, mein wissen beschränkt sich (noch) auf php ;)


    Wozu, Du hast ja eh 2 Tuner in der Box, und kannst auch von jedem mit der streamts abgreifen was läuft. Wenn jeder davon ein anderes TCP/IP socket verwendet (von miraus einer TCP/IP der andere UDP, weil die streamts dafür gibts schon fertig) dann kannst Du problemlos 2 Streams servicieren.


    Und sobald man den VLC Aufruf mit der .ts Datei macht kann man dann auch alternativ 2 Filme gleichzeitig von Harddisk streamen, oder 1 live, 1 aufgenommener) Und natürlich sollte man am Schluss auch das timeshift file streamen können, schon weil VLC ja ein Player ist und man da genauso vor/zurückspulen kann.


    Aber das ist noch Musik die erst komponiert werden muss, weil zerst muss man mal beide Tuner im Griff haben und auch aufgenommene Filme streamen können - deswegen habe ich ja Q&D die Movielist ins WebIF integriert, weil damit hat man die Basisinfos im code um auch diese an den VLC start Aufruf zu übergeben - mal sehen ob es wer hinkriegt, oder ob ich wieder den Hammer nehmen muss (wer das als Drohung versteht ist selber schuld !)


    LG
    gutemine

  • wie greif ich auf den 2. tuner zu und wie schalt ich den vorallem um


    des webinterface is ja auf den 1. ausgelegt
    ich kenn mich da leider wie gesagt sogut wie garnicht aus

    Ich bin root, ich darf das!

  • FYI: Danke nochmal GuteMine für deinen MediaPlayer (vorlage).


    Hab da jetzt nochn bisl verschönert und man kann sogarauch die Videos auf der Box direkt im WebIF abspielen (leider klappts bisher erst bei einigen meiner Filme; noch nicht rausgefunden wo ran's liegt; tippe auf Datei Grössen Limit).


    Noch ne Lösch-Funktion und die Dateigrösse bzw Filmlänge ... und wieder etwas geschafft :wmger:

    Files

    • WI_MP.jpg

      (105.93 kB, downloaded 3,148 times, last: )

    Edited once, last by Homey[GER] ().

  • Hallo an alle.


    Hab im Mac Forum erfahren, dass das streamen mit ner 7000er also Enigma 1 funktioniert. Siehe hier: Homeys Web X TV mit Mac
    Hab auch, glaub ich halt, alles installiert, was dazu nötig ist, aber bei der 7025 funzt das bei mir noch nicht.
    Vielleicht kann mir hier jemand bzgl. Einstellungen im VLC weiterhelfen.
    Denn funktionieren tut´s ja. Es hat hier schon jemand gepostet, der das mit Mac betreibt.


    MK

  • Homey


    Das ist hübsch geworden, bin schon gespannt auf das Endergebnis.


    Bitte sieh meine sachen oder die geklauten html's vom Enigma1 aber nicht als "Vorlage", ich sehe die eher als ersten Beweis an das es geht, oder um mal schnell was zu klauen, aber das reicht oft schon aus das dann ein anderer seinen Weg findet.


    Weil am Anfang ist immer alles furchbar kompliziert, aber wenn man was (manchmal sogar zu simples hat) das geht, dann ist es leichter sich der Aufgabe zu stellen.


    So gesehen freue ich mich jedesmal wenn was schönes draus geworden ist, mit dem andere Leute auch Spass haben bis es wieder was noch schöneres geht ---


    Und bitte eines nicht vergessen, das ganze soll ja Spass machen ..


    aqualuk


    Zur Fragen nach dem 2. Tuner verwenden - probier die streamts aus die ich dazu gepostet habe (ohne WebIF, direkt mit dem VLC PC Client), nur das Umschalten geht dann halt im Moment nur zu Fuss.


    LG
    gutemine

    Edited 4 times, last by gutemine ().

  • ich glaub ich bin blind, aber welche streams?


    kann man nicht einfach im webinterface oder auf der dreambox einstellen das es den 2. tuner streamt ?

    Ich bin root, ich darf das!

  • Hi


    Been trying to get the web-x-tv thingy to work with vlc, but i'm only getting the following messages from vlc.



    Any ide why??


    Regards

  • you're trying to stream a coded program with the nonexclusive version from streamts.


    greets Einsteini


    Homey[GER]
    boaa, sieht das gut aus. dann werd ich mal meine mühen einstellen. war mir schon klar, dass ich mal wieder zu langsam bin......


    wennste dabei bist noch ne idee: download?


    greets Einsteini

  • Quote

    Original von aqualuk
    ich glaub ich bin blind, aber welche streams?


    kann man nicht einfach im webinterface oder auf der dreambox einstellen das es den 2. tuner streamt ?


    Es gibt zwar sicher noch kompetentere Antorten, aber hier ist meine:


    Derzeit geht das noch nicht, weil die streamts immer nur von 1 device liest und das ist normalerweise das vom 1 tuner.


    Die ganzen streamts die ich bis jetzt gesehen habe sind nur schnell die daemons von E1 für E2 compiliert.

    Gescheit wäre es wenn sich jemand hinsetzt und eine generische streamts baut wo man den port auswählen kann, tcp oder udp, welchen tuner, ob exclusive/non-exclusive,...


    Noch toller wäre es natürlich wenn diese multithreaded wäre und auch mehrere clients serivicieren könnte (bis ihr halt die Tuner/Transponder ausgehen).


    Ich hab nur schnell mal den deivce namen in einer streamts editiert das man sieht das es genauso von 2. Tuner geht - ist eh hier im thread gepostet sowie der Trick wie man mit bvi das binary patchen kann :-)


    Homey's WebIf v0.2 for Gemini Image (Last Update 17. Nov.)


    Such nach streamtsgutemine.tar.bz2


    Wenn Du aber diese generische streamts dann irgendwann mal hast (nicht meine gepatchte) macht es Sinn diese Features alle im WebIF zu implementieren das z.B. je nach Port wo du connectest die streamts entsprechend gestartet wird.


    Aber um die Frage auch zu beantworten - genau das passiert ja wenn du die streamts mit meiner gepatchten ersetzt, es wird dann immer vom 2. Tuner gestreamt - aber dann geht halt der derzeitige Umschaltcode ins leere weil im Moment übers WebIF nur auf Tuner 1 gezapped wird.


    LG
    gutemine

    Edited 7 times, last by gutemine ().