{ "info": { "author": "zlg", "author_email": "zlg+vgstash@zlg.space", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3 :: Only", "Topic :: Games/Entertainment", "Topic :: Utilities" ], "description": "# vgstash - a place to stash your game collection\n\nIf you love video games, you've probably amassed a collection of them, across\nmany different systems; physical, digital, and everything in-between. At some\npoint, a player may want to know a few key pieces of information that may steer\ntheir gaming. These questions are great for quelling boredom and keeping a\ngaming backlog manageable:\n\n* Which games do I own?\n* Which games have I beaten or completed?\n* Which games do I need to beat?\n* What was the note I left for X game?\n\nvgstash seeks to answer these type of questions in a simple and extensible way.\n\n# Installation\n\nvgstash is available via `pip`:\n\n~~~\npip install [--user] vgstash\n~~~\n\nPlease note that vgstash is under heavy development at present. Do not install\nunless you are interested in helping its development.\n\n# Concept\n\nThe core concept of vgstash is the game itself. Every game in a player's\ncollection has a few important attributes, all of which are obvious to the\nplayer:\n\n* Title\n* System\n* Ownership\n * unowned\n * physical\n * digital\n * both\n* Progress\n * unbeatable\n * new\n * playing\n * beaten\n * complete\n* Notes\n\nThink of any game that you have a history with. Let's say it was a game you\nbought as part of a Humble Bundle, but haven't started playing yet. Internally,\nvgstash tracks it somewhat like this:\n\n```\n.--------------------------------------------------------.\n| Title | System | Ownership | Progress |\n|------------------------+--------+-----------+----------|\n| FTL: Faster Than Light | Steam | digital | new |\n'--------------------------------------------------------'\n```\n\nThis is the bare minimum information you need to meaningfully track a video \ngame in your collection.\n\n# Command Line Usage\n\nvgstash comes with a command line client of the same name, which gives you\nhigh level commands to manipulate the database with. It's the reference\nimplementation for a vgstash client.\n\nIf you wanted to add the above game to your collection, you'd do it like this:\n\n```bash\n$ vgstash add 'FTL: Faster Than Light' Steam d n\nAdded FTL: Faster Than Light for Steam. You digitally own it and you have not started it.\n```\n\nPretty easy, huh? Each game and system added to vgstash is free-form and can be\ntuned to match the user's preferences.\n\n## Quoting Game Titles\n\nA note on characters: some shells treat certain characters differently. The most \ncommon ones you'll run into are punctuation, like single quotes ('), double \nquotes (\") and exclamation points (!). You'll need to search your shell's manual \nfor \"character escaping\" to get the details.\n\nLet's take a few game titles that might be problematic for a shell, and add them \nto vgstash. These examples assume you're using bash (the Bourne Again SHell) or \nsomething comparable.\n\nFirst: a title with single quotes and exclamation points:\n\n```bash\n$ vgstash add \"Eek! It's a Bomb!\" Android d n\n```\n\nDouble quotes are useful for quoting just about any game title.\n\nNext is a little more insidious: a title with two (or more) exclamation points:\n\n```bash\n$ vgstash add 'Mario Kart: Double Dash!!' GCN p n\n```\n\nNote that we're using single quotes; if we used double quotes, then the `!!` \nwould expand to the last command entered into the shell, creating\n`Mario Kart: Double Dash`. Quite different from what\nyou'd expect!\n\nBut what if we, somehow, had both single quotes *and* sequential exclamation \npoints? Single-quoted strings cannot escape a single quote character. Double \nquotes won't stop the `!!` expansion. Escaping the exclamation points retains \nthe backslash; what is one to do? There are a few ways to tackle this one:\n\n```bash\n# The easy way\n$ vgstash add $'Some title\\'s crazy!!' PC d n\n\n# The hard way\n$ vgstash add Some\\ title\\'s\\ crazy\\!\\! PC d n\n\n# The exotic way\n$ vgstash add \"Some title\"\\''s crazy!!' PC d n\n```\n\nThe `$'text'` form is handy when you need to use double and/or single quotes \nalongside exclamation points, or you can just escape every special character \n(including space) as needed.\n\nThe \"exotic\" one takes advantage of the shell's built-in string concatenation \nand the ability to mix quoting styles. First we have `Some title` in double \nquotes; then an escaped single quote for literal output; then `s crazy!!` in \nsingle quotes to avoid the `!!` expansion.\n\nThe last option is to disable the feature (history expansion) altogether, though \nyou'll miss out on nice stuff like `sudo !!`. In bash, it's disabled with `set\n+H` or `set +o histexpand`. Change `+` to `-` to turn it back on when you're \ndone.\n\nThese tips may not work in all shells, so try using `echo` to print the title\nyou want before trying to add it in vgstash! If you accidentally add a game this\nway, copy the title that's output in the success message and paste it into your\ndelete command:\n\n```bash\n# Let's say I used 'ls' last\n$ vgstash add \"my game!!\" PC d n\nAdded my gamels for PC. You own it digitally and it's new.\n$ vgstash delete \"my gamels\" PC\nRemoved my gamels for PC from your collection.\n```\n\nThat's it! This is something that the shell does before vgstash begins \nprocessing its arguments, so please don't report any bugs dealing with quoting.\n\n# Commands\n\nvgstash has a fairly small set of commands:\n\n* add\n* delete\n* export\n* import\n* list\n* notes\n* update\n\nThe power is in the `list` command. vgstash comes with a set of default filters \nthat allow you to reason about your game collection. For example, this command \nwill show you every game marked \"playing\" that you also own in some way:\n\n```bash\n$ vgstash list -w 40 playlog\nTitle | System | Own | Progress\n----------------------------------------\nCrashmo | 3DS | D | P\nEver Oasis | 3DS | P | P\nFire Emblem | 3DS | P | P\nMonster Hun | 3DS | D | P\nBox Pusher | DSi | D | P\nGlow Artisa | DSi | D | P\nDark Souls | PS3 | P | P\n```\n\nConsult `vgstash --help` for further usage information.\n\n# Roadmap\n\nThese are planned for the full 0.3 release:\n\n* command line interface finished\n* Match feature-set with `master`\n* Iron out any initial bugs on Windows and Mac (testers welcome!)\n\nGoals planned for the 0.4 release:\n\n* import and export with JSON\n\nGoals planned for the 0.5 release:\n\n* some sort of GUI (Tk and Qt are current candidates)\n\nGoals planned for the 1.0 release:\n\n* Kivy-based interface (to release on Android via F-Droid)\n\nIf this interests you, please [e-mail me](mailto:zlg+vgstash@zlg.space).\n\n\n", "description_content_type": "text/markdown; variant=CommonMark", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://git.zlg.space/vgstash", "keywords": "", "license": "AGPL-3.0-only", "maintainer": "", "maintainer_email": "", "name": "vgstash", "package_url": "https://pypi.org/project/vgstash/", "platform": "", "project_url": "https://pypi.org/project/vgstash/", "project_urls": { "Homepage": "https://git.zlg.space/vgstash", "Source": "https://git.zlg.space/vgstash" }, "release_url": "https://pypi.org/project/vgstash/0.3b5/", "requires_dist": [ "Click (>=6.0)", "PyYAML" ], "requires_python": "", "summary": "a video game collection management module, backed by SQLite", "version": "0.3b5" }, "last_serial": 5319191, "releases": { "0.3a3": [ { "comment_text": "", "digests": { "md5": "162cbc7f94407aaff0bc607f3d3fe9dd", "sha256": "4e0b87c0efe612be1bb7eef85224145a72fab5135961dbe119957c700b90e6fb" }, "downloads": -1, "filename": "vgstash-0.3a3-py3-none-any.whl", "has_sig": false, "md5_digest": "162cbc7f94407aaff0bc607f3d3fe9dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9539, "upload_time": "2018-09-03T10:11:10", "url": "https://files.pythonhosted.org/packages/6d/c2/bb8b0fef3b04797efa5e1e8ccebef3f555b5d75190f01444c00dc7ceaf76/vgstash-0.3a3-py3-none-any.whl" } ], "0.3a4": [ { "comment_text": "", "digests": { "md5": "5f91d60e8ac6ee9fa6249ca62a7b4be3", "sha256": "2a9d76bda92abd4d84271f667e08aba36f7c8ada9fa45124f13ea336f410b5fe" }, "downloads": -1, "filename": "vgstash-0.3a4-py3-none-any.whl", "has_sig": false, "md5_digest": "5f91d60e8ac6ee9fa6249ca62a7b4be3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9889, "upload_time": "2018-09-09T02:33:13", "url": "https://files.pythonhosted.org/packages/2c/2a/afa2ffbc9cbd5521e13a98b2e1c4bd7cc9e8021819b62122d96287f34ad3/vgstash-0.3a4-py3-none-any.whl" } ], "0.3a5": [ { "comment_text": "", "digests": { "md5": "6de470b40a31eea507816738226d9408", "sha256": "9ab18a502e2832c5845f17984096374cf07e2f686d38b10d713a48c16dfd02df" }, "downloads": -1, "filename": "vgstash-0.3a5-py3-none-any.whl", "has_sig": false, "md5_digest": "6de470b40a31eea507816738226d9408", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10706, "upload_time": "2018-09-30T06:38:28", "url": "https://files.pythonhosted.org/packages/7f/2a/2c0018a16a70938219e729977af68c8c0dc5a8e51d6da6ef78a98736dc91/vgstash-0.3a5-py3-none-any.whl" } ], "0.3a6": [ { "comment_text": "", "digests": { "md5": "709a8afede1c2419cfa7019ecf8f1d95", "sha256": "a0bab60613bdc9e2703f5cff27382f6182c4269a090f4b1ee4482c3443584763" }, "downloads": -1, "filename": "vgstash-0.3a6-py3-none-any.whl", "has_sig": false, "md5_digest": "709a8afede1c2419cfa7019ecf8f1d95", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11730, "upload_time": "2018-10-10T06:45:27", "url": "https://files.pythonhosted.org/packages/86/09/913d6ebcb849b7ebdf45ff67a273aaa573cb4a5181b09df88b17ae9af7d5/vgstash-0.3a6-py3-none-any.whl" } ], "0.3b1": [ { "comment_text": "", "digests": { "md5": "92dad4121f3cc4691474ebfe30914be5", "sha256": "e05051c69a715b40c6cb42a67874553b39798c9e4a14e776f01fa7fe00fc3673" }, "downloads": -1, "filename": "vgstash-0.3b1-py3-none-any.whl", "has_sig": false, "md5_digest": "92dad4121f3cc4691474ebfe30914be5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10111, "upload_time": "2018-10-11T04:32:16", "url": "https://files.pythonhosted.org/packages/d6/16/dc3e6d9cbd66786fb302a4f3175e262699eafdb6eb87cb3acaba894dd1e2/vgstash-0.3b1-py3-none-any.whl" } ], "0.3b2": [ { "comment_text": "", "digests": { "md5": "b699565adeceb113669d731af223f530", "sha256": "62b8c6f789294957bef905d87bfe56c8f13a2eda7e3c0641fa4540dd661197a2" }, "downloads": -1, "filename": "vgstash-0.3b2-py3-none-any.whl", "has_sig": false, "md5_digest": "b699565adeceb113669d731af223f530", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11828, "upload_time": "2018-10-19T04:18:32", "url": "https://files.pythonhosted.org/packages/b2/75/2504271af407022707bb2b480f3d07bbd3b6077359107c2e45010aaa2e6a/vgstash-0.3b2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "473b30790153928ee639232fd9a10149", "sha256": "6fc69839d0873ff5566612d1e0ea7b881cae1c77480a999372a2690220718741" }, "downloads": -1, "filename": "vgstash-0.3b2.tar.gz", "has_sig": false, "md5_digest": "473b30790153928ee639232fd9a10149", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30274, "upload_time": "2018-10-19T04:18:34", "url": "https://files.pythonhosted.org/packages/94/49/37573074f99ffc2a7dbf7b572c52a36d2813e15f3f1516116dab284bd9b2/vgstash-0.3b2.tar.gz" } ], "0.3b3": [ { "comment_text": "", "digests": { "md5": "de87c52302741ad095870b5f85dd9d24", "sha256": "564e952dca0e003b5170a435f7546b54a7bcfba1f8bd27c68e0e6f6c295053d1" }, "downloads": -1, "filename": "vgstash-0.3b3-py3-none-any.whl", "has_sig": false, "md5_digest": "de87c52302741ad095870b5f85dd9d24", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24024, "upload_time": "2018-11-21T12:29:22", "url": "https://files.pythonhosted.org/packages/9e/96/df6387c60dbc4af288656bb0da18ebdfa19b1b89bc058320e8c7b20f1530/vgstash-0.3b3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac61c4d6d2bf12e53ce3917747802628", "sha256": "8488ba22db7cfcf5c1e579ec006b7ddaf210658773baed797d6c86840dcb1f93" }, "downloads": -1, "filename": "vgstash-0.3b3.tar.gz", "has_sig": false, "md5_digest": "ac61c4d6d2bf12e53ce3917747802628", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30326, "upload_time": "2018-11-21T12:29:25", "url": "https://files.pythonhosted.org/packages/ce/11/969749711a13a292ce1bf311dd3e05d3897fd01779b0d3a427b0e39982ba/vgstash-0.3b3.tar.gz" } ], "0.3b4": [ { "comment_text": "", "digests": { "md5": "ce56f93428c35d76694c7ea604152f18", "sha256": "0e05c8fee74ca1f6318aced9a15851b0740c980840d184d4b9dcf36e73e198e5" }, "downloads": -1, "filename": "vgstash-0.3b4-py3-none-any.whl", "has_sig": false, "md5_digest": "ce56f93428c35d76694c7ea604152f18", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24044, "upload_time": "2019-05-01T03:30:53", "url": "https://files.pythonhosted.org/packages/32/de/ac0f00f0794c0b8f19cf96536074ddf055e24031f6adeaf2538b42fbfd24/vgstash-0.3b4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "44e99cc16da78dbd16222d3feb9c1d86", "sha256": "4099b3e87f6923dedaafe94cfdbe9d0499382dfa8c002c90f5d52f0a24010ae8" }, "downloads": -1, "filename": "vgstash-0.3b4.tar.gz", "has_sig": false, "md5_digest": "44e99cc16da78dbd16222d3feb9c1d86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30466, "upload_time": "2019-05-01T03:30:55", "url": "https://files.pythonhosted.org/packages/88/26/c524ae4af26a0caaec59183f3672bca4313244b50d5f79675aacc16ed93e/vgstash-0.3b4.tar.gz" } ], "0.3b5": [ { "comment_text": "", "digests": { "md5": "1c1cde9e646b35c2c3f011e5f6bda653", "sha256": "4b3f14a6574d151d09dde904348d42006a4d4027c3672bbb8de16d2c8a2625bc" }, "downloads": -1, "filename": "vgstash-0.3b5-py3-none-any.whl", "has_sig": false, "md5_digest": "1c1cde9e646b35c2c3f011e5f6bda653", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24040, "upload_time": "2019-05-26T15:43:46", "url": "https://files.pythonhosted.org/packages/f9/24/fc9d56bb387c25519cfeab53d8969b4c91d2ec144ed81118129aaca2789c/vgstash-0.3b5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cdfd0507c118e702830e2351f73e1e8", "sha256": "5a2427f8fbb6ffbf6a41a819bab9b06d813a2e7926933442ca19337c538de67b" }, "downloads": -1, "filename": "vgstash-0.3b5.tar.gz", "has_sig": false, "md5_digest": "7cdfd0507c118e702830e2351f73e1e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30446, "upload_time": "2019-05-26T15:43:48", "url": "https://files.pythonhosted.org/packages/c5/94/d7566b91f5af4c2fa5a7fc4649d685d76ca9bac8219acff74f244091d542/vgstash-0.3b5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1c1cde9e646b35c2c3f011e5f6bda653", "sha256": "4b3f14a6574d151d09dde904348d42006a4d4027c3672bbb8de16d2c8a2625bc" }, "downloads": -1, "filename": "vgstash-0.3b5-py3-none-any.whl", "has_sig": false, "md5_digest": "1c1cde9e646b35c2c3f011e5f6bda653", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24040, "upload_time": "2019-05-26T15:43:46", "url": "https://files.pythonhosted.org/packages/f9/24/fc9d56bb387c25519cfeab53d8969b4c91d2ec144ed81118129aaca2789c/vgstash-0.3b5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cdfd0507c118e702830e2351f73e1e8", "sha256": "5a2427f8fbb6ffbf6a41a819bab9b06d813a2e7926933442ca19337c538de67b" }, "downloads": -1, "filename": "vgstash-0.3b5.tar.gz", "has_sig": false, "md5_digest": "7cdfd0507c118e702830e2351f73e1e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30446, "upload_time": "2019-05-26T15:43:48", "url": "https://files.pythonhosted.org/packages/c5/94/d7566b91f5af4c2fa5a7fc4649d685d76ca9bac8219acff74f244091d542/vgstash-0.3b5.tar.gz" } ] }