Ankündigung

Einklappen

Nicht vergessen: Das KNX-UF-Symposium by eib-tech in München am 3. November 2017!

Mehr anzeigen
Weniger anzeigen

rss vs rsslog

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [CV Plugin] rss vs rsslog

    Brauchen wir dafür tatsächlich zwei verschiedene Plugins?
    Macht rsslog irgendetwas sehr spezielles (außer dass es eigentlich dafür gedacht die rsslog.db via rsslog.php vom WG selbst auszulesen)? Habe es auf die schnelle erstmal nicht geschafft rsslog zum Laden eines externen RSS Feeds zu überreden.

    Das RSS Plugin hingegen passt sich nicht wirklich gut in die Visu ein, die Syntax ist komplett anders, das Layout nicht änderbar, die Farbe (insbesondere Links) nicht modifizierbar, es scheint Probleme mit eingebetteten Bildern zu haben (getestet mit SPIEGEL ONLINE - Schlagzeilen ).

    Insgesamt sehe ich beim RSS Plugin keinen großen Mehrwert z.B. ggü. einem eingebetteten IFrame. Würde daher vorschlagen das RSSlog so zu erweitern, dass es auch externe RSS Feeds lesen kann und ggf noch fehlende Funktionalität (welche???) vom RSS Plugin ins RSSlog zu übernehmen und dann RSS zu ersetzen.

    #2
    Würde gern mal versuchen rsslog zu erweitern, so dass es auch externe Feeds anzeigen kann (da ich es für flexibler als rss halte).

    Ich stolpere zur Zeit über diesen Block:
    Code:
    // get height of one entry, calc max num of display items in widget
    var displayrows = c.data("last_rowcount") || 0;
    var dummyDiv = $('<li class="rsslogRow odd" id="dummydiv">.</li>').appendTo(c);
    var itemheight = dummyDiv.height();
    dummyDiv.remove();
    if (itemheight != 0) {
       var widget=c.parent().parent(); // get the parent widget
       var displayheight = widget.height()-$('.label', widget).height(); // max. height of actor is widget-label(if exists)
       displayrows = Math.floor(displayheight/itemheight);
    }
    c.data("last_rowcount", displayrows);
    
    var items = result.responseData.feed.entries;
    var itemnum = items.length;
    Ich sehe, dass 4 items erkannt werden, aber displayrows ist immer "0" (dementsprechend wird nichts angezeigt). Ich stehe gerade auf dem Schlauch...

    Kommentar


      #3
      Und weiter im Monolog, wenigstens kann ich mir beide Fragen selbst beantworten:
      RSS war wohl ein "Schnellschuß" und hier wurden die Gründe für den Split und das mögliche weitere Vorgehen schon festgehalten:
      https://knx-user-forum.de/204236-post17.html
      Also genau das, was ich jetzt vor habe: rsslog um externe Quellen erweitern.

      Zu Post2: Das Problem war lediglich, dass ich im <rsslog> kein layout angegeben hatte, damit wird *nur* der Header angezeigt. Werde beim nächsten Commit "layout" mal zum Pflichtfeld machen wenn ich es schaffe.

      Was die Erweiterung um externe Quellen angeht gibt es leider Probleme mit Cross-Origin. Behelfsmässig habe ich mal ein PHP-Script eingefügt (rsslog_external.php) welches den content lädt, nicht schön aber selten. (Richtig wäre es, wenn der Zielserver
      Access-Control-Allow-Origin: *
      setzen würde, darauf hat man aber als Nutzer eines Feeds keinen Einfluss. Alternativ könnte man JSONP mit Callback nutzen, aber das wäre für den bestehenden rsslog-Code nicht so ganz hilfreich. Also erstmal als dirty-workaround, wer eine bessere Idee hat, kann es gern commiten.

      Kommentar


        #4
        Zitat von ctr Beitrag anzeigen
        Und weiter im Monolog
        Ich würde ja gerne mitsprechen/-helfen.

        Aber
        a) weiß ich nicht mehr was ich bei dem RSS-Log-Zeug damals selbst gemacht habe und was von anderen kommt (zu lange her...)
        b) muss ich gestehen, dass ich mein RSS-Log brav befülle (hat schon knapp 13000 Einträge...), aber immer noch meine CV nicht um eine Anzeige erweitert habe - so schau ich halt nur immer mal wieder im Thunderbird auf den RSS-Feed
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #5
          Hallo,

          ich habe heute nochmal ein svn update gemacht und danach hat mein Kalender in der Visu nicht mehr funktioniert.
          Dafür hatte ich mir seinerzeit die rsslog.php genommen und etwas angepasst. Statt nur vergangener Daten suche ich darin nach zukünftigen. Leider hat sich das mit deiner letzten Änderung an der structure_plugin.js nicht vertragen, da dort jetzt explizit nach der rsslog.php gefragt wird.

          Ich habe mir jetzt erstmal so geholfen:

          Code:
          if (!o.src.match(/rsslog\.php/) && !o.src.match(/rsscal\.php/)) {
          Aber eigentlich sollte es ja auch mit "externen" rss feeds funktionieren. Allerdings erhalte ich dann folgende Fehlermeldung:

          Code:
          Uncaught TypeError: Cannot read property 'feed' of null 
          structure_plugin.js:188
          jQuery.ajax.success structure_plugin.js:188
          fire jquery.js:974
          self.fireWith jquery.js:1084
          done jquery.js:7803
          callback jquery.js:8518

          Kommentar


            #6
            Hi,

            wie muss ich einen externen RSS link in die CometVisu einbinden damit es mit dem RSSLOG plugin ordentlich formatiert angezeigt wird? Ich hatte folgenden Code probiert, leider ohne Erfolg
            Zuletzt geändert von rene54321; 12.11.2015, 20:37.

            Kommentar


              #7
              Hi,

              ich habe nun realisiert das der openhab Web Server leider kein PHP unterstützt. Somit wird das rss log wohl nicht funktionieren. Gibt es eine Möglichkeit das plugin dahingehend anzupassen, dass man es von einen anderen Web Server mit PHP ausführen kann und trotzdessen in der in openhab befindlichen cometvisu den RSS Feed angezeigt bekommt?

              mfg René

              Kommentar


                #8
                Klar, einfach z.B. einen Apache aufsetzen und über das src= Attribute die URL des Apache angeben. Der andere Webserver muss aber auf der selben IP Adresse laufen, sonst klappt es nicht (Cross Site).

                Kommentar


                  #9
                  Hi,

                  so leicht funktioniert das glaub ich nicht da man in der cometvisu dem plugin rsslog nur die rss adresse übergibt. Meine Frage ist wo ich das im code anpassen muss das alles auf den apache ausgeführt wird und dann in der cometvisu angezeigt wird. Zurzeit ist folgender Code in meiner Visu config:

                  mfg René
                  Zuletzt geändert von rene54321; 12.11.2015, 20:37.

                  Kommentar


                    #10
                    Was spricht dagegen es so zu machen wie in deinem anderen Post?


                    Code:
                    src="http://192.168.0.100/cometVISU/RSSCreator/rsslog_external.php?url=https://dnip.de/cgi-bin/rssfile.rss"

                    Wenn du es wirklich hacken willst: Hier

                    Kommentar


                      #11
                      Hi,

                      da bekomme ich leider nur eine leeres widget angezeigt. Wenn ich die gesamte visu auf den apache verschiebe und wie in post 9 konfiguriere funktionierts aber leider der rest aus openhab wird natürlich nicht angezeigt.

                      Kommentar


                        #12
                        Okay dann ist das ein Cross Site Problem, da hilft es auch nichts die URL im Plugin zu hacken. Am besten machst du mal die Developer Console auf und schaust welcher Fehler kommt.

                        Wenn es, wie ich vermute, ein Cross Site Problem ist, dann musst du CORS im Apache aktivieren: http://enable-cors.org/server_apache.html

                        Kommentar


                          #13
                          Hi,

                          danke für die Antwort, ich hatte gehofft das dies etwas leichter geht, dann muss ich wohl auf den LOG verzichten.

                          mfg René

                          Kommentar


                            #14
                            Versuch mal folgende Zeile in das rsslog_external.php in die 2. Zeile (unter <?php) einzufügen:

                            header("Access-Control-Allow-Origin: *");

                            Kommentar


                              #15
                              Hi,

                              ich glaube das das RSSLOG plugin nicht funktioniert wenn man direkt als src das rsslog_external.php aufruft. Diese PHP Seite scheint aber zu laufen denn sie gibt mir folgendes aus wenn ich sie direkt aufrufe:
                              Zuletzt geändert von rene54321; 12.11.2015, 20:37.

                              Kommentar

                              Lädt...
                              X