Geeknote-Evernoteのコンソールクライアント

ご挨拶、同僚!



私たちのプロジェクト、 Geeknoteについてお話ししたいと思います。 これはEvernoteのコンソールクライアントです。 オープンソースプロジェクトとソースコードはGithubで入手できます。 Geeknoteを使用すると、コマンドラインからEvernoteを操作できます。 Evernoteの主な機能はすべて実装されています-ノートの作成/削除、ノートブックとタグの作成、検索、およびマークダウン形式のノートの通常のテキストエディターによる編集。 つまり、bashスクリプト、cron、Evernote SDKを使用できないアプリケーションでEvernoteを使用できます。 このプロジェクトについて詳しく説明します。





プロジェクトのアイデア


私たちは、Evernoteのアクティブユーザーであり、個人用および非個人用のビジネスで使用し、Evernoteイデオロギーの利便性を深く信じています-すべてを1か所に保管します。 また、Evernoteは私たちにとって情報の集積であるため、維持しているサーバーの統計を収集するためにそれを使用するのが便利だと考えました。 そこで、サーバーのcron + bashスクリプトで使用できるコマンドライン用の単純なクライアントを作成するというアイデアが浮上しました。



何が行われた。 当社を使用した結果、Evernoteに情報が届きました。



監視テンプレートが変更されただけです。すべてがEvernoteの個別のノートブックに入ってきました。 私たちはそれが好きで、非常に便利であることがわかりました。 みんなのために、公開クライアントを作ることにしました。 そして彼らはそれをGeeknoteと呼びました、なぜそれが理解できると思います。



Geeknoteは何をしますか?


Geeknoteのすべての機能は、各コマンドの使用方法の例とともに、ドキュメント説明されています 。 しかし、私は私が好きな特別なことに焦点を当てます。



テキストエディターでの編集


Geeknoteでは、nano、mceditなど、好みの通常のコンソールテキストエディターでメモを編集できます。



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







WRITEという単語をコンテンツ属性として渡し、 デフォルトのテキストエディターが開きます。

ドキュメントのメモの編集について。

テキストエディターでメモを編集した後、マークダウンハンドラーを介して実行され、Evernoteに保存されます。



メモを作成-直接およびファイルから


Geeknoteでは、コンソールから直接メモを作成するか、ソースとしてダウンロードするファイルを指定できます。 ファイルはテキストである必要があります。Geeknoteはこれまでのところ、テキスト情報でのみ機能します。



メモだけを作成する例:



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





そして、ファイルから:



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







結論-URLのみ


Geeknoteでは、 -url-only属性を使用して検索できるため、検索結果に各ノートのWebバージョンへのリンクが表示されます。



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







インタラクティブなウェブ端末


Geeknoteがこのサイトでどのように機能するかを示すために、実際のEvernoteアカウントとSandboxをテストするだけで動作するインタラクティブなWebターミナルを開発しまし 。 認可はoAUTHを介して行われます。







ターミナルにはGeeknoteのすべての機能があり、 editを介した編集も可能です。 ログインや設定などの無効化されたシステムコマンド。



技術的には、Geeknote Webターミナルは、バックエンドおよび一時セッションでWebソケット+トルネードで実行されます。



前の検索セッションを保存する


検索した場合、結果のインデックスから見つかったメモにアクセスできます。 Geeknoteは最後のデータベース検索セッションを記憶しています。 例:



 $ 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"
      
      







ディレクトリ同期


Geeknoteパッケージには、ローカルディレクトリをEvernoteのノートブックファイルと同期するように設計されたgnsyncアプリケーションが追加されました。



たとえば、ステータスレポート、ログなどが毎日保存されるディレクトリがあります。 毎日-新しいファイル。 このディレクトリをEvernoteの目的のメモ帳などと同期するようgnsyncを介してクラウンを設定すると、すべての新しいファイルが新しいメモとして追加されます。



gnsyncコマンドの例:



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







チームのオートコンプリート


Geeknoteを手動で操作する場合は、ダブルクリックTABを使用してコマンドとプロンプトを自動補完できます。



今日のプロジェクト


このプロジェクトは、 Evernote Devcupコンテストに参加しています。 投票やいいね、そして私たちが始めた週のフィードバックから判断すると、プロジェクトのアイデアは需要があります。 Geeknoteが気に入ったら、コンテストで声をかけてください。

プロジェクトのページ 。 感謝します。



特別にコンテストのために、プロジェクトのビデオが英語で作成され、簡単に説明されました。







このプロジェクトは、ニーズに合わせて使用​​し、フィードバックを受け取って喜んでいるため、開発を続けます。 機能に関するアイデアがある場合は、コメントまたはプロジェクトのGithubページにそれらを残してください。



著者について


私の名前はVitaliy Rodnenkoです。長い間、ファジー重複検索とWebドキュメントの帯状疱疹アルゴリズムに関する記事を書いており、私の技術ブログではPythonでの簡単な実装を示しました 。 また、同僚のMoiseenko SemenとGureev Ivanは、 スタジオのお気に入りの従業員です。



まとめ


GeeknoteはEvernoteのコンソールクライアントです。 コマンドラインからEvernoteを操作できるため、自動化、システム管理、bashスクリプトのプログラミングなどでEvernoteを使用できる可能性が広がります。




All Articles