notes.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const stripAnsi = require('strip-ansi')
  2. const iPhoneBackup = require('../util/iphone_backup.js').iPhoneBackup
  3. const normalizeCols = require('../util/normalize.js')
  4. module.exports.name = 'notes'
  5. module.exports.description = 'List all iOS notes'
  6. module.exports.func = function (program, base) {
  7. if (!program.backup) {
  8. console.log('use -b or --backup <id> to specify backup.')
  9. process.exit(1)
  10. }
  11. // Grab the backup
  12. var backup = iPhoneBackup.fromID(program.backup, base)
  13. backup.getNotes(program.dump)
  14. .then((items) => {
  15. // Dump if needed
  16. if (program.dump) {
  17. console.log(JSON.stringify(items, null, 4))
  18. return
  19. }
  20. // Otherwise, format table
  21. items = items.map(el => [
  22. (el.XFORMATTEDDATESTRING || el.XFORMATTEDDATESTRING1) + '',
  23. (el.Z_PK + ''),
  24. (el.ZTITLE2 + '').trim().substring(0, 128),
  25. (el.ZTITLE1 + '').trim() || ''
  26. ])
  27. items = [['Modified', 'ID', 'Title2', 'Title1'], ['-', '-', '-', '-'], ...items]
  28. items = normalizeCols(items, 3).map(el => el.join(' | ')).join('\n')
  29. if (!program.color) { items = stripAnsi(items) }
  30. console.log(items)
  31. })
  32. .catch((e) => {
  33. console.log('[!] Encountered an Error:', e)
  34. })
  35. }