aboutsummaryrefslogtreecommitdiff
path: root/select.js
diff options
context:
space:
mode:
Diffstat (limited to 'select.js')
-rw-r--r--select.js23
1 files changed, 18 insertions, 5 deletions
diff --git a/select.js b/select.js
index f8ec511..bf4c4f7 100644
--- a/select.js
+++ b/select.js
@@ -2,13 +2,26 @@ const fzf = require("./fzf")
const info = require("./info")
;(async _ => {
- const tags = await info.tags()
+ const criteria = await info.criteria()
+ let stage = 0
+ let crt, val, dou
- do {
+ while (true) {
try {
- tag = await fzf.fzf(Object.keys(tags).sort())
+ switch (stage) {
+ case 0:
+ crt = await fzf.fzf(Object.keys(criteria).sort()); break
+ case 1:
+ val = await fzf.fzf(Object.keys(criteria[crt]).sort()); break
+ case 2:
+ dou = await fzf.doujin(Object.values(criteria[crt][val]).sort()); break
+ default:
+ return
+ }
+
+ stage++
} catch {
- return
+ stage--
}
- } while (!await fzf.doujin(Object.values(tags[tag]).sort()))
+ }
})()