Name | nyxfall JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | A command-line Magic: the Gathering card search |
upload_time | 2025-03-03 04:34:32 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.12.3 |
license | None |
keywords |
mtg
cards
magic
gathering
scyfall
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# nyxfall, a command-line Magic: the Gathering card search

## Installation
### From source (requires Python 3.12.3 or greater)
(optional) Start a virtual environment
```console
$ python -m venv venv
$ source venv/bin/activate
```
Install the project with pip
```console
$ python -m pip install .
```
## Usage
```console
$ nyxfall -h
usage: nyxfall [-h] [-e] [-r] [-a] [query]
positional arguments:
query query to run against Scryfall
options:
-h, --help show this help message and exit
-e, --exact try and match the query with an exact card name
-r, --random fetch a random card
-a, --ascii renders the card frame using only basic ASCII characters
```
### Searching for a set of cards
If more than one card is returned from your search, use the arrow keys + enter to select which one to display
```console
$ nyxfall llanowar
Llanowar Elite
> Llanowar Elves
Llanowar Empath
Llanowar Envoy
Llanowar Greenwidow
Llanowar Knight
Llanowar Loamspeaker
Page 2/4
┌──────────────────────────────────┐
│┌────────────────────────────────┐│
││Llanowar Elves {G}││
│└┬──────────────────────────────┬┘│
│ │ │ │
│┌┴──────────────────────────────┴┐│
││Creature — Elf Druid ││
│└┬──────────────────────────────┬┘│
│ │{T}: Add {G}. │ │
│ │ ──────────────────────────── │ │
│ │The elves of the Llanowar │ │
│ │forest have defended it for │ │
│ │generations. It is their │ │
│ │sacred duty to keep outside │ │
│ │influences from corrupting │ │
│ │their ancestral home. │ │
│ │ ┌─────┐│ │
│ └───────────────────────┤ 1/1 ├┘ │
│ FDN └─────┘ │
└──────────────────────────────────┘
```
### Searching for an exact card
```console
$ nyxfall -e "force of negation"
┌──────────────────────────────────┐
│┌────────────────────────────────┐│
││Force of Negation {1}{U}{U}││
│└┬──────────────────────────────┬┘│
│ │ │ │
│┌┴──────────────────────────────┴┐│
││Instant ││
│└┬──────────────────────────────┬┘│
│ │If it's not your turn, you may│ │
│ │exile a blue card from your │ │
│ │hand rather than pay this │ │
│ │spell's mana cost. │ │
│ │Counter target noncreature │ │
│ │spell. If that spell is │ │
│ │countered this way, exile it │ │
│ │instead of putting it into its│ │
│ │owner's graveyard. │ │
│ │ ──────────────────────────── │ │
│ │"Try, if you must." │ │
│ └──────────────────────────────┘ │
│ 2X2 │
└──────────────────────────────────┘
```
### Searching for a random card
```console
$ nyxfall -r
┌──────────────────────────────────┐
│┌────────────────────────────────┐│
││Helpful Hunter {1}{W}││
│└┬──────────────────────────────┬┘│
│ │ │ │
│┌┴──────────────────────────────┴┐│
││Creature — Cat ││
│└┬──────────────────────────────┬┘│
│ │When this creature enters, │ │
│ │draw a card. │ │
│ │ ──────────────────────────── │ │
│ │"Ah, the conquering hero │ │
│ │returns! What trials did you │ │
│ │face, little one?" │ │
│ │—Basri Ket │ │
│ │ ┌─────┐│ │
│ └───────────────────────┤ 1/1 ├┘ │
│ FDN └─────┘ │
└──────────────────────────────────┘
```
Raw data
{
"_id": null,
"home_page": null,
"name": "nyxfall",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12.3",
"maintainer_email": null,
"keywords": "mtg, cards, magic, gathering, scyfall",
"author": null,
"author_email": "Avery Abrahams-Whitehead <averywhthead@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/40/b9/e13b65221b894e46dddb752fb84965dbe37dffee1409f1cbbbb9eb0f7b41/nyxfall-0.1.0.tar.gz",
"platform": null,
"description": "# nyxfall, a command-line Magic: the Gathering card search\n\n\n## Installation\n\n### From source (requires Python 3.12.3 or greater)\n\n(optional) Start a virtual environment\n\n```console\n$ python -m venv venv\n$ source venv/bin/activate\n```\n\nInstall the project with pip\n```console\n$ python -m pip install .\n```\n\n## Usage\n\n```console\n$ nyxfall -h\nusage: nyxfall [-h] [-e] [-r] [-a] [query]\n\npositional arguments:\n query query to run against Scryfall\n\noptions:\n -h, --help show this help message and exit\n -e, --exact try and match the query with an exact card name\n -r, --random fetch a random card\n -a, --ascii renders the card frame using only basic ASCII characters\n```\n\n### Searching for a set of cards\nIf more than one card is returned from your search, use the arrow keys + enter to select which one to display\n```console\n$ nyxfall llanowar\n\n Llanowar Elite\n> Llanowar Elves\n Llanowar Empath\n Llanowar Envoy\n Llanowar Greenwidow\n Llanowar Knight\n Llanowar Loamspeaker\n\nPage 2/4\n\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u2502\u2502Llanowar Elves {G}\u2502\u2502\n\u2502\u2514\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2518\u2502\n\u2502 \u2502 \u2502 \u2502\n\u2502\u250c\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2510\u2502\n\u2502\u2502Creature \u2014 Elf Druid \u2502\u2502\n\u2502\u2514\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2518\u2502\n\u2502 \u2502{T}: Add {G}. \u2502 \u2502\n\u2502 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502 \u2502\n\u2502 \u2502The elves of the Llanowar \u2502 \u2502\n\u2502 \u2502forest have defended it for \u2502 \u2502\n\u2502 \u2502generations. It is their \u2502 \u2502\n\u2502 \u2502sacred duty to keep outside \u2502 \u2502\n\u2502 \u2502influences from corrupting \u2502 \u2502\n\u2502 \u2502their ancestral home. \u2502 \u2502\n\u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2510\u2502 \u2502\n\u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 1/1 \u251c\u2518 \u2502\n\u2502 FDN \u2514\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n### Searching for an exact card\n```console\n$ nyxfall -e \"force of negation\"\n\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u2502\u2502Force of Negation {1}{U}{U}\u2502\u2502\n\u2502\u2514\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2518\u2502\n\u2502 \u2502 \u2502 \u2502\n\u2502\u250c\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2510\u2502\n\u2502\u2502Instant \u2502\u2502\n\u2502\u2514\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2518\u2502\n\u2502 \u2502If it's not your turn, you may\u2502 \u2502\n\u2502 \u2502exile a blue card from your \u2502 \u2502\n\u2502 \u2502hand rather than pay this \u2502 \u2502\n\u2502 \u2502spell's mana cost. \u2502 \u2502\n\u2502 \u2502Counter target noncreature \u2502 \u2502\n\u2502 \u2502spell. If that spell is \u2502 \u2502\n\u2502 \u2502countered this way, exile it \u2502 \u2502\n\u2502 \u2502instead of putting it into its\u2502 \u2502\n\u2502 \u2502owner's graveyard. \u2502 \u2502\n\u2502 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502 \u2502\n\u2502 \u2502\"Try, if you must.\" \u2502 \u2502\n\u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n\u2502 2X2 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n### Searching for a random card\n```console\n$ nyxfall -r\n\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\u2502\n\u2502\u2502Helpful Hunter {1}{W}\u2502\u2502\n\u2502\u2514\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2518\u2502\n\u2502 \u2502 \u2502 \u2502\n\u2502\u250c\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2510\u2502\n\u2502\u2502Creature \u2014 Cat \u2502\u2502\n\u2502\u2514\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2518\u2502\n\u2502 \u2502When this creature enters, \u2502 \u2502\n\u2502 \u2502draw a card. \u2502 \u2502\n\u2502 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502 \u2502\n\u2502 \u2502\"Ah, the conquering hero \u2502 \u2502\n\u2502 \u2502returns! What trials did you \u2502 \u2502\n\u2502 \u2502face, little one?\" \u2502 \u2502\n\u2502 \u2502\u2014Basri Ket \u2502 \u2502\n\u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2510\u2502 \u2502\n\u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 1/1 \u251c\u2518 \u2502\n\u2502 FDN \u2514\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "A command-line Magic: the Gathering card search",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/avery-whitehead/nyxfall",
"Issues": "https://github.com/avery-whitehead/nyxfall/issues"
},
"split_keywords": [
"mtg",
" cards",
" magic",
" gathering",
" scyfall"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "ca750dd69f1e2874026775fddd2f75d7707bff810622b3142c462ffa6a632f67",
"md5": "ebc65fdc3abdfdf24036ecaa966b6f06",
"sha256": "375f14a4c05fb39f67ea44c8a7cbe18d7590ecd762ee17df8be774242731c876"
},
"downloads": -1,
"filename": "nyxfall-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ebc65fdc3abdfdf24036ecaa966b6f06",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12.3",
"size": 7988,
"upload_time": "2025-03-03T04:34:29",
"upload_time_iso_8601": "2025-03-03T04:34:29.777487Z",
"url": "https://files.pythonhosted.org/packages/ca/75/0dd69f1e2874026775fddd2f75d7707bff810622b3142c462ffa6a632f67/nyxfall-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "40b9e13b65221b894e46dddb752fb84965dbe37dffee1409f1cbbbb9eb0f7b41",
"md5": "0ddb12ca89602b0b6f4d0ccdeebeadf6",
"sha256": "d1552cab50fe72896262b48aea3f6cb8bbc5f49add7366639e49e623538302de"
},
"downloads": -1,
"filename": "nyxfall-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "0ddb12ca89602b0b6f4d0ccdeebeadf6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12.3",
"size": 10374,
"upload_time": "2025-03-03T04:34:32",
"upload_time_iso_8601": "2025-03-03T04:34:32.536639Z",
"url": "https://files.pythonhosted.org/packages/40/b9/e13b65221b894e46dddb752fb84965dbe37dffee1409f1cbbbb9eb0f7b41/nyxfall-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-03-03 04:34:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "avery-whitehead",
"github_project": "nyxfall",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nyxfall"
}