From e9a6cc467f566228921c8f8eb76613821e70d451 Mon Sep 17 00:00:00 2001 From: Robbie Langer Date: Sun, 3 Jun 2018 09:09:08 -0400 Subject: replaced loadJS with builtin $loader.script --- install.js | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/install.js b/install.js index d1e7780..1056a70 100644 --- a/install.js +++ b/install.js @@ -1,18 +1,9 @@ -var _main = `function loadJS (source, onready){ - var sc = document.createElement("script"); - sc.src = source; - sc.type = "text/javascript"; - if (onready) sc.addEventListener("load", onready); - document.head.appendChild(sc); - return sc; -} - -var interval = setInterval(function () { +var _main = `var interval = setInterval(function () { try { if (!!le) { localStorage[".pkg93/userscript"] = ""; clearInterval(interval); - loadJS("https://rawgit.com/pkg93/pkg93/master/pkg93.js", function () {}); + $loader.script("https://rawgit.com/pkg93/pkg93/master/pkg93.js"; } } catch (err) { console.error(err); -- cgit v1.2.3 From 471b8e8ef6f307bbf14532b2cc3d1f8525b0e6b0 Mon Sep 17 00:00:00 2001 From: Robbie Langer Date: Sun, 3 Jun 2018 09:27:31 -0400 Subject: HUGE ASYNC OVERHAUL --- pkg93.js | 298 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 154 insertions(+), 144 deletions(-) diff --git a/pkg93.js b/pkg93.js index 789a6f1..dc716e6 100644 --- a/pkg93.js +++ b/pkg93.js @@ -1,3 +1,24 @@ +async function wrap(f) { + var originalPrompt = this.cli.prompt.innerHTML + var originalOnenter = this.cli.onenter + try { + this.cli.prompt.innerHTML = '' + this.cli.onenter = l => false + var lastLog = $log('') + await f({ + log: (...args) => { + var newLog = $log(...args) + newLog.parentElement.insertBefore(newLog, lastLog.nextSibling) + lastLog = newLog + }, + arg: this.arg + }) + } finally { + this.cli.prompt.innerHTML = originalPrompt + this.cli.onenter = originalOnenter + } +} + console.group("[pkg93]"); console.log("[pkg93] Injecting packages..."); try { @@ -6,9 +27,9 @@ try { localStorage[".pkg93/config.json"] = '{"repos": ["http://codinggamerhd.com/main-repo"], "installed": [], "pkglist": []}'; } var config = JSON.parse(localStorage[".pkg93/config.json"]); - config.installed.forEach(function(pkg) { + for (let pkg of config.installed) { eval(localStorage[".pkg93/packages/" + pkg + ".js"]); - }); + } } catch (err) { console.error("[pkg93] Couldn't load package information."); } @@ -23,93 +44,83 @@ var pkg93 = { return false; } }, - pull: function() { + pull: async function(cli) { var config = pkg93.getConfig(); - var request = new XMLHttpRequest(); - $log("WARN Windows93 may lag while getting packages.\n This is a normal thing."); + cli.log("WARN Windows93 may lag while getting packages.\n This is a normal thing."); config.pkglist = []; - config.repos.forEach(function(source) { - $log("GET " + source); - request.open('GET', source + "/repo.json", false); + for (let source of config.repos) { + cli.log("GET " + source); try { - request.send(null); - var json = JSON.parse(request.responseText); - $log("NAME " + json.name); - $log("MSG " + json.msg); - json.packages.forEach(function(item) { + var json = await (await (fetch(source + "/repo.json"))).json() + cli.log("NAME " + json.name); + cli.log("MSG " + json.msg); + for (let item of json.packages) { try { - $log("OK " + item + "@" + source); + cli.log("OK " + item + "@" + source); config.pkglist.push(item + "@" + source); } catch (err) { - $log("ERR " + err.message); + cli.log("ERR " + err.message); } - }); + } } catch (err) { - $log("ERR " + err.message); - $log(request.responseText); + cli.log("ERR " + err.message); } - }); + } localStorage[".pkg93/config.json"] = JSON.stringify(config); }, - get: function(pkg) { + get: async function(pkg, cli) { var config = pkg93.getConfig(); - var request = new XMLHttpRequest(); - $log("SRCH " + pkg); + cli.log("SRCH " + pkg); var index = config.pkglist.findIndex(function(string) { return string.split("@")[0] == pkg; }); if (index < 0) { - $log("ERR Not found."); + cli.log("ERR Not found."); return false; } else { - $log("OK Found!"); + cli.log("OK Found!"); var pkgname = config.pkglist[index].split("@")[0]; var pkgsource = config.pkglist[index].split("@")[1]; - request.open('GET', pkgsource + "/" + pkgname + "/package.json", false); try { - request.send(null); - var json = JSON.parse(request.responseText); - localStorage[".pkg93/packages/" + pkgname + ".json"] = request.responseText; + var json = await (await (fetch(pkgsource + "/" + pkgname + "/package.json"))).json() + localStorage[".pkg93/packages/" + pkgname + ".json"] = JSON.stringify(json); if (json.dependencies) { - json.dependencies.forEach(function(pkg) { + for (let pkg of json.dependencies) { try { - $log("DPND Getting dependency \"" + pkg + "\""); - output = pkg93.get(pkg); + cli.log("DPND Getting dependency \"" + pkg + "\""); + output = await pkg93.get(pkg, cli); if (!output) { throw new Error("Dependency \"" + pkg + "\" failed to install. Current package may not work!"); } } catch (err) { - $log("ERR " + err.message); + cli.log("ERR " + err.message); } - }); + } } - request.open('GET', pkgsource + "/" + pkgname + "/" + json.inject, false); - request.send(null); - localStorage[".pkg93/packages/" + pkgname + ".js"] = request.responseText; - eval(request.responseText); + var script = await (await (fetch(pkgsource + "/" + pkgname + "/" + json.inject))).text() + localStorage[".pkg93/packages/" + pkgname + ".js"] = script; + eval(script); if (json.uninstall) { - request.open('GET', pkgsource + "/" + pkgname + "/" + json.uninstall, false); - request.send(null); - localStorage[".pkg93/packages/" + pkgname + ".rm.js"] = request.responseText; + var uninst = await (await (fetch(pkgsource + "/" + pkgname + "/" + json.uninstall))).text() + localStorage[".pkg93/packages/" + pkgname + ".rm.js"] = uninst; } - $log("OK Injected package!"); + cli.log("OK Injected package!"); if (!config.installed.includes(pkgname)) { config.installed.push(pkgname); } localStorage[".pkg93/config.json"] = JSON.stringify(config); return true; } catch (err) { - $log("ERR " + err.message); + cli.log("ERR " + err.message); return false; } } }, - rm: function(pkg) { + rm: function(pkg, cli) { var config = pkg93.getConfig(); - var request = new XMLHttpRequest(); var index = config.installed.indexOf(pkg); if (index < 0) { - $log("ERR Not found."); + cli.log("ERR Not found."); return false; } else if (!!localStorage[".pkg93/packages/" + pkg + ".rm.js"]) { eval(localStorage[".pkg93/packages/" + pkg + ".rm.js"]); // Typing eval makes me feel dirty. @@ -118,30 +129,29 @@ var pkg93 = { delete localStorage[".pkg93/packages/" + pkg + ".js"] delete localStorage[".pkg93/packages/" + pkg + ".json"] config.installed.splice(index, 1); - $log("OK Removed!"); + cli.log("OK Removed!"); } else { try { if (le._apps[config.installed[index]] === null) { - $log("ERR Already removed."); + cli.log("ERR Already removed."); return false; } else { delete le._apps[config.installed[index]]; delete localStorage[".pkg93/packages/" + config.installed[index] + ".js"]; delete localStorage[".pkg93/packages/" + config.installed[index] + ".json"]; config.installed.splice(index, 1); - $log("OK Removed!"); + cli.log("OK Removed!"); } localStorage[".pkg93/config.json"] = JSON.stringify(config); return true; } catch (err) { - $log("ERR " + err.message); + cli.log("ERR " + err.message); return false; } } }, - pkgInfo: function(pkg, onlineOnly) { + pkgInfo: async function(pkg, onlineOnly) { var config = pkg93.getConfig - var request = new XMLHttpRequest(); try { if (localStorage[".pkg93/packages/" + pkg + ".json"] && !onlineOnly) { return JSON.parse(localStorage[".pkg93/packages/" + pkg + ".json"]); @@ -154,10 +164,8 @@ var pkg93 = { } else { var pkgname = config.pkglist[index].split("@")[0]; var pkgsource = config.pkglist[index].split("@")[1]; - request.open('GET', pkgsource + "/" + pkgname + "/package.json", false); - request.send(null); - var json = JSON.parse(request.responseText); - localStorage[".pkg93/packages/" + pkgname + ".json"] = request.responseText; // save it for later + var json = await (await (fetch(pkgsource + "/" + pkgname + "/package.json"))).json() + localStorage[".pkg93/packages/" + pkgname + ".json"] = JSON.stringify(json); // save it for later return json; } } @@ -175,12 +183,11 @@ if (localStorage[".pkg93/userscript"] && localStorage["desktop/Load pkg93.lnk42" $explorer.refresh(); } -le._apps.pkg93 = { - exec: function() { - pkg93.version = "v1.2.1"; - var protected = ["3d", "acid", "acidbox", "ansi", "anthology", "arena93", "bananamp", "base64", "bytebeat", "calc", "castlegafa", "catex", "cd", "clear", "clearhist", "clippy", "code", "contact", "crazy", "defrag", "dmg", "do a barrel roll", "doctor", "download", "find", "font", "format", "fullscreen", "fx", "gameoflife", "glitch", "global thermonuclear war", "gravity", "hampster", "hello", "help", "hexed", "history", "hl3", "hydra", "ie6", "iframe", "img", "info", "js", "key", "killall", "layer", "lenna", "lisa", "ls", "manifesto", "marburg", "messenger", "mines", "necronomicoin", "pd", "piskel", "pkg93", "pony", "potato", "progressquest", "pwd", "reboot", "robby", "rotate", "shutdown", "skifree", "solitude", "speech", "starwars", "superplayer", "takethis", "terminal", "textarea", "tree", "trollbox", "vega", "virtualpc", "vm", "wat", "whatif", "whois", "win", "zkype"]; - var args = this.arg.arguments; - var help = `pkg93 ${pkg93.version} +async function exec(cli) { + pkg93.version = "v1.2.1"; + var protected = ["3d", "acid", "acidbox", "ansi", "anthology", "arena93", "bananamp", "base64", "bytebeat", "calc", "castlegafa", "catex", "cd", "clear", "clearhist", "clippy", "code", "contact", "crazy", "defrag", "dmg", "do a barrel roll", "doctor", "download", "find", "font", "format", "fullscreen", "fx", "gameoflife", "glitch", "global thermonuclear war", "gravity", "hampster", "hello", "help", "hexed", "history", "hl3", "hydra", "ie6", "iframe", "img", "info", "js", "key", "killall", "layer", "lenna", "lisa", "ls", "manifesto", "marburg", "messenger", "mines", "necronomicoin", "pd", "piskel", "pkg93", "pony", "potato", "progressquest", "pwd", "reboot", "robby", "rotate", "shutdown", "skifree", "solitude", "speech", "starwars", "superplayer", "takethis", "terminal", "textarea", "tree", "trollbox", "vega", "virtualpc", "vm", "wat", "whatif", "whois", "win", "zkype"]; + var args = cli.arg.arguments; + var help = `pkg93 ${pkg93.version} Usage: pkg93 [command] List of Commands @@ -191,7 +198,7 @@ le._apps.pkg93 = { rm-repo [id] Removes a repository info [pkg] Gets information on a package ls [pkgs|installed|repos] Lists packages, installed - packages or repositories. + packages or repositories. Color meanings Executing OK Error Warning Info @@ -199,98 +206,101 @@ le._apps.pkg93 = { pkg93 get gud pkg93 rm kebab `; - if (localStorage[".pkg93/config.json"] === undefined) { - localStorage[".pkg93/config.json"] = '{"repos": ["http://codinggamerhd.com/main-repo"], "installed": [], "pkglist": []}'; + if (localStorage[".pkg93/config.json"] === undefined) { + localStorage[".pkg93/config.json"] = '{"repos": ["http://codinggamerhd.com/main-repo"], "installed": [], "pkglist": []}'; + } + if (localStorage[".pkg93/packages/"] === undefined) { + localStorage[".pkg93/packages/"] = ""; + } + localStorage[".pkg93/README.txt"] = "WARNING!\nThis folder contains important data about pkg93. Do not edit anything in here unless you want pkg93 to not work!\n\n~1024x2"; + var config = pkg93.getConfig(); + if (args.length === 0) { + cli.log(help); + } else if (args[0] == "pull") { + await pkg93.pull(cli); + } else if (args[0] == "get") { + if (args.length < 2) { + cli.log("ERR No package specified."); + } else if (protected.includes(args[1])) { + cli.log("ERR You're trying to modify a pre-installed Windows93 app.\n Don't do that!"); + } else { + await pkg93.get(args[1], cli); } - if (localStorage[".pkg93/packages/"] === undefined) { - localStorage[".pkg93/packages/"] = ""; + } else if (args[0] == "rm") { + if (args.length < 2) { + cli.log("ERR No package specified."); + } else if (protected.includes(args[1])) { + cli.log("ERR You're trying to modify a pre-installed Windows93 app.\n Don't do that!"); + } else { + pkg93.rm(args[1], cli); } - localStorage[".pkg93/README.txt"] = "WARNING!\nThis folder contains important data about pkg93. Do not edit anything in here unless you want pkg93 to not work!\n\n~1024x2"; - var config = pkg93.getConfig(); - if (args.length === 0) { - $log(help); - } else if (args[0] == "pull") { - pkg93.pull(); - } else if (args[0] == "get") { - if (args.length < 2) { - $log("ERR No package specified."); - } else if (protected.includes(args[1])) { - $log("ERR You're trying to modify a pre-installed Windows93 app.\n Don't do that!"); - } else { - pkg93.get(args[1]); - } - } else if (args[0] == "rm") { - if (args.length < 2) { - $log("ERR No package specified."); - } else if (protected.includes(args[1])) { - $log("ERR You're trying to modify a pre-installed Windows93 app.\n Don't do that!"); - } else { - pkg93.rm(args[1]); - } - } else if (args[0] == "add-repo") { - if (args.length < 2) { - $log("ERR No repository specified."); - } else { - try { - config.repos.push(args[1]); // well, that was easy - localStorage[".pkg93/config.json"] = JSON.stringify(config); - $log("OK Done!\n Run \"pkg93 pull\" to update the package listing."); - } catch (err) { - $log("ERR " + err.message); - } + } else if (args[0] == "add-repo") { + if (args.length < 2) { + cli.log("ERR No repository specified."); + } else { + try { + config.repos.push(args[1]); // well, that was easy + localStorage[".pkg93/config.json"] = JSON.stringify(config); + cli.log("OK Done!\n Run \"pkg93 pull\" to update the package listing."); + } catch (err) { + cli.log("ERR " + err.message); } - } else if (args[0] == "rm-repo") { - if (args.length < 2) { - $log("ERR No repository specified."); - } else { - try { - config.repos.splice(parseInt(args[1]), 1); - localStorage[".pkg93/config.json"] = JSON.stringify(config); - $log("OK Done!\n Run \"pkg93 pull\" to update the package listing."); - } catch (err) { - $log("ERR " + err.message); - } + } + } else if (args[0] == "rm-repo") { + if (args.length < 2) { + cli.log("ERR No repository specified."); + } else { + try { + config.repos.splice(parseInt(args[1]), 1); + localStorage[".pkg93/config.json"] = JSON.stringify(config); + cli.log("OK Done!\n Run \"pkg93 pull\" to update the package listing."); + } catch (err) { + cli.log("ERR " + err.message); } - } else if (args[0] == "ls") { - if (args[1] == "pkgs") { - $log(config.pkglist.join("\n")); - } else if (args[1] == "installed") { - $log(config.installed.join("\n")); - } else if (args[1] == "repos") { - lerepos = ""; - config.repos.forEach(function(repo, index) { - lerepos += "[" + index + "] " + repo + "
"; - }); - $log(lerepos); - } else { - $log("ERR You must select either pkgs, installed, or repos."); + } + } else if (args[0] == "ls") { + if (args[1] == "pkgs") { + cli.log(config.pkglist.join("\n")); + } else if (args[1] == "installed") { + cli.log(config.installed.join("\n")); + } else if (args[1] == "repos") { + lerepos = ""; + for (let index in config.repos) { + lerepos += "[" + index + "] " + config.repos[index] + "
"; } - } else if (args[0] == "info") { - if (args.length > 2) { - $log("ERR No package specified."); + cli.log(lerepos); + } else { + cli.log("ERR You must select either pkgs, installed, or repos."); + } + } else if (args[0] == "info") { + if (args.length > 2) { + cli.log("ERR No package specified."); + } else { + var pkgInfo = JSON.parse(await pkg93.pkgInfo(args[1])); + if (!pkgInfo) { + cli.log("ERR Either the package doesn't exist, or an error occoured.") } else { - var pkgInfo = JSON.parse(pkg93.pkgInfo(args[1])); - if (!pkgInfo) { - $log("ERR Either the package doesn't exist, or an error occoured.") - } else { - depends = pkgInfo.dependencies ? pkgInfo.dependencies.join(" , ") : "None!"; - console.log(pkgInfo); - $log(`${pkgInfo.name} + depends = pkgInfo.dependencies ? pkgInfo.dependencies.join(" , ") : "None!"; + console.log(pkgInfo); + cli.log(`${pkgInfo.name} Description: ${pkgInfo.description} Dependencies: ${depends}`); - } } - } else if (args[0] == "help") { - $log(help); - } else if (args[0] == "wtf") { - // for teh lulz - new Audio("/c/sys/sounds/QUACK.ogg").play(); - wtf = ["mudkipz", "pkg93", "memes", "linux", "javascript", "git", "cpu", "windows93", "discord", "kirb", "apt93", "delays", /* those last 2 go well together */ "trash", "kernel panic", "bash", "package manager", "recusion"]; - $log("WTF? " + wtf[Math.floor(Math.random() * wtf.length)] + " + " + wtf[Math.floor(Math.random() * wtf.length)] + " = " + wtf[Math.floor(Math.random() * wtf.length)]); - } else { - $log("ERR Invalid command. Type \"pkg93\" without any arguments for help."); } - }, + } else if (args[0] == "help") { + cli.log(help); + } else if (args[0] == "wtf") { + // for teh lulz + new Audio("/c/sys/sounds/QUACK.ogg").play(); + wtf = ["mudkipz", "pkg93", "memes", "linux", "javascript", "git", "cpu", "windows93", "discord", "kirb", "apt93", "delays", /* those last 2 go well together */ "trash", "kernel panic", "bash", "package manager", "recusion"]; + cli.log("WTF? " + wtf[Math.floor(Math.random() * wtf.length)] + " + " + wtf[Math.floor(Math.random() * wtf.length)] + " = " + wtf[Math.floor(Math.random() * wtf.length)]); + } else { + cli.log("ERR Invalid command. Type \"pkg93\" without any arguments for help."); + } +} + +le._apps.pkg93 = { + exec: function() { wrap.call(this, exec) }, icon: "//cdn.rawgit.com/1024x2/pkg93/70039c02/pkg.png", terminal: true, hascli: true, -- cgit v1.2.3 From d471db31f19b973d2f20cfa0c4075896226ae02c Mon Sep 17 00:00:00 2001 From: 1024x2 Date: Sun, 3 Jun 2018 14:36:20 +0100 Subject: you missed a spot --- install.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.js b/install.js index 1056a70..edc4ef4 100644 --- a/install.js +++ b/install.js @@ -3,7 +3,7 @@ var _main = `var interval = setInterval(function () { if (!!le) { localStorage[".pkg93/userscript"] = ""; clearInterval(interval); - $loader.script("https://rawgit.com/pkg93/pkg93/master/pkg93.js"; + $loader.script("https://rawgit.com/pkg93/pkg93/master/pkg93.js"); } } catch (err) { console.error(err); -- cgit v1.2.3 From c3ff9f09612029c52b03f0578ddfa40d081bf94c Mon Sep 17 00:00:00 2001 From: 1024x2 Date: Tue, 5 Jun 2018 12:33:36 +0100 Subject: fix something --- pkg93.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg93.js b/pkg93.js index dc716e6..c5567c9 100644 --- a/pkg93.js +++ b/pkg93.js @@ -151,7 +151,7 @@ var pkg93 = { } }, pkgInfo: async function(pkg, onlineOnly) { - var config = pkg93.getConfig + var config = pkg93.getConfig(); try { if (localStorage[".pkg93/packages/" + pkg + ".json"] && !onlineOnly) { return JSON.parse(localStorage[".pkg93/packages/" + pkg + ".json"]); -- cgit v1.2.3 From 7b638d58d99fa015adaae759696b88f9206fe297 Mon Sep 17 00:00:00 2001 From: 1024x2 Date: Tue, 5 Jun 2018 12:36:19 +0100 Subject: Update pkg93.js --- pkg93.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg93.js b/pkg93.js index c5567c9..83de03b 100644 --- a/pkg93.js +++ b/pkg93.js @@ -276,14 +276,15 @@ pkg93 rm kebab if (args.length > 2) { cli.log("ERR No package specified."); } else { - var pkgInfo = JSON.parse(await pkg93.pkgInfo(args[1])); + var pkgInfo = await pkg93.pkgInfo(args[1]); if (!pkgInfo) { cli.log("ERR Either the package doesn't exist, or an error occoured.") } else { depends = pkgInfo.dependencies ? pkgInfo.dependencies.join(" , ") : "None!"; + description = pkgInfo.description ? pkgInfo.description : "None!"; console.log(pkgInfo); cli.log(`${pkgInfo.name} -Description: ${pkgInfo.description} +Description: ${description} Dependencies: ${depends}`); } } -- cgit v1.2.3