const stripAnsi = require('strip-ansi') const iPhoneBackup = require('../util/iphone_backup.js').iPhoneBackup const normalizeCols = require('../util/normalize.js') module.exports.name = 'notes' module.exports.description = 'List all iOS notes' module.exports.func = function (program, base) { if (!program.backup) { console.log('use -b or --backup to specify backup.') process.exit(1) } // Grab the backup var backup = iPhoneBackup.fromID(program.backup, base) backup.getNotes(program.dump) .then((items) => { // Dump if needed if (program.dump) { console.log(JSON.stringify(items, null, 4)) return } // Otherwise, format table items = items.map(el => [ (el.XFORMATTEDDATESTRING || el.XFORMATTEDDATESTRING1) + '', (el.Z_PK + ''), (el.ZTITLE2 + '').trim().substring(0, 128), (el.ZTITLE1 + '').trim() || '' ]) items = [['Modified', 'ID', 'Title2', 'Title1'], ['-', '-', '-', '-'], ...items] items = normalizeCols(items, 3).map(el => el.join(' | ')).join('\n') if (!program.color) { items = stripAnsi(items) } console.log(items) }) .catch((e) => { console.log('[!] Encountered an Error:', e) }) }