Skip to content

Commit 3046109

Browse files
committed
I'm crushing your head!
1 parent 433ad19 commit 3046109

3 files changed

Lines changed: 82 additions & 14 deletions

File tree

coms/net/fs.js

Lines changed: 78 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ MOST RECENT:
6969
},
7070
"nodes": {
7171
".indexOn": ["parId", "path"],
72+
".read": "auth != null",
7273
"$nodeId": {
73-
".read": "auth != null && auth.provider === 'github'",
7474
".write": "auth != null && auth.provider === 'github' && auth.token.firebase.identities['github.com'][0] === $ghid",
7575
".validate": "data.exists() || newData.hasChildren(['parId', 'type', 'path', 'sid'])",
7676
"parId": {
@@ -554,6 +554,7 @@ orderByChild,
554554
limitToFirst,
555555
limitToLast,
556556
startAt,
557+
equalTo,
557558
onValue,
558559
increment,
559560
enableLogging
@@ -631,7 +632,6 @@ if (!(Number.isFinite(parId) && isStr(name))){
631632

632633
let path = `${parId}/${name}`;
633634
let node = {parId, path, type: "d"};
634-
this.nextNodeId++;
635635
await UPDATE(UBASE(),{
636636
next_node_id: {
637637
nodeid: this.nextNodeId+1,
@@ -644,7 +644,9 @@ await UPDATE(UBASE(),{
644644
type: "d"
645645
}
646646
});
647-
return true;
647+
let id = this.nextNodeId;
648+
this.nextNodeId++;
649+
return id;
648650
}//»
649651
async createFileNode(parId, name, val){//«
650652

@@ -697,7 +699,24 @@ await UPDATE(UBASE(), obj);
697699
return sz;
698700

699701
}//»
702+
async getDirList(ghid, parId){
703+
let ref = REF(`LOTW/${ghid}/nodes`);
704+
let c1 = orderByChild('parId');
705+
let c2 = equalTo(parId);
706+
let q = query(ref, c1, c2);
707+
let snap = await GET(q);
708+
if (isErr(snap)){
709+
cerr(snap);
710+
return;
711+
// return snap;
712+
}
713+
if (!snap.exists()){
714+
cerr(`NOTFOUND`);
715+
return;
716+
}
717+
return snap.val();
700718

719+
}
701720
}//»
702721

703722
//Funcs«
@@ -838,11 +857,6 @@ cwarn("GET STATUSES...");
838857
return true;
839858
};//»
840859

841-
const check_user_path = path => {
842-
843-
844-
};
845-
846860
const get_user_dir_list = async (ghid, path)=>{//«
847861
/*«
848862
let path_enc = "";
@@ -865,11 +879,30 @@ if (!snap.exists()){
865879
return snap.val();
866880
»*/
867881
cwarn(`GET(${ghid}): <${path}>`);
882+
let parId;
883+
if (!path) parId = 0;
884+
else{
885+
cerr("HAVEPATHWUTPARID");
886+
return;
887+
}
888+
let rv = await db.getDirList(ghid, parId);
889+
let keys = Object.keys(rv);
890+
let names = [];
891+
let vals = [];
868892

869-
893+
for (let k of keys){
894+
let obj = rv[k];
895+
let name = obj.path.split("/")[1];
896+
let val;
897+
if (obj.type==="d") val = -1;
898+
else val = 0;
899+
names.push(name);
900+
vals.push(val);
901+
}
870902
return {
871-
names: [],
872-
vals: []
903+
names: names,
904+
vals: vals,
905+
ids: keys
873906
};
874907

875908
};//»
@@ -1050,11 +1083,43 @@ await update("/$ghid", update_obj); // If this fails, no incrementing is done
10501083
//»
10511084
globals.funcs["netfs.fbWrite"] = fb_write;
10521085

1053-
const fb_mkdir = async(parpath, name) =>{
1086+
const fb_mkdir = async(parpath, name) =>{//«
1087+
1088+
1089+
if (!parpath.match(/^\x2fusers\x2f/)){
1090+
cerr(`${path}: invalid path`);
1091+
return
1092+
}
1093+
if (!name){
1094+
cerr(`NO NAME GIVEN`);
1095+
return
1096+
}
1097+
1098+
let arr = parpath.split("/");
1099+
arr.shift();
1100+
arr.shift();
1101+
let username = arr.shift();
1102+
if (!db){
1103+
cerr("NOTLOGGEDON");
1104+
return;
1105+
}
1106+
if (username !== db.login){
1107+
cerr("Permission denied");
1108+
return;
1109+
}
1110+
parpath = arr.join("/");
1111+
let parId;
1112+
if (!parpath) parId = 0;
1113+
else {
1114+
cerr("HAVEPARPATH!!!");
1115+
return;
1116+
}
10541117

10551118
cwarn(`MKDIR: <${parpath}> <${name}>`);
1119+
return await db.createDirNode(parId, name);
10561120

1057-
};
1121+
1122+
};/*»*/
10581123
globals.funcs["netfs.fbMkdir"] = fb_mkdir;
10591124

10601125
//»

list.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
["README.md/2181","app",["3d",["index.html/1098"]],"apps",["Audio.js/4093","BinView.js/9814","Folder.js/11255","Help.js/979","MediaPlayer.js/2074","Music.js/4844","Terminal.js/100824","TextEdit.js/5301","WorkMan.js/3808","YourApp.js/418","dev",["GetPoint.js/551","Grok.js/14796","Poker.js/36551","Three.js/5119"],"games",["Arcade.js/12602"],"hw",["MidiCtl.js/3691"],"media",["2Cameras.js/3258","Camera.js/3673","MediaPlayer.js/16115","VideoCutter.js/61912"],"template",["Basic.js/489","Template.js/396","WebAudio.js/2877"],"util",["HTML.js/1428","ImageView.js/2703","Unicoder.js/16896"]],"coms",["audio.js/1766","esprima.js/171872","extra.js/11295","fs.js/28820","games",["cfr.js/115420","poker.js/107498","slum.js/71075","zhold",["poker1.js/25062"]],"mail.js/44068","net",["fs.js/65211"],"shell.js/175037","template.js/336","test",["dummy.js/21"],"test.js/2026","yt.js/66863","zhold",["mail.js/22724"]],"desk",["index.html/1436"],"index.html/486","login",["index.html/11784"],"mods",["audio",["multi_freq_worklet.js/1502","random_walk_worklet.js/3039"],"games",["GBEmulator.js/9655","NESEmulator.js/222309","binjgb.wasm/87232"],"help",["shell.js/3591"],"hw",["midi.js/2323"],"lang",["shell.js/185316"],"term",["email.js/10406","less.js/19318","log.js/13292","vim.js/162926"],"util",["libwabt.js/1299054","math.js/12125","pretty.js/93856","showdown.js/87205","walt.js/204893","wasm.js/42764","wasmparser.js/34331","webmparser.js/58730"],"workers",["poker.js/37420"]],"node",["server.js/7969","svcs",["imap.js/17772","mount.js/16553","smtp.js/1359","template.js/1831","ws.js/2156","ytdl.js/11982"]],"shell",["index.html/1211"],"sys",["config.js/9942","desk.js/219761","fs.js/72932","terminal.js/4307","three.js/3443","util.js/33015"],"www",["blog.css/181","desk.css/1831","docs",["blog-template.html/291","help.html/9104","what-it-is.html/4370"],"examples",["test.sh/66"],"favicon.ico/15086","lotw256.png/41075","lotw48.png/2966","stuff",["noise.html/1669"]]]
1+
["README.md/2181","app",["3d",["index.html/1098"]],"apps",["Audio.js/4093","BinView.js/9814","Folder.js/11255","Help.js/979","MediaPlayer.js/2074","Music.js/4844","Terminal.js/100824","TextEdit.js/5301","WorkMan.js/3808","YourApp.js/418","dev",["GetPoint.js/551","Grok.js/14796","Poker.js/36551","Three.js/5119"],"games",["Arcade.js/12602"],"hw",["MidiCtl.js/3691"],"media",["2Cameras.js/3258","Camera.js/3673","MediaPlayer.js/16115","VideoCutter.js/61912"],"template",["Basic.js/489","Template.js/396","WebAudio.js/2877"],"util",["HTML.js/1428","ImageView.js/2703","Unicoder.js/16896"]],"coms",["audio.js/1766","esprima.js/171872","extra.js/11295","fs.js/28820","games",["cfr.js/115420","poker.js/107498","slum.js/71075","zhold",["poker1.js/25062"]],"mail.js/44068","net",["fs.js/66318"],"shell.js/175037","template.js/336","test",["dummy.js/21"],"test.js/2026","yt.js/66863","zhold",["mail.js/22724"]],"desk",["index.html/1436"],"index.html/486","login",["index.html/11784"],"mods",["audio",["multi_freq_worklet.js/1502","random_walk_worklet.js/3039"],"games",["GBEmulator.js/9655","NESEmulator.js/222309","binjgb.wasm/87232"],"help",["shell.js/3591"],"hw",["midi.js/2323"],"lang",["shell.js/185316"],"term",["email.js/10406","less.js/19318","log.js/13292","vim.js/162926"],"util",["libwabt.js/1299054","math.js/12125","pretty.js/93856","showdown.js/87205","walt.js/204893","wasm.js/42764","wasmparser.js/34331","webmparser.js/58730"],"workers",["poker.js/37420"]],"node",["server.js/7969","svcs",["imap.js/17772","mount.js/16553","smtp.js/1359","template.js/1831","ws.js/2156","ytdl.js/11982"]],"shell",["index.html/1211"],"sys",["config.js/9942","desk.js/219761","fs.js/72979","terminal.js/4307","three.js/3443","util.js/33015"],"www",["blog.css/181","desk.css/1831","docs",["blog-template.html/291","help.html/9104","what-it-is.html/4370"],"examples",["test.sh/66"],"favicon.ico/15086","lotw256.png/41075","lotw48.png/2966","stuff",["noise.html/1669"]]]

sys/fs.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2292,6 +2292,7 @@ return kids;
22922292
//log(list);
22932293
let names = list.names;
22942294
let vals = list.vals;
2295+
let ids = list.ids;
22952296
for (let i=0; i < names.length; i++){
22962297
let nm = names[i];
22972298
let val = vals[i];
@@ -2308,6 +2309,8 @@ else{
23082309
appData
23092310
});
23102311
}
2312+
kid.id = ids[i];
2313+
log(kid);
23112314
kids[nm] = kid;
23122315
}
23132316
//parobj.done=true;

0 commit comments

Comments
 (0)