Giter Site home page Giter Site logo

poe-stash-indexer's Introduction

Important notice

The project in the current state is DEPRECATED. For efficient indexer code, check this code. There is currently no up to date client interface for this new codebase.

Disclaimer

This indexer is for you if you have:

  • A powerful spare computer with a lot of RAM, ideally 16GB to dedicate fully to the task
  • At least 300 GB storage
  • Unlimited bandwidth
  • Knowledge in MySQL (Table optimization, index creation, db maintenance)

What is included ?

This tool is composed of both an indexer for the official Path of Exile Stash API and a client interface.

Indexer

alt

Description

The indexer polls the official stash API at a given interval to retrieve JSON formatted stash contents. This content is then inserted into a Mongo database for future polling.

Installation

  • Install NodeJS from https://nodejs.org/en/
  • Install MySQL Server
  • Import the schema.sql file
  • Add a new user with rights to insert and update the POE DB
  • Edit config.json to add credentials and ports

Required node packages can be installed through npm install.

How to run?

The indexer can be started with node ./indexer-mysql.js or nodejs ./indexer-mysql.js depending on your system.

CLI arguments

-d will output additional log informations into a log.txt file. Only use to debug as it creates unnecessary IO traffic.

Client

alt

The client features:

  • Market rates polling through poe.trade

    • last poll time
    • average value of that currency in the base currency
    • current min, max, median, mean and average values for that currency
    • Evolution of min and average values over the last day
    • Check the price of a base currency in function of others
    • Changing the league updates the currency values
  • Price distribution

    • A plot to have a better idea of the current market price for a specific item
    • Average, median and mode prices
  • Item search

    • Name autocomplete with different color codes:
      • yellow for rare
      • orange for uniques
      • cyan for divination cards
      • green for gems
      • grey for currencies
      • magenta for prophecies
    • Mods also have auto-completion
    • Mods can be removed from the list by pressing the cross
    • By default a mod will have a value of # which matches any value. This can be edited to add any value.
    • A Mod value can be changed after being added by clicking on it in the list.
    • Search by type and subtype, affixes, last character name or account, amount of sockets/links, corruption, crafted or enchanted, moved/sold
    • Set query limit higher than 99 items
    • Auto-refresh the search at a fixed poll (10s) for now
    • Pop-up Notification when a search is complete
  • Search result

    • Item entries have a color code:
      • red if corrupted
      • yellow if rare
      • orange if unique
      • blue if magic
      • white for normal
      • grey for currencies
    • Items can also have a lower opacity if sold/moved ( Available "no" or "either" )
    • All items have prices
    • Sort by explicit mod values, price or user activity
    • A time shows the last update registered for that item
    • By clicking on an item in the list, a message is copied into the clipboard to contact the owner. This message can be changed in the preferences.
  • Search history

    • color coded in function of the type of item searched
    • click on an item to search for it again
    • click on the cross to remove it
  • Preferences

    • Set default league
    • Set contact message

Installation

Required node packages can be installed through npm install. On Ubuntu it may also be required to create an alias of the nodejs command to node using the following ln /usr/bin/nodejs /usr/bin/node.

How to run?

The client can be started with npm start.

Requirements

MySQL and NodeJS

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.