diff --git a/packages/core/__tests__/__fixtures__/backup.v0.json b/packages/core/__tests__/__fixtures__/backup.v0.json new file mode 100644 index 000000000..ac2fb6fd4 --- /dev/null +++ b/packages/core/__tests__/__fixtures__/backup.v0.json @@ -0,0 +1 @@ +{"type":"web","date":1605081189711,"data":{"01d9a7811f8157f8221c1525":{"id":"01d9a7811f8157f8221c1525","deleted":true,"dateEdited":1604570063127,"dateCreated":1604570063126},"02a067029cf484be40ba24d8":{"noteId":"f5cf42fb1d08c27c2cc26a38","id":"02a067029cf484be40ba24d8","data":"Standard Notes (open source\nOneNote\nWeNote\nSimplenote\nEvernote\nOmni note\n\nApps in order are\nEvernote\nOneNote\nGoogle Keep\nSimpleNote\nBear\nStandard Notes\nNotion\nAppleNotes\nZoho Notebooks\nSlite\nUlysses\n\nNotion 2+1+1=4+1\nEvernote 2+1+1+1+1+1+1+1=9+1\nOneNote 2+1+1+1+1+1+1+1=9+1\nRoam Research\nBear 2+1+1+1+1=6+1\nApple Notes 2+1 +1=4\nGoogle Keep 2 +1+1+1+1+1+1+1=9+1\nStandard Notes 2+1 +1+1=5+1(for security good)\nSlite 2+1\n Ulysses 2+1\nTypora 2\nBoostnote \nMilanote \nSimplenote 2+1+1+1+1+1=7\nDropbox Paper \nAtom\nBlackNote\nColorNote\nFairNote\nFiiNote\nLectureNotes\nOmni Notes\nSomNote\nSimple Notes Pro\nZoho Notebook 2+1+1=4\niA Writer\nMyScript Nebo\nDropbox Paper\nJoplin\nNoteshelf\nPenultimate\nNotability\nSquid\nQuip 2\nNotebook 2\nAny.do\nTodoist\nRemember the Milk\nMicrosoft To-Do\nWunderlist\nSuperNote\nAgenda\n\n\n\n\n\n\n\n\n\n\n\nThe idea of student discount\nThe idea of dimming the text \nHirarchy\n\n\n","conflicted":false,"resolved":false,"dateEdited":1602568605475,"dateCreated":1602498551950},"038cedef54b902e210236344":{"noteId":"ccd880517ad79018f2564bd9","id":"038cedef54b902e210236344","data":"Small insignificant but useful features behind subscription (for e.g. Darkmode, undo)\nLame search features:\n it won't suggest it when you start typing #uni, you have to fully type it each time and you better not make a typo. \nShortCut on mobile\nNo app icon after downloading. It appears this app is on my phone, but I am unable to find it. Makes it useless as I can't open. And I can't uninstall easily if I can't find the app. It's...invisible yet there, somewhere.\nReplace text\nBad UI: \nScroll feature:\n\n","conflicted":false,"resolved":false,"dateEdited":1602743119232,"dateCreated":1602569896083},"05578e9b80da2173b39e60c6":{"id":"05578e9b80da2173b39e60c6","type":"note","title":"Zoho Notes","content":{"text":"fc1bdeebfad1baaf4a5ad8fe","delta":"b7e80604cbc56a9e2eb9d5ac"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"Sync problem(4)\nSign in problem\n","dateCreated":1602569928742,"conflicted":false,"dateEdited":1602755221197},"0aaba4429339aa6f4faf02ed":{"id":"0aaba4429339aa6f4faf02ed","deleted":true,"dateEdited":1602497715368,"dateCreated":1602497715368},"12a1b6bcf1645c5f58eb946b":{"id":"12a1b6bcf1645c5f58eb946b","deleted":true,"dateEdited":1602497721126,"dateCreated":1602497721126},"1553ee418101e20fcf3d41df":{"noteId":"f5cf42fb1d08c27c2cc26a38","id":"1553ee418101e20fcf3d41df","data":{"ops":[{"insert":"Standard Notes (open source\n"},{"attributes":{"color":"#1a1a1b"},"insert":"OneNote"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"WeNote"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"Simplenote"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"Evernote"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"Omni note"},{"insert":"\n\nApps in order are\nEvernote\nOneNote\nGoogle Keep\nSimpleNote\nBear\nStandard Notes\nNotion\nAppleNotes\nZoho Notebooks\nSlite\nUlysses\n\n"},{"attributes":{"color":"#e98328","diff":"transparent","link":"https://collegeinfogeek.com/go/notion/"},"insert":"Notion"},{"insert":" 2+1+1=4+1"},{"attributes":{"header":3},"insert":"\n"},{"attributes":{"color":"#eb5757","diff":"transparent","link":"https://evernote.com/"},"insert":"Evernote"},{"insert":" 2+1+1+1+1+1+1+1=9+1"},{"attributes":{"header":3},"insert":"\n"},{"attributes":{"color":"#eb5757","diff":"transparent","link":"https://www.onenote.com/"},"insert":"OneNote"},{"insert":" 2+1+1+1+1+1+1+1=9+1"},{"attributes":{"header":3},"insert":"\n"},{"attributes":{"color":"#e98328","diff":"transparent","link":"https://roamresearch.com/"},"insert":"Roam Research"},{"attributes":{"header":3},"insert":"\n"},{"attributes":{"color":"#eb5757","diff":"transparent","link":"https://bear.app/"},"insert":"Bear"},{"insert":" 2+1+1+1+1=6+1"},{"attributes":{"header":3},"insert":"\n"},{"attributes":{"color":"#e98328","diff":"transparent","link":"https://icloud.com/#notes2"},"insert":"Apple Notes"},{"insert":" 2+1 +1=4"},{"attributes":{"header":3},"insert":"\n"},{"attributes":{"color":"#eb5757","diff":"transparent","link":"http://keep.google.com/"},"insert":"Google Keep"},{"insert":" 2 +1+1+1+1+1+1+1=9+1"},{"attributes":{"header":3},"insert":"\n"},{"attributes":{"color":"#eb5757","diff":"transparent","link":"https://standardnotes.org/"},"insert":"Standard Notes"},{"insert":" 2+1 +1+1=5+1(for security good)"},{"attributes":{"header":3},"insert":"\n"},{"attributes":{"color":"#eb5757","diff":"transparent","link":"https://slite.com/"},"insert":"Slite"},{"insert":" 2+1"},{"attributes":{"header":3},"insert":"\n"},{"insert":" "},{"attributes":{"color":"#e98328","diff":"transparent","link":"https://ulysses.app/"},"insert":"Ulysses"},{"insert":" 2+1"},{"attributes":{"header":3},"insert":"\n"},{"attributes":{"color":"#e98328","diff":"transparent","link":"https://typora.io/"},"insert":"Typora"},{"insert":" 2"},{"attributes":{"header":3},"insert":"\n"},{"attributes":{"color":"#499df3","link":"https://zapier.com/blog/best-note-taking-apps/#boostnote"},"insert":"Boostnote"},{"insert":" \n"},{"attributes":{"color":"#499df3","link":"https://zapier.com/blog/best-note-taking-apps/#milanote"},"insert":"Milanote"},{"attributes":{"color":"#354147"},"insert":" "},{"insert":"\n"},{"attributes":{"color":"#499df3","link":"https://zapier.com/blog/best-note-taking-apps/#simplenote"},"insert":"Simplenote"},{"insert":" 2+1+1+1+1+1=7\n"},{"attributes":{"color":"#0099cc","link":"https://www.techradar.com/best/best-note-taking-app#6-dropbox-paper"},"insert":"Dropbox Paper"},{"insert":" \n"},{"attributes":{"bold":true,"color":"#0099cc","link":"https://atom.io/"},"insert":"Atom"},{"insert":"\n"},{"attributes":{"color":"#3f3f3f","link":"https://andauth.co/Zr5YwI"},"insert":"BlackNote"},{"insert":"\n"},{"attributes":{"color":"#3f3f3f","link":"http://andauth.co/ffmbcJ"},"insert":"ColorNote"},{"insert":"\n"},{"attributes":{"color":"#3f3f3f","link":"http://andauth.co/uWylZu"},"insert":"FairNote"},{"insert":"\n"},{"attributes":{"color":"#3f3f3f","link":"http://andauth.co/itaaVD"},"insert":"FiiNote"},{"insert":"\n"},{"attributes":{"color":"#3f3f3f","link":"http://andauth.co/arqLwb"},"insert":"LectureNotes"},{"insert":"\n"},{"attributes":{"color":"#3f3f3f","link":"http://andauth.co/KdKLRR"},"insert":"Omni Notes"},{"insert":"\n"},{"attributes":{"color":"#3f3f3f","link":"http://andauth.co/tmRXkS"},"insert":"SomNote"},{"insert":"\n"},{"attributes":{"color":"#3f3f3f","link":"http://andauth.co/eyWKLb"},"insert":"Simple Notes Pro"},{"insert":"\n"},{"attributes":{"color":"#b30e61","link":"https://www.zoho.com/notebook/"},"insert":"Zoho Notebook"},{"attributes":{"color":"#424242"},"insert":" 2+1+1=4"},{"attributes":{"header":2},"insert":"\n"},{"attributes":{"color":"#b30e61","link":"https://ia.net/writer"},"insert":"iA Writer"},{"insert":"\nMyScript Nebo"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Dropbox Paper"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Joplin"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Noteshelf"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Penultimate"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Notability"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Squid"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Quip 2\nNotebook 2\nAny.do"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Todoist"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Remember the Milk"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Microsoft To-Do"},{"attributes":{"header":2},"insert":"\n"},{"insert":"Wunderlist"},{"attributes":{"header":2},"insert":"\n"},{"attributes":{"color":"#5c8859","diff":"transparent","link":"https://apps.apple.com/us/app/supernote-notes-recorder-photo/id484001731"},"insert":"SuperNote"},{"attributes":{"header":2},"insert":"\n"},{"attributes":{"color":"#5c8859","diff":"transparent","link":"https://agenda.com/"},"insert":"Agenda"},{"attributes":{"header":2},"insert":"\n"},{"insert":"\n\n\n\n"},{"attributes":{"align":"center"},"insert":"\n"},{"insert":"\n\n\n\n\n\nThe idea of student discount\nThe idea of dimming the text \nHirarchy\n\n\n"}]},"conflicted":false,"resolved":false,"dateEdited":1602568605465,"dateCreated":1602498551937},"17ea2f025254426ad26e479e":{"id":"17ea2f025254426ad26e479e","deleted":true,"dateEdited":1602497706381,"dateCreated":1602497706381},"205b2e9e803bc1d6023eb9b1":{"id":"205b2e9e803bc1d6023eb9b1","type":"note","title":"Google Keep","content":{"text":"39c6d0fd48c5cce6156ad8ee","delta":"39ec7b3e3cb39418ecc1c0fc"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"","dateCreated":1602569878377,"conflicted":false,"dateEdited":1602569880261},"25999809e3eb4d22713b1169":{"id":"25999809e3eb4d22713b1169","deleted":true,"dateCreated":1604570062238,"dateEdited":1604570062238},"29b11b0b0e8b2ef63d9a355b":{"id":"29b11b0b0e8b2ef63d9a355b","deleted":true,"dateEdited":1602497689156,"dateCreated":1602497689156},"2f0c5b75049e8fdaf0f77f8f":{"id":"2f0c5b75049e8fdaf0f77f8f","type":"notebook","title":"Notebook 2","description":"","dateCreated":1602501527975,"pinned":false,"favorite":false,"topics":[{"type":"topic","id":"93ccdda55a5354f50dc09efa","notebookId":"2f0c5b75049e8fdaf0f77f8f","title":"General","dateCreated":1602501528001,"dateEdited":1602501594794,"totalNotes":0,"notes":[]},{"type":"topic","id":"89273a2e02231fe2c736f666","notebookId":"2f0c5b75049e8fdaf0f77f8f","title":"Ali","dateCreated":1602501528001,"dateEdited":1602501594794,"totalNotes":0,"notes":[]},{"type":"topic","id":"5f04072ae23f26889dcaf207","notebookId":"2f0c5b75049e8fdaf0f77f8f","title":"Waqar","dateCreated":1602501528001,"dateEdited":1602501594794,"totalNotes":0,"notes":[]}],"totalNotes":0,"dateEdited":1602501594794},"33a9e1da927d5c7d40efa89a":{"noteId":"b70500c9f962a8454e94ed13","id":"33a9e1da927d5c7d40efa89a","data":{"ops":[]},"conflicted":false,"resolved":false,"dateEdited":1602569953275,"dateCreated":1602569949660},"39c6d0fd48c5cce6156ad8ee":{"noteId":"205b2e9e803bc1d6023eb9b1","id":"39c6d0fd48c5cce6156ad8ee","data":{"noteId":"205b2e9e803bc1d6023eb9b1","id":"39c6d0fd48c5cce6156ad8ee","data":"","conflicted":false,"resolved":false,"dateEdited":1602569878362,"dateCreated":1602569878362},"conflicted":false,"resolved":false,"dateEdited":1602569880254,"dateCreated":1602569878362},"39ec7b3e3cb39418ecc1c0fc":{"noteId":"205b2e9e803bc1d6023eb9b1","id":"39ec7b3e3cb39418ecc1c0fc","data":{"ops":[]},"conflicted":false,"resolved":false,"dateEdited":1602569880240,"dateCreated":1602569878346},"3df4c04ddd8a9ee19ee52098":{"id":"3df4c04ddd8a9ee19ee52098","type":"note","title":"Notion","content":{"text":"6a0b55d53d1228dc9decb809","delta":"bd3c54b54ac6a35ece93f176"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"Bugs(1) (Slow opening)\n\n\nPros:\nVery pleasing aesthetics\nVery unconventional organizational hierarchies etc\n","dateCreated":1602569913241,"conflicted":false,"dateEdited":1602746036500},"4032e2b11dd6fb02a2536f1d":{"noteId":"a3ab2cc25f7e0e285ec2980e","id":"4032e2b11dd6fb02a2536f1d","data":{"ops":[{"attributes":{"bold":true},"insert":"Syncing problem (1+1+1+1)"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Data Loss"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Updates cause bugs(1)"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Some people prefer folders to tags"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Difficult to unsubscribe"},{"insert":"\n\n"}]},"conflicted":false,"resolved":false,"dateEdited":1602735864115,"dateCreated":1602569889825},"41e5b3708e8249cd8b462ef6":{"noteId":"5b8be6c431ccaa72e124dd02","id":"41e5b3708e8249cd8b462ef6","data":{"ops":[]},"conflicted":false,"resolved":false,"dateEdited":1602569909005,"dateCreated":1602569909005},"49220b0b0fa78230a3d57035":{"noteId":"ce0b0a0d65d446dbde83efc8","id":"49220b0b0fa78230a3d57035","data":{"ops":[{"attributes":{"bold":true},"insert":"Cross platform problem"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"OneNote is a bloated POS with useless device clients"},{"insert":"\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},"insert":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"A-Z sorting"},{"insert":"\nSimple reason I stick to Evernote is the ability to quickly sort a notebook from A-Z or By recently created / modified / tags etc\nBear and Onenote lacking in this big time and it’s a deal breaker for my workflow..\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},"insert":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Bad searching (2+1)"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"Searching: I don’t trust OneNote search results. Have to rely on careful organization & upkeep of notebook structure to locate things."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"Sync problems iOS and Android. Every two month or so I had to reset the local device database because something could not ne synced or so."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"Tagging mediocre (2)"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"notebooks and sections. Tagging mediocre compared to Evernote. Works for people who prefer the notebook metaphor."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"Slower/bad syncing (2+1+1(266)+1+)"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"Sync: slower, I’ve heard of more OneNote sync problems than Evernote sync problems. Overall OK as long as you don’t hack - don’t mess with the underlying files outside of the OneNote interface"},{"insert":"\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/9nrxq8/deciding_between_evernote_and_onenote/"},"insert":"https://www.reddit.com/r/Evernote/comments/9nrxq8/deciding_between_evernote_and_onenote/"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":". But sometimes notes fail sync properly in the desktop version. This isn't a recurring issue but it can be a pain at times. Also One Note's web clipper isn't at par with Evernote."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":" "},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"I'd been adding stuff to a shopping list on my PC. I even looked at that note on the web UI to see that it synced. Then I drove 20 miles to shop and looked at my phone and that one note is the one note I can't see. Search for it, find it, tap it and get an empty page and (sometimes) a spinning wheel that won't go away. Manually syncing the page does nothing. That was yesterday and the note still isn't visible on my phone."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"Syncing difficulty(1+1(71)):"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"In OneNote, each Notebook gets its own location and you have to manually enable sync on each one across devices (initially). It makes it tricky to track what notebooks are saved where in some cases, and I just want everything to sync — I don’t want to browse to five or six notebooks on each device to get things going. I also find Evernote’s sync to be much faster and more reliable."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"Personal Opinion"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"I hate OneNote interface. It's too busy, and too rigid. I love that things are hidden in Evernote until I ask for them. "},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"import export"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"Curiously, I've seen Apple Notes import/update about 1000 notes in just a few seconds, whereas OneNote took, I'm thinking, manual intervention, and \"massaging\" the app to make it do what it should've done automatically took a few hours. That was amazing in the first place and "},{"attributes":{"color":"#1a1a1b","italic":true},"insert":"aggravating as hell"},{"attributes":{"color":"#1a1a1b"},"insert":" in the second."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"No Annotaions(1)"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"Sorting notes problem:"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"I'm so frustrated that OneNote can't sort pages. "},{"insert":"\n"},{"attributes":{"bold":true},"insert":"export data problem:"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"It's all but impossible to move data out of ON UWP if you have any attachments"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"slow, when scrolling,"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"Navigation,searching,tagging difficult"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"Web clipper isn't so great."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"App stopped Working(1(62)+)"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Difference in IOS and Android vesion(1(47)+1+1+1):"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":"The Android version of this app lacks many basic features (like the ability to reorder your notebooks) which other versions of the app have (such as the iOS's). It seems that it has been this way for years and there's no indication that Microsoft is ever going to give this version of the app these features."},{"insert":" \n"},{"attributes":{"bold":true},"insert":"Data loss(2):"},{"insert":"\nApp becomes buggy after few months use. Deleting the app deletes the data. Which is horrible as the data gets lost. \n"},{"attributes":{"bold":true},"insert":"Pdf not completely share(1(265))"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Sudden bugs which make the app useless:"},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"Can't save to SD card -(1(66))"},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"Mobile UI not good"},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"Latest update causes it to crash "},{"insert":"\n\n"}]},"conflicted":false,"resolved":false,"dateEdited":1602664916545,"dateCreated":1602569869127},"4abead6a385c8839d82c364e":{"noteId":"ce0b0a0d65d446dbde83efc8","id":"4abead6a385c8839d82c364e","data":"Cross platform problem\nOneNote is a bloated POS with useless device clients\nhttps://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/\nA-Z sorting\nSimple reason I stick to Evernote is the ability to quickly sort a notebook from A-Z or By recently created / modified / tags etc\nBear and Onenote lacking in this big time and it’s a deal breaker for my workflow..\nhttps://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/\nBad searching (2+1)\nSearching: I don’t trust OneNote search results. Have to rely on careful organization & upkeep of notebook structure to locate things.\nSync problems iOS and Android. Every two month or so I had to reset the local device database because something could not ne synced or so.\nTagging mediocre (2)\nnotebooks and sections. Tagging mediocre compared to Evernote. Works for people who prefer the notebook metaphor.\nSlower/bad syncing (2+1+1(266)+1+)\nSync: slower, I’ve heard of more OneNote sync problems than Evernote sync problems. Overall OK as long as you don’t hack - don’t mess with the underlying files outside of the OneNote interface\nhttps://www.reddit.com/r/Evernote/comments/9nrxq8/deciding_between_evernote_and_onenote/\n. But sometimes notes fail sync properly in the desktop version. This isn't a recurring issue but it can be a pain at times. Also One Note's web clipper isn't at par with Evernote.\n \nI'd been adding stuff to a shopping list on my PC. I even looked at that note on the web UI to see that it synced. Then I drove 20 miles to shop and looked at my phone and that one note is the one note I can't see. Search for it, find it, tap it and get an empty page and (sometimes) a spinning wheel that won't go away. Manually syncing the page does nothing. That was yesterday and the note still isn't visible on my phone.\nSyncing difficulty(1+1(71)):\nIn OneNote, each Notebook gets its own location and you have to manually enable sync on each one across devices (initially). It makes it tricky to track what notebooks are saved where in some cases, and I just want everything to sync — I don’t want to browse to five or six notebooks on each device to get things going. I also find Evernote’s sync to be much faster and more reliable.\nPersonal Opinion\nI hate OneNote interface. It's too busy, and too rigid. I love that things are hidden in Evernote until I ask for them. \nimport export\nCuriously, I've seen Apple Notes import/update about 1000 notes in just a few seconds, whereas OneNote took, I'm thinking, manual intervention, and \"massaging\" the app to make it do what it should've done automatically took a few hours. That was amazing in the first place and aggravating as hell in the second.\nNo Annotaions(1)\nSorting notes problem:\nI'm so frustrated that OneNote can't sort pages. \nexport data problem:\nIt's all but impossible to move data out of ON UWP if you have any attachments\nslow, when scrolling,\nNavigation,searching,tagging difficult\nWeb clipper isn't so great.\nApp stopped Working(1(62)+)\nDifference in IOS and Android vesion(1(47)+1+1+1):\nThe Android version of this app lacks many basic features (like the ability to reorder your notebooks) which other versions of the app have (such as the iOS's). It seems that it has been this way for years and there's no indication that Microsoft is ever going to give this version of the app these features. \nData loss(2):\nApp becomes buggy after few months use. Deleting the app deletes the data. Which is horrible as the data gets lost. \nPdf not completely share(1(265))\nSudden bugs which make the app useless:\nCan't save to SD card -(1(66))\nMobile UI not good\nLatest update causes it to crash \n\n","conflicted":false,"resolved":false,"dateEdited":1602664916556,"dateCreated":1602569869142},"4eefc5f0a31106a8200d9b25":{"id":"4eefc5f0a31106a8200d9b25","deleted":true,"dateCreated":1604570062258,"dateEdited":1604570062258},"5a990d8756711f5000ca7bb0":{"noteId":"8cdd40202e9ad46d2284e899","id":"5a990d8756711f5000ca7bb0","data":{"noteId":"8cdd40202e9ad46d2284e899","id":0,"data":""},"conflicted":false,"resolved":false,"dateEdited":1602569940972,"dateCreated":1602569940972},"5b8be6c431ccaa72e124dd02":{"id":"5b8be6c431ccaa72e124dd02","type":"note","title":"Bear","content":{"text":"8383b0aabcecce55086cf6c3","delta":"41e5b3708e8249cd8b462ef6"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"","dateCreated":1602569909033,"conflicted":false,"dateEdited":1602569909033},"5dfaf89ee7fceeb00b84d4f3":{"noteId":"ccd880517ad79018f2564bd9","id":"5dfaf89ee7fceeb00b84d4f3","data":{"ops":[{"attributes":{"bold":true},"insert":"Small insignificant but useful features behind subscription (for e.g. Darkmode,"},{"attributes":{"color":"#333333"},"insert":" "},{"attributes":{"color":"#333333","bold":true},"insert":"undo"},{"attributes":{"bold":true},"insert":")"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Lame search features:"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":" it won't suggest it when you start typing #uni, you have to fully type it each time and you better not make a typo. "},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"ShortCut on mobile"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":"No app icon after downloading. It appears this app is on my phone, but I am unable to find it. Makes it useless as I can't open. And I can't uninstall easily if I can't find the app. It's...invisible yet there, somewhere."},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"Replace text"},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"Bad UI: "},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"Scroll feature:"},{"insert":"\n\n"}]},"conflicted":false,"resolved":false,"dateEdited":1602743119222,"dateCreated":1602569896068},"618b8b2425d3bd4bf9958684":{"id":"618b8b2425d3bd4bf9958684","type":"note","title":"Allama Muhammad Iqbal-","content":{"text":"b5bf53c0e32529f0e4894f5e","delta":"c05ebb16f8617c1e008f50d5"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"Allama Muhammad Iqbal- Agar Kaj Ro Hain Anjum, Asman Tera Hai Ya Mera\n\nAllama Muhammad Iqbal- Agar Kaj Ro Hain Anjum, Asman Tera Hai Ya Mera\n\nPoet Nam...","dateCreated":1602498377345,"conflicted":false,"dateEdited":1602498387556},"662b1326ec043f63096934c2":{"id":"662b1326ec043f63096934c2","deleted":true,"dateCreated":1601963413942,"dateEdited":1601963413942},"6a0b55d53d1228dc9decb809":{"noteId":"3df4c04ddd8a9ee19ee52098","id":"6a0b55d53d1228dc9decb809","data":"Bugs(1) (Slow opening)\n\n\nPros:\nVery pleasing aesthetics\nVery unconventional organizational hierarchies etc\n","conflicted":false,"resolved":false,"dateEdited":1602746036492,"dateCreated":1602569913228},"6fdbd30e609d910f66854fa8":{"id":"6fdbd30e609d910f66854fa8","deleted":true,"dateEdited":1602497565311,"dateCreated":1602497565311},"72d01460665c70c22e135207":{"id":"72d01460665c70c22e135207","deleted":true,"dateCreated":1601963413978,"dateEdited":1601963413978},"8383b0aabcecce55086cf6c3":{"noteId":"5b8be6c431ccaa72e124dd02","id":"8383b0aabcecce55086cf6c3","data":{"noteId":"5b8be6c431ccaa72e124dd02","id":0,"data":""},"conflicted":false,"resolved":false,"dateEdited":1602569909020,"dateCreated":1602569909020},"87164258021a1a5b2f70d127":{"id":"87164258021a1a5b2f70d127","deleted":true,"dateEdited":1602497608064,"dateCreated":1602497608064},"87504b00bf72186c45c86df2":{"id":"87504b00bf72186c45c86df2","deleted":true,"dateEdited":1602497718213,"dateCreated":1602497718213},"8cdd40202e9ad46d2284e899":{"id":"8cdd40202e9ad46d2284e899","type":"note","title":"Ulysses","content":{"text":"5a990d8756711f5000ca7bb0","delta":"fc3655bdc76ef3b291af671a"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"","dateCreated":1602569940984,"conflicted":false,"dateEdited":1602569940984},"8d4112d53aa07483221cdd65":{"id":"8d4112d53aa07483221cdd65","deleted":true,"dateEdited":1604570063115,"dateCreated":1604570063115},"8e3fdce1ae9bc7b65a4f33af":{"id":"8e3fdce1ae9bc7b65a4f33af","deleted":true,"dateEdited":1601963413988,"dateCreated":1601963413988},"94c4e347c2ed8a28ba739bc0":{"noteId":"c1534d71c7eda73e4533c033","id":"94c4e347c2ed8a28ba739bc0","data":{"noteId":"c1534d71c7eda73e4533c033","id":"94c4e347c2ed8a28ba739bc0","data":"","conflicted":false,"resolved":false,"dateEdited":1602569919652,"dateCreated":1602569919652},"conflicted":false,"resolved":false,"dateEdited":1602569921062,"dateCreated":1602569919652},"9842e1582872a7492f7767ff":{"id":"9842e1582872a7492f7767ff","deleted":true,"dateEdited":1604570062239,"dateCreated":1604570062239},"9cae2760dface808b2f9875d":{"id":"9cae2760dface808b2f9875d","deleted":true,"dateCreated":1604570062238,"dateEdited":1604570062238},"a3ab2cc25f7e0e285ec2980e":{"id":"a3ab2cc25f7e0e285ec2980e","type":"note","title":"Simple Note","content":{"text":"a78bb46e7d353373b1e54a6b","delta":"4032e2b11dd6fb02a2536f1d"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"Syncing problem (1+1+1+1)\nData Loss\nUpdates cause bugs(1)\nSome people prefer folders to tags\nDifficult to unsubscribe\n\n","dateCreated":1602569889856,"conflicted":false,"dateEdited":1602735864133},"a78bb46e7d353373b1e54a6b":{"noteId":"a3ab2cc25f7e0e285ec2980e","id":"a78bb46e7d353373b1e54a6b","data":"Syncing problem (1+1+1+1)\nData Loss\nUpdates cause bugs(1)\nSome people prefer folders to tags\nDifficult to unsubscribe\n\n","conflicted":false,"resolved":false,"dateEdited":1602735864127,"dateCreated":1602569889843},"ab6f490ccdcacd958424139a":{"id":"ab6f490ccdcacd958424139a","deleted":true,"dateCreated":1604570062246,"dateEdited":1604570062246},"b5bf53c0e32529f0e4894f5e":{"noteId":"618b8b2425d3bd4bf9958684","id":"b5bf53c0e32529f0e4894f5e","data":"Allama Muhammad Iqbal- Agar Kaj Ro Hain Anjum, Asman Tera Hai Ya Mera\n\nAllama Muhammad Iqbal- Agar Kaj Ro Hain Anjum, Asman Tera Hai Ya Mera\n\nPoet Name: Allama Muhammad Iqbal\nBook: Bal- e-Jibreel\nGhazal: Agar Kaj Ro Hain Anjum, Asman Tera Hai Ya Mera\n\nاگر کج رو ہيں انجم ، آسماں تيرا ہے يا ميرا\nمجھے فکر جہاں کيوں ہو ، جہاں تيرا ہے يا ميرا؟\nاگر ہنگامہ ہائے شوق سے ہے لامکاں خالی\nخطا کس کی ہے يا رب! لامکاں تيرا ہے يا ميرا؟\nاسے صبح ازل انکار کی جرات ہوئی کيونکر\nمجھے معلوم کيا ، وہ راز داں تيرا ہے يا ميرا؟\nمحمد بھی ترا ، جبريل بھی ، قرآن بھی تيرا\nمگر يہ حرف شيريں ترجماں تيرا ہے يا ميرا؟\nاسی کوکب کی تابانی سے ہے تيرا جہاں روشن\nزوال آدم خاکی زياں تيرا ہے يا ميرا؟\n","conflicted":false,"resolved":false,"dateEdited":1602498387549,"dateCreated":1602498377333},"b70500c9f962a8454e94ed13":{"id":"b70500c9f962a8454e94ed13","type":"note","title":"Slite","content":{"text":"dc6c7f1cf5e9567fed7fe14a","delta":"33a9e1da927d5c7d40efa89a"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"","dateCreated":1602569949690,"conflicted":false,"dateEdited":1602569953295},"b7e80604cbc56a9e2eb9d5ac":{"noteId":"05578e9b80da2173b39e60c6","id":"b7e80604cbc56a9e2eb9d5ac","data":{"ops":[{"insert":"Sync problem(4)\nSign in problem\n"}]},"conflicted":false,"resolved":false,"dateEdited":1602755221177,"dateCreated":1602569928705},"ba3c109459711c829064a78d":{"id":"ba3c109459711c829064a78d","deleted":true,"dateCreated":1604570062252,"dateEdited":1604570062252},"bd3c54b54ac6a35ece93f176":{"noteId":"3df4c04ddd8a9ee19ee52098","id":"bd3c54b54ac6a35ece93f176","data":{"ops":[{"attributes":{"bold":true},"insert":"Bugs(1) (Slow opening)"},{"insert":"\n\n\nPros:\nVery pleasing aesthetics\nVery unconventional organizational hierarchies etc\n"}]},"conflicted":false,"resolved":false,"dateEdited":1602746036482,"dateCreated":1602569913209},"c05ebb16f8617c1e008f50d5":{"noteId":"618b8b2425d3bd4bf9958684","id":"c05ebb16f8617c1e008f50d5","data":{"ops":[{"attributes":{"color":"rgba(0, 0, 0, 0.87)"},"insert":"Allama Muhammad Iqbal- Agar Kaj Ro Hain Anjum, Asman Tera Hai Ya Mera"},{"insert":"\n\n"},{"attributes":{"color":"rgba(0, 0, 0, 0.87)"},"insert":"Allama Muhammad Iqbal- Agar Kaj Ro Hain Anjum, Asman Tera Hai Ya Mera"},{"insert":"\n\nPoet Name: Allama Muhammad Iqbal\nBook: Bal- e-Jibreel\nGhazal: Agar Kaj Ro Hain Anjum, Asman Tera Hai Ya Mera\n\nاگر کج رو ہيں انجم ، آسماں تيرا ہے يا ميرا\nمجھے فکر جہاں کيوں ہو ، جہاں تيرا ہے يا ميرا؟\nاگر ہنگامہ ہائے شوق سے ہے لامکاں خالی\nخطا کس کی ہے يا رب! لامکاں تيرا ہے يا ميرا؟\nاسے صبح ازل انکار کی جرات ہوئی کيونکر\nمجھے معلوم کيا ، وہ راز داں تيرا ہے يا ميرا؟\nمحمد بھی ترا ، جبريل بھی ، قرآن بھی تيرا\nمگر يہ حرف شيريں ترجماں تيرا ہے يا ميرا؟\nاسی کوکب کی تابانی سے ہے تيرا جہاں روشن\nزوال آدم خاکی زياں تيرا ہے يا ميرا؟\n"}]},"conflicted":false,"resolved":false,"dateEdited":1602498387540,"dateCreated":1602498377320},"c1534d71c7eda73e4533c033":{"id":"c1534d71c7eda73e4533c033","type":"note","title":"Apple Notes","content":{"text":"94c4e347c2ed8a28ba739bc0","delta":"fcbffe0aeddf529e326f1e9e"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"","dateCreated":1602569919664,"conflicted":false,"dateEdited":1602569921069},"c4df7e00348b34569e04a79e":{"id":"c4df7e00348b34569e04a79e","type":"notebook","title":"Notebook 1","description":"","dateCreated":1602501314652,"pinned":false,"favorite":false,"topics":[{"type":"topic","id":"0762787080dd26cc3033325c","notebookId":"c4df7e00348b34569e04a79e","title":"General","dateCreated":1602501314670,"dateEdited":1602501867973,"totalNotes":0,"notes":[]},{"type":"topic","id":"def1b28d999c72c81fd94f79","notebookId":"c4df7e00348b34569e04a79e","title":"qasfasdfgsdfg","dateCreated":1602501867981,"dateEdited":1602501867981,"totalNotes":0,"notes":[]}],"totalNotes":0,"dateEdited":1602501867982},"c86d2ccd3ec02d375899e130":{"id":"c86d2ccd3ec02d375899e130","deleted":true,"dateCreated":1604570062238,"dateEdited":1604570062238},"ca619f554781c66b0f7f9467":{"id":"ca619f554781c66b0f7f9467","type":"note","title":"EverNote","content":{"text":"cef8fe4d279662ea233b0577","delta":"fce14c99a8c12b23e30a0256"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"Not Single user friendly \nThey're focusing on business \"team\" collaboration, and I use it alone, so they're kind of ignoring features that I'd like to...","dateCreated":1602499611215,"conflicted":false,"dateEdited":1602740201808},"ccd880517ad79018f2564bd9":{"id":"ccd880517ad79018f2564bd9","type":"note","title":"Standard Note","content":{"text":"038cedef54b902e210236344","delta":"5dfaf89ee7fceeb00b84d4f3"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"Small insignificant but useful features behind subscription (for e.g. Darkmode, undo)\nLame search features:\n it won't suggest it when you start typing...","dateCreated":1602569896095,"conflicted":false,"dateEdited":1602743119239},"ce0b0a0d65d446dbde83efc8":{"id":"ce0b0a0d65d446dbde83efc8","type":"note","title":"OneNote","content":{"text":"4abead6a385c8839d82c364e","delta":"49220b0b0fa78230a3d57035"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"Cross platform problem\nOneNote is a bloated POS with useless device clients\nhttps://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/\nA-Z so...","dateCreated":1602569869155,"conflicted":false,"dateEdited":1602664916563},"cef8fe4d279662ea233b0577":{"noteId":"ca619f554781c66b0f7f9467","id":"cef8fe4d279662ea233b0577","data":"Not Single user friendly \nThey're focusing on business \"team\" collaboration, and I use it alone, so they're kind of ignoring features that I'd like to see, but that's life. \n\nLike others, I wish EN would make a stronger play for the average home user instead of focusing on business. I understand businesses are cash cows because they spend money indiscriminately, but EN is really just great for keeping your information organized and accessible in one place.\nhttps://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/\nSome minor problems:\n They break shit on the client or the web client every once in a while, then sometimes it gets fixed later. Or a browser update breaks something with the web client. \nhttps://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/\nBad UI (2) \nhttps://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/\nNot a great editor (2)\nI have never considered Evernote to be a great editor/note-taking app.\nIt's ok for basic notes, but I use dedicated editor apps; MS-Word/Apple-Pages for word processing, MS-Excel/Apple-Numbers for spreadsheets, ...\nhttps://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/\nBuggy and getting out not easy (2)\nIt is really a pity because there is no alternative but if you put your life into Evernote, it is an absolute nightmare to get it back out in an organised fashion.\nhttps://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/\nSearch Problem\nI fumble with searching when it is urgent \nhttps://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/\nNo format saving\nMy biggest gripe with the software, which they have still not yet fixed, is a complete inability to copy and paste text a document from Microsoft Words into EN with the format 100% intact. If your document has a number of bullet points, pasting it onto EN results in all your bullet points in different margins and a scrambled order.\nDrawing\nDrawing: is limited and awkward.\nhttps://www.reddit.com/r/Evernote/comments/9nrxq8/deciding_between_evernote_and_onenote/\nSolid Review\nMy biggest gripes with Evernote were the lack of encryption, poor tools for working with file attachments, and the fact that the service lately seems to be milking its existing users while trying to reinvent itself as a business tool... while not providing these existing users with any notable improvements. I don’t mind paying $70 /year or whatever they are charging now but not for the service that stayed unchanged for years with no content encryption, same old bugs, and the propensity to every now and then lose something.\nhttps://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/\nNo real hierarchy\nthe lack of nested notebooks is insanely maddening.\nhttps://www.reddit.com/r/Evernote/comments/az99zj/meet_x_the_evernote_killer/\nApp Hangs+Log in Errors & Bugs(2+1+1+1(46)+1(146)+1(188)+1(77)+1(98)+1(68))\nThe app always hangs immediately when I tried to edit or search in a note. It has the same problem on my new Samsung S20 FE 5G. It is useless on android phones!! I hope I can find a way to export my note to another app.\nSafety and Security issues (3) +1+1+1(72)\nYour data is not safe! Never again.There were too many bugs and malfunctions in the last two years. It lock my own notes from me just because my subscription was ended. I continued to use the app just because I was lazy to search to an alternative. But last couple of moths were disaster! Multiple people from various countries entered my account. EVERNOTE DID NOT NOTIFY ME until I tried to enter my account and notice other accouts! Besides, you cant download notes! It is 2020 :O\n\nSERIOUS SECURITY ISSUE. This app is now asking for permission 'Prevent phone from sleeping'. It seems simple BUT when it prevents phone from sleeping, 1) the automatic lock function does NOT work (because, in many handsets the autolock setting is like 'x' seconds after sleep). 2) it drains battery. FIX IT SOON. REMOVE THAT PERMISSION ASAP.\nAds Issue:(128 thumbs up) +1+1Playstore\nUsed to be a great app, now I get full screen \"40% off premium\" ads every day or two. When I click \"cancel\" or whatever the app says \"You won't get this offer again\" then two days later it pops up again. Best part is that we're looking for an app like this at work and we have budget to pay for premium, but if these jokers are going to force full screen ads on my personal device they won't be getting our business for premium\nNot user friendly\nIncomplete features on android Side vs IOS\nRelated to Subscription:\nYou need a subscription to store and access your own notes on your own phone. Disgusting business model. I'd pay a one-time price for the app just to write and keep notes locally on my phone. The app's writing tools were exactly what I was looking for, but requiring a subscription to have offline notes is absurd and backwards, when so many other businesses charge for their cloud services, instead. It even has shameless push notifications to remind you of its existence; a note-taking app.\nInconsistency\n\"Signing out will remove all your cached notes and offline notebooks from your device. Do you want to sign out?\" But, on Google, it says otherwise. On Google, it says if you deactivate/sign out (of)/delete your account, your cached notes/offline notebooks won't be removed and will instead be saved. Do you have something to say, Evernote? Or do you want to continue lying to your audience?\nSave web articles:\nI downloaded this app specifically for the ability to save articles from the web. However, this functionality is not working. I've tried with many different articles from many different websites, so it's definitely the app. I am also using an updated version of Chrome.\nSubscription Cancellation difficult:(63 thumbs up)\nThey're clearly just trying to take your money. I signed up for the free trial just to be able to use it to see if I liked it, which required entering your credit card info. I didn't like it. I don't feel it serves my needs. So now it's sending me on a wild goose chase to cancel my subscription before it charges me $70 in 10 days. There's no way to cancel your subscription directly through the app. Can't do it online, either. So now, I'm trying it through the Google store. Highway robbers.\nData Loss(234 thumbs up):\nEvernote used to be wonderful. Somewhere around June of 2020 or may of 2020. Something happened all of my poetry that I had stored on Evernote is gone. These are my words I could never ever replace. I am heartbroken. I used to love Evernote now I will never forgive them for losing all of my work.\npoor pen support make it shit for studying.\nPrice\n\n\n\n","conflicted":false,"resolved":false,"dateEdited":1602740201801,"dateCreated":1602499611199},"d01c921919a32f8b7dfb4c54":{"id":"d01c921919a32f8b7dfb4c54","deleted":true,"dateEdited":1602497563016,"dateCreated":1602497563016},"da2c64a456519df20c5f1a62":{"id":"da2c64a456519df20c5f1a62","deleted":true,"dateEdited":1602497689143,"dateCreated":1602497689143},"dc6c7f1cf5e9567fed7fe14a":{"noteId":"b70500c9f962a8454e94ed13","id":"dc6c7f1cf5e9567fed7fe14a","data":{"noteId":"b70500c9f962a8454e94ed13","id":"dc6c7f1cf5e9567fed7fe14a","data":"","conflicted":false,"resolved":false,"dateEdited":1602569951895,"dateCreated":1602569949677},"conflicted":false,"resolved":false,"dateEdited":1602569953284,"dateCreated":1602569949677},"delta":["9cae2760dface808b2f9875d","662b1326ec043f63096934c2","c86d2ccd3ec02d375899e130","25999809e3eb4d22713b1169","c05ebb16f8617c1e008f50d5","1553ee418101e20fcf3d41df","fce14c99a8c12b23e30a0256","49220b0b0fa78230a3d57035","39ec7b3e3cb39418ecc1c0fc","4032e2b11dd6fb02a2536f1d","5dfaf89ee7fceeb00b84d4f3","41e5b3708e8249cd8b462ef6","bd3c54b54ac6a35ece93f176","fcbffe0aeddf529e326f1e9e","b7e80604cbc56a9e2eb9d5ac","fc3655bdc76ef3b291af671a","33a9e1da927d5c7d40efa89a"],"dff013d90e4bdf6e3492abda":{"id":"dff013d90e4bdf6e3492abda","deleted":true,"dateEdited":1601787300489,"dateCreated":1601787300489},"e7000222dc98cb5ba0f2c9c1":{"id":"e7000222dc98cb5ba0f2c9c1","deleted":true,"dateEdited":1604570063090,"dateCreated":1604570063090},"e9454b6ea068f835348afa53":{"id":"e9454b6ea068f835348afa53","deleted":true,"dateEdited":1602497487421,"dateCreated":1602497487421},"f5cf42fb1d08c27c2cc26a38":{"id":"f5cf42fb1d08c27c2cc26a38","type":"note","title":"Best note taking apps","content":{"text":"02a067029cf484be40ba24d8","delta":"1553ee418101e20fcf3d41df"},"pinned":false,"locked":false,"notebook":{},"colors":[],"tags":[],"favorite":false,"headline":"Standard Notes (open source\nOneNote\nWeNote\nSimplenote\nEvernote\nOmni note\n\nApps in order are\nEvernote\nOneNote\nGoogle Keep\nSimpleNote\nBear\nStandard Note...","dateCreated":1602498551961,"conflicted":false,"dateEdited":1602568605482},"fc1bdeebfad1baaf4a5ad8fe":{"noteId":"05578e9b80da2173b39e60c6","id":"fc1bdeebfad1baaf4a5ad8fe","data":"Sync problem(4)\nSign in problem\n","conflicted":false,"resolved":false,"dateEdited":1602755221190,"dateCreated":1602569928730},"fc3655bdc76ef3b291af671a":{"noteId":"8cdd40202e9ad46d2284e899","id":"fc3655bdc76ef3b291af671a","data":{"ops":[]},"conflicted":false,"resolved":false,"dateEdited":1602569940955,"dateCreated":1602569940955},"fcbffe0aeddf529e326f1e9e":{"noteId":"c1534d71c7eda73e4533c033","id":"fcbffe0aeddf529e326f1e9e","data":{"ops":[]},"conflicted":false,"resolved":false,"dateEdited":1602569921052,"dateCreated":1602569919636},"fce14c99a8c12b23e30a0256":{"noteId":"ca619f554781c66b0f7f9467","id":"fce14c99a8c12b23e30a0256","data":{"ops":[{"attributes":{"bold":true},"insert":"Not Single user friendly "},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"They're focusing on business \"team\" collaboration, and I use it alone, so they're kind of ignoring features that I'd like to see, but that's life. "},{"insert":"\n\n"},{"attributes":{"color":"#1a1a1b"},"insert":"Like others, I wish EN would make a stronger play for the average home user instead of focusing on business. I understand businesses are cash cows because they spend money indiscriminately, but EN is really just great for keeping your information organized and accessible in one place."},{"insert":"\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},"insert":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Some minor problems:"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":" They break shit on the client or the web client every once in a while, then sometimes it gets fixed later. Or a browser update breaks something with the web client. "},{"insert":"\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},"insert":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Bad UI (2) "},{"insert":"\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},"insert":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Not a great editor (2)"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"I have never considered Evernote to be a great editor/note-taking app."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"It's ok for basic notes, but I use dedicated editor apps; MS-Word/Apple-Pages for word processing, MS-Excel/Apple-Numbers for spreadsheets, ..."},{"insert":"\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},"insert":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Buggy and getting out not easy (2)"},{"insert":"\nIt is really a pity because there is no alternative but if you put your life into Evernote, it is an absolute nightmare to get it back out in an organised fashion.\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},"insert":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Search Problem"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"I fumble with searching when it is urgent "},{"insert":"\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},"insert":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"No format saving"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"My biggest gripe with the software, which they have still not yet fixed, is a complete inability to copy and paste text a document from Microsoft Words into EN with the format 100% intact. If your document has a number of bullet points, pasting it onto EN results in all your bullet points in different margins and a scrambled order."},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Drawing"},{"insert":"\nDrawing: is limited and awkward.\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/9nrxq8/deciding_between_evernote_and_onenote/"},"insert":"https://www.reddit.com/r/Evernote/comments/9nrxq8/deciding_between_evernote_and_onenote/"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Solid Review"},{"insert":"\n"},{"attributes":{"color":"#1a1a1b"},"insert":"My biggest gripes with Evernote were the lack of encryption, poor tools for working with file attachments, and the fact that the service lately seems to be milking its existing users while trying to reinvent itself as a business tool... while not providing these existing users with any notable improvements. I don’t mind paying $70 /year or whatever they are charging now but not for the service that stayed unchanged for years with no content encryption, same old bugs, and the propensity to every now and then lose something."},{"insert":"\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},"insert":"https://www.reddit.com/r/Evernote/comments/8m4lo3/so_hows_evernote/"},{"insert":"\nNo real hierarchy\n"},{"attributes":{"color":"#1a1a1b"},"insert":"the lack of nested notebooks is insanely maddening."},{"insert":"\n"},{"attributes":{"link":"https://www.reddit.com/r/Evernote/comments/az99zj/meet_x_the_evernote_killer/"},"insert":"https://www.reddit.com/r/Evernote/comments/az99zj/meet_x_the_evernote_killer/"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"App Hangs+Log in Errors & Bugs(2+1+1+1(46)+1(146)+1(188)+1(77)+1(98)+1(68))"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":"The app always hangs immediately when I tried to edit or search in a note. It has the same problem on my new Samsung S20 FE 5G. It is useless on android phones!! I hope I can find a way to export my note to another app."},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"Safety and Security issues (3) +1+1+1(72)"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":"Your data is not safe! Never again.There were too many bugs and malfunctions in the last two years. It lock my own notes from me just because my subscription was ended. I continued to use the app just because I was lazy to search to an alternative. But last couple of moths were disaster! Multiple people from various countries entered my account. EVERNOTE DID NOT NOTIFY ME until I tried to enter my account and notice other accouts! Besides, you cant download notes! It is 2020 :O"},{"insert":"\n\n"},{"attributes":{"color":"#333333"},"insert":"SERIOUS SECURITY ISSUE. This app is now asking for permission 'Prevent phone from sleeping'. It seems simple BUT when it prevents phone from sleeping, 1) the automatic lock function does NOT work (because, in many handsets the autolock setting is like 'x' seconds after sleep). 2) it drains battery. FIX IT SOON. REMOVE THAT PERMISSION ASAP."},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Ads Issue:(128 thumbs up) +1+1Playstore"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":"Used to be a great app, now I get full screen \"40% off premium\" ads every day or two. When I click \"cancel\" or whatever the app says \"You won't get this offer again\" then two days later it pops up again. Best part is that we're looking for an app like this at work and we have budget to pay for premium, but if these jokers are going to force full screen ads on my personal device they won't be getting our business for premium"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Not user friendly"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Incomplete features on android Side vs IOS"},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Related to Subscription:"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":"You need a subscription to store and access your own notes on your own phone. Disgusting business model. I'd pay a one-time price for the app just to write and keep notes locally on my phone. The app's writing tools were exactly what I was looking for, but requiring a subscription to have offline notes is absurd and backwards, when so many other businesses charge for their cloud services, instead. It even has shameless push notifications to remind you of its existence; a note-taking app."},{"insert":"\n"},{"attributes":{"bold":true},"insert":"Inconsistency"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":"\"Signing out will remove all your cached notes and offline notebooks from your device. Do you want to sign out?\" But, on Google, it says otherwise. On Google, it says if you deactivate/sign out (of)/delete your account, your cached notes/offline notebooks won't be removed and will instead be saved. Do you have something to say, Evernote? Or do you want to continue lying to your audience?"},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"Save web articles:"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":"I downloaded this app specifically for the ability to save articles from the web. However, this functionality is not working. I've tried with many different articles from many different websites, so it's definitely the app. I am also using an updated version of Chrome."},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"Subscription Cancellation difficult:(63 thumbs up)"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":"They're clearly just trying to take your money. I signed up for the free trial just to be able to use it to see if I liked it, which required entering your credit card info. I didn't like it. I don't feel it serves my needs. So now it's sending me on a wild goose chase to cancel my subscription before it charges me $70 in 10 days. There's no way to cancel your subscription directly through the app. Can't do it online, either. So now, I'm trying it through the Google store. Highway robbers."},{"insert":"\n"},{"attributes":{"color":"#333333","bold":true},"insert":"Data Loss(234 thumbs up):"},{"insert":"\n"},{"attributes":{"color":"#333333"},"insert":"Evernote used to be wonderful. Somewhere around June of 2020 or may of 2020. Something happened all of my poetry that I had stored on Evernote is gone. These are my words I could never ever replace. I am heartbroken. I used to love Evernote now I will never forgive them for losing all of my work."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"poor pen support make it shit for studying."},{"insert":"\n"},{"attributes":{"color":"#1a1a1b","bold":true},"insert":"Price"},{"insert":"\n\n\n\n"}]},"conflicted":false,"resolved":false,"dateEdited":1602740201791,"dateCreated":1602499611181},"hasConflicts":false,"notebooks":["17ea2f025254426ad26e479e","c4df7e00348b34569e04a79e","2f0c5b75049e8fdaf0f77f8f"],"notes":["0aaba4429339aa6f4faf02ed","12a1b6bcf1645c5f58eb946b","618b8b2425d3bd4bf9958684","87504b00bf72186c45c86df2","ca619f554781c66b0f7f9467","dff013d90e4bdf6e3492abda","f5cf42fb1d08c27c2cc26a38","ce0b0a0d65d446dbde83efc8","205b2e9e803bc1d6023eb9b1","a3ab2cc25f7e0e285ec2980e","ccd880517ad79018f2564bd9","5b8be6c431ccaa72e124dd02","3df4c04ddd8a9ee19ee52098","c1534d71c7eda73e4533c033","05578e9b80da2173b39e60c6","8cdd40202e9ad46d2284e899","b70500c9f962a8454e94ed13"],"text":["ab6f490ccdcacd958424139a","72d01460665c70c22e135207","ba3c109459711c829064a78d","4eefc5f0a31106a8200d9b25","b5bf53c0e32529f0e4894f5e","02a067029cf484be40ba24d8","cef8fe4d279662ea233b0577","4abead6a385c8839d82c364e","39c6d0fd48c5cce6156ad8ee","a78bb46e7d353373b1e54a6b","038cedef54b902e210236344","8383b0aabcecce55086cf6c3","6a0b55d53d1228dc9decb809","94c4e347c2ed8a28ba739bc0","fc1bdeebfad1baaf4a5ad8fe","5a990d8756711f5000ca7bb0","dc6c7f1cf5e9567fed7fe14a"],"trash":["29b11b0b0e8b2ef63d9a355b","6fdbd30e609d910f66854fa8","87164258021a1a5b2f70d127","8e3fdce1ae9bc7b65a4f33af","d01c921919a32f8b7dfb4c54","da2c64a456519df20c5f1a62","e9454b6ea068f835348afa53","9842e1582872a7492f7767ff","01d9a7811f8157f8221c1525","8d4112d53aa07483221cdd65","e7000222dc98cb5ba0f2c9c1"],"h":"954212416b12d4ef0b590e084becaf34","ht":"md5"}} \ No newline at end of file diff --git a/packages/core/__tests__/backup.test.js b/packages/core/__tests__/backup.test.js index 850aa05df..2a97b0705 100644 --- a/packages/core/__tests__/backup.test.js +++ b/packages/core/__tests__/backup.test.js @@ -2,13 +2,9 @@ import { StorageInterface, databaseTest, noteTest, - groupedTest, - LONG_TEXT, - TEST_NOTE, - TEST_NOTEBOOK, notebookTest, - TEST_NOTEBOOK2, } from "./utils"; +import v0Backup from "./__fixtures__/backup.v0.json"; beforeEach(async () => { StorageInterface.clear(); @@ -67,3 +63,35 @@ test("import tempered backup", () => ).rejects.toThrowError(/tempered/); }) )); + +test.only("import unversioned (v0) backup", () => { + return databaseTest().then(async (db) => { + await db.backup.import(JSON.stringify(v0Backup)); + + expect( + db.notes.all.every( + (v) => v.contentId && !v.content && (!v.notebook || !v.notebook.id) + ) + ).toBeTruthy(); + + expect( + db.notebooks.all.every((v) => v.title != null && v.description != null) + ).toBeTruthy(); + + function verifyIndex(db, backupCollection, collection) { + if (!v0Backup.data[backupCollection]) return; + expect( + v0Backup.data[backupCollection].every( + (v) => db[collection]._collection.indexer.indices.indexOf(v) > -1 + ) + ).toBeTruthy(); + } + + verifyIndex(db, "notes", "notes"); + verifyIndex(db, "notebooks", "notebooks"); + verifyIndex(db, "delta", "content"); + verifyIndex(db, "tags", "tags"); + verifyIndex(db, "colors", "colors"); + verifyIndex(db, "trash", "trash"); + }); +}); diff --git a/packages/core/database/backup.js b/packages/core/database/backup.js index eef1c32ff..35a35235c 100644 --- a/packages/core/database/backup.js +++ b/packages/core/database/backup.js @@ -4,6 +4,7 @@ const md5 = new Hashes.MD5(); const invalidKeys = ["user", "t", "lastBackupTime"]; const validTypes = ["mobile", "web", "node"]; +const CURRENT_BACKUP_VERSION = 2; export default class Backup { /** * @@ -43,7 +44,7 @@ export default class Backup { await this._db.context.write("lastBackupTime", Date.now()); return JSON.stringify({ - version: 2, + version: CURRENT_BACKUP_VERSION, type, date: Date.now(), data, @@ -63,6 +64,8 @@ export default class Backup { if (!this._validate(backup)) throw new Error("Invalid backup."); + backup = this._migrateBackup(backup); + let db = backup.data; //check if we have encrypted data if (db.salt && db.iv) { @@ -72,24 +75,71 @@ export default class Backup { if (!this._verify(backup)) throw new Error("Backup file has been tempered, aborting..."); - // TODO add a proper restoration system. - // for (let key in db) { - // let value = db[key]; - // if (value && value.dateEdited) { - // value.dateEdited = Date.now(); - // } - // const oldValue = await this._db.context.read(oldValue); + await this._migrateData(backup); + } - // let finalValue = oldValue || value; - // if (typeof value === "object") { - // finalValue = Array.isArray(value) - // ? [...value, ...oldValue] - // : { ...value, ...oldValue }; - // } + _migrateBackup(backup) { + const { version = 0 } = backup; + if (version > CURRENT_BACKUP_VERSION) + throw new Error( + "This backup was made from a newer version of Notesnook. Cannot migrate." + ); - // await this._db.context.write(key, finalValue); - // } + switch (version) { + case CURRENT_BACKUP_VERSION: { + return backup; + } + case 0: { + const hash = backup.data.h; + const hash_type = backup.data.ht; + delete backup.data.h; + delete backup.data.ht; + return { + version: 0, + type: backup.type, + date: backup.date || Date.now(), + data: backup.data, + hash, + hash_type, + }; + } + default: + throw new Error("Unknown backup version."); + } + } + + async _migrateData(backup) { + const { data, version = 0 } = backup; + if (version > CURRENT_BACKUP_VERSION) + throw new Error( + "This backup was made from a newer version of Notesnook. Cannot migrate." + ); + + const collections = [ + "notes", + "notebooks", + "tags", + "colors", + "trash", + "delta", + "text", + "content", + ]; + + await Promise.all( + collections.map(async (collection) => { + const collectionIndex = data[collection]; + if (!collectionIndex) return; + await Promise.all( + collectionIndex.map(async (id) => { + const item = data[id]; + if (!item) return; + await migrations[version][collection](this._db, item); + }) + ); + }) + ); } _validate(backup) { @@ -113,3 +163,82 @@ export default class Backup { } } } + +const migrations = { + handleDeleted: async function (db, collection, item) { + if (item.deleted) { + await db[collection]._collection.addItem(item); + return true; + } + return false; + }, + 0: { + notes: async function (db, item) { + if (await migrations.handleDeleted(db, "notes", item)) return; + + const contentId = item.content.delta; + delete item.content; + item.contentId = contentId; + item.remote = true; + if (!item.notebook.id) item.notebook = undefined; + await db.notes.add(item); + }, + delta: async function (db, item) { + if (await migrations.handleDeleted(db, "content", item)) return; + + item.data = item.data.ops; + item.type = "delta"; + await db.content.add(item); + }, + trash: async function (db, item) { + if (await migrations.handleDeleted(db, "trash", item)) return; + + item.itemType = item.type; + item.type = "trash"; + if (item.itemType === "note") { + item.contentId = item.content.delta; + delete item.content; + } + await db.trash.add(item); + }, + notebooks: async function (db, item) { + if (await migrations.handleDeleted(db, "notebooks", item)) return; + await db.notebooks.add(item); + }, + tags: async function (db, item) { + if (await migrations.handleDeleted(db, "tags", item)) return; + await db.tags.add(item); + }, + colors: async function (db, item) { + if (await migrations.handleDeleted(db, "colors", item)) return; + await db.tags.add(item); + }, + text: function () {}, + }, + 2: { + notes: async function (db, item) { + if (await migrations.handleDeleted(db, "notes", item)) return; + await db.notes.add({ ...item, remote: true }); + }, + notebooks: async function (db, item) { + if (await migrations.handleDeleted(db, "notebooks", item)) return; + await db.notebooks.add(item); + }, + tags: async function (db, item) { + if (await migrations.handleDeleted(db, "tags", item)) return; + await db.tags.add(item); + }, + colors: async function (db, item) { + if (await migrations.handleDeleted(db, "colors", item)) return; + await db.tags.add(item); + }, + trash: async function (db, item) { + if (await migrations.handleDeleted(db, "trash", item)) return; + await db.trash.add(item); + }, + content: async function (db, item) { + if (await migrations.handleDeleted(db, "content", item)) return; + await db.content.add(item); + }, + }, +};