Read the statement by Michael Teeuw here.
.txt file include
- 
 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! 
- 
 @banbutcher reading in the node_helper, sending up to the module. 
- 
 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); }); } });
- 
 @banbutcher I won’t have time to look at this tonight 
- 
 @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:
- 
 @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 structurevar 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 {
- 
 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;
- 
 
- 
 wow… works like a charm! lists all tv shows perfectly! :) 
 is there any way to print a line if the regex isn’t met… ie like a movie title instead of a series title with s01e03 attached?
 and possibly limit output to 10 lines?Thanks, Richie 
- 
 @banbutcher >is there any way to print a line if the regex isn’t met… ie like a movie title instead of a series title with s01e03 attached? 
 and possibly limit output to 10 lines?sure // 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=this.config.counter || 10 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 // and the view limit has not been reached if(filename.length >0 && counter>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); if(split) td.innerText=split else td.innerText='name not matched '+ filename counter--; } } return wrapper;or using the text form var wrapper = document.createElement("div"); if(this.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=this.config.counter || 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 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 // 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 wrapper.innerHTML = "< table>" + output_list.join('')+ "< /table>"; } else {
