📜 ⬆️ ⬇️

Geeknote - console client for Evernote

Greetings, colleagues!

I want to tell you about our project - Geeknote . This is a console client for Evernote. The Open Source project and source codes are available on Github. Geeknote allows you to work with Evernote from the command line. Implemented all the basic functions of Evernote - creating / deleting notes, creating notebooks and tags, searching, as well as editing through a plain text editor notes in markdown format. That is, you can use Evernote in bash scripts, cron, any applications where you can not use the Evernote SDK. I'll tell you more about the project.


Project idea

We are active users of Evernote and use it in our affairs, personal and non-personal, as well as deeply believe in the convenience of the Evernote ideology - keep everything in one place. And since Evernote is a concentration of information for us, we thought that it would be convenient to use it in order to collect statistics of the servers that we conduct. So the thought came to write a simple command line client that could be used in cron + bash scripts of our servers.
')
What was done. As a result of using us in Evernote information arrives:

It’s just that the monitoring pattern has changed - everything has come to the separately allocated notepads in Evernote. We liked it, it turned out to be very convenient. We decided to make a public client, for everyone. And they called him Geeknote, I think it is clear why.

What is Geeknote able?

All Geeknote functionality is described in the documentation , with examples of using each command. But I will focus on special things that I like.

Editing in a text editor

Geeknote allows you to edit a note in a regular console text editor that you like - nano, mcedit, etc.

$ geeknote edit --note "Shoplist 22.05.2012" --title "Shoplist 23.05.2012" --content "WRITE" 


Pass the word WRITE as the content attribute and the default text editor opens.
About editing notes in the documentation .
After editing a note in a text editor, it is run through the markdown handler and saved to Evernote.

Creating notes - directly and from a file

In Geeknote, you can create a note directly through the console, or specify the file you want to download as a source. The file should be text, Geeknote while working only with textual information.

An example of creating just notes:

 $ geeknote create --title "Shopping list 22.04.2012" --content "Don't forget to buy milk, turkey and chips." --notebook "Family" --tags "shop, holiday, important" 

And from the file:

 $ geeknote create --title "Web-site queues" --content /home/website/queues.log --notebook "Projects" --tags "queues, logs" 


Conclusion --url-only

In Geeknote, you can search with the --url-only attribute, so in the search results you will see links to the web version of each note.

 $ geeknote find --search "Shopping" --url-only 


Interactive Web Terminal

To demonstrate how Geeknote works on the site, we have developed an interactive web terminal that can work with real Evernote accounts and with Sandbox if you just want to test. Authorization occurs through oAUTH.



The terminal has all the functionality of Geeknote, even editing through edit . Disabled system commands such as login and settings.

Technically, the web terminal Geeknote works on web-sockets + Tornado in the backend and temporary sessions.

Save previous search session

If you performed a search, you can access the found notes through their index in the results. Geeknote remembers the last database search session. Example:

 $ geeknote find "*" Search request: intitle: * Total found: 9 1 : 02.07.2012 Go shopping 2 : 02.07.2012 Shopping list 22.04.2012 3 : 01.07.2012 webpp.ru log 4 : 01.07.2012 The title 5 : 23.06.2012 Shopping list 25.04.2012 6 : 23.06.2012 Shopping list 22.04.2012 7 : 20.06.2012 Martin_Dzhordzh - Igra_prestolov_Kniga_I 8 : 20.06.2012 2012-06-15-are-you-a-problem-or-a-solution 9 : 20.06.2012 2012-06-13-pedagogical-poem-by-anton-makarenko $ geeknote show 1 #   $ geeknote remove 2 #     $ geeknote edit 3 --content "WRITE" 


Directory Sync

In the Geeknote package, we added the gnsync application, which is designed to synchronize local directories with files with notebooks in Evernote.

For example, you have a directory where status reports, logs, etc. are stored every day. Every day - new files. Configure cron through gnsync to synchronize this directory with the desired notepad in Evernote and everything, all new files will be added as new notes.

Sample gnsync command :

 $ gnsync --path /home/project/xmpp/logs/ --mask "*.logs" --logpath /home/user/logs/xmpp2evernote.log --notebook "XMPP logs" 


Autocomplete commands

If you work with Geeknote manually, you can use double-click TAB to autocomplete commands and hints.

Project today

The project participates in the competition Evernote Devcup . Judging by the voices and likes, as well as feedback for the week, as we started - the idea of ​​the project is in demand. If you like Geeknote, please support us with a voice in the contest.
Our page on the project . We are grateful.

Especially for the competition was prepared a video of the project, briefly telling about it, in English.



The project will continue to develop, as we use it for our needs, as well as received feedback and it pleases. If you have any ideas about functionality, please leave them in the comments or on the Github page of the project .

About the authors

My name is Rodnenko Vitaly, I have been writing articles on habr about fuzzy duplicates and the shingles algorithm for web documents for a long time, and in my technical blog I showed its simple implementation in Python . As well as my colleagues Moiseenko Semen and Gureev Ivan are the favorite employees of our studio .

Summary

Geeknote is a console client for Evernote. Allows you to work with Evernote from the command line, thereby opening up the possibility of using Evernote in automation, system administration, programming bash scripts, etc.

Source: https://habr.com/ru/post/147448/


All Articles