summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--README.md115
-rw-r--r--README.mdown279
2 files changed, 115 insertions, 279 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5d42320
--- /dev/null
+++ b/README.md
@@ -0,0 +1,115 @@
+# vgstash - a place to stash your game collection
+
+If you love video games, you've probably amassed a collection of them, across
+many different systems; physical, digital, and everything in-between. At some
+point, a player may want to know a few key pieces of information that may steer
+their gaming. These questions are great for quelling boredom and keeping a
+gaming backlog manageable:
+
+* Which games do I own?
+* Which games have I beaten or completed?
+* Which games do I need to beat?
+* What was the note I left for X game?
+
+vgstash seeks to answer these type of questions in a simple and extensible way.
+
+# Installation
+
+vgstash is available via `pip`:
+
+~~~
+pip install [--user] vgstash
+~~~
+
+Packages for vgstash on Gentoo Linux and Adélie Linux are on the TODO list.
+
+Please note that vgstash is under heavy development at present. Do not install
+unless you are interested in helping its development.
+
+# Concept
+
+The core concept of vgstash is the game itself. Every game in a player's
+collection has a few important attributes, all of which are obvious to the
+player:
+
+* Title
+* System
+* Ownership
+ * unowned
+ * physical
+ * digital
+ * both
+* Progress
+ * new
+ * playing
+ * beaten
+ * complete
+* Notes
+
+Think of any game that you have a history with. Let's say it was a game you
+bought as part of a Humble Bundle, but haven't started playing yet. Internally,
+vgstash tracks it somewhat like this:
+
+```
+.--------------------------------------------------------.
+| Title | System | Ownership | Progress |
+|------------------------+--------+-----------+----------|
+| FTL: Faster Than Light | Steam | digital | new |
+'--------------------------------------------------------'
+```
+
+This is the bare minimum information you need to meaningfully track a video
+game in your collection.
+
+vgstash comes with a command line client of the same name, which gives you
+high level commands to manipulate the database with. It's the reference
+implementation for a vgstash client.
+
+If you wanted to add the above game to your collection, you'd do it like this:
+
+```bash
+$ vgstash add 'FTL: Faster Than Light' Steam d n
+Added FTL: Faster Than Light for Steam. You digitally own it and you have not started it.
+```
+
+Pretty easy, huh? Each game and system added to vgstash is free-form and can
+be tuned to match the user's preferences. vgstash has a fairly small set of
+commands:
+
+* add
+* delete
+* update
+* list
+
+The power is in the `list` command. vgstash comes with a set of default filters
+that allow you to reason about your game collection. For example, this command
+will show you every game marked "playing" that you also own in some way:
+
+```bash
+$ vgstash list playlog
+# listed output here
+```
+
+Consult `vgstash -h` for further usage information.
+
+# Roadmap
+
+These are planned for the full 0.3 release:
+
+* command line interface finished
+* Match feature-set with `master`
+
+Goals planned for the 0.4 release:
+
+* import and export with JSON
+
+Goals planned for the 0.5 release:
+
+* some sort of GUI (Tk and Qt are current candidates)
+
+Goals planned for the 1.0 release:
+
+* Kivy-based interface (to release on Android via F-Droid)
+
+If this interests you, please [e-mail me](mailto:zlg+vgstash@zlg.space) or find
+me on the Fediverse: [@zlg@social.zlg.space](https://social.zlg.space/users/zlg)
diff --git a/README.mdown b/README.mdown
deleted file mode 100644
index ace50e6..0000000
--- a/README.mdown
+++ /dev/null
@@ -1,279 +0,0 @@
-vgstash is a tool used to keep track of a video game collection. In addition to
-basic inventory maintenance, vgstash supports the ability to clarify whether or
-not the user owns a game, and their progress through said game. This makes it
-easy to manage a backlog and serve as a "memory" for which games someone has
-finished.
-
-# Concept
-
-Essentially, vgstash just gets out of your way and lets you manage things.
-Nothing fancy like box art or finding games in a massive dropdown box. There are
-easy flags to track common searches, like "All games that are owned and haven't
-been beaten", making vgstash convenient.
-
-Since vgstash itself is just a front-end to an SQLite database, other interfaces
-to this database format can be built to extend the basic concept. SQLite is
-supported across tons of languages and platforms, so it's rather trivial to
-build another frontend to it. If that's not enough, vgstash also supports
-exporting collections as YAML or pipe-delimited lines, and importing from YAML.
-This makes batch-editing by a human easy with YAML, and the raw format is great
-for pushing vgstash's output through pipes, as any good
-\*nix tool should.
-
-## Data Format
-
-The key to managing things is keeping it simple, but flexible enough to give you
-meaningful insight to the data itself. vgstash gets straight to business
-with its data format:
-
-* Name (string)
-* System (string)
-* Ownership (boolean)
-* Completion Level (integer)
- * 0 (Fresh)
- * 1 (In Progress)
- * 2 (Beaten)
- * 3 (Completed)
-
-There isn't a hard limit on the length of the Name or System strings. SQLite
-itself, however, has internal limits. Those limits may differ between platforms,
-so there's no guarantee that vgstash databases will work across them. The
-`import` and `export` functions should be used to transport vgstash databases
-from one platform to another, as YAML is better-standardized and easily
-modifiable.
-
-# Usage
-
-Using vgstash is fairly easy, for a command-line program. It accepts
-a handful of commands, which will be explained below:
-
-* init
-* add
-* update
-* delete
-* list
-* import
-* export
-
-## Tips
-
-For the sake of accessibility and ease of use, there are some synonyms:
-
-When specifying ownership, `0` (zero) and `n` mean the same thing. The same is
-true of `1` (one) and `y`.
-
-When specifying progress, the numbers and letters can both be used:
-
-`0` is also `f` or "fresh".
-`1` is also `i` (lowercase I) or "in-progress".
-`2` is also `b` (lowercase B) or "beaten".
-`3` is also `c` (lowercase C) or "completed".
-
-Since vgstash relies on the shell and SQLite to function, unquoted strings
-are likely to not be handled well. If your data ever looks funky, try correcting
-it with a quoted string. Bugs or issues that are reported without quoted strings
-will be discarded as WONTFIX, as that's basic, sane practice in every shell
-under the sun.
-
-## Getting Started
-
-Initialize the database, where your information will be stored:
-
-~~~
-vgstash init
-~~~
-
-The location of the database may be set using an environment variable. To learn
-more, see the Environment Variables section.
-
-## Adding
-
-Next, add a game or two:
-
-~~~
-vgstash add "Super Mario Bros" NES y i
-~~~
-
-In the above example, we're adding *Super Mario Bros* for the NES system. We own
-it, and haven't beaten it yet.
-
-Let's add another:
-
-~~~
-vgstash add "Borderlands 2" PC
-~~~
-
-This command has just the basics: game name, and game platform. For the sake
-of simplicity, the ownership and progress flags have default values: ownership
-defaults to "y" for "yes" and progress defaults to "i" for "in-progress". In
-both cases, they are the most typical state for a video game to be added to ones
-collection. This can be influenced; see the Environment Variables section for
-more info.
-
-## Listing
-
-vgstash has plenty of methods to interface with your game collection. The
-simplest listing would be "list every game in the database":
-
-~~~
-# The 'all' is optional
-vgstash list all
-~~~
-
-This will output a human-readable list of games you have in the database, with
-proper flags and unique IDs, which will come in handy later. For ease of use,
-`list all` will sort by system, then by title. Here's an example:
-
-~~~
-ID | Title | System | Own | Progress
----+---------------------+--------+-----+----------
-3 | Metroid | NES | * | I
-1 | Super Mario Bros | NES | | C
-2 | The Legend of Zelda | NES | * | B
-4 | Borderlands | PC | * | F
-~~~
-
-From the above output, we can gather that we don't own *Super Mario Bros*
-anymore. It's been completed, however, so that's good news. We own *Zelda*, and
-it's been beaten, but not completed. We also own *Metroid*, but it's still
-in-progress. Lastly, we own Borderlands for the PC, but haven't started playing
-it yet.
-
-The output format is designed to be easy to read, and omits information to serve
-as a visual guide whenever possible. From a single glance, you should be able to
-spot which games you own and which haven't been started yet.
-
-### List Filtering
-
-Seeing all of your games is great when you're just getting started, but what
-about after you've added your massive 500 game collection? Nobody wants to sort
-through screenfulls of text. That's where filtering comes in. The `list` command
-accepts the following filters:
-
-* **arcade**
- Games you own that cannot be beaten.
-
-* **backlog**
- Games you own that have not been beaten or completed.
-
-* **borrowing**
- Games you don't own and are playing.
-
-* **complete**
- Games that have been completed.
-
-* **digital**
- Games you own digitally.
-
-* **done**
- Games that have been beaten *or* completed.
-
-* **incomplete**
- Games you own that have been beaten, but not completed.
-
-* **new**
- Games you own and haven't played yet.
-
-* **owned**
- Games you own.
-
-* **physical**
- Games you own physically.
-
-* **playlog**
- Games you own that are marked 'playing'.
-
-* **unowned**
- Games you don't own.
-
-* **wishlist**
- Games you don't own *and* haven't played yet.
-
-## Update
-
-The `update` command requires the game's ID, the field you're changing, and the
-value you're changing it to.
-
-The fields you can change are
-
-* title
-* system
-* ownership
-* progress
-
-As explained in **Data Format**, ownership and progress can use single letters
-to substitute for the internal numeric representations.
-
-To get a game's ID, try using something like `vgstash list | grep "foo"` to find
-what you're looking for.
-
-## Deleting
-
-For one reason or another, you may need to remove items from your game database.
-The `delete` command, coupled with the game's ID, will take care of that
-for you. If you want to remove *every* game from your collection, delete
-`$HOME/.vgstash.db` (or wherever `VGSTASH_DB_LOCATION` is set to) and start over
-with `vgstash init`.
-
-# Environment Variables
-
-Customization is pretty important if you're going to manage hundreds of games.
-There are only a few, but they may come in handy for you!
-
-* `VGSTASH_DB_LOCATION`
- Defaults to `$HOME/.vgstash.db`.
-
-* `VGSTASH_DEFAULT_OWNERSHIP`
- Can be 0 or 1. Default is 1 (yes).
-
-* `VGSTASH_DEFAULT_PROGRESS`
- Can be 0 through 3. Default is 1 (in-progress).
-
-* `VGSTASH_TABLE_WIDTH`
- The width of the table output by the `list` command. For readability
-reasons, vgstash will only allow values that are 50 or above. If this variable
-is set to zero (0) however, it will expand to fit the entire width of your
-terminal/tty. It defaults to 80 characters.
-
-# Contributing
-
-vgstash was first written in Python 3.4. There are no plans to produce a Python
-2.x version. Patches and pull requests are welcome! However, please do not
-contribute to this project unless you are fine with your contributions also
-being licensed under the GPL 3.0. This is to simplify licensing issues and keep
-things neat.
-
-Before submitting a Pull Request, please ensure that your commit(s) contain an
-addition of your name to the `AUTHORS` file. Others might not be using git to
-get or use vgstash, and every contributor deserves recognition. An example of
-what one would add to the `AUTHORS` file is:
-
-~~~
-John Q. Public, GitHub: @hellomynameisjohn <jqp@genericville.com>
- Corrected typos in manpage
-~~~
-
-Note that the indent is four spaces.
-
-# Roadmap
-
-vgstash is considered beta-quality at this time. Please report any issues, bugs,
-or even suggestions on how to improve vgstash.
-
-One feature that will not be built (at least by zlg) is search functionality.
-Since vgstash cooperates with piping, it's trivial to pass its output through
-other programs and get the fine-grained information a more advanced user may
-need.
-
-Here are the current goals:
-
-* manpage
-* bash-completion file
-* refined argument handling for shorthand commands
-
-# Copyright
-
-vgstash is Copyright © 2016-2018 zlg. It is licensed under the GNU General
-Public License, version 3.0. A copy of this license may be found in the
-`COPYING` file within this project. It may also be found on the World Wide Web
-at http://gnu.org/licenses/gpl-3.0.html.