Light Virtual Pro-Wrestling Booker is an interactive Python 3 booking companion for wrestling games.
  • Python 99.3%
  • Makefile 0.7%
Find a file
2026-10-26 22:13:33 -04:00
.gitignore Initial commit, match cards are working 2026-10-25 19:20:52 -04:00
dotcom-logo-new.gif Initial commit, match cards are working 2026-10-25 19:20:52 -04:00
raw-is-war-logo.png Initial commit, match cards are working 2026-10-25 19:20:52 -04:00
README.md Add ability to embed screenshot image filesystem paths in the markdown to accompany matches in match cards. Makes it easy to copy associated images along with matches 2026-10-26 22:13:33 -04:00
smackdown-logo-source.png Initial commit, match cards are working 2026-10-25 19:20:52 -04:00
smackdown1roster.json Initial commit, match cards are working 2026-10-25 19:20:52 -04:00
smackdown2roster.json Initial commit, match cards are working 2026-10-25 19:20:52 -04:00
smackdown3roster.json Initial commit, match cards are working 2026-10-25 19:20:52 -04:00
smackdown_card_maker.py Add ability to embed screenshot image filesystem paths in the markdown to accompany matches in match cards. Makes it easy to copy associated images along with matches 2026-10-26 22:13:33 -04:00
test_smackdown_card_maker.py Add ability to embed screenshot image filesystem paths in the markdown to accompany matches in match cards. Makes it easy to copy associated images along with matches 2026-10-26 22:13:33 -04:00
wwfcomlogo.gif Initial commit, match cards are working 2026-10-25 19:20:52 -04:00

SmackDown! Match Card Maker

An interactive Python 3 terminal app for creating and running three-match cards using the uniform JSON roster files in this directory.

python3 smackdown_card_maker.py

Cards are saved as Markdown in cards/. Load a card to view it, record results, edit unfinished matches, or add a randomized promo before the next match. A card is saved after each edit or result, so you can stop and resume later.

When creating a show, enter a city and attendance or press r to randomize both; entering r at the attendance prompt after typing a city randomizes only the attendance. Venues span the US, Canada, Europe, and Japan. The location is stored in the card and listed next to the show name in the card header and the saved-card listing.

The promo generator gives selected wrestlers distinct voices and uses a generic style for wrestlers without a dedicated profile. Roster files share the schema {"game_id": "sd1", "game": "...", "wrestlers": ["..."]}.

For the PS1 games (SmackDown! 1 and 2), each match can store an accompanying screenshot path in the Markdown (- Image: "..."). The card view never renders the image; the Markdown is there for anyone who wants to open it later. When creating a match, answer y at the screenshot prompt, or use the "Attach/edit a match image" action in the card menu later, including for completed matches. The picker lists only DuckStation screenshots (~/.local/share/duckstation/screenshots) whose filename timestamp (GameTitle yyyy-mm-dd-hh-mm-ss.png, mtime fallback) is newer than the moment the app was opened, newest first. A manual path is also accepted; blank cancels.

Completed match results flash in place; the logos and card header are drawn once and stay stationary during the animation.

The WWF.com logo remains at top left. The centered logo follows the show name: SmackDown shows use the SmackDown logo, Raw shows use the Raw logo, and other shows display no centered show logo.

In the card view, use ↑/↓ (or j/k) to highlight a promo, press Enter to expand or collapse it, and use Page Up/Page Down to scroll while the header stays pinned. Press q or Escape to return.

The UI uses ANSI colors and true-color terminal output. Install Pillow if you want the WWF.com and SmackDown! image assets rendered in the terminal; without it, the app uses text branding instead:

python3 -m pip install Pillow

Run the built-in tests with python3 -m unittest -v.