• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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 33.8k 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 @banbutcher
    last edited by Apr 17, 2020, 1:47 AM

    @banbutcher is dataFile an array of filenames? then yes, you’ll need a loop.
    so, you are moving part of name a, to a new array
    then part of name b to the next slot in the array

    array.push(item)
    adds item to the end of the array

    name_of_array =[] initializes name_of_array to be an empty array

    then u will need to format the array of partial names

    var x = name_of_array.join(separator)
    will turn the array into x, a string with separator between the names

    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 Apr 17, 2020, 2:03 AM

      Band.Of.Brothers.E01.1080p.5.1Ch.BluRay.ReEnc-DeeJayAhmed.srt <br>
      Archer S01E03 Diversity Hire (1080p x265 10bit S94 Joy).mkv <br>
      devs.s01e02.720p.hdtv.x264-river[eztv].mkv <br>
      What.We.Do.in.the.Shadows.S02E02.Ghosts.720p.AMZN.WEBRip.DDP5.1.x264-NTb[eztv.io].mkv <br>
      What.We.Do.in.the.Shadows.S02E01.Resurrection.720p.AMZN.WEBRip.DDP5.1.x264-NTb[eztv.io].mkv <br>
      

      this is the file im reading from… im not sure if thats an array, sorry and i want them outputted same line by line just missing the trailing parts.

      again thanks for your help :)

      S 1 Reply Last reply Apr 17, 2020, 2:09 AM Reply Quote 0
      • S Offline
        sdetweil @banbutcher
        last edited by Apr 17, 2020, 2:09 AM

        @banbutcher reading how

        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 banbutcher Apr 17, 2020, 2:18 AM Apr 17, 2020, 2:16 AM

          this is my main module .js

          i think this is where im reading from :/

          Module.register("deluge",{
          	defaults: {
          		updateInterval: 10 * 60 * 1000 //reads the file every 10 mins
          	},
          
          	start: function(){
          		this.sendSocketNotification("START", this.config);
          	},
          
          	socketNotificationReceived: function(notification, payload) {
          		if(notification === "DATA"){
          			this.dataFile = payload;
          			this.updateDom();
          		}
          	},
          
          //	getDom: function(){
          //		var wrapper = document.createElement("div");
          //		if(this.dataFile){
          //			wrapper.innerHTML = this.dataFile;
          //		} else {
          //			wrapper.innerHTML = "No data";
          //		}
          //		return wrapper;
          //	}
          
          
          
          
          	getDom: function(){
          		var wrapper = document.createElement("div");
          		if(this.dataFile){
                                  var splitRegExp = /.*[S][(0-9)]+[E][(0-9)]+/ig;
                                  var split = splitRegExp.exec(this.dataFile);
          
          			wrapper.innerHTML = split;
          		} else {
          			wrapper.innerHTML = "No Data";
          		}
          		return wrapper;
          	}
          
          
          
          });
          

          again thanks for your help :)

          im in way overmy head here!

          S 2 Replies Last reply Apr 17, 2020, 2:20 AM Reply Quote 0
          • S Offline
            sdetweil @banbutcher
            last edited by Apr 17, 2020, 2:20 AM

            @banbutcher reading in the node_helper, sending up to the module.

            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 Apr 17, 2020, 2:21 AM

              Node_helper :)

              const NodeHelper = require("node_helper");
              const fs= require("fs");
              
              module.exports = NodeHelper.create({
              //here comes the part of the nodehelper after the 3 dots as posted above
              
              	socketNotificationReceived: function(notification, payload) {
              		if(notification === "START"){
              			this.config = payload;
              			this.readData();
                  			setInterval(() => {
                      			this.readData();
                  			}, this.config.updateInterval);
              		}
              	},
              
              	readData: function(){
              		//to read a file to do the following
              		fs.readFile("new-tv-list.txt", "utf8", (err, data) => {
              			if (err) throw err;
              			this.sendSocketNotification("DATA", data);
              		});
              	}
              });
              
              1 Reply Last reply Reply Quote 0
              • S Offline
                sdetweil @banbutcher
                last edited by Apr 17, 2020, 2:43 AM

                @banbutcher I won’t have time to look at this tonight

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                B 1 Reply Last reply Apr 17, 2020, 2:59 AM Reply Quote 0
                • B Offline
                  banbutcher @sdetweil
                  last edited by Apr 17, 2020, 2:59 AM

                  @sdetweil
                  not a problem at all, i really appreciate your help so far in this topic and every other question ive had across the board! :thumbs_up_light_skin_tone:

                  S 1 Reply Last reply Apr 17, 2020, 12:28 PM Reply Quote 0
                  • S Offline
                    sdetweil @banbutcher
                    last edited by sdetweil Apr 17, 2020, 12:30 PM Apr 17, 2020, 12:28 PM

                    @banbutcher ok, the fs.readFile() returns ALL the content of the file. I still would remove the utf8.

                    but you want a list of names, not a stream of characters…
                    so you need to split the stream into an array.

                    a list of text ‘lines’ has a character after each, called a line feed, we don’t want those

                    but the last filename MAY or MAY NOT be followed by a line feed. (depends on how the file was created)

                    anyhow we can fix that

                    I would change the readData function in node_helper like this

                    readData: function(){
                    		//to read a file to do the following
                    		fs.readFile("new-tv-list.txt", (err, data) => {
                                            var output_data = null
                                            // if there was no error  
                    			if (!err){
                                              // convert byte stream to array of names   
                                              output_data=data.toString().concat("\n").split('\n')
                                            }   
                                            // always send something back to module, so it can display messages
                                            // might be null if there was an error 
                    			this.sendSocketNotification("DATA", output_data);
                    		});
                    	}
                    

                    then to fix the module side
                    build an html table structure

                    var wrapper = document.createElement("div");
                    		if(this.dataFile){
                                            var output_list= [];
                                            // 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) {
                                                   // 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
                                                   output_list.push(split)
                                                   // end of data and row
                                                   output_list.push("< /td>< /tr>")
                                                } 
                                            }  
                                            // insert the table into the wrapper
                    			wrapper.innerHTML = "< table>" + output_list.join('')+ "< /table>";
                    		} else {
                    

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    S 1 Reply Last reply Apr 17, 2020, 8:54 PM Reply Quote 0
                    • S Offline
                      sdetweil @sdetweil
                      last edited by Apr 17, 2020, 8:54 PM

                      @banbutcher

                      you can also you divs instead of a table, and then set a css style
                      ‘display’:‘inline-flex’
                      ‘flex-direction’:‘vertical’

                      and u can also use code to create the tree instead of text (don’t use the output_list anymore)
                      (and u can use this with divs too, don’t need as many elements)

                      var table=document.createElement("table")
                      wrapper.appendChild(table)
                                for(filename of this.dataFile) {
                                     // if the name is not zero length (split could have returned for just linefeed
                                     if(filename.length >0) {
                                            // get the filename prefix
                                            var tr=document.createElement("tr")
                                            table.appendChild(tr)
                                            var td=document.createElement("td")
                                            tr.appendChild(td)
                                            var split = splitRegExp.exec(filename);
                                            td.innerText=split
                                      }
                            }
                      return wrapper;
                      

                      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
                      • 5 / 6
                      5 / 6
                      • First post
                        44/59
                        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