GithubHelp home page GithubHelp logo

mimiron's Introduction

Mimiron

An overengineered CLI tool and Discord bot to look up Hearthstone cards. It feeds up on the official Blizzard API and therefore, in theory, always works and always has the official, and updated, data for all cards.

An example of card lookup. Development screenshot

The following is a write up about the CLI app. For the discord bot, please go to The Bot's README.

Installation

You need to have Rust installed on your system. You can then fork this repositry and install the app on your machine with.

cargo install --path ./mimiron_cli/

However, you need your Blizzard API credentials as environment variables under BLIZZARD_CLIENT_ID and BLIZZARD_CLIENT_SECRET. If you do not have API credentials, you can ger them from Battle.net Developer Portal.

Usage

Note on Localization: All the commands described below support localized output. The default localization is enUS. But you can use any of Blizzard's supported locales. Try all the commands with --locale deDE for German loczalization, for example, or -l jaJP for Japanese.

Card Lookup

Look up a card:

mimiron card ragnaros

Add image links with --image (works with Battlegrounds look ups as well):

mimiron card ragnaros --image

Card look up with image links

If the text you're looking up includes spaces or apostrophes they need to be in quotation marks (or the shell trips up), or you can escape them:

mimiron card "Al'Akir"
mimiron card Ace\ Hunter

Include card text boxes in search (which is the default mode for Blizzard's API):

mimiron card ragnaros --text

Card text box search

Deck Lookup

Look up a deck:

mimiron deck AAECAa0GCOWwBKi2BJfvBO+RBeKkBf3EBc/GBcbHBRCi6AOEnwShtgSktgSWtwT52wS43AS63ASGgwXgpAW7xAW7xwX7+AW4ngbPngbRngYAAQO42QT9xAX/4QT9xAXFpQX9xAUAAA==

Deck look up in terminal

If the deck has E.T.C., Band Manager, you can add the band members with --addband argument. The card names should be exact, or at least give a unique card. This gives you the updated deck code in the output.

mimiron deck --addband "Holy Maki Roll" "Melted Maker" "Anachronos" AAECAZ8FBsvEBf3EBcHGBYv+BY3+BdiBBgzJoATquQTavQTA4gSgmQXBxAXu6QWt7QWK/gXCggaOlQaGowYA 

Deck image

Save an image of the deck with the --image flag. Defaults to your Downloads folder unless you specify --output.

Note: Most images are acquired from Blizzard's servers. Ommissions are filled from https://hearthstonejson.com

mimiron deck --image AAECAa0GCOWwBKi2BJfvBO+RBeKkBf3EBc/GBcbHBRCi6AOEnwShtgSktgSWtwT52wS43AS63ASGgwXgpAW7xAW7xwX7+AW4ngbPngbRngYAAQO42QT9xAX/4QT9xAXFpQX9xAUAAA== 

Deck image

There are other formats: groups, single, wide, and adapt.

mimiron deck --image --format groups AAECAa0GCOWwBKi2BJfvBO+RBeKkBf3EBc/GBcbHBRCi6AOEnwShtgSktgSWtwT52wS43AS63ASGgwXgpAW7xAW7xwX7+AW4ngbPngbRngYAAQO42QT9xAX/4QT9xAXFpQX9xAUAAA== 

This is similar to Hearthstone Top Decks' format. Deck image

mimiron deck --image --format single AAECAa0GCOWwBKi2BJfvBO+RBeKkBf3EBc/GBcbHBRCi6AOEnwShtgSktgSWtwT52wS43AS63ASGgwXgpAW7xAW7xwX7+AW4ngbPngbRngYAAQO42QT9xAX/4QT9xAXFpQX9xAUAAA== 

Image is rotated so it doesn't distort this page so much: Deck image

mimiron deck --image --format wide AAECAa0GCOWwBKi2BJfvBO+RBeKkBf3EBc/GBcbHBRCi6AOEnwShtgSktgSWtwT52wS43AS63ASGgwXgpAW7xAW7xwX7+AW4ngbPngbRngYAAQO42QT9xAX/4QT9xAXFpQX9xAUAAA== 

Deck image

Compare two decks with --comp:

mimiron deck --comp AAECAa0GCoSfBOWwBKi2BP/hBJfvBO+RBeKkBf3EBc/GBc2eBg+i6AOhtgSktgSWtwT52wS43AS63ASGgwXgpAW7xAW7xwX7+AW4ngbPngbRngYA AAECAa0GCKG2BKi2BOy6BO+RBc/GBc/2Bdj2Ba//BQv52wS43AS63ASGgwWkkQXgpAW7xwWm8QXt9wXjgAa4ngYA

Deck comparison in terminal

Batch Deck images

This technically belongs to the previous section but it warrants its own highlight.

Simply adding the flag --batch to the deck command allows you to pass a file name, instead of a deck code. The app will open the file, go over each line, and provide you with that deck's information.

For example, if you have a decks.txt file with the following data:

AAECAeL5AwLlsASAngYOhKAEx8IFyMIF3cIF1/oF5v8FhY4GlZcGlpcGl5cGhJ4G0J4Gq6AGpqgGAAA=
### Optional Title # AAECAYjaBQT8+QXt/wWLkgb/lwYNy+IE8OME2fEEtPcEmIEFmYEFkpMFl5UGkZcGzpwGkqAG16IGy7AGAA==
### Rank #1 Legend # AAECAZ/HAgSJsgT62wTP9gWknQYNougDiLIEpLYEp7YEhoMF3aQFlaoFyMYFu8cFoukFhY4GxpwGuJ4GAAA=

(Noe that you can add titles to decks. Make sure the title is preceded by three hashes, and followed by one.)

The following command will produce images of three decks in the working directory:

mimiron deck --batch decks.txt --image --format wide --output .
# or for short
mimiron deck --batch decks.txt -if wide -o .

First Deck Optional Title Deck Rank #1 Legend Deck

Try it with the single option as well.

Battlegrounds Lookup

Look up Battlegrounds minions and Heroes:

mimiron bg elise

Battleground lookup

Look up by tier and/or type:

mimiron bg --tier 1 --type beast

Battleground lookup

Roadmap

Nothing in particular.

License

MIT license. Don't care what you do with this, but give credit.

Contribute

Suggestions and help welcome.

Please play around with it, abuse it, and let me know you things should work.

mimiron's People

Contributors

asibahi avatar

Stargazers

Ahmed Falih Al-kraidi avatar Nikita Mullin avatar Riley Roach avatar Andréy Lesnikóv avatar Peter Leeh avatar Kyle L. Davis avatar Ali Abdou avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.