MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Jenkins RSS feed

    Scheduled Pinned Locked Moved Troubleshooting
    15 Posts 2 Posters 15.2k Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B Offline
      BeatIdo
      last edited by BeatIdo

      Hi,

      I’m testing news feed default plugin to read a local Jenkins feed.

      Looks good from a stand-alone reader but it seems I’ve got some parsing error retrieving the feed.

      I also tested with MMM-RSS-FEED but I don’t even get an error message like the one I got with news feed plugin.

      Has anyone tested this ?

      Thanks.

      Regards,
      Fred.

      Here is the error message :

      Create new news fetcher for url: http://xxx.xxx.xxx.xxx:8080/rssAll - Interval: 300000
      Whoops! There was an uncaught exception…
      TypeError: parser.close is not a function
      at SAXStream.openf1 (/home/pi/MagicMirror/node_modules/feedme/lib/xmlfeedparser.js:107:14)
      at emitOne (events.js:96:13)
      at SAXStream.emit (events.js:188:7)
      at Object.me._parser.(anonymous function) [as onopentag] (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:258:17)
      at emit (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:640:35)
      at emitNode (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:645:5)
      at openTag (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:841:5)
      at Object.write (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:1294:15)
      at SAXStream.write (/home/pi/MagicMirror/node_modules/sax/lib/sax.js:239:18)
      at yoshi.write (/home/pi/MagicMirror/node_modules/feedme/lib/feedme.js:41:14)
      MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
      If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues

      1 Reply Last reply Reply Quote 0
      • B Offline
        BeatIdo
        last edited by

        following this :
        at SAXStream.openf1 (/home/pi/MagicMirror/node_modules/feedme/lib/xmlfeedparser.js:107:14)

        it seems I got through this …
        parser.emit(‘error’, new Error(‘Feed type not recognized’));

        Feed format is xml version=“1.0” encoding="UTF-8
        and main markup is feed xmlns=“http://www.w3.org/2005/Atom”

        1 Reply Last reply Reply Quote 0
        • B Offline
          BeatIdo
          last edited by BeatIdo

          Using console.log I got confirmation that node.name is recognized as “html” where it should be “channel”, “feed” or “rss” according to the following function.

          I don’t know yet if Jenkins feed is malformed or if module parsing is mistaken.

          var openf1 = function(node) {
          var type;
          if (node.name === ‘channel’ || node.name === ‘feed’) {
          if (node.name === ‘feed’) {
          type = ‘atom’;
          obj.type = type;
          this.emit(‘type’, type);
          }
          parser.removeListener(‘opentag’, openf1);
          parser.on(‘text’, ontext);
          parser.on(‘cdata’, ontext);
          parser.on(‘opentag’, onopentag);
          parser.on(‘closetag’, onclosetag);

          } else if (node.name === 'rss') {
            type = 'rss ' + node.attributes.version;
            obj.type = type;
            this.emit('type', type);
          } else {
            parser.emit('error', new Error('Feed type not recognized'));
            parser.close();
          }
          

          };

          1 Reply Last reply Reply Quote 0
          • R Offline
            roramirez Core Contributors
            last edited by

            Please shared your configuration and RSS output. The rss is in http://xxx.xxx.xxx.xxx:8080/rssAll ?

            Easy module development with MagicMirror Module Template

            B 1 Reply Last reply Reply Quote 0
            • B Offline
              BeatIdo @roramirez
              last edited by

              @roramirez here is my configuration, considering I also obfuscated my server IP and I switched to Jenkins failed build RSS feed. I hoped to get some content but theses feeds only sends article titles …

              Jenkins provides three global feeds respectively for all (rssAll), falied (rssFailed) and latest (rssLatest) builds at its base URL plus others for each configured job …

              By the way I checked that read access is open for anonymous connection by using a local RSS reader (RSSOwl) and it works well.

              Thanks for your help.

              /* Magic Mirror Config Sample
              *

              • By Michael Teeuw http://michaelteeuw.nl
              • MIT Licensed.
                */

              var config = {
              port: 8080,
              ipWhitelist: [“127.0.0.1”, “::ffff:127.0.0.1”, “::1”,],

                  language: 'en',
                  timeFormat: 24,
                  units: 'metric',
              
                  modules: [
                          {
                                  module: 'alert',
                          },
                          {
                                  module: "updatenotification",
                                  position: "top_bar"
                          },
                          {
                                  module: 'newsfeed',
                                  position: 'top_bar',
                                  config: {
                                          feeds: [
                                          {
                                                  title: "Jenkins RSS Failed",
                                                  url: "http://xxx.xxx.xxx.xxx:8080/rssFailed",
                                          }
                                          ]
                                  }
                          }
                  ]
              

              };

              /*************** DO NOT EDIT THE LINE BELOW ***************/
              if (typeof module !== ‘undefined’) {module.exports = config;}

              1 Reply Last reply Reply Quote 0
              • R Offline
                roramirez Core Contributors
                last edited by

                I found a public RSS, its can be help for test

                Can you test the follow URL?
                https://hub.spigotmc.org/jenkins/rssAll

                Easy module development with MagicMirror Module Template

                1 Reply Last reply Reply Quote 0
                • R Offline
                  roramirez Core Contributors
                  last edited by

                  Also, A rssFailed http://jenkins.movingblocks.net/rssFailed

                  Easy module development with MagicMirror Module Template

                  1 Reply Last reply Reply Quote 0
                  • B Offline
                    BeatIdo
                    last edited by yawns

                    Hi,

                    Retrieving MovinBlocks feed worked fine :)
                    On the other hand, SpigotMC feed prompted a certificate error. I’m not sure this may be caused by my proxy.
                    Of course I still got a parsing error accessing my own Jenkins feed.

                    Thanks for you quick answer.

                    Regards,
                    Fred.

                    Here is the error message I got from SpigotMC :

                    Ready to go! Please point your browser to: http://localhost:8080
                    Create new news fetcher for url: https://hub.spigotmc.org/jenkins/rssAll - Interval: 300000
                    Whoops! There was an uncaught exception...
                    { Error: unable to get local issuer certificate
                        at Error (native)
                        at TLSSocket. (_tls_wrap.js:1079:38)
                        at emitNone (events.js:86:13)
                        at TLSSocket.emit (events.js:185:7)
                        at TLSSocket._finishInit (_tls_wrap.js:603:8)
                        at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:433:38) code: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY' }
                    MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
                    If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
                    Whoops! There was an uncaught exception...
                    { Error: socket hang up
                        at createHangUpError (_http_client.js:254:15)
                        at TLSSocket.socketCloseListener (_http_client.js:286:23)
                        at emitOne (events.js:101:20)
                        at TLSSocket.emit (events.js:188:7)
                        at _handle.close (net.js:498:12)
                        at Socket.done (_tls_wrap.js:325:7)
                        at Socket.g (events.js:291:16)
                        at emitOne (events.js:96:13)
                        at Socket.emit (events.js:188:7)
                        at TCP._handle.close [as _onclose] (net.js:498:12) code: 'ECONNRESET' }
                    MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
                    If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
                    fatal: unable to access 'https://github.com/MichMich/MagicMirror/': Failed to connect to github.com port 443: Connection timed out
                    

                    Here is also the configuration I used, commenting alternatively each feed :

                                {
                                        module: 'newsfeed',
                                        position: 'top_bar',
                                        config: {
                                                feeds: [
                                                //{
                                                //        title: "Jenkins SpigotMC RSS All",
                                                //        url: "https://hub.spigotmc.org/jenkins/rssAll",
                                                //},
                                                //{
                                                //        title: "Jenkins MovingBlocks RSS Failed",
                                                //        url: "http://jenkins.movingblocks.net/rssFailed",
                                                //},
                                                {
                                                        title: "Jenkins RSS Failed",
                                                        url: "http://10.195.154.232:8080/rssFailed",
                                                }
                                                ]
                                        }
                                }
                    
                    R 1 Reply Last reply Reply Quote 0
                    • B Offline
                      BeatIdo
                      last edited by BeatIdo

                      I’m wondering if the problem could be some entries have no content field ?

                      [Edit]

                      Actually is does not MovingBlocks feed has both entries with and without content field and all of them are well displayed.

                      1 Reply Last reply Reply Quote 0
                      • B Offline
                        BeatIdo
                        last edited by

                        Eventually “link” markups are formatted in a different order between terasology server and mine but I doubt that would be the problem …

                        alternate field at the end or the beginning …

                        link rel=“alternate” type=“text/html” href=“http://jenkins.terasology.org/”/

                        link type=“text/html” href=“http://xxx.xxx.xxx.xxx:8080/” rel=“alternate”/

                        also my URL contains an IP and not a server name …

                        B 1 Reply Last reply Reply Quote 0
                        • B Offline
                          BeatIdo @BeatIdo
                          last edited by

                          So it seems I have proxy problems, sometimes I can access my local Jenkins sometimes I can access public MovingBlocks but not both … I have to look into that.

                          Thansk a lot for your support, I’ll come back to you whan I’m done :)

                          1 Reply Last reply Reply Quote 0
                          • R Offline
                            roramirez Core Contributors @BeatIdo
                            last edited by

                            @BeatIdo said in Jenkins RSS feed:

                            { Error: unable to get local issuer certificate
                            at Error (native)
                            at TLSSocket. (_tls_wrap.js:1079:38)
                            at emitNone (events.js:86:13)
                            at TLSSocket.emit (events.js:185:7)
                            at TLSSocket._finishInit (_tls_wrap.js:603:8)
                            at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:433:38) code: ‘UNABLE_TO_GET_ISSUER_CERT_LOCALLY’ }

                            That’s interesting.

                            What happens when you run?

                            curl -Iv https://hub.spigotmc.org/jenkins/rssAll
                            

                            Easy module development with MagicMirror Module Template

                            B 1 Reply Last reply Reply Quote 0
                            • B Offline
                              BeatIdo @roramirez
                              last edited by

                              @roramirez nice test, it seems it confirms my proxy problem.

                              When I run this command directly on my RPi which lacks proper proxy configuration I got a “Network unreachable” error.

                              Interestingly enough if I connect though SSH to the same RPi from my PC whcih has proxy configured the command gets proxy authorization and get answers from http server.

                              I’ll try to configure proxy accordingly and got through this.

                              HEAD /jenkins/rssAll HTTP/1.1
                              User-Agent: curl/7.38.0
                              Host: hub.spigotmc.org
                              Accept: /

                              < HTTP/1.1 200 OK
                              HTTP/1.1 200 OK
                              < Date: Fri, 24 Feb 2017 08:06:31 GMT
                              Date: Fri, 24 Feb 2017 08:06:31 GMT
                              < Content-Type: application/atom+xml;charset=UTF-8
                              Content-Type: application/atom+xml;charset=UTF-8
                              < Connection: close
                              Connection: close
                              < Set-Cookie: __cfduid=de5c9bf89dbae2ffefd003694243d657a1487923591; expires=Sat, 24-Feb-18 08:06:31 GMT; path=/; domain=.spigotmc.org; HttpOnly
                              Set-Cookie: __cfduid=de5c9bf89dbae2ffefd003694243d657a1487923591; expires=Sat, 24-Feb-18 08:06:31 GMT; path=/; domain=.spigotmc.org; HttpOnly
                              < X-Content-Type-Options: nosniff
                              X-Content-Type-Options: nosniff

                              • Server cloudflare-nginx is not blacklisted
                                < Server: cloudflare-nginx
                                Server: cloudflare-nginx
                                < CF-RAY: 33616b2f2e483c5f-CDG
                                CF-RAY: 33616b2f2e483c5f-CDG

                              <

                              • Closing connection 0
                              • SSLv3, TLS alert, Client hello (1):
                              1 Reply Last reply Reply Quote 0
                              • B Offline
                                BeatIdo
                                last edited by

                                Everything I tested this morning about proxy configuration did not work while starting MM through SSH connection using “node serveronly” command. Even accessing my local Jenkins server did not work …

                                Afterwards I tried starting MM directly from MM GUI using “npm start” command this worked for local servers access …

                                1 Reply Last reply Reply Quote 0
                                • B Offline
                                  BeatIdo
                                  last edited by

                                  I can confirm now my problem came from proxy configuration, module just didn’t handle error response which was not feed formatted.

                                  1 Reply Last reply Reply Quote 0

                                  Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                  Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                  With your input, this post could be even better 💗

                                  Register Login
                                  • 1 / 1
                                  • First post
                                    Last post
                                  Enjoying MagicMirror? Please consider a donation!
                                  MagicMirror created by Michael Teeuw.
                                  Forum managed by Sam, technical setup by Karsten.
                                  This forum is using NodeBB as its core | Contributors
                                  Contact | Privacy Policy