From aef1376d811faebdef4969e38f7330e176091f57 Mon Sep 17 00:00:00 2001 From: ikoamu Date: Wed, 24 Jan 2024 21:27:40 +0900 Subject: Add graphdata generation and note creation scripts --- generateJson.js | 106 -------------------------------------------------------- 1 file changed, 106 deletions(-) delete mode 100644 generateJson.js (limited to 'generateJson.js') diff --git a/generateJson.js b/generateJson.js deleted file mode 100644 index be51cf0..0000000 --- a/generateJson.js +++ /dev/null @@ -1,106 +0,0 @@ -const sqlite3 = require('sqlite3').verbose(); -const dbFile = process.argv[2]; -const db = new sqlite3.Database(dbFile); -const fs = require('fs'); - -/** - * Parses the string of properties and returns an object containing the key-value pairs. - * If the key is 'FILE', the corresponding value is processed to extract the filename. - * @param {string} s - The string of properties. - * @returns {Object} - The object containing the parsed properties. - */ -function parseProperties(s) { - const properties = {}; - s.match(/\"(.*?)\" \. \"(.*?)\"/g).forEach(match => { - const [key, value] = match.match(/\"(.*?)\"/g).map(v => v.replace(/"/g, '')); - properties[key] = key === 'FILE' ? getFilename(value) : value; - }); - return removeQuotesFromObject(properties); -} - -/** - * Removes the double quotes from the object. - * @param {Object} obj - The object to be processed. - * @returns {Object} - The object without double quotes. - */ -function removeQuotesFromObject(obj) { - for (let key in obj) { - if (typeof obj[key] === 'string') { - obj[key] = obj[key].replace(/^"|"$/g, ''); - } else if (typeof obj[key] === 'object') { - obj[key] = removeQuotesFromObject(obj[key]); - } - } - return obj; -} - -/** - * Extracts the filename from the path. - * @param {string} path - The path to be processed. - * @returns {string} - The filename. - */ -function getFilename(path) { - return path.split('/').pop(); -} - -const queryNodes = ` -SELECT - tags.tag as tags, - nodes.properties, - nodes.olp, - nodes.pos, - nodes.level, - nodes.title, - nodes.file, - nodes.id -FROM - nodes -LEFT JOIN - tags -ON - nodes.id = tags.node_id -GROUP BY - nodes.id -`; - -const queryLinks = ` -SELECT - type, dest as target, source -FROM - links -WHERE - type = '"id"' -`; - -const queryTags = ` -SELECT - * -FROM - tags -`; - -const graphdata = { - type: "graphdata", - data: {}, -}; -db.all(queryNodes, (_, nodes) => - db.all(queryLinks, (_, links) => - db.all(queryTags, (_, tags) => { - graphdata.data.nodes = nodes.map(node => ({ - ...node, - tags: node.tags ?? [null], - file: getFilename(node.file), - properties: parseProperties(node.properties), - })); - graphdata.data.links = links; - graphdata.data.tags = tags.length ? tags : null; - - fs.writeFile('graphdata.json', JSON.stringify(removeQuotesFromObject(graphdata)), (err) => { - if (err) throw err; - console.log('The file has been saved!'); - }); - }), - ), -); - -db.close(); -- cgit