diff options
Diffstat (limited to 'select.js')
-rw-r--r-- | select.js | 23 |
1 files changed, 18 insertions, 5 deletions
@@ -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())) + } })() |