GithubHelp home page GithubHelp logo

ayronk / poe-commerce Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 662 KB

Technological sandbox themed around Path of Exile video game. Uses Blazor and Electron.NET to build modern desktop application with transparent game overlay.

C# 79.60% HTML 10.65% CSS 9.75%
blazor electron electron-app pathofexile practice-programming sandbox

poe-commerce's Introduction

Hi 👋 I'm Marcin (Ayron)

.NET and React Developer

I am a Full-Stack developer focused around .NET web technologies and React. I enjoy having insights on the entire development path. I value quality. Not only in code but also end-user experience. I have also a brief background with Data Science and Game Development... and a thirst for knowledge - anything new sounds interesting!

  • 🌍  I'm based in Poland
  • 🚀  I'm currently working on 100 Days CSS Challenge and organizing my porfolio
  • 🧠  I'm learning Next.js
  • 🤝  I'm open to collaborating on .NET / React libraries
  • 🎮  For Pokémon fans Pokémon Move Translator

Websites

image
ARPG Timeline

Skills

C#       .NET       Blazor       TypeScript       React      

Badges

My GitHub Stats

AyronK's GitHub stats

Support Me

poe-commerce's People

Contributors

ayronk avatar

poe-commerce's Issues

PoC | Use just one window with rescaling

Check if it possible (and optimal) to use just one window for all "pure content" tabs such as trade window/quick search window/league tabs. (of course command line should be a separate one). If it is impement it.

Rare item pricing

Use https://www.poeprices.info/api to predict rare items pricing.
For now use all mods.
Selecting mods will come in the future.
Handle only normal/magic/rare items. Ignore everything else.

Example request (base64 encoded item from poe and league params)

https://www.poeprices.info/api?i=UmFyaXR5OiBSYXJlCktyYWtlbiBTdWl0CkNydXNhZGVyIFBsYXRlCi0tLS0tLS0tClF1YWxpdHk6ICsyOCUgKGF1Z21lbnRlZCkKQXJtb3VyOiA4NzEgKGF1Z21lbnRlZCkKLS0tLS0tLS0KUmVxdWlyZW1lbnRzOgpMZXZlbDogNzIKU3RyOiAxNjAKRGV4OiAxMDAKSW50OiAxMTQKLS0tLS0tLS0KU29ja2V0czogUi1HLUctUi1CLVIgCi0tLS0tLS0tCkl0ZW0gTGV2ZWw6IDY4Ci0tLS0tLS0tClNvY2tldGVkIEF0dGFja3MgaGF2ZSAtMTUgdG8gVG90YWwgTWFuYSBDb3N0CisyMyB0byBTdHJlbmd0aAorODYgdG8gbWF4aW11bSBMaWZlClJlZmxlY3RzIDMgUGh5c2ljYWwgRGFtYWdlIHRvIE1lbGVlIEF0dGFja2VycwoyJSBhZGRpdGlvbmFsIFBoeXNpY2FsIERhbWFnZSBSZWR1Y3Rpb24KMTclIGluY3JlYXNlZCBBcm1vdXIsIEV2YXNpb24gYW5kIEVuZXJneSBTaGllbGQgKGNyYWZ0ZWQpCisxNSB0byBtYXhpbXVtIExpZmUgKGNyYWZ0ZWQp&l=Metamorph

Example response

{
	"min": 108.24000000000001,
	"max": 162.36,
	"currency": "chaos",
	"warning_msg": "Low confidence score (57.1%), prediciton might not be reliable. Providing feedback can let the prediction engine become smarter.",
	"error": 0,
	"pred_explanation": [
		[
			"Socketed Attacks have -# to Total Mana Cost",
			0.433511944323912
		],
		[
			"links",
			0.23870948702746845
		],
		[
			"(pseudo) (total) +# to maximum Life",
			0.22044690950770436
		],
		[
			"num_sockets",
			0.007046174771341722
		],
		[
			"#% additional Physical Damage Reduction",
			0.0036178335948665724
		],
		[
			"Reflects # Physical Damage to Melee Attackers",
			-0.00701446598854777
		],
		[
			"AR",
			-0.03595520260548083
		],
		[
			"(pseudo) (total) +# to Strength",
			-0.053697982180678307
		]
	],
	"pred_confidence_score": 57.14271086254739,
	"error_msg": ""
}

PoE Ninja data

  • Fetch data from PoE Ninja once upon a time (e.g. every 15 minutes).
  • Fetch all data and store in some sort of cached dictionary.
  • Display chaos equivalent and confidence
  • Expose currency exchange method like Convert(10, 'chaos', 'exa')
  • Expose method like GetPrice(string name) and for now return null if there is more then one match
  • Do not throw exception when api is down (just return empty things and handle not rendering)

Deserialize just important properties.

https://poe.ninja/api/data/itemoverview?league=Metamorph&type=UniqueArmour
https://poe.ninja/api/data/currencyoverview?league=Metamorph&type=Currency
  { 'overview': 'currency', 'type': 'Currency' },
  { 'overview': 'currency', 'type': 'Fragment' },
  { 'overview': 'item', 'type': 'Watchstone' },
  { 'overview': 'item', 'type': 'Oil' },
  { 'overview': 'item', 'type': 'Incubator' },
  { 'overview': 'item', 'type': 'Scarab' },
  { 'overview': 'item', 'type': 'Fossil' },
  { 'overview': 'item', 'type': 'Resonator' },
  { 'overview': 'item', 'type': 'Essence' },
  { 'overview': 'item', 'type': 'DivinationCard' },
  { 'overview': 'item', 'type': 'Prophecy' },
  { 'overview': 'item', 'type': 'SkillGem' },
  { 'overview': 'item', 'type': 'Base'type'' },
  { 'overview': 'item', 'type': 'HelmetEnchant' },
  { 'overview': 'item', 'type': 'UniqueMap' },
  { 'overview': 'item', 'type': 'Map' },
  { 'overview': 'item', 'type': 'UniqueJewel' },
  { 'overview': 'item', 'type': 'UniqueFlask' },
  { 'overview': 'item', 'type': 'UniqueWeapon' },
  { 'overview': 'item', 'type': 'UniqueArmour' },
  { 'overview': 'item', 'type': 'UniqueAccessory' },
  { 'overview': 'item', 'type': 'Beast' }
 {
            "currencyTypeName": "Mirror of Kalandra",
            "pay": {
                "id": 0,
                "league_id": 74,
                "pay_currency_id": 22,
                "get_currency_id": 1,
                "sample_time_utc": "2020-01-13T05:36:47.9770861Z",
                "count": 49,
                "value": 0.0000441969661538461538461539,
                "data_point_count": 1,
                "includes_secondary": true // means it is followed by 'k' like 22.0k
            },
            "receive": {
                "id": 0,
                "league_id": 74,
                "pay_currency_id": 1,
                "get_currency_id": 22,
                "sample_time_utc": "2020-01-13T05:36:47.9770861Z",
                "count": 75,
                "value": 22015,
                "data_point_count": 1,
                "includes_secondary": true
            },
            "paySparkLine": {
                "data": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    13.13
                ],
                "totalChange": 13.13
            },
            "receiveSparkLine": {
                "data": [
                    0,
                    -3.35,
                    2.73,
                    11.65,
                    6.54,
                    7.95,
                    11.34
                ],
                "totalChange": 11.34
            },
            "chaosEquivalent": 22320.49,
            "lowConfidencePaySparkLine": {
                "data": [
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    13.13
                ],
                "totalChange": 13.13
            },
            "lowConfidenceReceiveSparkLine": {
                "data": [
                    0,
                    -3.35,
                    2.73,
                    11.65,
                    6.54,
                    7.95,
                    11.34
                ],
                "totalChange": 11.34
            },
            "detailsId": "mirror-of-kalandra"
        }

Roadmap

0.2.0

  • user can use keyboard shortcut to get item prices
    • for now fixed-name items such as uniques, currency, maps etc.
  • compact and complex view (with switching between)
    • compact view should contain basic information such as player name, price, listed ago and PM button
  • user can use command line to search items and use actions such as
    • show delve/betrayal etc tab.

Compact trade results window

  • Display items in a compact way
  • Support instant whisper
  • Use state component to enable 'move to advanced search tab' so we can pass fetched items to advanced component and display them immediately.

Command console

Create command console which by default performs action of compact search item by its name. Console should autocomplete item's names by default. If there is types special character for commands, then autocomplete available actions.

Additional actions to feature in the future are:

  • showing league tabs (such as delve, betrayal etc.)

  • searching quick item data (such as gem info from wiki)

  • advanced item searching like "Shavronne's Wrappings | 6L | BBBGGR

  • Command line component

  • Items (or commands) autocomplete

  • Quick item search command

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.