diff --git a/app.js b/app.js index 80f18e5..a61c53d 100644 --- a/app.js +++ b/app.js @@ -1,7 +1,8 @@ const fs = require('node-fs') const sourceFilePath = 'source/tasks.json'; -const statsMonth = { - count: 0 +const stats = { + countAllTasks: 0, + tasksByDay: {} } // prendre le json source représentant les tâches DONE console.log(' ### lecture de source/emacs_json.json'); @@ -19,22 +20,61 @@ fs.stat(sourceFilePath, function (err, stat) { }); // parcourir les tâches -function sortTasksFromJson(statObject){ +function sortTasksFromJson(statObject) { console.log('sortTasksFromJson') - fs.readFile(sourceFilePath, 'utf8', function (err,data) { + fs.readFile(sourceFilePath, 'utf8', function (err, data) { if (err) { return console.log(err); } let dataTransformed = JSON.parse(data); console.log('data keys ', Object.keys(dataTransformed)) - if(dataTransformed["contents"]){ + if (dataTransformed["contents"]) { - countTasks = dataTransformed["contents"].length - console.log('yes data !' , countTasks) - console.log('element' , dataTransformed["contents"]["0"]) + countTasks = dataTransformed["contents"].length + stats.countAllTasks = countTasks; + + console.log('yes data !', countTasks) + console.log('first', dataTransformed["contents"][0]) + + dataTransformed["contents"].forEach((elem) => { + if (elem['title'] && elem['title'][0]) { + console.log(' - ', elem['title'][0]) + } + if (elem['properties'] && elem['properties']['closed']) { + let title = elem['properties']['raw-value']; + let tags = elem['tags'] ? elem['tags'] : []; + let closeDate = elem['properties']['closed']['end']; + let todoKeyword = elem['drawer']['ARCHIVE_TODO']; + let itags = elem['drawer']['ARCHIVE_ITAGS']; + + // jour, 11 premiers caractères + + let day = closeDate.substring(0, 10); + if (!stats.tasksByDay[day]) { + stats.tasksByDay[day] = [] + } + stats.tasksByDay[day].push({ + title, + closeDate, + tags, + todoKeyword, + day, + itags + }) + // console.log(' ' + title) + } else { + console.log('no' , elem['properties']['raw-value']) + } + }) + + // console.log('element', dataTransformed["contents"]["0"]) + + } else { + console.log('no content') } // console.log(data); + writeHtmlOutput() }); @@ -43,6 +83,81 @@ function sortTasksFromJson(statObject){ // sortir un html présentant les périodes de temps et les tâches réalisées -function writeHtmlOutput(){ - console.log('writeHtmlOutput') -} \ No newline at end of file +function writeHtmlOutput() { + console.log('writeHtmlOutput', stats.countAllTasks) + + let daysListRef = Object.keys(stats.tasksByDay).sort() + let htmlOut = ` + +
+