-
-
Save willxyu/b65c509aaae9af3a60cf246d0c6b80ae to your computer and use it in GitHub Desktop.
EdenJ Mods
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
gsr = typeof gsr !== 'undefined' ? gsr : {} | |
gsr.copy = ju.clone | |
gsr.print = jm.print | |
gsr.jscr = jm.scripts | |
gsr.jt = jt.batch | |
gsr.jtev = jt.eval | |
gsr.ja = ja.batch | |
gsr.jaev = ja.eval | |
gsr.main = $('#output') | |
gsr.prefix = '<span class="mute"> > gsr:</span><span class="normal"> ' | |
gsr.sequence = [ | |
{desc: 'system', keyword: 'sys' }, | |
{desc: 'Map Module', keyword: 'map' }, | |
// {desc: 'Bash for EdenJ', keyword: 'bash'}, | |
{desc: 'Combat', keyword: 'cb' }, | |
{desc: 'Miscellaneous', keyword: 'misc' }, | |
{desc: 'NDB for EdenJ', keyword: 'ndb' }, | |
// {desc: 'Mutable Priority Entries', keyword: 'mpe'}, | |
] | |
gsr.gists = {} | |
gsr.reg = {} | |
gsr.report = function(msg, fin) { | |
var s = gsr.prefix + msg // + '</span><span class="mute">.</span>' | |
if (fin) { s += '<br >' } | |
gsr.print(s) | |
} | |
gsr.bottom = function() { | |
gsr.main.scrollTop(document.getElementById('output').scrollHeight) // !important | |
} | |
gsr.reportDownload = function(name, data) { | |
gsr.gists[name] = data //; var t = data.responseText | |
} | |
gsr.download = function(name, url) { | |
return $.ajax({ url: url }).done(function(n) { var e = gsr.copy(n); gsr.reportDownload(name, e) }).fail(function() { log('Error downloading ' + url + '.') }) | |
} | |
gsr.begin = function() { | |
var seq = gsr.copy(gsr.sequence) | |
var token | |
var gists | |
var list = [] | |
if (typeof jm !== 'undefined' && typeof jm.git !== 'undefined') { | |
token = jm.git.token | |
gists = jm.git.gists | |
} | |
for (var i=0; i<seq.length; i++) { | |
var desc = seq[i].desc | |
for (var j=0; j<gists.length; j++) { | |
if (gists[j].description == desc) { | |
for (var k in gists[j].files) { | |
var s = gists[j].files[k].raw_url | |
list.push({filename: k, url: s}) | |
} | |
break | |
} | |
} | |
} | |
gsr.report('Beginning system retrieval from Github. Standby.', true) | |
// Beautiful, chained Ajax Promises! https://stackoverflow.com/a/22736654 | |
var p = $.when(1) | |
list.forEach(function(item, index) { | |
var k = item.filename | |
p = p.then(function() { return gsr.download(item.filename, item.url) }).then(function(data) { gsr.reportDownload(k, data) }) | |
}) | |
p.then(function() { | |
var c = 0 | |
for (var k in gsr.gists) { c += 1 } | |
gsr.report('Completed retrieval of '+ c +' gists. Now sequencing & executing...', true) | |
gsr.bottom() | |
var seq = gsr.copy(gsr.sequence) | |
var gists = gsr.copy(gsr.gists) | |
for (var i=0; i<seq.length; i++) { | |
var keyw = seq[i].keyword | |
for (var k in gsr.gists) { | |
if (k.match(keyw + '.main.js')) { | |
gsr.load(gsr.gists[k]) | |
break | |
} | |
} | |
} | |
}) | |
} | |
gsr.load = function(str) { | |
try { | |
eval(str) | |
} catch(err) { console.log(err) } | |
} | |
gsr.register = function(name, data) { | |
gsr.report('Loading <i>' + name + '</i>') | |
var copy = gsr.copy | |
// Make the hard copy | |
gsr.reg[name] = {} | |
gsr.reg[name].scripts = copy(data.scripts) | |
gsr.reg[name].triggers= copy(data.triggers) | |
gsr.reg[name].aliases = copy(data.aliases) | |
var t = gsr.reg[name] | |
// expand scripts, triggers, aliases | |
gsr.expand(t) | |
gsr.print('.') | |
// Load secondary files, name.secondary.js | |
if (data.secondaries) { | |
var n = data.secondaries.split('\n') | |
for (var k in n) { | |
if (n[k].length != 0) { | |
var s = n[k].trim() | |
log('Trying to load ' + name + '.' + s + '.js') | |
gsr.load(gsr.gists[name + '.' + s + '.js']) | |
gsr.print('.') | |
// gsr.load('./user/'+name+'/'+name+'.'+s+'.js') | |
} | |
} | |
} | |
gsr.print(' <span class="green">✓</span><br >') | |
gsr.bottom() | |
} | |
gsr.append = function(name, data) { | |
var copy = gsr.copy | |
if (gsr.reg[name]) { | |
var scripts = copy(data.scripts) | |
var triggers = copy(data.triggers) | |
var aliases = copy(data.aliases) | |
if (scripts) { gsr.reg[name].scripts += scripts } | |
if (triggers) { gsr.reg[name].triggers += triggers } | |
if (aliases) { gsr.reg[name].aliases += aliases } | |
} | |
gsr.expand(data) | |
} | |
gsr.expand = function(t) { | |
gsr.jscr(t.scripts) // jm.scripts(t.scripts) | |
gsr.jt( gsr.jtev(t.triggers) ) // jt.batch(jt.eval(t.triggers)) | |
gsr.ja( gsr.jaev(t.aliases) ) // ja.batch(ja.eval(t.aliases)) | |
} | |
gsr.begin() | |
/* | |
>> grab this file | |
>> save this file | |
>> wait for GSR | |
>> on GSR, run saved file | |
>> saved file tells us how the directory structure is, different to local files | |
>> saved file tells us the sequence in which to run web files | |
>> retrieve and run web files in sequence | |
*/ | |
// sort the list, using keywords.main.js > interpret secondaries, sort secondaries, load secondaries | |
// console.log(list) | |
/* | |
!function( k ) { | |
$.ajax({ url: s, complete: function(data) { gsr.reportDownload(k, data) } }) | |
}( k ) */ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment