{ "info": { "author": "Tanner Collin", "author_email": "pypi@tannercollin.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: POSIX :: Linux", "Operating System :: Unix", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: System :: Filesystems", "Topic :: Text Editors :: Text Processing" ], "description": "# standardnotes-fs\n\n## Description\nMount your [Standard Notes](https://standardnotes.org/) account as a filesystem and edit your notes as plain text files.\n\nThis allows you to edit your notes in your favorite text editor, use standard \\*nix programs and Bash scripts to manipulate them, or back them up with rsync.\n\nThis is an _unofficial_ Standard Notes client.\n\n## Example\n\n```text\n$ snfs ~/notes\nPlease enter your Standard Notes username: tanner@example.com\nPlease enter your password (hidden): \n\n$ tree ~/notes\n/home/tanner/notes\n\u251c\u2500\u2500 Accounts.txt\n\u251c\u2500\u2500 Books.txt\n\u251c\u2500\u2500 Checklists.txt\n\u251c\u2500\u2500 Invention Ideas.txt\n\u251c\u2500\u2500 News Notes.txt\n\u251c\u2500\u2500 Shopping.txt\n\u251c\u2500\u2500 standardnotes-fs.txt\n\u251c\u2500\u2500 Todo.txt\n\u2514\u2500\u2500 Wifi.txt\n0 directories, 31 files\n\n$ cat ~/notes/Todo.txt\nV Get groceries\nV Laundry\nX Replace kitchen light\nO Write standardnotes-fs readme\nO Release standardnotes-fs\n\n$ vim ~/notes/Shopping.txt\n\n$ rsync -Wa ~/notes/ ~/notes_backup/\n```\n\n### When finished\n\nUnmount the directory:\n```text\n$ fusermount -u ~/notes\n```\n\nLogout to switch accounts (optional):\n```text\n$ snfs --logout\n```\n\n## Usage\n```text\nusage: snfs [-h] [--username USERNAME] [--password PASSWORD] [-v]\n [--foreground] [--sync-sec SYNC_SEC] [--sync-url SYNC_URL]\n [--no-config-file] [--config CONFIG] [--logout]\n [mountpoint]\n\npositional arguments:\n mountpoint local mountpoint folder\n\noptional arguments:\n -h, --help show this help message and exit\n --username USERNAME Standard Notes username to log in with\n --password PASSWORD Standard Notes password to log in with\n NOTE: It is NOT recommended to use this option!\n The password may be stored in history, so\n use the password prompt instead.\n -v, --verbosity output verbosity -v or -vv (implies --foreground)\n --foreground run standardnotes-fs in the foreground\n --sync-sec SYNC_SEC how many seconds between each sync. Default: 30\n --sync-url SYNC_URL URL of Standard File sync server. Defaults to:\n https://sync.standardnotes.org\n --no-config-file don't load or create a config file\n --config CONFIG specify a config file location. Defaults to:\n /home/tanner/.config/standardnotes-fs/standardnotes-fs.conf\n --logout delete login credentials saved in config and quit\n```\n\n## Installation\n### For Debian/Ubuntu based systems\n\nInstall dependencies:\n```text\n$ sudo apt-get install fuse python3 python3-pip\n```\n\n#### With Sudo\n\nInstall standardnotes-fs and login:\n```text\n$ sudo pip install standardnotes-fs\n$ snfs ~/notes\nPlease enter your Standard Notes username: tanner@example.com\nPlease enter your password (hidden): \n```\n\n#### Without Sudo\n\nInstall standardnotes-fs and login:\n```text\n$ pip install --user standardnotes-fs\n$ python -m snfs ~/notes\nPlease enter your Standard Notes username: tanner@example.com\nPlease enter your password (hidden): \n```\n\nNote: if you don't want to use the `python -m` prefix, you'll need to add python's local bin directory to your `$PATH`.\n\n### For OS X systems\n\nInstall dependencies:\nhttps://osxfuse.github.io/\n```text\n$ brew install python3\n```\n\nInstall standardnotes-fs and login:\n```text\n$ pip install standardnotes-fs\n$ snfs ~/notes\nPlease enter your Standard Notes username: tanner@example.com\nPlease enter your password (hidden): \n```\n\n## Notes\n* Important: standardnotes-fs has not been tested vigorously yet. Before you use it, please make a backup of your notes by selecting `Account > Download Data Archive` in the official Standard Notes client.\n* Your account password is not stored and the Python variable is deleted after your encryption keys are generated with it.\n* Your account's encryption keys are stored in a config file on disk. This can be disabled with `--no-config-file`.\n* By default the client syncs with the Standard Notes server every 30 seconds and after any note modifications are saved.\n* If connection to the server is lost, it will keep trying to sync periodically.\n* Filesystem functions currently supported: getattr, readdir, read, truncate, write, create, unlink, utimens, and rename.\n* Creating hidden files (names beginning with a period) is disabled to prevent junk file creation.\n* Notes with identical names are deduplicated by adding a number to the end.\n* On the filesystem, notes will have the '.txt' extension appended to their name\n\n## License\nThis program is free and open-source software licensed under the GNU GPLv3. Please see the `LICENSE` file for details.\n\nThat means you have the right to study, change, and distribute the software and source code to anyone and for any purpose as long as you grant the same rights when distributing it. You deserve these rights. Please take advantage of them because I like pull requests and would love to see this code put to use.\n\n## Acknowledgements\nThanks to all the devs behind Standard Notes, Udia, Python, libfuse and FUSE.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tannercollin/standardnotes-fs", "keywords": "standard-notes standard-file fuse standardnotes secure encrypted notes fusepy", "license": "GPLv3", "maintainer": "Tanner Collin", "maintainer_email": "pypi@tannercollin.com", "name": "standardnotes-fs", "package_url": "https://pypi.org/project/standardnotes-fs/", "platform": "", "project_url": "https://pypi.org/project/standardnotes-fs/", "project_urls": { "Homepage": "https://github.com/tannercollin/standardnotes-fs" }, "release_url": "https://pypi.org/project/standardnotes-fs/0.0.2/", "requires_dist": [ "appdirs", "fusepy", "iso8601", "pycryptodome", "requests" ], "requires_python": ">=3", "summary": "Mount your Standard Notes as a filesystem.", "version": "0.0.2" }, "last_serial": 3910606, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d3eb862a9590e6601fe39bdae38e9c31", "sha256": "dfb9adf5b96f2dd7e3ae9783943e78b5982dbb2e31be95a7b1511beed7a5c1ca" }, "downloads": -1, "filename": "standardnotes_fs-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d3eb862a9590e6601fe39bdae38e9c31", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12105, "upload_time": "2018-05-29T02:55:19", "url": "https://files.pythonhosted.org/packages/a5/b8/1e3c0efa4f15cbddf1af115822c2bc41ee1bc97b7b358512195f77de4f53/standardnotes_fs-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c27cfd801f12e17d516f7d54d803e72f", "sha256": "85abb00546b73e91ca0aeb1a4dae342c2ef67d05f99e74fcbb9ae442dd52c487" }, "downloads": -1, "filename": "standardnotes-fs-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c27cfd801f12e17d516f7d54d803e72f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 10255, "upload_time": "2018-05-29T02:55:21", "url": "https://files.pythonhosted.org/packages/43/d9/72d339946c89e5261cc0b21e2bc94ea7bc41f525564e65f50e7685185235/standardnotes-fs-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "21d63d6433b12a99c5fe5796239e91ed", "sha256": "6014edf056bd7b6e88b84948c0a012f6a8f56199d79ebfaa4576afc566368048" }, "downloads": -1, "filename": "standardnotes_fs-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "21d63d6433b12a99c5fe5796239e91ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12101, "upload_time": "2018-05-29T21:29:27", "url": "https://files.pythonhosted.org/packages/29/f3/a35dcdb68e1dc328870ebeaabda51ae1dea69a08926841ae8dbcd1e7bf5c/standardnotes_fs-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a02771bb909d35a1162451f2300b8a13", "sha256": "dd4a5324f984d45e9f8c737d4db11c2fcb54b6f5634375a77ceb75f94e196a5d" }, "downloads": -1, "filename": "standardnotes-fs-0.0.2.tar.gz", "has_sig": false, "md5_digest": "a02771bb909d35a1162451f2300b8a13", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 10258, "upload_time": "2018-05-29T21:29:28", "url": "https://files.pythonhosted.org/packages/1a/f7/5c38f76c21b673476985465b7acd901300b1a3ba38f04ea9f955c3344103/standardnotes-fs-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "21d63d6433b12a99c5fe5796239e91ed", "sha256": "6014edf056bd7b6e88b84948c0a012f6a8f56199d79ebfaa4576afc566368048" }, "downloads": -1, "filename": "standardnotes_fs-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "21d63d6433b12a99c5fe5796239e91ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12101, "upload_time": "2018-05-29T21:29:27", "url": "https://files.pythonhosted.org/packages/29/f3/a35dcdb68e1dc328870ebeaabda51ae1dea69a08926841ae8dbcd1e7bf5c/standardnotes_fs-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a02771bb909d35a1162451f2300b8a13", "sha256": "dd4a5324f984d45e9f8c737d4db11c2fcb54b6f5634375a77ceb75f94e196a5d" }, "downloads": -1, "filename": "standardnotes-fs-0.0.2.tar.gz", "has_sig": false, "md5_digest": "a02771bb909d35a1162451f2300b8a13", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 10258, "upload_time": "2018-05-29T21:29:28", "url": "https://files.pythonhosted.org/packages/1a/f7/5c38f76c21b673476985465b7acd901300b1a3ba38f04ea9f955c3344103/standardnotes-fs-0.0.2.tar.gz" } ] }