#tooldev-general

1 messages Β· Page 95 of 1

steep zephyr
#

I have trying to change HTTP to HTTPS but doesnt work ..

#
$.ajax({
        url: 'https://api.pathofexile.com/public-stash-tabs',
        dataType: 'json',
        type: 'GET',
        // headers: {
        //             'Access-Control-Allow-Origin': '*'
        //         },
      }).done(function(response) {
        console.log(response)
}); 

I using simple request not funny to me ^^

grave wren
#

Pretty sure you'd need a proxy to get through the CORS/same origin policy of any modern browser

steep zephyr
#

@grave wren why to coinlore api i dont need proxy and i dont get error CORS ?

grave wren
#

No clue never heard of that

#

They could allow CORS for all I know

steep zephyr
#

damn

radiant hawk
#

cors lets APIs choose what they allow and what they don't

#

so that API deliberately allows you to access it, and poe's deliberately blocks it

#

that's just what CORS is for

steep zephyr
#

Ok but i dont get response of api and idk why

#

other api work fine

worthy cape
#

@steep zephyr You need to read up on what CORS is. In short, it is a mechanism that browsers use to let a target site declare what other sites may make non-trivial requests to its resources. The PoE API doesn't have any CORS headers, and as such, doesn't let anything client-side in a browser access it.

#

As the error says -

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://api.pathofexile.com/public-stash-tabs. (Reason: CORS header β€˜Access-Control-Allow-Origin’ missing).

#

The API is intended to be consumed from a service, not from a browser.

steep zephyr
#

What do you mean by "Service" ?

#

Web app is a service ?

worthy cape
#

A web service, a standalone program, whatever that's not actually running on the client in a browser.

steep zephyr
#

Ok so i need use node.js or php to use an public api ?

worthy cape
#

CORS is a client mechanism, it's the browser that queries it and enforces it to prevent rogue JS to do naughty things.

#

You need to do it "server-side", yes.

#

While at it, also note that the API is rate-limited and the limits are provided in the headers of your response.

steep zephyr
#

Oh ok usually i use server-side if api use oauth key..

#

I go using Node.JS thanks for answer @worthy cape πŸ˜—

worthy cape
#

Most of the API endpoints are public information and are rate-limited by IP. Their OAuth would let you retrieve some more specific information about a player, I believe.

steep zephyr
#

Ok thanks πŸ™‚

worthy cape
#

So what are you building? πŸ™‚

steep zephyr
#

Nothing very original I would like to create an application to see the price of each item

worthy cape
#

A very common use of the API, then, shouldn't be that many curveballs.

#

Trickiest thing is figuring out how to use the change IDs to get more and more information.

steep zephyr
#

Im Front-End developer is for it is to try to improve what I have already seen

#

@worthy cape What is your app ?

worthy cape
#

poe-rs, Rust library to read many of the file formats stored in the GGPK

#

Also working on a companion tool to that to display some of them visually, like hideout layouts, meshes, etc.

steep zephyr
#

Ok nice

steep zephyr
spare glade
#

Hello everybody.

#

I'm trying to work on a program to scan different currency ratios and perform mathematical operations.

#

However, I'm very uncertain if getting data from all of the stash tabs is a feasible solution.

violet path
#

poe.ninja and poe.watch both have public apis that track currency prices, would those work?

worthy cape
#

Consuming the river is definitely doable, the question might be if you can make sense out of the listings.

spare glade
#

My current issue would be this

#

If there is around 92.40 TB of stash data, how am I supposed to analyse all of it?

fickle yew
#

There isn't. It's the data that poe.ninja has gone through over 3 years.

spare glade
#

Oh. So if it looks at the same stash twice, it gets counted twice?

fickle yew
#

Yes

#

And that includes almost all updates to all public stash tabs over all leagues including standard since 2016

#

The full current river is much less.

spare glade
#

And how fast is it to go through all of the stash tabs? I'm guessing that that would take upwards of a day

fickle yew
#

Yeah probably something like that

#

That's what it used to take back when I was experimenting

#

The river should be less than 100 gb. Probably quite a bit less.

spare glade
#

But here's the program that I'm thinking of. I'm not sure if analyzing all of the data or all of the current listed sales will be easier for this.
I want to make a program to analyse the different rates between each type of currency.

#

Using some inferential statistics, I want to be able to determine the 95% confidence interval of the population based on a sample size

fickle yew
#

Sounds like it's detailed enough to warrent going to the river yourself

spare glade
#

Is Poeninja only looking for currency items that are sold from currency stash tabs, or from regular stash tabs as well?

fickle yew
#

Both

spare glade
#

Damn. Looks like I have a lot of catching up to do regarding JSON files πŸ˜…

#

I've only really used SQL and XML before.

fickle yew
#

It's not that bad πŸ™‚

#

Especially if you're only looking at currency

simple ravine
#

@fickle yew wait so you're counting "sold" items, not listed?

fickle yew
#

@simple ravine no, but that wasn't the question.. The question was about normal tabs vs currency tabs πŸ™‚

simple ravine
#

I think I might have taken the sold part a bit too literal πŸ˜„

broken cloud
granite sable
#

@chrome topaz can you please change the parsing on poe.trade for the silver oil tag, i listed my chaos for silver-oil but people are messaging me to sell me silver coins

silent tree
#

what's spc meant to be in the passive data? wiki says it's "class starting node" but the data for the starting nodes don't seem to use it for anything

#

is it just an obsolete field?

#

oh nvm found it

grave wren
#

@carmine merlin your fork seems to have broken dps sorting for minions (blink arrow), the OG pob works fine in that regard

carmine merlin
#

Hmm that’s an odd bug. Will have a look at it tomorrow and see what I can do

grave wren
#

fwiw

quiet smelt
frigid nova
#

Going to have to do text parsing

quiet smelt
#

That sucks 😦 I wonder how poe.trade or poeapp do it.

golden bane
#

Yes, Path of Building and the wiki have mod ranges on their items. No mod ranges on items from the APIs, just the roll.

frigid nova
#

Keep in mind path of buildings roll ranges are quite outdated

#

best to use the wiki for unique item roll ranges.

#

or poedb

quiet smelt
#

the API gives the ranges on the explicit mod - just not the actual roll of the item in the listing

#

now non-unique items will likely be different. BUT that's a problem for the future

#

thanks for your help!

frigid nova
#

Oh just to be clear @quiet smelt I think you're using a different api than poeapp or poe.trade

quiet smelt
#

Do they get access to the cool kids API?

frigid nova
#

no they parse the river

#

youre using the official trade website api from the looks of it

quiet smelt
#

yeah - I didn't want to try to mess with the river of data. I'm just making a basic visualization tool of prices vs stats.

#

Wow - thanks for the reply! I just messaged you on reddit!

#

Its definitely looking like there is a large amount of work to get the right stat_ids then those ranges

frigid nova
#

For the official trade api it shouldnt be that much work.

golden bane
#

On third-party trade sites, you cannot correctly determine mod tiers, such as with %rarity prefix + suffix

frigid nova
golden bane
#

The best you could do in such a case is list all possible combinations

frigid nova
#

@golden bane note this is not the case for the official trade api

#

which is what they are using

golden bane
#

Oh yeah I forgot that got added to the API

#

Thought it was still only visual

frigid nova
#

iirc its always been on the official trade api

quiet smelt
#

Ah - so I could map the value I parse out to the range using the stat id e.g."explicit.stat_3299347043"

golden bane
#

iirc Novynn added it later on request

frigid nova
#

ah I see, well that's nice of him πŸ™‚

#

@quiet smelt yeah, just use the explicit.stat look up to get the values

golden bane
#

btw @frigid nova, thanks for the heads up about incorrect/outdated mod ranges in PoB

#

Found one already

frigid nova
#

yeah, although @carmine merlin fork might be more up to date

golden bane
#

Already checked, guess I'll just PR on both repos once I've processed all

frigid nova
#

ah yeah

#

might be nice to just have a script which pulls off the wiki

#

into whatever format pob uses.

quiet smelt
#

thanks a lot all for your help

golden bane
#

That's actually something I thought about implementing already

golden bane
carmine merlin
#

I was pretty sure that all the mod ranges in POB were up to date as I know that it pulls all the mods directly from the content.ggpk file. If there is one that you can find that isn’t the right range, can you let me know and I’ll have a look into it

frigid nova
#

There is no link of uniques to mods in ggpk

#

and sometimse they make a totally new mod when they want thinsg to stay legacy

#

so you have to change that by hand.

carmine merlin
#

Ahh yeah. Those are all hand done

frigid nova
#

pulling off the wiki

#

will give you the name of the content.ggpk mod ids

grave wren
#

I think abyss jewels aren't up to date for sure

#

Ghastly rolls look too high from just my memory

carmine merlin
#

the flat damage ghastly rolls are correct from a couple of searches i just did. all the mods and jewel rolls were updated in a patch at the start of the league after abyss jewels were nerfed

worthy cape
#

How odd... I can't see the last post about 3.9.0 from @remote yoke in #old-game-news in any of the Discords that supposedly follow the channel.

#

There's UX suggesting that I should Follow the channel, but in my server there's still a webhook for it.

#

Guess that it might be Discord that's having a moment?

remote yoke
#

That was my fault. I forgot to publish it :P. Was preoccupied.

simple ravine
#

stats dont har tiers, mods have. what you see in the river, and on the item in game are stats, which can be 1 or more stats.

#

(regarding the parsing discussion above)

worthy cape
#

A-ha! There it arrived.

#

@simple ravine How do I unscramble an egg? I put in salt and pepper from multiple grinders too.

simple ravine
#

You don't. You make an omelette and call it a day

simple ravine
#

@fickle yew Will App Center have web stuff in the future, or is that completel out of scope?

fickle yew
#

@simple ravine It might. October is my last month at Microsoft though. Going back to the startup world.

simple ravine
#

oh daaym, cool

#

you will have to tell me more about that.

#

brave to jump off the safe bandwagon in these times, what will u be doing?

fickle yew
#

Established startup not too risky. They stole me back. I'll be working doing stuff that hopefully impacts across 6 eng teams.

#

That's my role anyway πŸ™‚

#

But they grew from 50 to 200 in the 2 years I was away, so will be interesting to see how it changed

simple ravine
#

woah, it is 2 years ago now? it feels like it was a few weeks ago πŸ˜„

fickle yew
#

Time flies

simple ravine
#

Exciting times!

#

thinks of more temporal phrases

fickle yew
#

Yeah looking forward to it. I wasn't actively looking to leave ms but the offer was unique and exciting.

frigid nova
#

@fickle yew where are you based out of?

fickle yew
#

Denmark

quiet smelt
#

Any one know how to decode POB strings in python?

golden bane
#

@quiet smelt What do you mean with PoB strings? Items?

#

Oh nvm I get it

quiet smelt
#

the PoB strings when you export a character - usually get pasted to pastebin. I want to parse out the items in the build but I can't seem to decode the thing successfully

#

I know its base64 base encoded, but I don't know what other transforms are happening

#

maybe @timid hemlock knows

golden bane
#

Have a look at _fetch_xml_from_import_code

quiet smelt
#

FANTASTIC

golden bane
#

I already have this library for interacting with PoB builds in Python

quiet smelt
#

thank you @golden bane - you're the best - you've saved me hours.

#

did you make it?

golden bane
#

Yes

#

All suggestions/contributions are welcome

quiet smelt
#

i'll look it over. great work.

golden bane
#

It's even on PyPI

quiet smelt
#

i see that. this is so cool. pip install pobapi here I come!

grave wren
#

Oh neat gotta check if I can contribute or if you do everything I am doing already

grave wren
simple ravine
#

Wait, does it talk with headless?

grave wren
#

xml parsing onle for now

#

didnt find a benefit of talking with headless for now

#

toyed around a bit with it but its way too heavy for simple build sharing here on discord

golden bane
#

@grave wren Thank you, I will add the additional skill mappings

#

There are a lot more than in poediscordbot

grave wren
#

hm i only did add those i've thought of tbh, was mostly asking because some prefer to import things in their original form and then transform on the go πŸ™‚ Got some pretty crude models in the bot too, especially in terms of items

golden bane
#

As of now, pobapi only looks for nameSpec, which is empty for non-gems, so I certainly have to change something.

#

Somehow I thougth about excluding skills granted by items from the skill_gems property, but not about naming them

grave wren
#

ah i see, yeah in theory you probably want it to have their own class for a generic api so you can differentiate them

golden bane
#

Currently they are in skill_groups but not skill_gems

#

Own class might be a good idea though, as them being Gem makes little sense.

#

Proposal: different class with same fields to allow duck typing

grave wren
#

i'd prolly suggest an interface/abstract class that represents an ability which can be a gem or any other ability gained from something

fast citrus
#

Hideout decorations are in the ggpk files somewhere right? It should be possible to see if any new ones were added in blight?

cosmic saffron
#

I usually just check the list on poedb

floral notch
fast citrus
#

Is there any way on the poedb list to see which league a hideout doodad first appeared?

velvet fog
#

I don't record that

floral notch
#

Ty!

worthy cape
#

@fast citrus if one has the old GGPK files, one could technically just compare whatever DAT tables there are, assuming that you still have versions of the viewer that understands the old tables

fast citrus
#

Yeah, I gave up haha

worthy cape
#

Might not correlate with what's released in a league either, many of the new hideouts have been in the game files for ages.

worthy cape
fast citrus
#

❀ ty @worthy cape

worthy cape
#

(I've kept old GGPK files for a good reason, it seems πŸ˜„ )

fast citrus
#

Oh I was pretty sure I knew what they all were πŸ˜›

worthy cape
#

This doesn't include old doodads that might have gotten new variations, not sure if that happens.

worthy cape
#

No variation differences, it seems.

golden bane
#

In PoB's export XML, there is at least one item that grants a skill that has a non-empty nameSpec: Abberath's Hooves.
I wonder if this has something to do with the wording. In PoB, it says "casts", but in the game it says "triggers".

golden bane
#

Update: it does. I've made a PR to PoB.

golden bane
#

Sounds good enough. There is no official API for it and I also don't know of anything else 3rd-party

weak ridge
#

I invite to party for do 4 timeless emblem free

#

@PeladoInvocador

gritty olive
#

@polar island I found a bug πŸ™‚

#

it's partly my fault, but other items are properly determined

#

If you use the url encoding feature of an item, and you don't specify the type "Gloves" it looks them up as "Armour: Body"

#

np πŸ‘

gritty olive
#

@polar island nice, if you add me as a friend I can send you to the page where there are tons of test links for these things, I found a few other issues, like sockets not being picked up, and quality not being picked up

#

I have gloves working, but now the base doesn't show up πŸ˜…

broken cloud
#

Excluding gilded fossil items, is it possible to tell the exact vendor value of an item? Is this somewhere in the data files?

fickle yew
#

@earnest radish Ah yeah those are a pain πŸ™‚ I'll see what I can do about it..

#

Thanks for the thorough report

fast citrus
broken cloud
#

Sweet, thanks

spring harness
#

starting poe dev

marble rivet
#

Is there a Bot for Discord that can create a preview of PoB builds like the PoBPreviewBot on reddit does?

#

i found FWidm/discord-pob on googke, but it hasn't been updated since 3.7, so likely not working right?
edit: plz @marble rivet if anyone answers

spring harness
#

is there a npm library for getting stash data from an account with poessessid or whatever its called

fast citrus
broken cloud
#

@spring harness None as far as I know of

#

BTW, you'll want to URI-encode accountName and characterName

marble rivet
#

@fast citrus i did and thought the discord i'm in is using that...maybe renamed...i will check on that. thanks

fast citrus
#

I am in the support server and I think someone mentioned the bot was down recently, but it looks like what you want

spring harness
#

thanks briansd

storm wedge
#

i've made a small tampermonkey browser script to filter characters on official site - it adds 2 buttons with dropdown checkboxes list, which let you filter characters based on class and league.

https://gist.github.com/alt0172/22ba9c71563e3860db1e5841e5fd1e0e

it works, but sharing it is a bad idea because of security reasons (installing custom scripts on site where you can spend points is risky), right?

Gist

GitHub Gist: instantly share code, notes, and snippets.

inland kestrel
#

New dev in the house. Didn't realize this discord channel existed. Fun to see so many familiar poe developer names in here. I'm going through the backlog of chat here but seems like there's some great resources. Cheers!

inland kestrel
#

For my first "noob" question πŸ™‚ :

There are certain affixes that are mutually exclusive. I'm not sure if this only applies for crafted mods. One example is: you can't craft movespeed on boots if it already has movespeed. You can't craft flat life on something if it already has flat life; however, you can craft hybrid life on it. One more example is staves: you can't craft +2 levels to socketed support skills if it has +3 to all cold spell skills, however, you CAN craft that even when +2 to all spell skill gems exists.

So I was curious exactly how these rules are decided and whether these mutually exclusive groupings have been prepared anywhere already.

languid tulip
#

i believe this is governed by mod groups/mod families (same thing but can be referred to as either depending on who wrote it). im by no means an expert on this but for that stave example, +# level to socketed support gems is in the group "IncreaseSpecificSocketedGemLevel" and so is +# level to all cold spell skill gems. +# level to all spell skill gems, however, is in the separate group "IncreaseSocketedGemLevel"

#

i just happened to look these up on the wiki; as far as a more organized/digestible collection of this information i'm not sure

inland kestrel
#

Ah okay, cool

#

Is there an api or (json?) data file that has the deadlisting already?

#

I can't recall of the official site lists that under its metadata stat endpoint

cosmic saffron
#

poedb already has most of the affixes categorized

spring harness
#

How do I send the POESESSID in a get request with angular

#
    customHeaders.append('myHeaderName', 'myHeaderValue');
golden bane
#

@spring harness Send it as a cookie.

spring harness
#
      POESESSID: this.poessForString
    };
    this.requestOptions = {
      headers: new Headers(this.headerDict)
    };
this.http
      .get(
        "https://www.pathofexile.com/character-window/get-stash-items?league=Blight&accountName=qqazraelz&tabs=1&tabIndex=1",
        this.requestOptions
      )
      .subscribe(data => {
        this.stashdata2 = data;
      });
    console.log(this.stashdata2);
  }
inland kestrel
#

@cosmic saffron does poedb provide an api to get at those?

spring harness
#

getting 403 but the header is set in the electron angular app

#

im looking for my stash items

#

like a currency ciop style thing in angular

inland kestrel
#

I see that PathOfBuilding actually has group listed for certain things in ModItem.lua

golden bane
#

@inland kestrel Gladly there is an API for poedb

inland kestrel
#

I guess it's something I could scrape once and persist

#

Is eps1lon an active dev here? Looks like he had something similar at one point

#

@languid tulip where'd you find those item group names? I'm curious what the one for "# to level of all Cold Spell Skill Gems" is, since it's a newer one (I believe)

velvet fog
#

actually, there is api for poedb

golden bane
#

Really?

velvet fog
golden bane
#

Do you know when this was implemented?

velvet fog
#

about 3 month ago

golden bane
#

Good, then my HTML parsing last year was not for nothing :)

velvet fog
languid tulip
#

@inland kestrel i found them on the individual pages for those modifiers on the wiki. https://pathofexile.gamepedia.com/Special:CargoTables/mods has a more broad cargo table for mods. tbh i dont know my way around this stuff very much at all, these other people can probably provide you with more useful info

inland kestrel
#

I was looking at the brather1ng/RePoE stuff earlier. It doesn't have some of the newest stuff. Looks like I would potentially need to datamine it myself? idk

frigid nova
#

@inland kestrel which stuff does it not have which you're looking for?

inland kestrel
#

"# to level of all Cold Spell Skill Gems"

frigid nova
#
"GlobalColdSpellGemsLevel1_": {
    ...
    "stats": [
      {
        "id": "cold_spell_skill_gem_level_+",
        "max": 1,
        "min": 1
      }
    ],
    "type": "GlobalIncreaseColdSpellSkillGemLevel"
  }
#
{
    ...
        "string": "{0} to Level of all Cold Spell Skill Gems"
      }
    ],
    "ids": [
      "cold_spell_skill_gem_level_+"
    ]
  }
#

@inland kestrel was there a specific instance of that mod which wasn't in there?

inland kestrel
#

What the heck! I'm so confused. Where was that found?

inland kestrel
inland kestrel
#

Thank you @frigid nova btw

chrome topaz
#

I'll get that fixed @granite sable

granite sable
#

@chrome topaz thank you. btw there's a typo in the mod list Denoted service of # dekhara in the akhara of **Asaneth** Passives in radius are Conquered by the Maraketh, it should be Asenath

humble zodiac
#

hi

fallow zinc
#

How would I get the price for currency pairs? For instance, seeing all offers to trade chromes into fusings

#

What API would you recommend I check out?

inland kestrel
#

@fallow zinc You could query the whitelisted trade sites if you're looking for the actual open orders. If you're just looking for general exchange rates then you could use poe.ninja to get its indexed rates and quick math it yourself

fallow zinc
#

nah I need it to be up to date... do you have a recommendation for a trade site to use for this?

#

preferably a fast one with a good api

inland kestrel
#

I'll always recommend the official one

#

"good api" is in the eye of the beholder

fallow zinc
#

the official one requires me to query actual stash tabs though, right?

inland kestrel
#

Well, I've seen a wiki page for the public stash api. That seems like what you'd want if you want to write your own indexer.

#

I believe that, unless you're one of the very few white listed sites, the stash stream info that you're provided is at a slower rate

#

Some trade sites have an api (that often isn't documented well) that you could try and take advantage of

#

For you specific use case, /api/trade/exchange/Blight would work (for Blight sc)

#
{"exchange":{"status":{"option":"online"},"have":["chrom"],"want":["fuse"],"minimum":10}}```
spare glade
#

I'm actually trying to do a very similar thing to Maloik

#

Is it also possible to filter by ID instead?

inland kestrel
spare glade
#

So instaed of "have":["chrom"],"want":["fuse"], couldn't I do something like "have":[id:="7"],"want":[id:="2"]?

inland kestrel
#

I'm not sure. I'm just going by what I currently see

spare glade
#

If not, is there a list out there where you can get names based on the ID?

inland kestrel
#

Did you look at the link I provided above at all?

fallow zinc
#

thanks for the pointers, I'll check that out

spare glade
#

No, I didn't see that link yet. I just came into this channel (and I can't scroll up with this terrible WiFi) πŸ˜›

inland kestrel
#

Oof πŸ˜›

fallow zinc
#

you mention a wiki page... do you remember where to find that?

inland kestrel
#

Resources -> Public Stash Tabs

spare glade
#

I only saw that you linked this one

fallow zinc
#

oh that one yea that is very very sparse on info though πŸ™‚

inland kestrel
#

Yeah, exactly templarSad

spare glade
#

How do you query this exactly? I'm trying to do
https://www.pathofexile.com/api/trade/fetch/query=%7B%22exchange%22:%7B%22status%22:%7B%22option%22:%22online%22%7D,%22have%22:[%22chrom%22],%22want%22:[%22fuse%22],%22minimum%22:10%7D%7D
But I jus get {"result":[null,null,null,null]}

inland kestrel
#

Yeah, you're doing that wrong

#

It's a two phase process

#

in fact... I'm not going to re-type it out

#

Just literally look at the link I gave you above (the same one you pasted above as well)

subtle lion
#

anyone knows whats default alpha numbers for
SetTextColor SetBorderColor SetBackgroundColor
in filters

golden zealot
#

hey there, working on a tool that needs pricing data -- is the best option to just hit the poe.ninja endpoints? poeninja not having any docs on it or anything makes me hesitant to just spam their poor website

#

i saw a note about poe.watch as well who seem to have an exposed API for public consumption but idk how up to date or reliable it is

#

any input appreciated :~)

#

yeah that's what i said πŸ˜‰

#

their data is different though, which isn't surprising, so i guess im just wondering if there's consensus on which is better? assuming again that poe.ninja doesnt mind the usage (i assume the dev doesn't, since exilence seems to use them)

violet path
#

I've used both in my tool, currently poe.ninja tends to be much more reliable for smaller items but can lag behind a few hours of big market movements. poe.watch is more sensitive to those movements, but has the occasional hiccup and small currency tends to be overvalued

#

last i checked, poe.watch also has a richer api, giving this like price history and change in the last week, compared to ninja

golden zealot
#

thanks πŸ™‚

deft jolt
#

a very good comparison πŸ‘

opaque shell
#

hey, if you wanted to make a list of poe tools to launch with game (app is electron based), how would you make this list? ipcMain/Renderer, or config-store -> save tool paths to config -> read and make list from config json? Or something different?

#

(yes, it's simple game launcher with variable amount of tools)

deft jolt
#

didn't someone already make exactly that?

opaque shell
#

pal2, buggy, i dont like its design, slowly updated

#

so im making my own version

grave wren
#

Wouldn't use such a thing windows shortcuts can do what I want them to do

inland kestrel
#

@grave wren I feel exactly the same but I didn't want to smash dreams

#

and that is in fact exactly what I do. I don't have many things I run, just a directory with shortcuts to them, trust-worth... easy to update

inland kestrel
#

Okay, I'm interested @earnest radish , why all the rmdir? Just keeping the house clean or something more?

#

seems reasonable

#

Ah, maybe that's what I was thinking of but couldn't recall

frigid nova
#

Yeah, same with incursion mods currently to my knowledge.

inland kestrel
#

of the underground

#

does that spawn on any item?

frigid nova
#

No

inland kestrel
#

only boots, right?

#

is there something in that listing you shared above that dictates it's a chest affix?

#

I'm mostly interested in the mods that ONLY spawn on items from a certain location (e.g., certain delve nodes or incursion). Specifically not the ones that are craftable

#

Okay cool, I can poke around in there too later when I get home from work

frigid nova
#

@inland kestrel you wont find that info in repoe to my knowledge

#

but it might be buried in the content.ggpk somewhere else.

inland kestrel
#

okay. Looks like I need to bone up on how those get parsed

frigid nova
#

or if its in mods.dat

#

repoe currently doesnt parse it

inland kestrel
#

I think https://poedb.tw/mod.php?cn=Incursion does a good job at showing the incursion-only mods. I'd like to find the Delve-only mods (not fossil crafted). And then I'd also like to learn how to know what item slots they show up on

frigid nova
#

Yeah, as xanthics has pointed out getting a list of them wont be hard

#

finding what bases they spawn on is a mystery

inland kestrel
#

ok. but presumably it's in content.ggpk?

frigid nova
#

🀷

inland kestrel
#

That one is also explicit.stat_1658498488

#

that would make sense

#

meh, i'd love to look closer at it right now but I need to finish up one last thing for work before heading home πŸ˜’ I'll see what else I can dig up

frigid nova
#

I think the best you can do with repoe is get a list of all Subterranean and Of the Underground, and then remove the ones which spawn from fossils. Even then you'll end up with legacy mods iirc

#

GGG's internal naming conventions are... interesting

lavish gust
#

I have heard from multiple tool authors they have many inconsistencies

golden bane
#

Yeah, Zana is called "StrDexIntNPC" for example, because she is a scion ("StrDexInt" ingame) NPC

lavish gust
#

lol

frigid nova
#

My favorite example is when they pick some random internal name for a skill and it bleeds out into the game

#

like when they used the internal name on the helm enchant for purifying flame

#

so no one knew what it did

lavish gust
#

Icicle Mine was or still is using Freeze Mine image

frigid nova
#

One could hypothesize a quick refactor would fix these issues πŸ€”

lavish gust
#

well, I query poe.ninja and poe.watch instead and thank them a lot for much better interface

golden bane
#

Another good one: {"OnHitWhileCursedTriggeredCurseNova": "Elemental Warding"}

lavish gust
#

Frost Fury is so much ... contradicting

#

well ... I am doing some filter tool .... haven't touched enchants yet

fast citrus
#

I like it when they name a league after an already existing skill.

floral notch
#

Anyone familiar with /character-window/get-stash-items? Trying to figure out why, even with a public account, I can't call it to get stash data. Getting Forbidden.

#

Trying to get a tabIndex that is set to public as well

golden bane
#

@floral notch You need to submit your POESESSID as a cookie together with your request/session

floral notch
#

And that sessid needs to be a valid login for the user's stash i'm querying?

golden bane
#

Yes, of course

floral notch
#

I guess I expected you could view a public stash without needing to be auth'd, heh.

golden bane
#

You can view public items on the trade APIs

floral notch
#

I wanted to build a tool to let you find your valuable div cards, but it seems like they'd still have to copy+paste their json in

latent olive
#

Okay, I'm not sure if that's the right place to ask, but... Path of Building seems to be crashing my GPU drivers, at least that's what windows' Event Viewer says, did anyone else encounter such problem?

golden bane
floral notch
#

Ah, im guessing thats the filterblade stuff too

golden bane
#

Yes

floral notch
#

I noticed they have oauth to save

golden bane
#

Would be pretty neat to have a web application that finds valuable unused stuff in your stash

floral notch
#

Yep, I'll email Rory and see how much work it is to get access

#

tyvm!

spring harness
#

is anyone using angular/ Node for get requests for get-stash

#

ive been stuck trying to get data from it with setting cookie headers

#

to the point I might just use a python backend to do get requests from pythons request library

floral notch
#

Whats the error you're getting?

spring harness
#

403

#

its not even sending the cookie in the request

#

but I have it set in my electron angular app

#

with ng-cookie-service

floral notch
#

and its not set/seen in the network inspector tab in chrome?

spring harness
#

anyone doing angular work for stash indexing. cant seem to figure out how to send a response with trhe poesessid

grave wren
#

Did you try a local express (or similar) proxy for the cors issues?

#

I'd not trust some third party proxy to work flawlessly hosted on heroku

spring harness
#

its only for dev

#

when i use heroku

#

im using electron and it messes with request weird,

#

im getting "Refused to set unsafe header 'Cookie'

#

which lead me down a rabbit hole of how electron uses ipc to do it, and electron has it's own net get thing

#

but that didnt really lead me anywhere because I got the same unsafe cookie thing

grave wren
#

never toyed around with electron, not a fan of it

worthy cape
#

Exilence devs are too clever for their own good. Tool detected me mispicking the correct Client.txt twice, once from an old backup and once from a Standalone installation.

lavish gust
#

That's pretty good: predicting and implementing error messages before someone even does it.

#

Anyone knows which items fall into Class "Microtransactions" in item filters?

uncut iris
#

anyone knows where I can find all uniques description in the content.ggpk ?

golden bane
uncut iris
#

@golden bane thx

inland kestrel
#

Not sure if the PoESkillTree dev is in here or if someone else happens to know but... why is Band of the Victor on the unique blacklist? πŸ˜›

#

My guess is because Band of the Victor was originally intended to be an event prize for a PvP season that was ultimately abandoned.

woeful sphinx
#

That's correct, it could never be obtained

inland kestrel
#

@woeful sphinx i've been checking out repoe and reading up on your comments through the various issues that were submitted. Does all of your data come from pypoe and the ggpk? I didn't notice unique item info in your json files and am wondering if this is becuase they are no longer available via the ggpk or if it isn't yet set up to pull that data out. Thanks mate

woeful sphinx
#

It's no longer in the ggpk

golden bane
#

@inland kestrel I thought it would be pretty obvious from my linked issue that the unique item data will not come back

woeful sphinx
#

See the link above

inland kestrel
#

... was from 2017 so I wasn't sure if there had been any more recent updates. Thanks for confirming

golden bane
#

Why would someone stop datamining uniques before release now?

primal schooner
#

Parsing the entire dataset seems like the biggest task

swift shell
#

@primal schooner the problem with pricing shaped/elder items with ai is:
a) people themselves are shit at this so data in is garbage
b) prices depend on the combination of mods, so the ai would need to be able to evaluate synergies

hazy wigeon
#

Unfortunately, the first hurdle you have to overcome lies in the fact your dataset is based off prices. Not sell prices

primal schooner
#

well, not really, because it only needs to evaluate it against items that are already up there, or return that there is no like items

hazy wigeon
#

What you need to overcome is actually monitoring items that sell, so watching items that get priced, then after a bit leave the market, implying they probably got sold

primal schooner
#

if you get a watcher's eye w/ 3x hatred on it

swift shell
#

once again, how do you determine like items

primal schooner
#

you just see if there are any other with the same affixes

hazy wigeon
#

Thats the next task and, whew, that is incredibly difficult

primal schooner
#

you'd need to parse the affixes

swift shell
#

and there are two items with the same affixes

primal schooner
#

the same way you'd look it up manually

swift shell
#

one is unpriced, the other is listed for 100ex

primal schooner
#

so you jsut return a count and avg

swift shell
#

when you look up items manually, you decide which mods to exclude

primal schooner
#

total 2 items seen for a avg of 50x

#

vs seeing 25 items w/ an avg of 5x

#

or 100 items w/ an avg of 10co

hazy wigeon
#

Consider the following:

Boots with 30 move speed, life, dodge chance, and 2 resist
Boots with 35 move speed, life, 3 resists.

How "like" are these two items? Are they alike? or no?

primal schooner
#

you have the data and the evaluation, you just need to write a bunch of if statements... basically

#

idk what boots have 35 move speed

#

but i want them

hazy wigeon
#

Thats like saying writing a novel is as simple as writing a bunch of sentences

swift shell
#

well at that point you're just hardcoding in the weightings

#

and you'd have to update every other week

#

to adjust for the current economy meta

primal schooner
#

so, when I look up an item

hazy wigeon
#

Also whenever new affixes get added

primal schooner
#

I use some basic parameters

hazy wigeon
#

Also, its MUCH more complex than handling each stat in a glass box

primal schooner
#

liek item type / base type / rarity / etc

#

and then do affix ranges

hazy wigeon
#

See the thing is, some stats are VERY valuable when paired with another specific stat, but seperately they are both meh

swift shell
#

base type is borderline irrelevant except on mirror tier items

primal schooner
#

so if you take a RARE/Ammulet/etc and then check affix 1, 2 ,3 etc

#

vs the dataset of rare ammulets / etc w/ affix 1,2,3

hazy wigeon
#

That will only scratch the surface

primal schooner
#

and then return a count and avg price

hazy wigeon
#

and wont give you a good actual concept of the real value

primal schooner
#

what do yo umean by real value?

hazy wigeon
#

because some stats are a huge goldmine when paired. Great example are weapons

#

If I get flat phys and flat fire, meh

#

if I get %inc phys and %inc elemental damage, meh

#

BUT

primal schooner
#

it doesn't matter

#

because people are posting those items for more

#

so the dataset already accounts for that

hazy wigeon
#

flat phys + inc phys, or, flat fire and %inc elemental, those when paired right are great

#

Your numbers will become flawed

#

Because they will get either massively inflated or massively deflated because some items have the pair and some dont

primal schooner
#

you don't eval against ones that are like

hazy wigeon
#

Your price you get from that algorithm isnt going to be "how much my item is worth", the output is "whats the ratio of garbage vs good items with some of my mods"

#

Which isnt necessarily a reflection of your items value because you dont know where on that spectrum your item sits

primal schooner
#

idk what you mean

#

because, for example

hazy wigeon
#

figuring out where your item sits on that spectrum between trash <-----> god tier is the hard part

primal schooner
#

you won't evaluate a pair of boots w/o +30% movement speed vs ones that do have it

hazy wigeon
#

So you are only gonna lookup items that have the EXACT same mods?

swift shell
#

and how would the ai know that?

#

either you hardcode it in, which is a shitty solution

hazy wigeon
#

Thats like, 99.9% of the time going to return nothing useful

primal schooner
#

you just parse the affixes

swift shell
#

or the ai is intelligent enough to know that movespeed is valuable, in which case you have solved general ai, congratulations

hazy wigeon
#

the vast majority of the time you are barely going to get any results

#

thats waaaaaaaay to fine tuned and most of the time you'll get back single digit results, most of which will be unlisted

primal schooner
#

why do you need to 'assume value' prior to evaluation

hazy wigeon
#

So right off the bat, step 1 obvioisly is evaluating which affixes are always garbage tier and can safely be ignored, so you get more results

#

For example stun threshould, light radius, stuff like that tends to be ignorable and you can pretty safely ignore those affixes right

primal schooner
#

boots with +30% movement, +life, +reist 1, and +resist 2 just need to fidn other mvmt,life,resist 1, resist 2 boots, return those values and take a count and avg

hazy wigeon
#

Then next up you realise you're boots with like, +5 life, are getting compared against boots with +70 life

primal schooner
#

you are just comparing like trials

swift shell
#

once again, how does the ai know that

primal schooner
#

you jsut code it.

hazy wigeon
#

So you gotta go "oh, shoot, okay, I guess maybe we ignore any affixes below T4 or so?"

swift shell
#

ok so your solution is just to hardcode all of it

#

so really you are the pricing algorithm

#

and the ai is just a glorified search bar

hazy wigeon
#

I mean "just hardcode it" is easy to say, but like I said, thats like saying "Writing a novel is just writing a bunch of sentences"

#

but you gotta know what to hardcode

primal schooner
#

that's all it is, basically. if it has X then find items w/ x

#

if it has XYZ find items w/ XYZ

swift shell
#

well you could just hardcode every possible item templarLul

primal schooner
#

return values, count > give user avg price

hazy wigeon
#

As I said, please indicate you read this, if you do a pure affix matchup lookup, you will get extremely few results and not enough results back to have reliable prices

#

Like, 6 results back, most of which are unlisted price

#

That wont be good enough

primal schooner
#

you could then add a weighting system

hazy wigeon
#

How do you know what weights are right?

primal schooner
#

that would be much more advanced, but not impossible

hazy wigeon
#

You gonna pick every single weight by hand? How do you know your weights are right?

primal schooner
#

just gather statistics

#

the items that are worth more have the 'better' affixes

hazy wigeon
#

You're on the path here, this is where AI comes in

#

See AI neural networks are a series of nodes, they take data in, give an output

primal schooner
#

so as you see more items w/ more of the same affixes having higher prices, you give thsoe affixes higher weights

#

the logic is not difficult

hazy wigeon
#

Let me tell you, whenever a client tells me "it shouldn't be hard" or "The logic is not difficult" I double their quote lol

#

Every time

primal schooner
#

i mean, it's really not. whether or not it's worth the time is always a diff story

hazy wigeon
#

Your quote just doubled again :p

swift shell
#

if it was easy, why does literally every price check macro ever suck complete ass

primal schooner
#

do i want to spend the next 1000 hours of my free time working on this, and if so, how much of that time will i recoup costs for?

swift shell
#

like do you think every single price check macro dev is an incompetent moron

hazy wigeon
#

Now what if I told you there was a proper way to indeed get those weights automatically, you dont have to enter them

primal schooner
#

because, there's no roi for a hobby

swift shell
#

and yet openarl did pob for a few years on his own

primal schooner
#

the ability to monetize it is what drives it

swift shell
#

and pob is actually good

hazy wigeon
#

Because as it turns out, there is indeed a powerful tool you can use to automatically calculate weights for multi-variable decision making

primal schooner
#

yeah because the guys spent thousands of hours coding a resource correctly

#

idk if or how he moentized it, but i'm assuming it was a hobby product

hazy wigeon
#

And then he got a job with GGG which was his RoI

primal schooner
#

there ya go

hazy wigeon
#

he literally is a PoE dev now :p

#

Anyways, I feel like Im saying stuff that delves into the actual solution for this problem and am not getting anywhere

#

if you have questions for a software dev that literally does stuff like this for a living, feel free to ask, but I get the sense you dont actually care too much and already have your mind made up that it is super easy

primal schooner
#

i'm gonna take a stab at it

hazy wigeon
#

My solution would be to employ a Tansigmodial, Linear Regression Neural net, so the simplest type, as well as an intial filtering layer of logic, so I only pass off filtered affixes that (might) matter to the neural net

#

Step 1: parse the affixes, "peel off" any garbage affixes (anything below T4, and all the straight up garbage ones like stun thresh, light radius, etc)

#

Step 2: My neural net would have a input node for every single possible "non garbage" afffix, so T1 life, T2 life, T3 life which each be a seperate input node

#

Step 3: I input 0 or 1 into my nodes, representing on/off for if the affix is present, or not

#

Step 4: I train against 70% of the dataset until I drop below a preferred error threshould, ideally 5%, then I test against the remaining 30%, and output to my console my Neural Nets spread of accuracy

#

Done and done.

#

To improve fidelity, I think I also would want to have open prefixes and open suffixes as well

swift shell
#

do you think something like this would be able to handle shaped/elder items at all?

hazy wigeon
#

Sure, I could have Elder and Shaper also be input nodes

primal schooner
#

yes

swift shell
#

but i mean shaped/eldered mods

#

since imo those are super hard to price

#

plus small dataset

primal schooner
#

well, assigning an intial price is not the objective

#

the objective of the service would be to evaluate your item against existing like items that already have prices

swift shell
#

that's the easy step though imo

hazy wigeon
#

You will almost never find "like" items for good stuff is your problem, which is why using a neural net adds the plasticity that is required

#

This allows you to evaluate "close" and "similar" items as well

primal schooner
#

I agree

#

but I'd start with hard evaluation, and then move into range eval

#

because most of the time, the hard eval will get you enough info

hazy wigeon
#

I feel like everything I am saying is completely going right over your head lol

primal schooner
#

and focusing on the completion of 99% of trials is better than worrying about the 1% that will fail or shoudl be manually evaluated

#

i'm trying to take a step back and look at the system holistically

real cave
#

just hire child workers

frigid nova
#

@hazy wigeon imo a simple feed forward neural net is not the way to go here.

#

Also @primal schooner idea of hard coding logic for poe pricing is comical at best.

worthy cape
#

@frigid nova Someone should make a service that matches people like me up with people who like cleaning and pricing dump tabs.

#

(would unfortunately be against the EULA to account-share, I guess)

grave wren
#

step 1: dont use dump tabs

#

:>

frigid nova
#

@worthy cape you are a godsend πŸ™Œ

hazy wigeon
#

@frigid nova I think itd be a starting spot, then further refine the model towards improved fidelity, adding improved filtering to the data, which may involve some kind of feature bank algorithm perhaps.

real cave
#

step 2 just get good

worthy cape
#

Three quad tabs of junk and counting... πŸ™‚

real cave
#

vendor everything ez

frigid nova
#

I have quite a few thoughts on the proper architecture and set up. I got about half way through trying out a sign of life project - but unfortunately have been swamped with work lately. Any help is welcome - I have the dataset and the access to compute, so all I really need are the hours to prime the data

spring harness
#

3 days for 1 error

#

finally getting stash data

#

huzzah

primal schooner
#

@worthy cape not really. if they put things into a public stash tab, it's just that public. you could create a webservice for ppl that would let you view a specific stash tab (they'd have to set a specific name for it) and then you could see what is in that tab

worthy cape
#

@primal schooner You'd still need to clean it and separate out the juicy bits, and identify all the things you haven't even bothered looking at πŸ™‚

#

(yes, this is all self-inflicted)

primal schooner
#

I mean, the only API service is a GET

#

and it returns ALL the stash tabs

#

so yeah, filtering it client side is ... less good

#

it'd be nice if they provided a POST api for stashes so that we could filter results server side

#

but alas, gotta work w/ what you got

hazy wigeon
#

Er, POST vs GET both can have filtering, the only difference is whether you should be filtering in the body of the request vs url segment filters

#

Wow, looking at the item API, rather than simply serving an Id for each mod and a scaler value, they just serve the raw text of the mod

#

thats like... really unhelpful

primal schooner
#

doesn't that ability have to be avaiable on the server side though ?

hazy wigeon
#

Everything is defined server side, whether its POST or GET is irrelevant

#

POST vs GET is just one part of the header of your request

grave wren
#

tldr yes they must support it on their backend

primal schooner
#

right, so passing a parameter is pointless if the API doesn't have any means of (code) using it.

hazy wigeon
#

Whether it is POST or GET you still have to define all your supported server side filtering, the POST vs GET part is irrelevant is my point

#

POST would be incorrect there though, POST is for sending data, GET is for retrieving data

#

POST would be used if I wanted to update the list of stash tabs by modifying the data in a stash tab

primal schooner
#

past the header data

grave wren
#

post is whatever the api says it is

#

gotta be pragmatic as consumer

hazy wigeon
#

I mean assuming following proper RESTful programming practices

primal schooner
#

either way, it's not supported

hazy wigeon
#

I was mostly just focusing on this statement:

it'd be nice if they provided a POST api for stashes so that we could filter results server side

Which implies that a GET request cannot achieve that, and a POST endpoint is the right call for that functionality

#

Both of which are incorrect. GET is still correct there, and GETs can filter, thats all I wanted to cover πŸ™‚

primal schooner
#

true

hazy wigeon
#

A core part of POST requests should be that they are Idempotent, and something like getting a list of stash tab data is very much not Idempotent, so GET is for sure the correct call

primal schooner
#

but yeah, it'd be nice if they had expanded API so you didn't have to replicate the DB outside of the POE service

hazy wigeon
#

Well looking at their output data, we already have some big issues I see. Everything is sent as raw text, rather than using IDs

#

So that leaves a lot to be sought already lol

primal schooner
#

and it returns ALL stash tabs, public or not

hazy wigeon
#

Instead of:

Flavor Text: "Actual literal raw flavor text"

Id prefer

Flavor Text Id: "xa91b38gf42c59f34d675c436b"

grave wren
#

i'd prefer it not to be sent

#

because it's just fluff

primal schooner
#

oh for all the individual items?

hazy wigeon
#

I mean, I dont mind that part, sending an ID is substantially faster and smaller cause it has a constant length

primal schooner
#

I haven't even gotten that farm

hazy wigeon
#

And the affixes are also sent as like, raw text

#

rather than say:

Affixes: [
{ "Id": ....., Scale: <value between 0 and 1> },
......
]

primal schooner
#

I think the best way to approach this is to just query the whole things and update a database separately from the actual client side search transaction

hazy wigeon
#

Like that would send WAY faster because a single Id + a decimal are WAY faster to send

#

Thats what everyone does Frobes

#

And thats why many trade APIs tend to be laggy

primal schooner
#

well as opposed to doing it virtually

hazy wigeon
#

virtually?

primal schooner
#

inside of the same transaction

#

Retrieves a list of stashes, accounts, and items as described above in the Introduction section.
Parameters
id            Optional

The next change ID you received from previously fetching changes. Default: 0
#

that has nothing to do w/ stash IDs right?

#
    "next_change_id": "2947-5143-4137-5412-1759",
    "stashes": [
        {
            "accountName": "Nightlines",
            "lastCharacterName": "MineBuildSSFMaybe",
            "id": "a9a42a5dbda657f71b077ecd0692acce8d1d29c7dff3437e5ed8708f6cb8838f",
            "stash": "LEVELING UNIQUES",
            "stashType": "PremiumStash",
            "items": [
                
            ],
            "public": false```
#

nvm, yeah, that just allows you to post the next query for changes

grave wren
spring harness
#

sorry but the earth is flat

grave wren
#

Yes but carried on the back of four elephants which in turn are located on a turtle

cyan ice
#

Opened up my translation of https://github.com/MuxaJIbI4/libggpk/tree/beta/LibDat into node with typescript https://github.com/Syrou/LibDat it is a bit different but basicly without libggpk my translation would not been possible.
It is not going to be maintained but it has been tested and works.

spring harness
#

getting closer with my app

primal schooner
#

Zombo, what is your app

primal schooner
#

has anyone heard anything (or has it been announced) regarding GGG doing an overhaul to their API system?

hazy fog
#

nope

cosmic saffron
primal schooner
#

what's the app do, was that I was asking

spring harness
#

its a currency cop style app

#

that uses poe.ninja api

#

and your stash data

#

@primal schooner

cosmic saffron
#

maybe look for the class attribute directly instead of whatever shorthand class_ is

#

can't you specify the parent so as to exclude everything not as a descendant of the dropdown

#

css has .x and [class=x] yes

#

so you just go to that page and in the console type something like this $('.achievement-list li.finished').each((i,e)=>console.log(e.textContent))

lavish gust
#

Anyone here experienced with reading poe.ninja or poe.watch data?

fickle yew
#

Some

pallid doveBOT
#

Please don't post discord invites

inland kestrel
#

lol rasmuskl

lavish gust
#

just wondering if there is anything I should know before assuming anything (I know of poe.ninja/swagger doc already)

#

poe.watch has very similar data dumps but all is well specified, including small details like the fact the website updates only every minute so there is no benefit of polling data more often

inland kestrel
#

@woeful sphinx I noticed you had been actively enhancing the poeskilltree.engine. Do you happen to know if it identifies fated uniques? I looked around a little and didn't see any indications but wondered if you might know better

woeful sphinx
#

@inland kestrel for parsing it doesn't really matter if an item is rare, unique, a fated unique, .... It parses the modifier strings on the item, its name and rarity are (almost) irrelevant.

lavish gust
#

Well, links are no problem. I'm more concerned about the invariants of returned JSONs

#

wow you also making a filter project...

#

@earnest radish looks interesting but I went 1 level higher and instead of writing a filter-generating program I wrote a custom-programming-language-filter-compiler program. So instead of just "using" it you have to write the filter itself in a pseudo-programming-language of its own

#

ahh yes you probably read my reply under one of NeverSink's posts. I haven't posted the project on the sub yet - need to implement a few things and then will post it when its ready for suggestions. You may view it anyway if you want

#

Some things have been decided upon but are not yet implemented. Some things have not been yet decided upon so you might give me some ideas - jus read the issues https://github.com/Xeverous/filter_spirit

lavish gust
#

I have multiple target-audience scenarios. Someone can write the filter template, share it, build/refresh it or just share the generated one. You have multiple steps at which the sharing can occur.

#

Right now I'm brainstorming ideas how to facilitate theming/strictness support to the language

inland kestrel
#

@woeful sphinx Thanks for getting back to me. It makes sense that it's not capture since the parsing doesn't care. I wasn't sure if that kind of metadata was capture otherwise (for completeness or something). That library is pretty awesome so I'll probably end up forking and extending it for my own selfish needs

glacial crown
#

hey, is there any api to get character information if i want to for example show my character on my webpage ? πŸ€”

frigid nova
#

@compact isle Would it be possible to add pdps, edps, dps, ias, crit chance as selectable mods in weighted searches?

golden bane
#

@glacial crown
http://www.pathofexile.com/character-window/get-characters?accountName={account_name} to get a list of all characters, http://www.pathofexile.com/character-window/get-items?accountName={account_name}&character={character_name} to get all items on a character, http://www.pathofexile.com/character-window/get-passive-skills?accountName={account_name}&character={character_name} to get all passives and jewels

glacial crown
#

nice! thanks πŸ™‚

golden bane
#

Not sure why Discord butchers the formatting, in a web markdown editor like https://dillinger.io/ it works just fine

glacial crown
#

what got butchered ?

golden bane
#

Parameters should be italic in Markdown

glacial crown
#

ah

#

tested quickly and seemed to understand it so i guess it's fine ^^ gives data i can play around with

golden bane
#

Well, I changed it from single backticks to show my formatting

primal schooner
#

anyone know if you can href to an link and target by element contents?

cosmic saffron
#

in what sense

primal schooner
#

most build posts on POE.com use the spoiler tag or <strong> element to delimit the post

cosmic saffron
#

default html anchor is to id

primal schooner
#

right

#

i know that

#

i'm trying ot target by element contents

#

ie. <strong>Blight</strong>

#

because there's no div ID's to target

cosmic saffron
#

most build guides reserve a couple of posts

#

because each reply has a new id that you can quote/anchor to

primal schooner
primal schooner
#

is there any way to break the spoiler tag?

lavish gust
#

Not sure why Discord butchers the formatting, in a web markdown editor like https://dillinger.io/ it works just fine
@golden bane Markdown has no consistent standard, practically every implementation (SO, Gitlab, GitHub, Reddit, 1st "official", VS Code Markdown preview, Discord, ...) differs in some aspects. Blame Markdown creators they did not provide any grammar spec and only a buggy implementation

lavish gust
#

Can you query poe ninja for something other than item prices? (eg list of leagues)

primal schooner
#

isn't there only ever 8 leagues?

#

standard, HC, SSF STD, SSF HC STD, current season, HC CS, SSF CS, and SSF CS HC?

lavish gust
#

Well, I'm intested in a reliable source of data I can put as a league parameter into ninja's API query for item prices

deft jolt
#

use the official league api

#

can't get better than that really

lavish gust
#

indeed

#

@earnest radish Looking at your screens - where do you get {leaguelookup[league]} values from?

inland kestrel
lavish gust
#

Wondering if poe.ninja accepts it or uses different naming

inland kestrel
#

why don't you just try it and see?

floral notch
#

Is there any kind of collection of JS libraries for PoE? I'm searching NPM, but I didn't know if there was an actual list

delicate ore
#

theres a logfile lib

#

most of the stuff being used for poe is python or c#

primal schooner
#

is there any API resource out there that fully parses the stash tabs endpoint data?

#

like , any 3rd party

#

i know that's a pretty big dataset

lavish gust
#

@inland kestrel > why don't you just try it and see?
This is not a good aproach, at least where I usually work. Better to not assume anything based on experiments.

lavish gust
#

When parsing poe.ninja data, how do I know which items are low-confidence?

#

@golden zealot > hey there, working on a tool that needs pricing data -- is the best option to just hit the poe.ninja endpoints? poeninja not having any docs on it or anything makes me hesitant to just spam their poor website
poe.ninja has it's doc (although hidden): https://poe.ninja/swagger/

#

ok so it's basically a 5 and 10 offer treshold

lavish gust
#

@subtle lion anyone knows whats default alpha numbers for these (Set[Text/Border/Background]Color)
I'm also interested in this. Found any source? Wondering about this: set the background to 0 0 0 (default alpha), go Delve and put as many flares as possible in 1 place - the black background would go a bit brighter and then take the screenshot of the item laying on the floor and calculate alpha based on this

#

@fickle yew In UniqueArmour.json How can I determine that a unique item is relic? Is checking whether "detailsId" containts "relic" substring the only way? I haven't found any other pattern for relic items

fickle yew
#

@lavish gust yeah that's the best way currently. Bit hacky 😎

lavish gust
#

@fickle yew I'm parsing item price data for the filter, uniques are the biggest problem due to various properties

  • Can I assume that corrupted field is irrelevant? Or do you post separate listings for corrupted and non-corrupted uniques?
  • I noticed some uniques have "links": 6, they are not displayed on the website - am I right? I would need to skip these - is there anything more I should care for uniques? (that is, any other JSON field worth checking?)
  • Is there any way to tell from the JSONs that a given unique does not drop normally or at all? (eg I don't want to filter "Golden Buckler" when Atziri's Reflection is expensive because fated uniques never drop) Or would I need to have my own list of uniques that do not drop normally?
  • How do you price helmet enchants? Just search trade offers on popular bases (eg Hubris Circlet, Lion's Pelt)?
fickle yew
#

@lavish gust the links field is used. It just defaults to 1-4 on the weapons and Armour pages. No way to see drop normally. Price enchants are just more or less all items with it (there's a few exceptions)

#

Corrupted is used for gems

lavish gust
#

and "levelRequired" is actually the ilvl in BaseTypes.json?

subtle lion
#

it looks like background 240, text and border 255 or 250 im not sure

tidal nova
#

does PoB account for ele damage conversion?

#

i've always wanted to run an eternity shroud build and with the new assassin, decided to spend my leftover exalts on running a BV one. just wondering if PoB calculates all the damage conversion or if I need to account for the dps another way

#

mostly i'm wondering if the "as extra" damage is calculated correctly

frigid nova
#

@tidal nova it should be correct, although you might browse the issues on github to make sure no one has filed a bug

tidal nova
#

ok excellent thanks @frigid nova !

golden bane
#

@tidal nova You can check if all conversion sources you expect to be there are broken down in the calcs tab

tidal nova
#

ah, yes, i forgot you can check there. will do, thanks @golden bane !

opaque shell
#

"but I didn't want to smash dreams", well, fug yer πŸ˜„ worked on that last days

pallid doveBOT
#

Please don't post discord invites

lavish gust
#

@opaque shell Does poe launhcer support updating tools?

opaque shell
#

no, i want to add it, but i dont have any clue how hard/possible its for me @lavish gust

spring harness
lavish gust
#

IMO the tab transition animation should be faster, and the bottom right <> buttons should be removed and implemented as scroling - currently you have 2 horizontal changes where each does something differently - this is confusing

spring harness
#

its called pagination. its actually a standard practice for tables 😦

#

the tab transitioning needs to be looked at. the function im calling i had to hack together.

#

whats funny is i originally had a scrolling feature instead of pagination

#

shouldnt be to hard to fix

#

also adding a dark mode

#

sometime this week

lavish gust
#

scrolling much better than pagination - especially to avoid 2 horizontal changes

spring harness
#

i agree

#

thank you for your ui input

#

appreciated honestly

#

still in early stages

lavish gust
#

well I'm making a very different tool, haven't even begun working on the UI... hopefully it will be as easy to design it well as to criticize someone else's

simple ravine
#

UI doesnt have to be that difficult, however creating a good UX can be quite hard, and will likely require multiple iterations

spring harness
#

back end changes 😦

#

for front end perfection Pog

simple ravine
#

If you design your APIs properly... πŸ˜›

spring harness
#

just get everyone in 1 array

#

do 1 call

#

done

#

20 minutes later

simple ravine
#

20 users later... application is grinding to a halt.

spring harness
#

opens patreon

simple ravine
#

throws hardware at the problem like a baws

spring harness
#

gonna need 2 2080's

simple ravine
#

for your backend?

#

GPU based database?

spring harness
#

yeh, gotta game in the off time

#

lol no

#

wait "yes"

spring harness
#

dark mode

#

getting there

#

mnuch better

#

now my eyes arent bleeding

grave wren
#

Nice. Unsure why scrolling requires a backend change tho but maybe Ou referenced something else.

inland kestrel
#

yeah, you tried burning my eyes the other day. Dark mode much better

spring harness
#

its not a backend change

#

it was a joke

#

its a css change basically

#

or many ways

grave wren
#

css, even worse

#

:<

spring harness
#

why

#

?

#

lole

grave wren
#

dunno not a fan of fiddling around with the intricacies of it

spring harness
#

of a sass file?

#

do you know angular?

grave wren
#

yes i still don't like it much

spring harness
#

ahh

grave wren
#

i like rxjs tho

spring harness
#

ahh

golden bane
opaque shell
#

@golden bane sweet, thanks, will look at it after im done with fan art competition πŸ™‚

spring harness
#

what are you using?

#

electron angular right

opaque shell
#

just electron

#

im stopping with app for today, killing child processes turned out to be a gargantuan can of worms

#

some tools gets grouped nicely with main app process, some make their own group of processes (exilence), some are solo outside group as background app (yolo mouse), and trade macro runs several different ahk's before launching the one you use for game, making obtaining correct PID for kill rather impossible

#

its going to be difficult to find a universal way to kill all those processes that behave differently

#

hm, Zombo, I think what you linked is only for your own electron app, from quick read I felt it doesn't auto updates non-electron tools that belongs to someone else's githubs

#

or Im wrong?

rapid pagoda
#

@opaque shell no, you're correct -- it's for making self-updating apps, nothing fancy like updating other apps

lavish gust
#

Are there any open source auto updaters? Basically download from given link, unpack and run? I already do some networking but not sure how complex it would be to integrate downloading an archive, unpacking it, overwriting files and then launching the process again

simple ravine
#

Not that difficult. The difficult part would be if you want to make a smart updater, that takes diffs and patching

#

To save bandwidth

grave wren
#

Don't forget validating files before replacing. Wouldn't want to Autodownload untrusted stuff imo

lavish gust
#

ofc, but right now the tool I'm writing is still quite far from being ready so updaing is not really a concern - I build, test and run locally only

worthy cape
#

Auto-updates seem to be rather scary nowadays... Windows Defender's shitty cloud AI flags pretty much anything that autoupdates as OMG EVIL.

lavish gust
#

lol, this is disgusting - using machine learning which is very hard to "fix" in deterministic way; this really sums up some GNU's project arguments towards free software

worthy cape
#

Yeah, indeed, the whole AV industry is designed around that false positives are good for business, but at least in the past they could tune it and meaningfully whitelist.

spring harness
#

sorting and item search demo

#

@opaque shell yeah its only for your own app

#

@opaque shell you could probably make a function to check the most recent github release and if theres a new one. that opens up a new can of worms. youll have to figure out how to update it

languid tulip
#

apologies since sorta already asked in other questions. is there anyway to filter on trade sites for boots with jun's special veiled mod (still veiled). i ask here since item filters seem to be able to highlight these differently when they drop. im on mobile so its hard for me to poke around atm

#

oof thanks tho. im guessing there is then. will check around myself later

#

ah yeah my bad. the cannot be frozen

#

wait i worded that wrong. i meant still veiled... x_x

#

thanks now i feel dumb. didnt even check what filters were available lol. πŸ‘Œ

spring harness
#

alright, I'm going to be releasing the first beta prerelease of Zombpoe. it gathers data from Poe.Ninja and in the future, will include stash search and stash value/networth

#

currently im only grabbing one stash just so i can test data, but POE.ninja data should be available without your poesessid even if pathofexile.com is down

#

In the coming weeks i will incorporate the rest of the stash tab and put them into tables, then cross reference them with poe.ninja data

#

heres a basic demo of my current progress

#

also includes sorting

#

by name, chaos value, and ex value

#

ill post the release link later tonight

#

i didnt want to pay for a code signing certificate, so it will show up as an unsafe program. but the program is open source and I will never attempt anything malicious in the creation of this program ❀

worthy cape
#

Was going to suggest Certum's free FL/OSS code signing certs, but they're not free anymore.

#

Anyway, the assurance of some random person online is about par for the course for the PoE community πŸ˜„

spring harness
#

last time i looked up cert stuff was like 3 weeks ago

#

and gave up cause i didnt want to spend money

#

well it is open source too *

spring harness
#

PreBeta Release of Zombpoe
https://github.com/zombodotcom/Zombpoe/releases/tag/v0.0.3

//
// File Checksum Integrity Verifier version 2.05.
//
                MD5                             SHA-1
-------------------------------------------------------------------------
c6bea638720cf7a9daaccabefbf5c4a5 f0543bb5edc58e838546de520b8f63938bfce585 x:\angularapps\gits\zombpoe\release\zombpoe 11.0.0.exe
alpine lynx
fickle yew
#

@alpine lynx what are you building?

alpine lynx
#

Honestly haven't entirely decided yet, had some plans for automatic tree building but I'm having second thoughts about if it's even a valid idea. Kinda just building it for the sake of building it for now..

spring harness
#

are you doing a machine learning style build maker?

alpine lynx
#

Not really machine learning, more like a pathfinding algorithm build maker

#

Basically specify a number of constraints and generate a tree that uses the least number of points to satisfy those constraints

#

such as, 190% increased life, etc

#

I think i may try and make it anyways, even though im questioning how viable it's going to be

#

I feel like it's not going to work

delicate ore
#

poeskilltree has that

alpine lynx
#

Interesting, I'll have to check it out

lavish gust
#

Does anyone have/maintain a list of uniques that do not drop (eg only from prophecy upgrade, corruption, vendor recipe)?

lavish gust
#

@earnest radish ty, already got fated and breach uniques but forgot about incursion and harbinger

BTW, Is your tool sort of a library or is it a fixed program that generates your own filter? I see you have a lot of code that stores item information but it seems to me the order/structure of the generated filter can not be changed (without modifying internal code) - am I right?

fast citrus
pallid pebble
#

hmm can you guys paste codes in pob.party on macOS chrome?

grave wren
#

Don't think that's supported yet (but I didn't follow development for a bit). Someone correct me if I am wrong.

#

The way to go was to use a special URL to get an adapted URL to POB party

pallid pebble
#

oww poebuddy worked

grave wren
#

You can dm @regal mural the pastebin as well and you'll get POB party and Poe buddy links

#

Maybe that's a working workaround for you

pallid pebble
#

oh nice will use that next time, was curious about paste on mac why it is different although its the same browser, weird webgl/wasm things

primal schooner
#

who would have a definitive answer on whether or not GGG is working on or has planned to work on updates to the API system for Stash tabs now or in the future?

golden bane
#

@primal schooner GGG would

primal schooner
#

right, is there any way to contact a representative via this discord, or other means? I have tried email and web form through the site / contacts / formal means to no avail...

cosmic saffron
#

novynn does most of the website api stuff

#

not sure if he has dm enabled or not

golden bane
#

Try asking here, this channel gets read by Novynn (no pings though pls)

primal schooner
#

ok, well, we talked about it I guess...

#

I was really hoping that one of the other bigger 3rd party devs had more of a direct line to someone from GGG.

jade adder
#

there's always the possibility they might not be interested in disclosing that information for now

#

if they are interested in responding, they will respond

worthy cape
#

4.0.0's killer feature - trade. Nothing else πŸ˜›

rose sapphire
#

long live trade manifesto

lavish gust
#

@earnest radish AFAIK corruption-only unique items like The Blood of Corruption can actually drop (with the help of a sextant/tempest etc) so filters should not assume they never appear on their base type

primal schooner
#

is the Dev for poe.trade in this discord?

simple ravine
#

yes

primal schooner
#

know his UN ?

simple ravine
#

yes, but perhaps you should ask yourself if it's necessary to ping him first.

primal schooner
#

I don't see any other way of getting questions answered regarding the back-end workings of poe.trade, so yep, kinda gotta PM the guy (tried on forums).

simple ravine
#

Well, people have asked before, and it's his 'trade secret'. But sure, it's xyz#6824

golden bane
#

poeapp is happy to share though

primal schooner
#

I'm assuming that means poe.trade doesn't have an API exposing his parsing of the data (at least not publicly) ?

#

@golden bane what's poeapp ?

golden bane
primal schooner
#

who devs that?

golden bane
#

poeapp#6521

primal schooner
#

and you say there's an API to the data?

golden bane
#

None that I know of

primal schooner
#

CinnabaritToday at 12:36 PM
poeapp is happy to share though

#

what did you mean by that?

jade adder
#

what do you mean api to the data? i'm confused by your request

#

they all use the same API

primal schooner
#

not the GGG endpoint

golden bane
#

Share their knowledge about their website's inner workings

jade adder
#

if you're using an API to access their data, you're just using a middleman

primal schooner
#

how THEY parse the data from that endpoint

#

right

#

do they have an API to service the data they have gotten from the stash tab endpoint.

jade adder
#

oh so basically you just need inspiration

golden bane
#

Didn't get that either

primal schooner
#

in order to build my service, i'd rather just use an API to someoen who has alreayd parsed the GGG stash tab endpoint rather than having ot build it myself

#

but if they don't expose their means of parsing the data, then i'll have to resort to parsing it myself

jade adder
#

just seems redundant to me, you could probably quite easily reconstruct what they've done

primal schooner
#

right, but i figured I'd check first before I devote the resources to doing it myself

#

plus, it'd be nice to know about some of the nuances of dealing with how GGG exposes the stash tab data that someone else has run into

jade adder
#

ye ye, well im sure they can help you out

simple ravine
#

heh

#

are you insinuating that xyz are multiple people, or that he prefers to be gender fluid (or whatever the term is)?

grave wren
#

or legion

simple ravine
#

or both

inland kestrel
grave wren
#

step 1: go to exilecon, step 2 steal affix api

inland kestrel
#

Thank you!

primal schooner
#

@polar island does poeapp.com have API to the data your are parsing from the GGG endpoint?

deft jolt
#

There exists an api but it's against the TOS to use in 3rd party applications

primal schooner
#

on the site, do you render the results real time, or store the original consumption and then pull from a DB for the items?

primal schooner
#

I want to have ppl be able to put items into a public stash, and then parse those items (attributes) and compare the values against other similar items that are already priced out / on the market as a means of getting a general idea of value.

#

feel free to PM me if you'd like to discuss it more.

alpine lynx
#

not sure if it's open source but trade macro has that functionality also, might be worth looking into

#

to speed things up

alpine lynx
#

Has anyone developed their tool(s) in C++, it's the language im most experienced with so i'm working with it but i'm not sure that it's the best idea for tooling..

simple ravine
#

More high-level languages are normally used, such as Python, C# etc

alpine lynx
#

setting up parsing json files was fun

#

fun

simple ravine
#

should be pretty straight forward in C++ too right?

alpine lynx
#

yeah its not too bad

simple ravine
#

assume there are JSON-to-C++ classes available somewhere

alpine lynx
#

yup!

#

i used rapidjson

simple ravine
#

there's a handy tool for C# etc where you paste some JSON and it will generate class definitions for you

alpine lynx
#

oo

#

spent a good while setting up a rendering system before i even got into implementing some of the functionalities i wanted to xd

#

using opengl

simple ravine
#

rendering system?

alpine lynx
#

mm

simple ravine
#

oh, but why

alpine lynx
#

it's what i know

#

<

#

i'm a media design school student in new zealand so most of my programming knowledge is quite specific to game development

simple ravine
#

could just use UWP app or something, depending on what u wanna do

#

I think there is UWP for C++ too

alpine lynx
#

ohh

#

windows development in c++ is pretty gross

#

id much prefer to just write my own opengl rendering system

#

have some experience with it from a year or two ago but it's not a fond memory

#

I did some c# windows development like 4 years ago at this point, and that was very clean and easy in comparison to how it works in c++

#

as usual c++ is c++

simple ravine
alpine lynx
#

I think this might be slightly different to what im thinking of

#

doesn't seem awfully simple so i probably still would have gone with opengl if i had a choice

#

i should really switch language for this type of stuff though i guess

simple ravine
#

likely yeah

#

but check the first video

#

actually second too

cosmic saffron
#

Qt is cross-platform but I didn't like it much

simple ravine
#

i heard Qt is awful

cosmic saffron
#

the official ide sucks but I've only used it 5 years ago so I don't know if it's gotten any better

rose sapphire
#

nothing changed. qt is still amazing

simple ravine
#

anything impressive you know of, built with Qt?

golden bane
#

KDE Plasma I guess, many CAD applications too

simple ravine
#

Right, many CAD applications are advanced UI wise

#

but they're not very impressive in performance and UX

golden bane
#

OBS/Bitcoin Core/Teamviewer/Telegram/VirtualBox/VLC are some examples a more typical end user might use

#

But of course there is also utter garbage like AMD's Crimson Software and Sibelius, however I don't think Qt has something to do with that

#

I've used PyQt in a personal project before (home automation), it was alright. Only issue I had was with the documentation not being clear about half-supported features

simple ravine
#

Yeah, those applications are pretty ordinary from a user experience perspective, as well.

lavish gust
#

Plague Doctor:Has anyone developed their tool(s) in C++, it's the language im most experienced with so i'm working with it but i'm not sure that it's the best idea for tooling..
@alpine lynx I'm writing a filter-related tool in pure C++. No hard problems so far, almost everything needed is covered by Boost. No GUI so far though - this might be a tough choice. Qt is multiplatform and while it looks great for the user, it has one of the most anti-pattern C++ practices which would conflict with like 95% of my code - I'm also afraid of their very intrusive build system and build-time code generation. I would prefer some declarative or imperative library that supports idiomatic C++ and does not complicate the already complex build system or tries to replace the standard library.

alpine lynx
#

glad to hear it's goin good so far πŸ˜„

simple ravine
#

XAML/UWP is nice and declarative πŸ™‚

#

unfortunately not cross platform

lavish gust
#

that's the problem

golden bane
#

@simple ravine Do you have an example of some outstanding UI/UX?

lavish gust
#

I'm using pure C++ with no other dependencies than multiplatform/independent libraries, still compiling with GCC when building for Windows. I haven't even installed Visual Studio

#

I am planning to add a GUI later (now only a CLI) and it turns out it will be really a tough choice. Almost nothing is clean from all platform-dependency stuff or some build hacks/language hacks

simple ravine
#

A lot of the applications you use in the 'modern windows 10 apps' are UWP apps, Cinn

lavish gust
#

@alpine lynx you got any tool in mind/in progress?

alpine lynx
#

I had some plans towards a tree building tool but it seems to have been done already so i'm just building up a passive tree atm and i'll see where i go with it later

#

ive set up acquiring the images for the nodes i'm just having some issues currently with the multi threading conflicting with some opengl stuff i'm trying to do

lavish gust
#

multithreading? What's the purpose?

alpine lynx
#

downloading every node image for the passive tree

#

there's a solid 6000+ downloads required if you've got none of them downloaded already so i figured i'd thread it

lavish gust
#

What are you using to download it? Why not store it locally with the application?

alpine lynx
#

using libcurl to download

#

can store locally, just trying to be cool like POB so that my program will always have all the up to date node images

#

its pretty much sorted

#

was just hoping to initialize my opengl texture stuff from the threads that were downloading at the same time but i forgot that opengl stuff has to be on the main thread

#

also it doesn't download unless you don't have one of the images

#

or rather i mean it only tries to download images that you dont have

lavish gust
#

Are you using any libcurl wrapper?

alpine lynx
#

nope just libcurl itself

lavish gust
#

I'm interested how it looks like, I'm currently using Boost Beast + Boost ASIO and it works well

#

Can you link the code?

alpine lynx
#

yup sure, one sec

#

ill pm you it

deft jolt
#

aye

broken cloud
#

Is there any site keeping track of historical pricing data for the current league?

#

I was passing a date parameter to the poe.ninja API but this apparently does nothing

#

and poe-antiquary.xyz only includes already completed leagues

deft jolt
#

i guess poe.watch does in a sense

inland kestrel
#

poe.watch has been growing with time so you won't have historical data for certain items because they only began being tracked midway through this season

broken cloud
#

Got it, thanks

#

Looks like poe.watch API only allows retrieving historical prices by individual item, seems a bit clunky for my purpose ("get all [item category] prices on [date]")

deft jolt
#

what's your purpose for this case