GithubHelp home page GithubHelp logo

shipow / searchstone Goto Github PK

View Code? Open in Web Editor NEW
126.0 6.0 25.0 38.83 MB

:black_joker: Hearthstone's cards search engine built with algolia instantsearch.

Home Page: http://searchstone.io

JavaScript 62.56% Haml 7.27% SCSS 30.17%
algolia hearthstone algolia-instantsearch card game

searchstone's Introduction

Searchstone

Searchstone.io is an open source search engine for the Hearthstone card playing video game. It relies on Algolia API for the search and instantsearch.js for the UI.

Read the project story on Medium: A painstakingly crafted search for Hearthstone

If you want to be involved in that project there are many ways to participate. You could obviously open issues or submit some PR on this github repo and we initiated the discussion on the Show & Tell section of Algolia's community forum. You can also find us participating to the Hearthsim community on Discord.

Features

  • Search as-you-type experience
  • Full-text search in name, description and attributes
  • Smart Highlighting
  • Multi-language support
  • Typo tolerance
  • List and grid views
  • Refinement on every attributes (Set, Race, Type, Mana, Class, Mechanics, Attack, Health)
  • Golden animations cards
  • Responsive design + Retina support
  • Top decks
  • Search by Artist
  • Speed ⚡
  • PWA (in progress)

Development

Run the website

$> yarn install
$> yarn dev

Build for production (deployed by Netlify)

$> yarn build

Extension Release Update

Config API keys

  • edit 'config.json', add your Algolia and Cloudinary credentials (App ID/ API key).

Extract pics

  • First, update your game to latest version.
  • The following commands will install dependencies in a virtual environment:
    $> python3 -m venv myenv
    $> source myenv/bin/activate
    $> pip install --upgrade pip setuptools wheel
    $> pip install unitypack decrunch
    $> pip install lz4 hearthstone unitypack pillow
  • Now, download and run HearthSim's extract script:
    $> git clone https://github.com/HearthSim/HearthstoneJSON.git
    $> cd HearthstoneJSON
    // adapt with your game directory
    $> python ./generate_card_textures.py --outdir=textures/ /Applications/Hearthstone/Data/OSX/{rad_base,card,premiummaterials,shared}*.unity3d --skip-existing
    $> deactivate
  • copy only the .jpg images from HearthstoneJSON/textures/512px/ to your searchstone/import/art/ folder
  • run script to upload files to Cloudinary
    $> gulp cloudinary:art

Script update

  • look at potential changes on https://hearthstonejson.com/
  • edit import/import.js
  • update variables set (ie. "ICECROWN": "Frozen Throne"), setID (ie. "ICECROWN": 11), map (ie. "OVERLOAD": "Overload"), configure condition for set.format regarding the current year for standard.

Update records in Algolia Index

Algolia instantSearch.js configuration

  • edit src/js/algolia-instantsearch-conf.js
  • update set (ie: ICECROWN), setFull (ie. ICECROWN : "Frozen Throne")

UI

  • add set icons to the sketch file and export setIcons.svg
  • add set class definition to hits.scss and refinements.scss

Extra: Animated Golden Cards, Top Decks and Hearthpwn links

  • update card list from Hearthpwn $>node import-hearthpwn-cards.js
  • merge data by running again $> node import.js
  • update deck list from Hearthpwn $>node import-hearthpwn-decks.js

searchstone's People

Contributors

bobylito avatar dependabot[bot] avatar glitch29 avatar haroenv avatar janpetr avatar jffraisse avatar martinbonnin avatar pixelastic avatar shipow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

searchstone's Issues

Ironforge rifleman wrong graphic

Hi there, I noticed the card "ironforge rifleman" has the wrong image as "stormwind champion".
Can you fix it?

Thank you and sorry for my bad english.

Russian description rarely fit

In russian, the description text rarely fit the available space. Maybe decrease the font-size for Russian?

image
image

Ok, that's even worse in Thai:

image

Race is not translated

The race of minions at the bottom of the cards is not translated to the selected language

image

Missing card type: quest

I think that the quests are a new type of cards introduced with Ungoro, that would be cool to add them in the search for card types.

Let the user add AND or OR between the filters

For example, you may want to show the weapons OR the pirates.
Right now you can select (weapons OR minions) AND pirates which returns only the pirates.

It's excessive and would probably result to a cumbersome UI but i wanted to throw it as an idea.

Too many bolded words

On some cards, some words are bolded while they should not be.

edit: Seems like it is always the découvre word that is bolded. Maybe it is normal after all?

image
image
image
image

Single card view z-index

On Safari it starts out behind the other card and then flips through the other one when clicked again.

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.