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.

    .txt file include

    Scheduled Pinned Locked Moved Troubleshooting
    59 Posts 6 Posters 34.9k 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.
    • B Offline
      banbutcher
      last edited by sdetweil

      @sdetweil

      the counter part worked great, but then when i tried to add it if loop for the name check, im getting “no data” maybe i messed up copying across?

                              var output_list= [];
      			var counter=this.config.counter || 11
                              // setup regex, no i  no g (only once, and case sensitive)
                              var splitRegExp = /.*[S][(0-9)]+[E][(0-9)]+/;
                              // loop thru the list of filenames
                              for(filename of this.dataFile) {
                                  // if the name is not zero length (split could have returned for just linefeed
                                  if(filename.length >0 && counter>0) {
                                     // get the filename prefix
                                     var split = splitRegExp.exec(filename);
                                     // save name to the output list, as a table entry
                                     // table has a row, 
                                     output_list.push("<tr><td>")
      			       // with data
      			       if(split )
                                        output_list.push(split)
      			       else
      			          output_list.push('name not found:'+ filename)
                                     // end of data and row
                                     output_list.push("</td></tr>")
      			       counter--;
                                  } 
                              }  
                              // insert the table into the wrapper
      			wrapper.innerHTML = "<table>" + output_list.join('')+ "</table>";
      		 } else {
      			wrapper.innerHTML = "No Data";
      		}
      
      S 1 Reply Last reply Reply Quote 0
      • S Offline
        sdetweil @banbutcher
        last edited by sdetweil

        @banbutcher said in .txt file include:

        im getting “no data” maybe i messed up copying across?

        sorry, don’t understand the words…

        this is the test if the regex worked

                                       if(split)
                                          output_list.push(split)
        			       else
        			          output_list.push('name not found:'+ filename)
        

        Sam

        How to add modules

        learning how to use browser developers window for css changes

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

          @sdetweil

          this code works…

          		if(this.dataFile){
                                  var output_list= [];
          			var counter=this.config.counter || 11
                                  // setup regex, no i  no g (only once, and case sensitive)
                                  var splitRegExp = /.*[S][(0-9)]+[E][(0-9)]+/;
                                  // loop thru the list of filenames
                                  for(filename of this.dataFile) {
                                      // if the name is not zero length (split could have returned for just linefeed
                                      if(filename.length >0 && counter>0) {
                                         // get the filename prefix
                                         var split = splitRegExp.exec(filename);
                                         // save name to the output list, as a table entry
                                         // table has a row, 
                                         output_list.push("<tr><td>")
                                         // with data
                                         output_list.push(split)
                                         // end of data and row
                                         output_list.push("</td></tr>")
          			       counter--;
                                      } 
                                  }  
                                  // insert the table into the wrapper
          			wrapper.innerHTML = "<table>" + output_list.join('')+ "</table>";
          		 } else {
          

          this code doesnt…

                                  var output_list= [];
          			var counter=this.config.counter || 11
                                  // setup regex, no i  no g (only once, and case sensitive)
                                  var splitRegExp = /.*[S][(0-9)]+[E][(0-9)]+/;
                                  // loop thru the list of filenames
                                  for(filename of this.dataFile) {
                                      // if the name is not zero length (split could have returned for just linefeed
                                      if(filename.length >0 && counter>0) {
                                         // get the filename prefix
                                         var split = splitRegExp.exec(filename);
                                         // save name to the output list, as a table entry
                                         // table has a row, 
                                         output_list.push("<tr><td>")
          			       // with data
          			       if(split.length >0 )
                                            output_list.push(split)
          			       else
          			          output_list.push('name not found:'+ filename)
                                         // end of data and row
                                         output_list.push("</td></tr>")
          			       counter--;
                                      } 
                                  }  
                                  // insert the table into the wrapper
          			wrapper.innerHTML = "<table>" + output_list.join('')+ "</table>";
          		 } else {
          			wrapper.innerHTML = "No Data";
          		}
          

          Richie :)

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

            @banbutcher

            my fault… I ‘assumed’ that regex would return an empty string… it returns a null value…

            I fixed my sample, and your paste with the correct test

            if(split)
            

            instead of

            if(split.length>0)
            

            Sam

            How to add modules

            learning how to use browser developers window for css changes

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

              and for others trying to implement code, you can debug using the developers console, OR make little sample files and run them directly in node

              i named this testit.js in the user home folder (~/testit.js)

              var dataFile=["Archer S01E02Someshow.tv",
              "Archer S01E03Someshow .tv",
              "Archer S01e02Someshow .tv",
              "Archer S01E04Someshow .tv",
              "Archer S01E05someshow .tv",
              "Archer s01E02Someshow .tv",
              "Archer S01E09Someshow .tv",
              ]
              var counter1=10
              
              
                                  if(dataFile){
                                      var output_list= [];
                                      // should make this a config variable by adding to module defaults
                                     // then would be this.config.counter
                                     // get display limit, 10 if not specified in defaults
                                     var counter=counter1 || 10
                                      // setup regex, no i  no g (only once, and case sensitive)
                                      var splitRegExp = /.*[S][(0-9)]+[E][(0-9)]+/;
                                      // loop thru the list of filenames
                                      for(filename of dataFile) {
                                          // if the name is not zero length (split could have returned for just linefeed
                                          if(filename.length >0 && counter >0) {
                                             // get the filename prefix
                                             var split = splitRegExp.exec(filename);
                                             // save name to the output list, as a table entry
                                             // remove space after the ->< , the forum hides everything after unless a space
                                             // table has a row, 
                                             output_list.push("<tr><td>")
                                             // with data
                                             if(split)
                                                output_list.push(split)
                                             else 
                                                 output_list.push('name not matched '+ filename)
                                             // end of data and row
                                             output_list.push("</td></tr>")
                                             counter--;
                                          } 
                                      }  
                                  }
                                      // insert the table into the wrapper
                          console.log( "<table>" + output_list.join('')+ "</table>");
              

              and then

              cd ~
              node testit.js
              

              Sam

              How to add modules

              learning how to use browser developers window for css changes

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

                Perfect!!

                now i can go to bed! :D tomorrows task will be styling with css! any pointers?

                as always… thanks again!!

                Richie

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

                  @banbutcher said in .txt file include:

                  styling with css! any pointers

                  sorry, that is my weakness… I cannot make anything look good… I can tell you if it DOES look good, but cannot do it myself… I have no eye for that all…

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

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