User Tools

Site Tools


script_external_editor_script_importer

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
script_external_editor_script_importer [2016/10/18 10:51]
cdfa
script_external_editor_script_importer [2017/07/06 13:15] (current)
cdfa 1.3
Line 2: Line 2:
   * Purpose: automatically import .js files elsewhere on your device into lightning launcher when they have changed. This allows you to use external script editors!   * Purpose: automatically import .js files elsewhere on your device into lightning launcher when they have changed. This allows you to use external script editors!
   * Author: cdfa   * Author: cdfa
-  * Version: 1.2+  * Version: 1.3
   * Link: https://​plus.google.com/​100430440392224314007/​posts/​KAoKQ317trG   * Link: https://​plus.google.com/​100430440392224314007/​posts/​KAoKQ317trG
 +
 ======Changelog===== ======Changelog=====
 +1.3
 +  * Add support for subfolders
 +
 +1.2
   * fixed importing of large scripts   * fixed importing of large scripts
   * updated to new api   * updated to new api
Line 10: Line 15:
 ====== How to use the script ====== ====== How to use the script ======
 Recommended to run the script on resumed event of the container which is your test environment,​ but you can use it really anytime anywhere. Recommended to run the script on resumed event of the container which is your test environment,​ but you can use it really anytime anywhere.
 +
 ====== Script code ====== ====== Script code ======
 <sxh javascript>​ <sxh javascript>​
Line 34: Line 40:
     return ""; ​     return ""; ​
   }   }
 +}
 +
 +function updateScripts(folder){
 +  folder.listFiles().forEach(function(file){
 +    var fileName = file.getName()
 +    var length = fileName.length
 +    if(file.isDirectory()){
 +      updateScripts(file);​
 +    }else if(fileName.substring(length-3,​length)=="​.js"​){
 +      var name = fileName.slice(0,​-3);​
 +      var path = folder.getPath().substring(scriptFolder.length);​
 +      var script=getScriptByPathAndName(path,​ name);
 +      if(script==null){
 +        Toast.makeText(context,​ "​creating new script: "​+name,​ Toast.LENGTH_SHORT).show();​
 +        script = createScript(path,​ name,"",​0);​
 +        var tagdate=0;
 +      }else{
 +        var tagdate = script.getTag("​lmdate"​);​
 +      }
 +      var lmdate = file.lastModified()
 +      if(lmdate>​tagdate||typeof tagdate == "​undefined"​){
 +        updatedScripts.push(name);​
 +        script.setText(read(folder.getPath()+"/"​+fileName));​
 +        script.setTag("​lmdate",​time)
 +      }
 +    }
 +  });
 } }
  
Line 40: Line 73:
 var updatedScripts = []; var updatedScripts = [];
 var folder = new File(scriptFolder) var folder = new File(scriptFolder)
-var files = folder.listFiles() +updateScripts(folder)
-if(!files)return;​ +
-for(i=0;​i<​files.length;​i++){ +
-  var fileName = files[i].getName() +
-  var length = fileName.length +
-  if(fileName.substring(length-3,​length)=="​.js"​){ +
-    var name = fileName.slice(0,​-3);​ +
-    var script=getScriptByName(name);​ +
-    if(script==null){ +
-      Toast.makeText(context,​ "​creating new script: "​+name,​ Toast.LENGTH_SHORT).show();​ +
-      script = createScript(name,"",​0,​importPath);​ +
-      var tagdate=0;​ +
-    }else{ +
-      var tagdate = script.getTag("​lmdate"​);​ +
-    } +
-    var lmdate = files[i].lastModified() +
-    if(lmdate>​tagdate||typeof tagdate == "​undefined"​){ +
-      updatedScripts.push(name);​ +
-      script.setText(read(scriptFolder+"/"​+fileName));​ +
-      script.setTag("​lmdate",​time) +
-    } +
-  } +
-}+
  
 if( updatedScripts.length>​0)Toast.makeText(context,​ "​Updated scripts: "​+JSON.stringify( updatedScripts),​ Toast.LENGTH_SHORT).show();​ if( updatedScripts.length>​0)Toast.makeText(context,​ "​Updated scripts: "​+JSON.stringify( updatedScripts),​ Toast.LENGTH_SHORT).show();​
 </​sxh>​ </​sxh>​
script_external_editor_script_importer.txt · Last modified: 2017/07/06 13:15 by cdfa