{ "info": { "author": "Florian Baumann", "author_email": "flo@noqqe.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: BSD :: OpenBSD", "Programming Language :: Python :: 2.7", "Topic :: Documentation", "Topic :: Terminals", "Topic :: Utilities" ], "description": ".. image:: https://travis-ci.org/noqqe/rvo.svg?branch=master\n :target: https://travis-ci.org/noqqe/rvo\n\n.. image:: https://codecov.io/gh/noqqe/rvo/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/noqqe/rvo\n\n.. image:: https://codeclimate.com/github/noqqe/rvo/badges/gpa.svg\n :target: https://codeclimate.com/github/noqqe/rvo\n :alt: Code Climate\n\n.. image:: https://raw.github.com/noqqe/rvo/master/images/rvo.png\n\nrvo\n===\n\nI use ``rvo`` for managing my text data.\n\n\n- Notes\n- Docs (personal wiki)\n- Bookmarks\n- Journal\n- Quotes\n\nand the like.\n\nMotivations\n~~~~~~~~~~~\n\nWhen I started writing rvo, my goal was designing an utility that feels\na little like markdown. It should be usable very easily. A handy program\nthe user likes to use. At the same time it should be easy to\nintegrate with other tools. Taking the typical unix approach. Make it\nread and write to stdin/out. Have it fully configurable with commandline\nparameters.\n\nIt basically should not matter if a human or a machine is interacting\nwith ``rvo``.\n\nFeatures\n~~~~~~~~\n\n.. image:: https://raw.github.com/noqqe/rvo/master/images/screenshot.png\n\n- Rich search capabilities\n- Statistics about the documents\n- Encryption of single documents using Salsa20 and Blake2b\n- Interacts with ``vim``\n- Fetching the title of a link to be the title of your document\n- Mail an article to a friend of yours.\n- Easily interact with other programs using stdin / stdout\n\nInstallation\n~~~~~~~~~~~~\n\nCurrently, rvo only works in python2.7\n\n::\n\n pip install rvo\n\nAfter that, setup a mongodb. You may use your favorite packagemanager.\nFor me it's OpenBSDs \"pkg_add\".\n\n::\n\n\t\t/etc/init.d/mongod start\n\nConfiguration\n~~~~~~~~~~~~~\n\nAdd this to the config file ``~/.rvo.conf``\n\n::\n\n [General]\n MongoDB = mongodb://localhost/\n DB = rvo\n Editor = vim\n Pager = vim\n PagerOptions = -R\n MailFrom = user@example.net\n\nAfter it was successfully configured, run ping to verfiy\nthe connection to mongodb works.\n\n::\n\n\t\t$ rvo ping\n\t\t>>> Trying to connect to database...\n\t\t>>> Connection SUCCESSFUL\n\t\t>>> Trying to write, read, delete to test_collection...\n\t\t>>> Interactions were SUCCESSFUL\n\nQuickstart\n~~~~~~~~~~\n\n`rvo` is a really friendly piece of software. It helps you whereever it needs to.\nYou may start with a simple\n\n::\n\n\t\t$ rvo --help\n\nTo add a document, just\n\n::\n\n\t\t$ rvo add\n\nand tada, your very first document is created. Add content from whatever you like. As said before,\nyou can store notes, write diary. After that, check out your documents.\n\n::\n\n $ rvo list\n\n\nThats all. Just kidding. Have a look into all the the other commands!\n\n::\n\n \t\tadd Add a document.\n \t\tanalyze Text analysis on a document\n \t\tappend Append content to a document.\n \t\tdelete Deletes a document.\n \t\tedit Edit the content of an document.\n \t\texport Exports all document\n \t\tinfo Shows metadata of a document\n \t\tlist List documents from store\n \t\tlog Show transactions\n \t\tmail Mails a document to a recipient for your choice\n \t\tmemories Some nostalgia by showing documents some years ago\n \t\tmodify Modifies a documents metadata\n \t\tping Verifys the connection to the database\n \t\tshow Shows a document\n \t\tstats Show statistics about categories and tags\n\nDocument titles\n~~~~~~~~~~~~~~~\n\nThe title from a normal document is generated from the first line of the\ncontent. Leading whitespace and ``#`` will be stripped away.\n\n::\n\n $ rvo add -t javascript -c notes\n # Meeting Notes\n\n * We should probably throw away our .js applications\n * ...\n\nSo \"Meeting Notes\" will be the document title. This also happens when you edit\na document. So if you want to change the title, edit the content and after\nsaving the title gets updated.\n\nStdout\n~~~~~~\n\nNormally, ``rvo`` opens your favorite ``PAGER``. If output redirection\nis detected it just outputs plain content to whatever file you like.\n\n::\n\n $ rvo list -c meeting\n $ rvo show 1 > /tmp/meeting.md\n\nAlso without redirection the content is being ``cat`` ed by using the ``-s`` flag\n\n::\n\n $ rvo show -s 2\n\nStdin\n~~~~~\n\nRead content from stdin\n\n::\n\n $ echo foo | rvo add -t test -c notes\n\nExport\n~~~~~~\n\nYou can easily export all what you've inserted.\n\n::\n\n rvo export -c twitter --to json | python -m json.tool\n rvo export -t work --to markdown\n\nOr just loop over the output\n\n::\n\n rvo list -l 5000\n for x in {1..5000} ; do rvo show --stdout $x ; done\n\nDocument identification\n~~~~~~~~~~~~~~~~~~~~~~~\n\nAs a typical workflow, you do a list query and You can either use the\nfull mongodb objectid or a shortid.\n\nEverytime you do a list query, a resultset will be built. Every result\ngets a shortid assigned to it and this mapping is being saved in\nmongodb.\n\nI've implemented shortids because they are easier to use. You dont have\nto copy the full objectid using copy with mouse. ``shortids`` are easier\nto use!\n\nCrypto\n~~~~~~\n\nThe crypto used is written with `Salsa20` and `blake2b`. When the first\ndocument is created and being encrypted, rvo prompts for the initial password.\nKeep this password save. You will need it more often.\n\nThe password you set is used to encrypt a randomly generated character long\npassword. Its stored within the database. Most important. The generated password\nis used to encrypt and decrypt every document (when encryption is set).\n\nBasically that means: there is one password (chosen by you) that unlocks\nanother generated password, that encrypts your document.\n\nThis ensures a lot of stuff. For example easy password changes for the user.\nOr setting a slightly different password accidentially for one document.\n\n\nLinks\n~~~~~\n\nLinks: If the content is just an url, it gets automatically the category\n``links`` and its html title will be fetched to be used as ``title``\nwithin the document.\n\nDevelopment\n-----------\n\nWording.\n\n- docid is what is being used to identify a document. It can be both, a\n shortid or a ObjectId (MongoDB)\n\n- Documentstore basically means mongodb at the moment\n\n- All commands have to be stored in submodule commands and can contain\n only 1 command that has to be named exactly as the filename is. This\n is required for click to parse all commands.\n\nData Structure\n~~~~~~~~~~~~~~\n\nThe native json document that goes into MongoDB looks like this\n\n::\n\n {\n \"_id\" : ObjectId(\"568d344c6815b45596d1c7ad\"),\n \"title\": \"My very first entry\"\n \"content\" : \"\",\n \"created\": ISODate(\"2014-09-03T07:37:52Z\"),\n \"updated\": ISODate(\"2015-09-03T07:37:52Z\"),\n \"tags\": [ \"mongodb\", \"markdown\" ],\n \"category\": [\"notes\"],\n \"encrypted\": false,\n }\n\nSince rvo uses ``pymongo``, its way easier dealing with documents.\nPython native types are automatically converted to the corresponding\ntypes in json/mongodb. The following is a native python dictionary.\n\n::\n\n {\n 'title': '2-Factor-Auth',\n 'content': '',\n 'created': datetime.datetime(),\n 'updated': datetime.datetime(),\n 'tags': ['markdown, 'mongodb'],\n 'encrypted': False,\n 'categories': ['notes'],\n }\n\nMissing\n~~~~~~~\n\nThere are also features, that rvo does not have and probably never gets.\n\n- Version control for your documents\n- Multiple users or an \"author\" field.\n\nLast but not least\n~~~~~~~~~~~~~~~~~~\n\nDo not confuse `rvo` with http://www.rvo.nl. Rijksdienst voor Ondernemend Nederland.\nIt has nothing to do with it. Still, I really like their logo.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/noqqe/rvo", "keywords": "links mongodb quotes notes journal diary", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "rvo", "package_url": "https://pypi.org/project/rvo/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rvo/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/noqqe/rvo" }, "release_url": "https://pypi.org/project/rvo/23.0.6/", "requires_dist": null, "requires_python": null, "summary": "Managing text data from the commandline", "version": "23.0.6" }, "last_serial": 2667420, "releases": { "20.0.0": [ { "comment_text": "", "digests": { "md5": "babfba021619d144590b97fcada7b27b", "sha256": "70a8d972981cb299efa65e5738146366204d69acbf62cf7d86c65d30c1b82ab4" }, "downloads": -1, "filename": "rvo-20.0.0.tar.gz", "has_sig": false, "md5_digest": "babfba021619d144590b97fcada7b27b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19925, "upload_time": "2016-05-15T19:05:20", "url": "https://files.pythonhosted.org/packages/62/c5/5df79657b477180c8f881e6ba7dca00122b248127625ec2fdd125e9b4890/rvo-20.0.0.tar.gz" } ], "21.0.0": [ { "comment_text": "", "digests": { "md5": "9fb125ecd9a62f1370d507517ba189ae", "sha256": "6612e4e2d3f4a9c14f9da391108169615b47391d2126914471feacdaf42b6d87" }, "downloads": -1, "filename": "rvo-21.0.0.tar.gz", "has_sig": false, "md5_digest": "9fb125ecd9a62f1370d507517ba189ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19931, "upload_time": "2016-05-30T07:08:38", "url": "https://files.pythonhosted.org/packages/ba/5c/45e816a87b788c5e2ba6b022bc36cbb565c5ea9b025d66582809d63f604f/rvo-21.0.0.tar.gz" } ], "22.0.0": [ { "comment_text": "", "digests": { "md5": "1aeaf94ee5c1f8a350dc20dc970801dd", "sha256": "dbf47e790a077eddac0f9cb3ad66c2fd27862470ea36d6eecbec5cc1ae387cab" }, "downloads": -1, "filename": "rvo-22.0.0.tar.gz", "has_sig": false, "md5_digest": "1aeaf94ee5c1f8a350dc20dc970801dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20441, "upload_time": "2017-01-22T09:35:30", "url": "https://files.pythonhosted.org/packages/28/b7/703273a72ff840802182c4904f70849313486d57b6231b90f53d2c9c130a/rvo-22.0.0.tar.gz" } ], "23.0.0": [ { "comment_text": "", "digests": { "md5": "a119e7a42dad61f842ad6fa10f238775", "sha256": "c4cd075a721604c63cd20a4da7e9a248cee6ae4d39bd19c508c5042d8070fa46" }, "downloads": -1, "filename": "rvo-23.0.0.tar.gz", "has_sig": false, "md5_digest": "a119e7a42dad61f842ad6fa10f238775", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20958, "upload_time": "2017-02-13T14:15:14", "url": "https://files.pythonhosted.org/packages/43/03/7e787f90a3846b18e95cd5e3a697e42c06c2ba66255fe20966d3cbd5a114/rvo-23.0.0.tar.gz" } ], "23.0.2": [ { "comment_text": "", "digests": { "md5": "6b229ad1b61a6a945ce75653ff9ddf5a", "sha256": "c92011246b78f0204ccad71538b37655997138a0879b6116357e888f5d762c03" }, "downloads": -1, "filename": "rvo-23.0.2.tar.gz", "has_sig": false, "md5_digest": "6b229ad1b61a6a945ce75653ff9ddf5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24196, "upload_time": "2017-02-16T15:08:11", "url": "https://files.pythonhosted.org/packages/f4/f6/24e07c81910dbd04c4bb782b97e9ce0b12a53e716152e9a1cb33423585c5/rvo-23.0.2.tar.gz" } ], "23.0.3": [ { "comment_text": "", "digests": { "md5": "8384ffe320978cf3f90a7522f6818b64", "sha256": "ab3648bd613e6450c5e198ce85c5b10859c7a83a87c6a8d0dae3d47f5074b6c4" }, "downloads": -1, "filename": "rvo-23.0.3.tar.gz", "has_sig": false, "md5_digest": "8384ffe320978cf3f90a7522f6818b64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24203, "upload_time": "2017-02-16T15:10:01", "url": "https://files.pythonhosted.org/packages/af/6e/2dc0c14553cb3e1ec1d666238bd12f0cc3b769eb1b296930081f07d26ed1/rvo-23.0.3.tar.gz" } ], "23.0.5": [ { "comment_text": "", "digests": { "md5": "3c4a1e4b62e7e6296a2ab9f67e498260", "sha256": "e8205659241d6c20cb65c1225585715a43e906f778ddb2d6b2d8d3aaca9b02af" }, "downloads": -1, "filename": "rvo-23.0.5.tar.gz", "has_sig": false, "md5_digest": "3c4a1e4b62e7e6296a2ab9f67e498260", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24234, "upload_time": "2017-02-25T08:02:42", "url": "https://files.pythonhosted.org/packages/aa/b7/dbcb152023507cc3a8a9c7ae9343a9399d6ad8efbc494fbfde893a168a29/rvo-23.0.5.tar.gz" } ], "23.0.6": [ { "comment_text": "", "digests": { "md5": "f5ace86bfae020d66dfed1d051bf1bfb", "sha256": "cabf06b8ce9c2de7c87334a39d399c1737bdeff99e9012d21b220c66aea30531" }, "downloads": -1, "filename": "rvo-23.0.6.tar.gz", "has_sig": false, "md5_digest": "f5ace86bfae020d66dfed1d051bf1bfb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24249, "upload_time": "2017-02-25T09:13:16", "url": "https://files.pythonhosted.org/packages/90/31/d8df2e56d6e67ce06933a153c8681a5e17912cbc727219ff0ed25a9fb210/rvo-23.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f5ace86bfae020d66dfed1d051bf1bfb", "sha256": "cabf06b8ce9c2de7c87334a39d399c1737bdeff99e9012d21b220c66aea30531" }, "downloads": -1, "filename": "rvo-23.0.6.tar.gz", "has_sig": false, "md5_digest": "f5ace86bfae020d66dfed1d051bf1bfb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24249, "upload_time": "2017-02-25T09:13:16", "url": "https://files.pythonhosted.org/packages/90/31/d8df2e56d6e67ce06933a153c8681a5e17912cbc727219ff0ed25a9fb210/rvo-23.0.6.tar.gz" } ] }