Code Monkey home page Code Monkey logo

google-keep-exporter's Introduction

code style: prettier Build Status Coverage Status Known Vulnerabilities

Google Keep Converter

Convert your Google Keep notes into a standard markdown + YAML header format.

How to use

  1. Get your Keep notes from Google Takeout
  2. Download the latest release
  3. Run -

./google-keep-exporter-linux inputZip outputDir

or

./google-keep-exporter-macos inputZip outputDir

or

./google-keep-exporter-win.exe inputZip outputDir

Running from source

git clone [email protected]:vHanda/google-keep-exporter.git
cd google-keep-exporter
npm install
npm run build
node dist/main.js <input> <outputDir>

google-keep-exporter's People

Contributors

christophberger avatar rhamzeh avatar snyk-bot avatar synox avatar vhanda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

google-keep-exporter's Issues

Converted 0 notes

Hi,

created a ZIP today and tried to run it, it converted 0 notes

node ~/git/google-keep-exporter-master/dist/main.js takeout-20190517T130852Z-001.zip output/
Unzipping ...
Converted 0 notes
Output Dir: output/

Unzipped it manually, the Archive has a number of german Umlaute

e.g. Österreich 2019.html or Archiv_Übersicht.html inside . Could that be the root cause?

Thanks, Andre

unable to convert

Unzipping ...
Converted 0 notes
zip is correct. Temp dirs in c:\Temp in win 10 ltsb
also tested in debian 10. The same result.
Any help?

[DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

Tried to to convert ~700 notes, ~6.7 GB, end prematurely.

./google-keep-exporter-linux Keep MarkDown
Converted 236 notes
Output Dir: MarkDown
(node:5734) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

DeprecationWarning / UnhandledPromiseRejectionWarning

As others have reported, I'm getting

Converted 0 notes

when running against the takeout zip file. So, following the earlier suggestion, I'm attempting to run against the extracted directory: ./Takeout/Keep

When doing so, I run into the following error:

22:19:02 [~/keep] $ ./google-keep-exporter-linux in/Takeout/Keep/ out/ (node:88669) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. (node:88669) UnhandledPromiseRejectionWarning: Error: ENAMETOOLONG: name too long, open 'out//TIL-that-no-matter-the-language-we-all-exchange-information-at-39-bitssecond-suggesting-a-biological-limit-Languages-that-are-lower-information-density-are-spoken-fast-Spanish--Japanese-while-denser-languages-are-spoken-more-slowly-Thai-Vietnamese-Chinese.md' at Object.fs.openSync (fs.js:579:3) at Object.fs.openSync (pkg/prelude/bootstrap.js:483:32) at Object.fs.writeFileSync (fs.js:1309:33) at output.forEach.out (/snapshot/google-keep-exporter/dist/main.js:0:0) at Array.forEach (<anonymous>) at convertNote (/snapshot/google-keep-exporter/dist/main.js:0:0) at files.forEach.filePath (/snapshot/google-keep-exporter/dist/main.js:0:0) at Array.forEach (<anonymous>) at convertNotes (/snapshot/google-keep-exporter/dist/main.js:0:0) at /snapshot/google-keep-exporter/dist/main.js:0:0 (node:88669) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:88669) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I've tried removing the referenced files (html and json) and the utility indeed appears to proceed until it runs into another "name too long" error on another note. Is it possible to catch this error and truncate the filename?

TypeError: null is not a string

Hello everyone. I have two folders in the project folder. One is the source folder which is downloaded from Google Takeout other is Output folder. When I have tried the following:
node main.js ./Takeout ./Output

It gives me

/home/q/Downloads/google-keep-exporter-master/node_modules/to-markdown/index.js:195
throw new TypeError(input + ' is not a string')
^

TypeError: null is not a string
at toMarkdown (/home/q/Downloads/google-keep-exporter-master/node_modules/to-markdown/index.js:195:11)
at parse (/home/q/Downloads/google-keep-exporter-master/parser.js:47:17)
at convert (/home/q/Downloads/google-keep-exporter-master/main.js:28:13)
at files.forEach.filePath (/home/q/Downloads/google-keep-exporter-master/main.js:39:27)
at Array.forEach ()
at Object. (/home/q/Downloads/google-keep-exporter-master/main.js:39:7)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)

Would you help me to solve this issue?

Newlines are collapsed

It looks like places where there are multiple newlines ("\n\n\n" in the JSON) are being exported with these collapsed down to a single newline in the converted .md files

UnhandledPromiseRejectionWarning - no access to the temp zip file generated by the program

but even when renaming the folder I get an error:

D:\Backup\google>google-keep-exporter-win.exe takeout-keep-renamed.zip keep_markdown
Unzipping ...
(node:1149600) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, scandir 'C:\Users\ggoer\AppData\Local\Temp\tmp-1149600UUQKO2A7RIR4/Takeout'
    at Object.fs.readdirSync (fs.js:895:3)
    at Object.fs.readdirSync (pkg/prelude/bootstrap.js:780:35)
    at C:\snapshot\google-keep-exporter\dist\main.js:0:0
    at Generator.next (<anonymous>)
    at fulfilled (C:\snapshot\google-keep-exporter\dist\main.js:0:0)
(node:1149600) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1149600) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

D:\Backup\google>

an nothing was exported

Originally posted by @aisbergde in #3 (comment)

Error: ENAMETOOLONG: name too long

Hello,

I keep getting an error on the output apparently related to the length of a note at the output, Here is the log:

UnhandledPromiseRejectionWarning: Error: ENAMETOOLONG: name too long, open 'output/

My conf is:
MacOS 10.15.5
node v12.18.0
npm 6.14.4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.