From ab2da6f32719a8b90b8a8518f3e8aa0b441a1e34 Mon Sep 17 00:00:00 2001 From: Linadel24 <91286572+Linadel24@users.noreply.github.com> Date: Fri, 15 Oct 2021 02:22:23 +0500 Subject: [PATCH] =?UTF-8?q?=D0=AD=D0=BB=D0=B8=D0=BD=D0=B0=20=D0=90=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BC=D1=83=D1=80=D0=B4=D0=B8=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.js | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 8635050..d74acca 100644 --- a/index.js +++ b/index.js @@ -12,14 +12,102 @@ function getFiles() { } function processCommand(command) { - switch (command) { + let split = command.split(" "); + switch (split[0]) { case 'exit': process.exit(0); break; + case 'show': + console.log(show()); + break; + case 'important': + console.log(important()); + break; + case 'user': + console.log(user(split[1])); + break; + case 'sort': + switch (split[1]){ + case 'importance': + console.log(sortImportance()); + break; + case 'user': + console.log(sortUser()); + break; + case 'data': + console.log(sortData()); + break; + } + break; + case 'date': + console.log(date(split[1])); + break; default: console.log('wrong command'); break; } } +function show() { + let res = []; + files.map(code => code.split("\r\n") + .filter(line => line.includes("// TODO ") && !line.includes("\"// TODO \""))) + .forEach(t => t.forEach(line => res.push(line.split("// TODO ")[1]))); + return res; +} + +function important() { + let str = show(); + let result = []; + for (let i of str) { + if (i.includes('!')) result.push(i); + } + return result; +} + +function user(username) { + return show().filter(str => str.toLowerCase().startsWith(`${username.toLowerCase()};`)); + +} + +function sortImportance() { + return show().sort((a, b) => b.split('!').length - a.split('!').length); +} + +function sortUser() { + return show().sort((a, b) => { + let aUser = a.toLowerCase().split(';'); + let bUser = b.toLowerCase().split(';'); + if (aUser.length !== 1) { + if (aUser > bUser) return 1; + if (aUser < bUser) return -1; + return 0; + } + else if (bUser.length === 1) return -1; + return 0; + }); +} + +function sortData() { + return show().sort((a, b) => { + let aData = a.split('; '); + let bData = b.split('; '); + if (aData.length === 3) { + if (aData[1] > bData[1]) return -1 + if (aData[1] < bData[1]) return 1 + return 0; + } + else if (bData.length === 1) return -1; + return 1; +})} + +function date(data){ + return show().filter(a => { + let splinDate = a.split('; ') + if(splinDate.length === 3) return splinDate[1] > data; + return false; + }); +} // TODO you can do it! +// не переживай +// переживешь