Skip to main content

Local board game collection manager. Powered by BoardGameGeek.

Project description

meeple-cli

build status pre-commit pypi downloads

Local board game collection manager. Powered by BoardGameGeek.

Disclaimer

Neither meeple-cli nor its maintainers are affiliated with BoardGameGeek.

Install

Global isolated install via pipx (recommended):

pipx install meeple-cli

Local python environment install:

pip install meeple-cli

Usage

$ meeple --help
Usage: meeple [OPTIONS] COMMAND [ARGS]...

  Local board game collection manager. Powered by BoardGameGeek.

Options:
  -h, --help     Show this message and exit.
  -v, --version  Show the version and exit.

Collection Commands:
  add          Add an item to a collection.
  collections  List all collections.
  delete       Delete a collection.
  drop         Remove an item from a collection.
  find         Search collections for items.
  list         List contents of a collection.
  move         Move an item from one collection to another.
  new          Create a new collection.
  rename       Rename a local collection.
  stats        Print out the details of a collection.
  update       Update local collection data.

BoardGameGeek Commands:
  hot     List current BoardGameGeek trending items.
  info    Print out the details of an item.
  open    Open an item on BoardGameGeek.
  search  Search BoardGameGeek for items.

Other Commands:
  completions  Setup meeple shell completions.

Completions

meeple-cli supports shell completions for bash, zsh, and fish. For setup, use meeple completions <SHELL>, or the following instructions:

bash

Add the following to ~/.bashrc:

eval "$(_MEEPLE_COMPLETE=bash_source meeple)"
zsh

Add the following to ~/.zshrc:

eval "$(_MEEPLE_COMPLETE=zsh_source meeple)"
fish

Save the script to ~/.config/fish/completions/meeple.fish:

_MEEPLE_COMPLETE=fish_source meeple > ~/.config/fish/completions/meeple.fish

Roadmap

See a list of already implemented features/changes in the Changelog.

Planned Features

  • Verbose option on meeple info that includes additional info such as description, publishers, etc
  • Export a collection to csv or another format -> meeple export
  • Import a collection from a variety of formats -> meeple import

Potential Features (May or may not happen)

  • Ability to assign and manage personal ratings of board games/expansions
  • Copy a collection -> meeple copy
  • Copy option -c on most commands that allows you to interactively select and copy text from the command output (for grabbing IDs) - similar to yank
  • Manage user preferences/configs -> meeple config stored at ~/.meeple/config.json or something
    • Toggle colorized output
    • Set custom default output sorts
    • Set custom data location
  • Show elegant data diffs on meeple update (individual board game stat changes/collection stat changes)
  • Output pagination for long lists?
    • Ability to display only a given number of output rows
  • Identify when changes have been made to a collection and an update has not occurred yet
  • Service or job that runs once a day to automatically update local data
    • Ability to output graphs/visuals to show change in collections over time
    • Ability to output graphs/visuals to show a board game's changes on BoardGameGeek over time
  • Ability to record and manage plays of board games - would be nuts.
    • Ability to calculate and surface play statistics for a board game
  • Ability to interact with discord services to show that you are currently playing a board game?
  • Ability to actually interact with BoardGameGeek user profile/settings/collections (not all currently possible via the API)

Other Todos

  • Unit tests
  • Documentation site (via vitepress?)
  • Homebrew formula (will be available here)
  • Implement simple logging for debugging (local, not telemetry) (via loguru?)

FAQ

Why local only collections?

Currently, the BoardGameGeek Public API provides limited read-only data about user collections/GeekLists.

While it is technically feasible to interface with GeekLists via webscrapers/spiders, this kind of practice would be both complex and also violate BoardGameGeek Terms of Service.

Where does meeple-cli store data?

meeple-cli stores collection data in ~/.meeple and only makes network connections to retrieve data from the BoardGameGeek API.

License

Copyright (c) 2023 Bradley Wojcik. Released under the MIT License. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meeple-cli-0.1.0b4.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

meeple_cli-0.1.0b4-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

File details

Details for the file meeple-cli-0.1.0b4.tar.gz.

File metadata

  • Download URL: meeple-cli-0.1.0b4.tar.gz
  • Upload date:
  • Size: 21.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for meeple-cli-0.1.0b4.tar.gz
Algorithm Hash digest
SHA256 6f9839f0776681c55eee12e5ace01b1ba6b42a012074923581394612d6d146ec
MD5 bf8bc8baed25d1e472d4c31b98a10d7e
BLAKE2b-256 2b657949fb971246f2180657228ec8c5a23638779715bcbcd2b7315c579de135

See more details on using hashes here.

File details

Details for the file meeple_cli-0.1.0b4-py3-none-any.whl.

File metadata

File hashes

Hashes for meeple_cli-0.1.0b4-py3-none-any.whl
Algorithm Hash digest
SHA256 bb78b309289dcf87dfa5458a04d80d3b52a432524450a6bf8cd2d3b9187018d1
MD5 6e6f39baf6680d1d1495df80699faeb9
BLAKE2b-256 99d9ed175bbe851ebe9bba686e9ed681e65af27989e64f816fb511f8ab8163cf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page