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.

    MMM-MealViewer

    Scheduled Pinned Locked Moved Development
    48 Posts 6 Posters 25.4k Views 6 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.
    • S Offline
      sdetweil @htilburgs
      last edited by

      @htilburgs ah the fun of ‘this’…

      	getMTVM: function(url) {
                     let self=this
      		request(url, function(err, res, body) {
      		        // if no error and server was happy
      			if(err == null && res.statusCode ==200){
      			   console.log(body);
      			   var json_data = self.xmlToJson(body)
      			   console.log("Text is " + json_data.film[0].titel)
      			}
      		});
      	},
      

      Sam

      How to add modules

      learning how to use browser developers window for css changes

      htilburgsH 1 Reply Last reply Reply Quote 0
      • htilburgsH Offline
        htilburgs @sdetweil
        last edited by

        @sdetweil Yeah! That part is working. Now I’ve an other error which has something to do with the xmlToJson function:

        Whoops! There was an uncaught exception...
        TypeError: xml.hasChildNodes is not a function
        

        Any idea?

        (still trying to learn JS, but not afraid to ask) ☺

        S 1 Reply Last reply Reply Quote 0
        • S Offline
          sdetweil @htilburgs
          last edited by sdetweil

          @htilburgs yeh, tricky crap… they had a special runtime that supported that… sorry…
          have to use one of the libs…

          in your module folder do

          npm install xml2js
          

          then in your code

          const xml2js = require('xml2js');
          

          then

          getMTVM: function(url) {
                         let self=this
          		request(url, function(err, res, body) {
          		        // if no error and server was happy
          			if(err == null && res.statusCode ==200){
          			   console.log(body);
          			   xml2js.parseString(body,function (err,result) {
          			       let json_data = result // not needed but may make more clear
          			       console.log("Text is " + json_data.film[0].titel)			   
          			   });		   
          			}
          		});
          	},
          

          Sam

          How to add modules

          learning how to use browser developers window for css changes

          htilburgsH 1 Reply Last reply Reply Quote 0
          • htilburgsH Offline
            htilburgs @sdetweil
            last edited by htilburgs

            @sdetweil Almost there I think ;-)

            Whoops! There was an uncaught exception...
            TypeError: Cannot read property '0' of undefined
                at /home/pi/MagicMirror/modules/MMM-MyTVMovies/node_helper.js:28:47
                at Parser.<anonymous> (/home/pi/MagicMirror/modules/MMM-MyTVMovies/node_modules/xml2js/lib/parser.js:306:18)
                at Parser.emit (events.js:182:13)
                at SAXParser.onclosetag (/home/pi/MagicMirror/modules/MMM-MyTVMovies/node_modules/xml2js/lib/parser.js:264:26)
                at emit (/home/pi/MagicMirror/modules/MMM-MyTVMovies/node_modules/sax/lib/sax.js:624:35)
                at emitNode (/home/pi/MagicMirror/modules/MMM-MyTVMovies/node_modules/sax/lib/sax.js:629:5)
                at closeTag (/home/pi/MagicMirror/modules/MMM-MyTVMovies/node_modules/sax/lib/sax.js:889:7)
                at SAXParser.write (/home/pi/MagicMirror/modules/MMM-MyTVMovies/node_modules/sax/lib/sax.js:1436:13)
                at Parser.exports.Parser.Parser.parseString (/home/pi/MagicMirror/modules/MMM-MyTVMovies/node_modules/xml2js/lib/parser.js:325:31)
                at Parser.parseString (/home/pi/MagicMirror/modules/MMM-MyTVMovies/node_modules/xml2js/lib/parser.js:5:59)
            

            Has this something to do with the json_data.film[0].titel ??
            Or is it something else?

            When I remove .film[0].titel I got:

            Text is [object Object]
            200[object Object]
            

            (still trying to learn JS, but not afraid to ask) ☺

            S 1 Reply Last reply Reply Quote 0
            • S Offline
              sdetweil @htilburgs
              last edited by

              @htilburgs u should look at the data format

              getMTVM: function(url) {
                             let self=this
              		request(url, function(err, res, body) {
              		        // if no error and server was happy
              			if(err == null && res.statusCode ==200){
              			   console.log(body);
              			   xml2js.parseString(body,function (err,result) {
              			       let json_data = result // not needed but may make more clear
              			       console.log(JSON.stringify(json_data))			   
              			   });		   
              			}
              		});
              	},
              

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              htilburgsH 1 Reply Last reply Reply Quote 0
              • htilburgsH Offline
                htilburgs @sdetweil
                last edited by

                @sdetweil JSON is perfect:

                0_1576264519518_ff13b851-b585-43c2-a741-02e28faa83e9-image.png

                Thanks for the help so far!! Now I have my data I can play around with it.

                (still trying to learn JS, but not afraid to ask) ☺

                1 Reply Last reply Reply Quote 0
                • 1
                • 2
                • 3
                • 4
                • 5
                • 5 / 5
                • 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