Git Product home page Git Product logo

mtgo-collection-manager's Introduction

Hi ๐Ÿ‘‹, I'm Marc

CramBL

mtgo-collection-manager's People

Contributors

crambl avatar

Watchers

 avatar

mtgo-collection-manager's Issues

Symlinks messes up appdata location

Creating a symlink to the mtgo-collection-manager executable and provoking an update of the full collection data, results in the appdata being written to the location of the symlink instead of adjacent (in the same directory) as the bin folder.

Add meta data section

There's an info section with collection info, a similar one could be made but with meta data such as:

  • Goatbots prices last updated
  • Scryfall prices last updated
  • Next set release date
  • (dek-file added moved from collection info to this meta-data section
  • Next available update?

Grid for collection stats/info

Show:

  • When was the tradelist set (date)
  • How many cards (unique and total)
  • Total value
  • Rarity distribution?
  • Max value?
  • Other?

Track collection price history

directory with data from each time the collection data was updated, and/or a single file that continuously adds information (would save space, but be more complicated and less modular).

Potential space issues could be resolved with compression.

It could also be user configurable e.g. limit history to a duration of 3 months.

Aggregate all collection price history data

Initial goal

  • Functionality for the preprocessor to aggregate all the price history data into a single CSV file and write it to stdout

Make a file saving the last time it was done to prevent doing all the work every time? Or rename the file each time time with the timestamp.
If a "running" aggregate file is used, compress all files that have been aggregated previously?

  • MTGO GUI receives this and does something meaningful with it

Using CSV, format and parsing implemted in #91

#94

  • Functionality to read all previously processed price data JSON-files from a directory, in chronological order and aggregate is into a price history class containing historic data of user collection quantity and price data for each card.
  • Functionality to deserialize and serialize it to CSV
  • Functionality to read a previously aggregated CSV and append new price data and save it once again

Next step

  • Functionality to continuously archive (zip) all files added to the price history CSV
  • Add the behaviour to the run update scenario of mtgo_preprocessor

Final step

  • Print the CSV to stdout and implement decoding etc. behaviour in the GUI

Build script that includes everything in a single binary

Explore including MTGO Getter and MTGO Preprocessor with include_bytes! and check for them at startup, writing them out if they're not present.

Additionally, add a build script for MTGO GUI that builds the binaries to facilitate the include_bytes!

Trade tool

Add a tab (or window?) with a trade tool that lets you enter cards and see a price comparison and a total cost for acquiring those cards.

Trade tool should have:

  • Toggle option to just select cheapest version of each entered card
  • When a card is selected -> popup where user has to select set/version of card from available sets for that card
  • Box showing where to buy each cards to get the best prices
  • Time showing how old the price data is for each vendor

Save Full Trade List to appdata

and add a timestamp. Load the saved full trade list at startup and display a tooltip with how old the full trade list is (duration since, and date added).

Card watch tool

Window/tab for entering cards that might not be in your collection but you want to monitor their prices.

Could reuse many of the components of the trade tool (see #88)

Switch to faster C++ map

Currently using std::unordered_map which is ~5 times slower than Abseil's flat_hash_map . Change the map to Abseil's or another even faster one (perfect hashing should be achievable with at least some of the data).

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.