#tooldev-general

1 messages Β· Page 107 of 1

stuck blaze
#

yeah I wanna practice some ASP.NET core and EF core

#

so currently working on the api parser and data layer

west rover
#

you could easily make this a goto tool if ux is right. e.g. i have a ton of indistinctive browser tabs. making 'agent management' a hassle. would be great to have a clean ui with all my live searches

#

because im watching like 10-20 at the same time and occasionally want to adjust the price im buying for

#

but maybe there is a toiol for that idk πŸ˜„

stuck blaze
#

haha that's a good point actually

#

a very good use case

#

I have the same problem actually πŸ˜„

west rover
#

peobably many πŸ˜‰

stuck blaze
#

yup πŸ˜„

stuck blaze
#

that's sweet πŸ˜„

#

wanna talk about what you are making?

west rover
#

wanna implement the rare checking into your clone? πŸ˜› also one gif topic i guess

#

but not impossible imo

#

big topic*

stuck blaze
#

rare checking? πŸ˜›

#

sorry I just arrived on this discord

west rover
#

pricing rares depending on their mods, base item etc

stuck blaze
#

oh a price checker

#

um, I think the best way to do it would be using a boatload of data and AI

west rover
#

yeah indeed. if u scroll up a bit you see my idea already

stuck blaze
#

u got a huge supply of price data for an ai to learn from?

west rover
#

exactly. definitively needs to be divided to conquer

#

nope πŸ˜„

stuck blaze
#

πŸ˜„

west rover
#

poe ninja has πŸ˜›

stuck blaze
#

do any 3rd party offer any for free?

west rover
#

<- newb πŸ˜„

stuck blaze
#

oh πŸ˜„

west rover
#

i basically only looked for wiki cargoes until now i have no idea what i can do with api. i even thought stash ab api wasnt public xD

stuck blaze
#

well to make a pricing algorithm u probably wanna use AI. and for that you need data. and for data you need a 3rd party supplier or you need to make that project first πŸ˜„

west rover
#

so true

#

yeh idk if poe ninja has an api ^^ and the antiquary for former leagues

#

but they at least have a shit ton of price data

stuck blaze
#

I believe poe-trade macro have an ai pricing algorithm

#

and it's open source

#

you might wanna take a look

west rover
#

but the algorithm sucks xD

#

at least for rares

stuck blaze
#

oh XD

west rover
#

yeh.

#

the predictions for rare itemsd are not accurate at all. it sees T1 life mod with utter sheet rest and says 200c just because its an astral plate

stuck blaze
#

yeah that doesn't sound right

worthy cape
#

@stuck blaze I was sinking around 5 MiB/s from the river.

stuck blaze
#

thank you zao. can I ask if that was from right now or at the start of a league? any idΓ©a how much I can expect at a new league start?

worthy cape
#

Postgres on my dinky E3-1225 v3 could sink that, would probably go much better if I hadn't got a shitty schema.

#

That was peak while I was catching up to the head.

stuck blaze
#

thanks again

#

may I ask what tech stack u used?

#

im doing some asp.net core and ef core with sql server rn

worthy cape
#

You should probably ask someone competent in the field. This was just Rust with Reqwest and some postgres bindings.

#

@simple ravine Found someone that uses your silly stack! πŸ˜›

stuck blaze
#

πŸ˜„

worthy cape
#

I recommend stripping out or deduplicating all the fluff text in descriptions, there's quite a bit of it.

stuck blaze
#

yeah and not really useful in an app like poe.trade

#

im making my own like it

#

for learning .NET core

simple ravine
#

you gotta throw out ef core if u wanna get those speeds up

#

@worthy cape lol

#

If @compact isle can pull decent numbers with a single-threaded PHP script, I'm pretty sure we can do a good enough job with .NET Core πŸ˜‰

fickle yew
#

@worthy cape hey hey I'm also using @simple ravine silly stack..

grave wren
#

You clearly need to migrate to cobol

simple ravine
#

When in doubt, that is always the best solution templarthumbsup

mortal bone
#

That silly stack is real easy to prototype on and super easy to expand on

stuck blaze
#

now I only need to grab Stash Tabs processed from https://poe.ninja/stats and check the speed. I pray to all the gods it's enough ^^ getting tired of only working on performance ^^

#

Ok, so I checked the difference over 10 minutes and it turns out to be very close to 70. Coincidence? I think not.

stuck blaze
worthy cape
#

Any diff in Debug vs. Release btw?

#

Or are you running at the speed of river now?

stuck blaze
#

@worthy cape no difference in debug/release. running at the current river speed yeah. But I'm guessing peak river speed is like 5-10x faster :/

#

I can for sure optimize my schema, but currently experimenting with parallellism

stuck blaze
rich acorn
#

Hey all. Could anyone share a trade API doc? If it exists...

obtuse citrus
#

does anyone happen to know where the minimap icons are stored?

storm stirrup
#

Is it still possible to connect directly to websockets? can't seem to connect to this anymore: wss://www.pathofexile.com/api/trade/live/{_league}/{Identifier}

strange tapir
#

On the POB fork one of my cluster jewels doesn't display the nodes in the circle. The other cluster jewel works just fine. I imported my build via API. Apparently there used to be a problem like that but it should have been fixed already. I'm running the most recent version. Any suggestions?

velvet fog
#

what API? the official passive skill tree?

grizzled seal
#

@strange tapir odds are the enchant on the cluster jewel isn't being parsed correctly, check for red text

strange tapir
#

@velvet fog I imported the character via user name and character selection in POB itself.
@grizzled seal you're right, there is some red text. what can I do about it?

broken cloud
#

@obtuse citrus /Art/2DArt/minimap/player.png

#

It crashes pypoe_ui if you try to view it there, but you can export it all right

grizzled seal
#

@strange tapir swap the position of "Claw" and "Dagger" around, and probably file a bug report assuming that's a real item imported from your profile

#

PoB is expecting Dagger then Claw, and your item goes Claw then Dagger, breaking the parser

strange tapir
#

That worked! Thank you!

golden bane
#

@cur1ous_238 It's a known issue and will be fixed with the next update

obtuse citrus
#

thanks briansd9

frigid sierra
#

how can I add my authentication info to the API request so that I get better rate limit/query clause limit etc.?

#

oh cool so it needs the cookies

#

does the POESESSID ever change?

golden bane
#

The website might also randomly log you out

frigid sierra
#

yeah I notice it would randomly log me out every now and then. When that happens does the POESESSID change?

golden bane
#

Yes, it changes then

frigid sierra
#

if the POESESSID is wrong, will the request fail, or will it just treat it as one without the POESESSID specified?

dense shore
dense shore
#

(you green now if that wasn't clear)

civic crane
#

me: sending TCP ACK to @dense shore

broken cloud
dense shore
#

can do

broken cloud
#

Cheers

worthy cape
#

Did someone ever make a tool to illustrate what affixes to go for when crafting a Medium 2-socket cluster jewel? It's a bit janky to speculatively craft in PoB which implements the algorithm or explain how to read the poedb tables.

#

The layout algorithm is kind of opaque as it uses the DAT order clockwise or something?

golden bane
#

I think you mean large cluster jewel

worthy cape
#

Yeah πŸ˜„

#

I can't webdev to save my life, sadly.

golden bane
#

Order is ascending, clockwise

#

Are you also interested in extracting this data with your own tools?

worthy cape
#

I had hoped someone else had made a nice website doing it so I didn't have to.

#

I'm guessing they're ordinals from some DAT table?

golden bane
#

Yeah

#
PassiveTreeExpansionSpecialSkills={
        [1]={
            list=false,
            name="Node",
            refTo="PassiveSkills",
            type="Key",
            width=270
        },
        [2]={
            list=false,
            name="Stat",
            refTo="Stats",
            type="Key",
            width=350
        }
    },
#

Hope that helps!

worthy cape
#

Good info, thanks.

#

I'm guessing the rules for how the notables/passives/sockets are spread out are hardcoded somewhere in PoB as well.

golden bane
grave wren
#

Time to learn otterlyAdorable

#

Oh even more content. Time to learn to scroll for me

worthy cape
#

That reminds me, I should go file a bug some day. The PoB search highlight circle for notables don't update when you modify a cluster jewel in-place which moves the notables.

grave wren
#

My customer would classify that as report

worthy cape
#

Β« I shouted into the wind, why is it not fixed yet? Β»

grave wren
worthy cape
#

There, did my duty and filed a report.

golden bane
#

Thanks!

simple ravine
#

wonder if you could distribute the computation and objects of stashes using CRDTs

frigid sierra
#

D/S/I are dex/strength/int, that much I can understand, but not G

civic crane
#

generic ? πŸ€”

frigid sierra
#

I guess

#

also, what's the point of that attr property when we already have the color?

worthy cape
#

What on earth have I gotten myself into... WASM and NPM and heaven knows what else. Do you people really deal with this weirdness on a daily basis? πŸ˜„

grave wren
#

whats weird about a package manager?

worthy cape
#

I mean, the whole JS ecosystem with bundlers and modules and everything.

#

Just so much when you're used to the nice comfy native world.

#

npm tells me that there's a bajillion vulnerabilities. Is that normal? Heaven knows πŸ˜„

#
18 packages are looking for funding
  run `npm fund` for details

found 346 vulnerabilities (345 low, 1 high)
  run `npm audit fix` to fix them, or `npm audit` for details
grave wren
#

it's normal that it ells you about them but 3xx is a lot

worthy cape
#

I'm sure that all this will integrate nicely with my 90s era HTML-with-tables.

grave wren
#

you should read about the css grid

worthy cape
#

Seems like it could auto-fix all but four of them, but that seems to be due to not supporting Windows at all.

#

Is that some successor to flexbox? That's what people were talking about last time I was confused about the web.

grave wren
#

grid is a for layouting 2d things, flexbox for either rows or cols

simple ravine
#

the modules thing in js is a dumpster fire that isn't easily solved

#

stay away πŸ˜„

worthy cape
#

290 MiB for the template project, expected gigabytes.

simple ravine
#

count the files πŸ˜‚

eternal sand
#

I don't like how they are spread through all my projects and there's no simple way of setting a global cache directory. Least then I could nuke it every so often.

hazy fog
#

now you add left_pad and is_even libs

grave wren
#

That's languages missing a good core lib for you

grave wren
#

Scully pre-renders each page in your app to plain HTML & CSS. To do this, Scully uses machine learning techniques to find all of the routes in your project. Scully then visits each route, rendering the view and saving it to an HTML file.

#

i sometimes wonder if everyone in the web world does stuff because they can

#

even big angular sites dont really load slow enough to warrant that

#

yet another *ython thing i've heard of

#

recently it was jython

#

ah neat

#

jython is pretty outdated and i am unsure why you'd do that

#

sounds pretty useful

#

i remember a guy who did a browser game with python transpiled to js

#

ah i see

simple ravine
#

"uses machine learning to find routes in your application"

#

that is the stupidest thing I've heard this day

grave wren
#

so i am not the only one

#

\o/

worthy cape
#

Buzzword compliant tho.

grave wren
#

maybe the routes will be stored in blockchain

simple ravine
#

Idiot-compliant.

frigid sierra
compact isle
#

the videos have the typo, not the code :p

earnest ledge
#

I had an idea a long time ago but have no idea how its actually implemented: is it possible to add a link to PoBPreviewBot's comments that when clicked opens the build directly into PoB? And I don't mean pobparty, I mean the standalone program. I think its possible right?

#

you would probably need to link to some 3rd party site and pass it along the pastebin link, then it would use some protocol

#

I dont know the technical term, like a magnet: link but for pob

#

that would pass that pastebin into the pob executable

#

is that possible?

#

Its a lot more feasible now that there's a community fork PoB thats much easier to integrate a change like that into

#

I suppose if that tech works someone could just make a greasemonkey script that would convert the pastebin link into a pob link

#

which would be pretty sweet, although it would probably require the script to download the pastebin's contents and determine whether its a valid pob import string

#

fortunately my bot already does that part

cosmic saffron
#

would probably need more tool devs to be on-board with a protocol like that

violet path
#

that sounds a little sus yeah

cosmic saffron
#

pastebin is a bit too entrenched, doesn't help that it also contains p&b so it's synonymous with pob links

earnest ledge
#

well, except for XML vulnerabilities which I dont know how PoB handles those

#

its pretty safe if the only information passed to pob is a pastebin right? I dont know how you could exploit that

#

easy to sanitize

#

I can say that having a greasemonkey script that downloads the content of every pastebin ever may be a bad idea, however the bot is already downloading every pastebin so nothing much changes there

#

and the 3rd party site would be very, very simple I think. just validate that the argument passed in is actually a pastebin link and then setup the handover to pob. doesnt even need to view the pastebin

#

I just need someone to tell me why its a bad idea or why it doesn't work πŸ™‚

earnest ledge
#

oh I did? nice

#

thanks past self

#

well I've mucked about with PoB's code in the past, I could look into it a bit

#

probably involves more research than it does actual implementation

#

argument injection and arbitrary code execution, oh boy!

#

I guess its not that exploitable if you sanitize command line args with an extreme level of paranoia

#

ie just ignore all the args if any other arguments whatsoever are passed in with a custom URI, should do the trick

#

and it seems modern browsers foil most attacks anyway

#

but given that installing a URI handler seems to require modifying the registry, guess you need to do that with the installer which is unfortunate

rapid pagoda
#

I've implemented GGPK read in pogo, my Go toolset for Path of Exile. Can now read data files directly from a GGPK, as well as listing and extracting files in the archive. Much faster than the Perl scripts I was using previously. πŸ˜€

Next up: brotli decompression, alias files, ggpk diff maybe…

https://github.com/duskwuff/pogo

velvet fog
#

any idea how PDIR checksum generated?

rapid pagoda
#

Not sure. My guess would be that it's a SHA256 across the names and signatures of the files it contains, maybe also the timestamps? Unfortunately that leaves kind of a lot of options for layout

#

Signature on FILE is obviously a SHA256 of the contents, but I imagine you knew that already

velvet fog
#

ya, the only thing I can't understand is PDIR checksum

rapid pagoda
#

Oh, lol. It's literally just SHA256 of the signatures of the contents

#

Concatenate the signatures of all the files in the directory, take SHA256 of that, and you get the signature for the PDIR. Names aren't involved… guess handling renamed files isn't part of the design

velvet fog
#

signatures of all the files means file SHA256?

rapid pagoda
#

Signature of a file is the SHA256 of its contents. Signature of a directory is SHA256 of the combined signatures of each thing it contains, whether those things are files or directories.

#

for example, the 1.0.0 GGPK has the directories/files:

D              e0d86aeb850da3b98eae86ec84113b12bea463a2c551e847d92dea626672deda Art/2DArt/Cursors/
F        22000 8e2de0dada2f538b6b931575507ff3acfd4ac59fc08d17704e87a6669125a22e Art/2DArt/Cursors/cursor3.dds
F        22000 20fdff6eb128b1c4c343be9c08842345683bdf824ea65107b64503fb7083ddd3 Art/2DArt/Cursors/cursor2.dds
F        22000 4274f7e2ed49d9a3cbf1ff5455d03757fa51cc47d81d3750cf9b874d162dd3c9 Art/2DArt/Cursors/cursor1.dds

The signature of the Art/2DArt/Cursors PDIR can be calculated as SHA256(8e2de0dada2f538b6b931575507ff3acfd4ac59fc08d17704e87a6669125a22e20fdff6eb128b1c4c343be9c08842345683bdf824ea65107b64503fb7083ddd34274f7e2ed49d9a3cbf1ff5455d03757fa51cc47d81d3750cf9b874d162dd3c9)

velvet fog
#

nice, thanks

worthy cape
#

File renames sound fun, depending on where the name hashes fall the entry order would change.

#

I wonder what the chance of a name-hash collision in a directory is, and if it has ever happened. Like, is there a tie, or will the tools just tell the authors to go rename something until it goes away?

rapid pagoda
#

"Too many files in this directory. Make fewer."

golden bane
#

The GGPK is littered with typos and placeholder names, I don't think anything will be renamed in there

#

@earnest ledge Interesting article! Based on the arising security challenges and the fact that this would necessarily divide the feature set between installed and standalone PoBC, I don't think we'd implement that anytime soon though

earnest ledge
#

I dont think it would necessarily divide the feature set, in that issue poeapp made it sounded like Openarl wasnt against the idea. So a good implementation and submitting a pull request and he'd probably put it in

grave wren
#

i dont think he meant og pob and pob community but rather install vs standalone of pob c

golden bane
#

@grave wren Correct

fickle tusk
#

however thats kind of a common thing with standalone/portable versions in general tbf. If you want the full integration experience, with explorer context integration, start menu entry, desktop icon and so on, you usally go for the installer. otherwise you go for the portable version and dont have those system specific integrations...

earnest ledge
#

yeah I see both perspectives

grave wren
#

I'd just prefer something besides pastebin as that is more and more prone to required captcha

earnest ledge
#

I could get on board with that

#

there's a lot of cool things you could do with a dedicated site that isn't just for pasting text

#

like a poe.ninja/builds-style thing but for build exports rather than actual characters

#

hell maybe it wouldnt even be that hard to implement that functionality on poe.ninja/builds

#

@fickle yew

golden bane
golden thunder
#

Does someone know if official trade URLs expires at some point ?

teal sluice
#

discussing trade macro fair game in here?

worthy cape
worthy cape
hazy fog
#

9.0 already?

#

in january when I was let go my company was only just starting to use 6.0

velvet fog
#

c# 6.0 was about 2014

hazy fog
#

sounds about right

#

being 5-6 years behind the technology curve

grave wren
#

#flattenthecurve

fickle yew
#

Records though. And source generators <3

simple ravine
#

source generators + ai = πŸ˜„

fickle tusk
#

calm down terminator

grave wren
fickle tusk
#

can even be 4 -, so we can code in c++++ and c---- at the same time shock

golden bane
#

I think y'all mean C octothorpe πŸ˜‰

simple ravine
#

C# actually comes from C++ ++

#

There's no C+++ though

#

"We wanted to have a reference to the language’s C heritage in the name and finally settled on C#. Some other candidates I recall were e-C, Safe C, C-square, C-cube, C-prime, C-star, and Cesium… Looking and those now I’m pretty happy with our choice."

- Anders Hejlsberg

grave wren
#

VB++ :^)

simple ravine
#

It always was named COOL as well, for C-like Object Oriented Language

cosmic saffron
#

CoπŸ…±οΈoL

simple ravine
#

yeah, that's another beast... eww

worthy cape
#

C -||-

#

Read "C ditto"

fickle tusk
#

C# actually comes from C++ ++
@simple ravine oh, i thougth that was a meme, interesting

lavish gust
#

ferrets on a train: 9.0 already?
ferrets on a train: in january when I was let go my company was only just starting to use 6.0
I'm in a project where some repositories are C89. It's not a legacy project. I can say I'm literally being paid for writing goto. And I'm the person that maintains the C => C++ => Python 2 / Python 3 toolchain for other team members.

hazy fog
lavish gust
#

Ofc I try to move everything upwards as possible. The higher the easier it is to work with. But sometimes Python gives you dict and the driver under tests wants char**.

muted breach
#

Would anyone here be interested in starting a JavaScript based implementation of PoB? Without the UI, just the character stats and DPS calculations?

civic crane
#

*Typescript

golden bane
#

Based on PoB or from scratch?

muted breach
#

*Typescript
@civic crane Guess what that compiles to πŸ˜› But yes ofc Typescript.

#

Based on PoB or from scratch?
@golden bane I was thinking more from scratch, just to build a baseline module that can be used to create an Electron Frontend or a Node.js backend or even a fully functional bowser version for PoB with React or sth.

simple ravine
#

One thing I have tried to encourage is separation of concerns.

#

a) A library for computations
b) A UI that utilizes the library to do whatever PoB is doing

#

JavaScript actually makes sense. Maybe using WebAssembly

#

actually, when thinking about it...

#

a.1) General specification
a.2) Implementation of the general specification (library)

muted breach
#

Exactly, and what I'm talking about is point a). A solid, maintainable and expandable library for all the PoB calculations.

#

And yes a general specification would make sense too.

simple ravine
#

If a general specification is made, and one is made in a well-structured way, I'd like to opt for a C# library as well

#

Brathering and Emmitt have done a huge job with one, however it's huge

#

The thing is though, that the library was branched out of SkillTreePlanner, and its initial intention was not meant to be an application-agnostic library

worthy cape
#

@simple ravine Thanks buddy, I just imagined having the desktop implementation shipping on whatever Electron buzzword tech people use now... lrrSPOOP

simple ravine
#

hehehe

#

Minimum requirement:
Intel i-7 4.5 Ghz
64 GB DDR4

#

almost not joking

#

I need an excuse to mess around with .NET 5 and WinUI 3

#

but I have no ambition to take on such a huge project on my own

civic crane
simple ravine
#

I love how regular chat applications consume a crap tonne of memory nowadays

#

remember xchat or mIRC?

fickle tusk
#

its because every fking program nowadays is a chrome skin

#

and we know chrome loves ram

simple ravine
#

pretty much what we was talking about, yeah

fickle tusk
#

oh, yep. missed that.

#

i mean i get it. developing for multiple platforms is a pain in the ass, and web is a must have platform nowadays. But there must be a better way than running 100 chromes per machine

simple ravine
#

I don't think the cross platform concern is the most prevalent when it comes to the PoE tools though

#

The ambition with Electron and pals, are however as you say a cross-cutting and cross-platform solution, and it's a good attempt.

#

But in every place, there are people who choose the tool they're most comfortable with, rather than what other might find a better tool

#

Another problem with ecosystems that are easy to get started with, is that it attracts more people than others, with less experience, resulting in ... mixed quality

#

I mean, it's great that people can get going without a master's degree in computer science, and realize their ideas, for sure

#

It just has overall ecosystem consequences, and we'll just have to live with it, I guess πŸ™‚

fickle tusk
#

mh i guess we do. and to be fair - no offense to openarl - to the contrary i value everything he did with pob very much - but this thing is a little chrome itselfs. Its render loop based, no event model, no ui component hirachry with conditional drawing, it straight out renders 30fps, so noone would see a big difference with a electron app there πŸ˜„

simple ravine
#

He took what he knew, and delivered value πŸ™‚

fickle tusk
#

yep, thats why i have so much respect. i have 20 perfectly pretty (or not so) projects in my backjard and none of them made it to practical use

#

Would anyone here be interested in starting a JavaScript based implementation of PoB? Without the UI, just the character stats and DPS calculations?
Back to this topic, yeah. i started a while ago to put some work into this, but based upon current pob.
I tought about defining a rest api via openapi specification, then implementing it with current pob, then create a large batch of sample outputs to test further iteratrions of refactoring or alternate implementations against

simple ravine
#

I think first and foremost, a spec needs to be written with documentation.

After that, I think a library of domain objects (classes) and its invariants and calculations (business logic, etc) encapsulated with some overall state wrapper should be written.

#

After that, you can hook it up to whatever you want, like an external facing API, i.e. RESTful HTTP endpoint, gRPC, whatever

#

--

i.e. TDD + DDD

muted breach
#

Hey guys,
it would be very cool if you could take 5 minutes of your time and take a look at my current project, a trading app for jewels. It's a prototype and can be improved in many ways I'm sure, but I would really like to get some feedback from you guys on the following topics:

  • Are you able to use the site without any hints or other form of help or is there anything very unintuitive?
  • Is there anything about the core concept (live-reload, mod-table with mod groups as columns) that's bothering you?`
  • If improved further, would you use the site for the upcoming league?
  • Any other comments?

Feel free to send me a dm or have a little discussion here if thats allowed :)

Here are some of the coolest features:

  • Live reload of items on any mod or filter change (within API rate limits).
  • Mod filter (on the left) -> Choose your build options an filter out mods that do nothing for your build (currently only working on some Base jewel mods, very experimental)
  • Choose one cluster jewel enchant as a must-have, or multiple within a count group and get the available notables for chosen enchants (only works for large and medium cluster enchants right now)
  • For mods with multiple tiers (currently only implemented for most abyss mods) you get a special tier select that lets you choose the minimum mod tier the jewels must have.
  • For mods with only one tier you can change their min/max values by hovering over the input field and using your mouse wheel.

The app is available under https://poe-jewels.com/

simple ravine
#

I think you've done a good job with it. It's sometimes difficult to remember what the jewels are capable of etc. It's not difficult enough, however. I think it's a bit too niched for my taste. I wouldn't remember it was there, and just go to /trade for most of my usecases. It's not too difficult to type in what you want. @muted breach

worthy cape
#

@muted breach

  • I wished for a filter field for the notable list, didn't register that there was one in the left pane.
  • In the page I've thought about but can't web to implement, I've wanted a way to within a particular Large enchant pick notables that are in the "good slots" on the front side of the jewel. Only a subset of the third notable ends up in the junk slot, based on id sorting and the only real reference for that is speculatively crafting jewels in PoB or squinting at the tables on poedb.
#

The right pane doesn't ever get any resolved results, just loading placeholders.

#

The second point might be quite moot to implement until you know how cluster jewels will end up in the future tho.

broken cloud
#

@muted breach are you sure about having "Live Item Reload" on by default? I will almost certainly be searching for more than one thing, so doing a query every time I click something would seem to be a waste of trade server resources

Also, was expecting the "cluster notables" categories to filter the options, instead of just scrolling to that section

grizzled seal
#

@muted breach the lack of weighted searching is a bit off-putting as that's generally how I search for jewels, not by "counting" the number of matched modifiers

muted breach
#

Thanks so far, some very good points to consider πŸ‘

uncut raft
#

Does anyone know of a Twitch/wiki tool that has commands that essentially works much like the MTG bot which allows you to search cards, but for PoE items/skills etc? http://mtgbot.tv/commands/ this is essentially the comparison. Just curious if anyone has already started something similar or if it already exists.

velvet fog
earnest ledge
#

Ran into a weird quirk with stat translation, maybe someone could explain why this happens. A crit medium cluster jewel (affliction_critical_chance) grants the stat critical_strike_chance_+%. I use the RePoE/data/stat_translations.json file to translate it to a string like this:
15% increased Global Critical Strike Chance
However, the stat text in-game does not match with this. Instead it shows:
15% increased Critical Strike Chance
but as far as I can tell there is no translation entry to arrive at that string

#

Also happens for the phys cluster jewels

#

Maybe there's an alternate translation entry in a different stat translation file and I need to select the translation in a context-sensitive manner?

#

I see an entry in RePoE/data/stat_translations/passive_skill.json for critical_strike_chance_+% where the global text is absent, but how do I know which translation entry to use?

#

Intuitively it makes sense that anything granted by a cluster jewel passive would use passive skill stat translations but how can I arrive at that conclusion programatically?

earnest ledge
#

On a different note my bot finally got slow enough to warrant putting effort into profiling and optimizing, found out that about 95% of the runtime was spent on 1 single line of code that was regex parsing item text for mods. I implemented a Trie-based regex approach and now its hundreds of times faster. I can process about 100 pastebins per second now which is pretty sick.

#

epic gains for what was basically my first attempted solution. sometimes you just get lucky I guess

worthy cape
#

Vulkan, vulkan, vulkan! brittlGibbe

velvet fog
#

all cluster jewel use passive_skill.json

earnest ledge
#

It seems that way, but does it say that in the game files somewhere or do I just have to know that?

#

If I am translating any arbitrary string of text, how do I know what translation file to use?

velvet fog
#

by case

#

for Mods.dat, ModDomainID is stat_descriptions ID

#

same as BaseItemTypes.ModDomanID

#

for PassiveSkills.dat all using passive_skill_descriptions

#

for AlternateTreePassive* all using passive_skill.

#

also you need to parse the Include information inside *_stat_description.txt, ex inside passive_skill_stat_descriptions.txt, it has

include "Metadata/StatDescriptions/stat_descriptions.txt"
#

that's mean when you failed to find stats, you need to find the next file

earnest ledge
#

the include part makes sense, that's good to know

velvet fog
#

most of them were hardcoded const

class PassiveSkills
{
    const STAT_DESCRIPTION = 'passive_skill_stat_descriptions';
earnest ledge
#

hmm ok. so those aren't in dat. only in the game code?

velvet fog
#

ya, the MOD_DOMAIN

_translation_map = {
    MOD_DOMAIN.MONSTER: 'monster_stat_descriptions.txt',
    MOD_DOMAIN.CHEST: 'chest_stat_descriptions.txt',
    MOD_DOMAIN.AREA: 'map_stat_descriptions.txt',
    MOD_DOMAIN.ATLAS: 'atlas_stat_descriptions.txt',
    MOD_DOMAIN.LEAGUESTONE: 'leaguestone_stat_descriptions.txt',
    MOD_DOMAIN.DELVE_AREA: 'map_stat_descriptions.txt',
    MOD_DOMAIN.MAP_DEVICE: 'map_stat_descriptions.txt',
    # To properly support zana's innate IIQ
    MOD_DOMAIN.CRAFTED: 'map_stat_descriptions.txt',
}
earnest ledge
#

ah! so that's the missing piece. that makes sense

#

so the domain field can be mapped to a stat translation file

#

then you look for a matching translation in that file, and if not found you follow the includes in that file until you find it

velvet fog
#

ya

earnest ledge
#

is there a bigger list? MOD_DOMAIN.ITEM is absent

velvet fog
#

if not listed, the default is 'stat_descriptions.txt'

earnest ledge
#

or does it default to stat_descriptions.txt if absent

#

I see

#

very helpful, thank you

velvet fog
#

but I don't sure how to map the support gems

#

active gems could use skillpopup_stat_filters.txt

earnest ledge
#

yeah when I looked at it I didn't see any obvious explanation

#

but thats ok I doubt Ill ever need to translate gems

halcyon siren
#

prob not the best place to ask, but Im currently making a bot. How exactly would I grab an image from a url and have that uploaded as an custom emoji? I can't seem to find any link for that on google.

worthy cape
#

The wonders of tech stacks. Whatever the video player does on the league announcement page makes my browser repeatedly try to start SteamVR, even if I deny the permission πŸ˜„

worthy cape
#

Not too bad, except that if you have the USB connected and not the display cable, it keeps popping UI with error boxes πŸ˜„

#

I was a bit too eager installing previews of 2004 that I'm slightly ahead of what went gold, so now I'm on some weirdo slightly broken builds.

#

My favourite feature is it popping the store if you try to run python3.

simple ravine
#

so we doing gardening now huh

cosmic saffron
#

time to make some optimum seed planting overlay tool

simple ravine
#

probably some thing that monitors time/map#runs to optimize when to harvest and when to sow etc

cosmic saffron
#

some have adjacency mechanics

#

there's also collectors and shit

worthy cape
#

The ultimate challenge of a league this time of year, planning vacation.

pliant verge
#

Howdy everyone, new to the thread. If I have an Idea for an in game tool for quality of life, could someone here tell me if its possible or already exists?

#

Im looking for a tool that would allow me to change item text font in the inventory menu based on tier and type. basically a loot filter for affixes.

#

Im not interested in breaking game terms of service, what is the rational for it not being allowed?

#

So theres sort of a hard difference between loot filters and this idea in terms of built in game support?

lavish gust
#

loot filters can only change appearance on the ground

#

inventory and other UI colors are fixed

pliant verge
#

Has there been any discussion about allowing something like this in game before?

frigid nova
#

i dream of the day tier info gets added to the clipboard read out

pliant verge
#

What is GGG's stance on that?

frigid nova
#

last i heard they said it was too difficult to implement, although @compact isle could correct me if im mistaken

pliant verge
#

That's a shame, identifying and evaluating items in mass has started to feel like a chore, wanted to automate some of the mental taxation if possible

golden bane
#

Good thing that you don't have to do that anymore with the new league, eh? @pliant verge

pliant verge
#

How so?

fickle tusk
#

you only drop every gear piece once per character, and then its up to crafting... absulutely confirmed. loot 2.0

pliant verge
#

do you have a link for that?

fickle tusk
#

nah man, just kidding. but the league will be more crafting focused. in the stream of ziggyd with chris today, he said that league loot will be tuned down a lot compared to other leagues before. the "value" of the league will come from crafting

pliant verge
#

I like crafting, but tuning down the drops worries me, I need those drops to chaos recipe my way past my first character

#

Hope the crafting is enough to bridge the gap

fickle tusk
#

he said sth. along the lines of "if the league mechanic won't be useful for leveling we failed" .. he said it will be very powerful "and will break the game", so we should enjoy the experiment ... but yeah, i guess we'll see

pliant verge
#

Ill check out the video, I saw there was crafting focus in the new mechanic but I didn't realize it was to that extent, thanks.

wary crag
#

does anyone know how poe.ninja is getting around 15000 entries when the api limits you to 200? trying to get more data for a data science project

velvet fog
wary crag
#

cant believe i missed that export csv button

#

thank you

eternal sand
#

Ooh, thanks. I too missed that button. Though looks like it only hits up to 2000.
If you are using the API you can request /ladders/LEAGUE_ID and pass in an offset=200 to see the next page (then increase the offset for next pages up to 15000).

velvet fog
worthy cape
#

@pliant verge there’s a bit of a stance that the game should look and play the same for everyone, regardless of if you’re looking at a stream or playing it yourself. There’s no desire to make it almost automated like some WoW mod setups for example that completely transform the UI and constantly break.

wary crag
#

yeah limited to 2000. gave me a decent preview of what I am looking for. @velvet fog thanks for that git. I'll look through it when I some more free time

velvet fog
pliant verge
#

@worthy cape Yeah I've had the wow mod experience before, in this instance I'm just looking to extend the existing customization of loot filters into the inventory. Literally just the option to change text color and effect based on a category system, not really anything above and beyond that in utility.

#

I feel like if the options for change are limited to fitting inside the existing box size it would be so incremental as to not impact the game adversly

worthy cape
#

The way to improve the game is to mock something up, post it on reddit and get upvotes until they get tired of it and implement it.

pliant verge
#

haha glad to know there's a precedent

worthy cape
#

πŸ˜›

rain jacinth
#

@worthy cape having game look the same for everyone is terrible UX wise given how different builds have differen tfocus points for wha tinformation they want available. I really wish they would let us cusotmize the UI elements at the very least

ashen dust
#

Would anyone happen to know the requirements/who to contact for registering your application with GGG's OAuth service?

velvet fog
ashen dust
#

Wonderful, thank you! πŸ™‚

hazy fog
#

otterPeek it was pinned

quaint grove
#

is anyone working on code complete for loot filters?

#

i know there is syntax highlighting already

misty jacinth
#

Are there any good tools that provide overlay / in-game steps for fast leveling?

velvet fog
#

are you using these steam manifest id as league version?

worthy cape
#

Ooh, you have mapped those out? Thus far I've only obtained the oldest one and have been considering how to delta-store them so I won't waste all my disk.

#

Came back to .smd recently and there seems to be a new sub-version 4 of the trailer which I'm looking at now.

#

Super rusty after not doing any of this for a while.

cloud holly
#

hey everyone, I have trouble getting what I want from the trade API. My goal is to get everything that is listed for sale on my account (or any account actually) as a JSON object in python. This is what I have so far:

    url = 'https://www.pathofexile.com/trade/search/Delirium?q='
    payload = {"id":"z9vbk90f4","query":{"stats":[{"type":"and","filters":[]}],"status":{"option":"any"},"filters":{"trade_filters":{"filters":{"account":{"input":"bootfighter"}}}}}}
    response = requests.post(url, data=payload)
    print(response.text)

The response text is just the HTML contents of the trade site which is definitely not what I want :D. What obvious thing am I missing?

velvet fog
#

just manual mapping

broken cloud
#

@cloud holly missing api in the url

#

https://www.pathofexile.com/api/trade/search/Delirium

cloud holly
#
    url = 'https://www.pathofexile.com/api/trade/search/Delirium/?q='

^ this gives me {"error":{"code":1,"message":"Resource not found"}}

violet path
#

if you check the pinned messages, you can see novynn going over how the API changed a few months ago or so

cloud holly
#

i checked that message and i didnt really understand what it exactly means in how i now have to interact with the API

#

the thing i got from it is that now using ?q works for /trade/search

simple ravine
#

you're missing /api/ in the url as brian said

#

devil is in the details

#

never mind, i'm tired

cloud holly
#

it returns an error ^^

simple ravine
broken cloud
#

@cloud holly the results from trade/search are not usable programmatically, it'll send back an HTML dump like you said

#

The proper way would be to make a POST to https://www.pathofexile.com/api/trade/search/Delirium

#

Maybe remove the ?q=?

civic crane
cloud holly
#

@civic crane how should this help me?

#

i tried it without the ?q=, results in the same error JSON response

cloud holly
#

also thanks for the better api documentation @simple ravine but that sadly doesn't answer my question

worthy cape
#

I'm of the impression that the trade endpoints aren't really for building upon, rather for generating end-user facing resources programmatically.

#

(haven't touched it myself, of course)

cloud holly
broken cloud
#

@cloud holly Are you sending any headers with your request? Try setting 'Content-Type': 'application/json'

cloud holly
#
    url = 'https://www.pathofexile.com/api/trade/search/Delirium/'
    payload = json.dumps("{\"query\":{\"filters\":{\"trade_filters\":{\"disabled\":false,\"filters\":{\"price\":{\"min\":1,\"max\":30}}}},\"status\":{\"option\":\"online\"},\"stats\":[{\"type\":\"and\",\"filters\":[]}],\"name\":\"TabulaRasa\",\"type\":\"SimpleRobe\"},\"sort\":{\"price\":\"asc\"}")

    headers = {'content-type': 'application/json'}
    response = requests.post(url, data=payload, headers=headers)
    print(response.text)

also returns {"error":{"code":1,"message":"Resource not found"}}

simple ravine
#

just use the network monitor on the browser to see what's different

#

obviously you're doing something different

#

also try removing the last slash

cloud holly
#

if i remove the last slash then im back to getting the full HTML content

#

i cant see how to use a browser networking tool while using PyCharm and Python

simple ravine
#

dude...

cloud holly
#

ohhh thats what you meant. thank you!

broken cloud
#
url = 'https://www.pathofexile.com/api/trade/search/Delirium'
payload = '{"id":"z9vbk90f4","query":{"stats":[{"type":"and","filters":[]}],"status":{"option":"any"},"filters":{"trade_filters":{"filters":{"account":{"input":"bootfighter"}}}}}}'
headers = {'content-type': 'application/json'}
response = requests.post(url, data=payload, headers=headers)
print(response.text)
cloud holly
#

i feel so stupid right now; thanks!

broken cloud
#

Working now? Cheers templarthumbsup

cloud holly
#

its working now 😊

worthy cape
#

My eternal struggle when doing WebDAV, fighting User Agents that felt like gluing on or removing slashes from URIs.

worthy cape
#

@velvet fog have you run into any rate limiting or account blocking, or is it a drop in the digital ocean?

rain jacinth
#

guys is there any way to force a filter reload in a non manual way (barring hooking into poe)?

proper rock
#

anyone been tinkering around with vulkan tools in here?

#

I have a kind of question for AHK or something similar...

#

don't know if someone can help here or if I should ask somewhere else

grave wren
#

nobody can help if you dont ask :p

eternal sand
#

As I often say, it's better to ask a question than to ask-to-ask.
The worst that happens is you are ignored and can copy-paste what you wrote somewhere else.
If you ask-to-ask then you are more likely to be ignored, but it also adds the issue of needing to conduct a conversation over multiple days. Someone can say "yes, what's the question" after you are sleeping, then they might be sleeping when you actually ask your question.
To facilitate easy answering you could ask as complete a question as possible, pre-empting clarification questions the respondents may ask in the future. Ask the question as if the person answering lives on the other side of the world and is only on discord for 1 hour per day (when you are sleeping), and is going on holiday tomorrow.
Anyway, those are just the self imposed rules I try to follow.

rotund solarBOT
#

Don't ask to ask! Post your question here so that people actually know if they can help. It's also better to discuss your question publicly so more people can chime in or learn! That's why these channels are here!

proper rock
#

Okay, so i'll ask then: regarding the Borderless Gaming AHK script and it's variations found in the Vulkan megathread on the subreddit.

I have an issue, and i'm not sure if it's related to the fact that i'm playing on steam, but when I use those scripts, the window gets maximized. some of the coding seems to indicate that this is expected behavior... to remove the border and expand the window to full size.

Now I've tried running the game with windowed mode and it works fine in windowed (no black flashes, overlay tools work, etc).

I attempted to remove the extra DPI settings mentionned in other parts of the thread, unchecking the options in the Pathofexile_x64.exe and pathofexile.exe executables.

So my question is: is there a way to have the borders disappear without having the window expanded after it becomes the main focus window?

#

The issue with maximizing the window, is that it returns the flickering, as well as "renders vulkan on top" behavior that many people are experiencing. This naturally hides any overlays or 3rd party tools for trading and such.

worthy cape
#

You should be able to determine the client area size and adjust the window size when you AdjustWindowRectEx to frob the flags or whatever the AHK script does - which would let you keep the client area the same.

#

The "magic" behaviour of a full screen sized window I believe is because there's no way to explicitly tell Windows "yo, give me exclusive fullscreen" - there's just heuristics to figure out if the window seems to be trying to be "fullscreen".

#

(seems like there's VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT nowadays, so take some of the above with some salt)

proper rock
#

so far, the only thing that's worked decently well for me is running it in windowed mode, and running this script in AHK before loading the game:

WinWaitActive, ahk_class POEWindowClass
WinSet, Style, -0xC40000, ahk_class POEWindowClass
return
;
worthy cape
candid ridge
#

@deft jolt Is poe.watch coming back?

lavish gust
#

seeing latest messages on poe.watch discord, I'm a bit worried

candid ridge
#

what do you mean?

lavish gust
#

latest messages, 12th may to now:
[15:24] Akuma no Tsubasa: Siegrest can you fix the api pl0x ?
[22:38] Siegrest: it's all very broken and i have 0 motivation left :widesob:
[00:12] Jeff: 😭
[18:21] Akuma no Tsubasa: Siegrest pleeeease do something ;_; without your API Izaro Bot can't work
[21:29] ral: Has the website and API been down?
[21:30] Xeverous: apparently
[21:30] Xeverous: look the chat history
[22:06] ral: damn
[22:06] ral: any chance it'll be back up
[22:14] Siegrest: its pretty broken and servers cost a bit ;
[22:14] Siegrest: :/
[22:33] Mxrk: 😦
[22:59] ral: that sucks :/
[23:24] Xeverous: so R.I.P poe.watch?

candid ridge
#

ah ok, thanks for the context

lavish gust
#

well I used the API too

#

it was actually my initial one before I got how to query poe.ninja

remote yoke
#

RIP. It's way better than antiquary for most things.

#

And replaces a lot of ninja.

lavish gust
#

well you can take its source and host it yourself if you know how to

#

but its a full stack with a database needed so it indeed has some costs to run

velvet fog
#

@worthy cape depotdownloader worked fine but a little slow with my poor internet

worthy cape
#

I'm getting somewhere between 1-2 MiB/s

#

Ran some delta tests with rdiff too:

23:32 <zao> Tried rdiff from librsync to see if I could get decent delta patches.
23:33 <zao> Between 3.7.3d and 3.7.4 there's around 617 megs of difference in file size.
23:33 <zao> A rdiff delta is 1.8 GiB there, compressed with zstd or pbzip2 it's 1.3 GiB.
23:34 <zao> Still an improvement over the raw 20.9 GiB and 21.5 GiB files, of course.

#

Leaning toward storing the initial release for a league in full and deltas+signatures forward.

velvet fog
#

will import .dat to database or json format for future use

worthy cape
#

Heh, I just found out by random googling that the disk in my external drive may be SMR. I guess I could store GGPKs on it at least πŸ˜„

fickle yew
#

@remote yoke Would it help if ninja included past leagues?

remote yoke
#

Mmm, maybe? I can't really remember now why I preferred poe.watch tbh. Maybe just the format of an all-in-one system. It's not fresh in my memory so I don't know what I liked better lol.

fickle yew
#

Hehe

grizzled seal
#

I liked the page on poe.watch with start/end/elapsed/remaining info for every league, it's a bit annoying to find the same info anywhere else

fickle yew
#

I could probably add that to ninja rather easily. You interested in current leagues or also past leagues?

grizzled seal
#

I like the historical data but I'm probably not the majority, most people probably only care about previous / current / next and nothing else

fickle yew
hazy fog
grave wren
#

I'd enjoy having aggregated data points throughout old leagues

solid sinew
lethal nimbus
#

anyone got a hint on whats the table name that holds the quest data in the wiki? so i can pull some data using cargoquery

#

apparently quest_rewards good to know

lethal flume
#

Those are all the available cargo tables.

lethal nimbus
#

ye i found out right after asking, ty sir

lavish gust
#

@solid sinew hey, you might be interested in my custom extented filter language then https://github.com/Xeverous/filter_spirit I kinda wanted a custom Notepad++ / VS Code extension for highlighting it

worthy cape
#

Downloads finished, 256-some gigs for the main releases, not too bad.

velvet fog
#

233 GB and patch 3.9.0 now

#

many garbage inside content.ggpk

worthy cape
#

Heh, broke my db schema hard when there's several manifests fanning into a single manifest with updates.

#

At two points in time it went back and forth between a pair of manifests for fun.

remote yoke
#

@fickle yew I think one of the nice features poe.watch had was listing the exact counts of items being tracked, instead of merely a confidence rating. Ended up telling you how much shit was being put on the market over the history of the item, to potentially infer week one availability statistics for instance. Otherwise it was just nice to have all the past economic data all in one place. Antiquary is nice, but it doesn't have current league and the UX leaves something to be desired. Would be cool if you could implement that kind of thing one day.

#

Also, would it be possible to modify the div card data to index their rewards for the search bar? So if you searched for Starforge it would show both Starforge and The World Eater card and stuff?

cosmic saffron
fickle yew
#

@remote yoke ill keep the count thing in mind + antiquary. Div card search sounds reasonably easy.

remote yoke
#

Thanks.

violet path
#

@fickle yew it also tracked a few things poe.ninja doesn't currently which was super nice, like harbinger weapon pieces, 1/2 socket hale negators

#

would love to see those added πŸ™‚

fickle yew
#

Oh those Harbinger weapon pieces...

rigid thicket
#

nvm I found more on the wiki

viscid mantle
#

Given how much the tool dev community has grown, is anyone maintaining a code snippet repository?

frigid nova
lavish halo
#

@rigid thicket api documentation sucks - my advice is to find an open source tool that is maintained like poe overlay

#

and gleam what you can from that

worthy cape
#

Revisited SMD again, figured out the meaning of the last header count I had labeled as unknown - was just the string table size for cheap skips.

#

Old models lack the trailer, which is cool too.

civic sluice
#

Has anyone looked into a harvest league planting optimization tool based on the revealed info?

hazy fiber
#

its very easy to do by hand

#

so theres unlikely to be a tool

lavish gust
#

@rigid thicket AFAIK there was someone who made own doc of the GGG API using swagger, would need to search if I still have a link to it somewhere

worthy cape
#

It's in the pins.

cloud holly
worthy cape
#

This is super nice, just found the first occurrence of the optional trailer for SMD in version 2.5.0. I wonder what cool tech they introduced there.

#

Breach, hmm.

#

I guess that might've been where skellingtons were merged into the models.

velvet fog
#
worthy cape
#

Found out the fun way that memory mapping and network shares does not mix well. Getting a network throughput of 15 MiB/s scanning a GGPK πŸ˜„

rigid thicket
#

thanks, guys

fickle yew
#

@violet path deploying fix to Harbinger weapon pieces.

#

^ @frigid nova

worthy cape
#

Sooo... who tripped on the Texas datacenter?

gaunt tundra
#

why are all these tools moving to overwolf?

worthy cape
#

all what tools?

violet path
#

isn't it a popular platform for addon type stuff in other games

cosmic saffron
#

think they pay developer to use the platform

gaunt tundra
#

poe planner, poe overlay

eternal sand
#

I'm not sure how much the player base in general care, but third-party integration like overwolf is generally the point when I start looking for new tools.
As a developer it seems a bad idea unless you have a monopoly (users can't leave), or you provide two versions of the tool. Allowing users who already use the third-party program to get additional functionality.

golden bane
#

Embrace, Extend, Extinguish

quaint grove
#

why would you ever use a tool that isnt foss?

eternal sand
#

why would you ever use a tool that isnt foss?
Given any question of "why ever do X" it's always pretty easy to find reasons.
Using FOSS software is generally better, a good guiding principle, but not an absolute.

velvet fog
#

I don't want my spaghetti code in public domain

quaint grove
#

im obviously talking about this context

#

@eternal sand

eternal sand
#

Better to be explicit than implicit. It takes only a few seconds to replace "tool" and "you" with what you mean.
Even with context there are a few interpretations.
I'm guessing you mean "Why would a regular POE player ever use a POE tool that isn't FOSS?"
If that's what you mean then the most likely reason is ignorance, or lack of alternatives, or the alternatives are better, or they already have experience with a tool. AAAAAHHHHH. See, I already did this and deleted it from my previous reply. Lists are boring, and it's easy to say "well I didn't mean that so your reasons don't apply"
Given there are multiple interpretations of context, I still stand by what I said:

Given any question of "why ever do X" it's always pretty easy to find reasons.

grizzled seal
#

Personally I wouldn't care about installing additional software for PoE tools, the problem is Overwolf's business model revolves around injecting ads into games themselves, opting into something like that as someone that's been blocking ads everywhere except a select few websites I actually want to support is absurd and never going to happen.

quaint grove
#

ignorance, or lack of alternatives, or the alternatives are better, or they already have experience with a tool these things are largely community failings imo

quaint grove
#

im short on projects at the moment. anyone have a tool use that needs a tool?

lavish gust
#

@quaint grove I'm making one that revolves around generating filters using data from poe.ninja or other APIs. It's more of a custom extented filter language than fixed hardcoded filter. Interested?

quaint grove
#

i took a look at your project when alby posted filter code complete, theres a lot of work there that i dont fully understand. you said you wanted syntax highlight for your dsl?

lavish gust
#

yes

#

theres a lot of work there that i dont fully understand
what specifically?

quaint grove
#

well, why do you need ast?

lavish gust
#

It's a custom language that has real LL-inf parser

#

Unlike the client, it does not read the filter line by line

#

It's just too complex to implement native code that goes through lines.

quaint grove
#

im digging the monads

lavish gust
velvet fog
lavish gust
#

thanks

lusty musk
#

what's the proper way to maintain an indexer?

#

it just spits out stashes, each containing items

#

are you supposed to assume that 1. stash ids are unchanging and accurate and 2. when an item is gone from a stash it is just gone?

#

or are you supposed to use the item["id"] field, is it reliable?

#

or instead the x, y position inside the stash?

worthy cape
#

Item identifiers may change as the item is reforged, you may be able to track an item as it travels between players if it has been unchanged enough, but in general you can't determine if something was actually sold, vendored, recrafted in place, etc.

#

Stash IDs are quite stable beasts, I believe. How you mangle the river into your own database varies greatly on what you're trying to track.

frigid nova
#

Anyone happen to have an estimate of the TBs down from consuming the stash API in delirium league?

golden bane
#

@fickle yew tracks all-time stash data consumption on poe.ninja, so he might also have per-league data internally

fickle yew
#

I don't.

frigid nova
#

I guess I can always just write down the number on that page now and check back in three months πŸ˜‰

golden bane
#

Same with the next change IDs

hazy fog
rare jasper
#

The firehose is measured in single digit gigabytes per hour

#

but I don't have more specific numbers than that

#

also, there's an absolute fuckton of useless and repetitive data in it

frigid nova
#

@rare jasper thanks - thats probably the most specific number ive gotten πŸ˜†

#

And yeah - unfortunately no way to not dl it all though 😦

rare jasper
#

that is very true

frigid nova
#

@hazy fog im lookinig for league or per month specific numbers

rare jasper
#

do not try on any sort of capped internet connection, that's all I have to say

frigid nova
#

yeah its looking like estimates between 2 - 10 tb from what i can tell

rare jasper
#

I'd say it's on the lower end of that, but yea

#

I've never seen a data cap over 1TB that wasn't just unlimited, and it will eat a TB for sure

civic crane
#

does poe.ninja show gzipped size or raw?

worthy cape
#

I'm so many yaks deep right now.

#
  1. Hard drives are slow so running parsing experiments on files in GGPKs takes too much time.
  2. Maybe implement some sort of MFT for the packs so that runtime isn't dominated by minutes of tree traversal.
  3. Data storage is hard, maybe I should put it in a RDBMS?
  4. Ooh, I could deduplicate files by content SHA256.
  5. Why isn't my database responding?
  6. Postgres isn't running... last time it was due to upgrading the package but not the database itself. This time the package was held but some library it depended on had changed so-version.
  7. FML.
rare jasper
#

Sounds about par

lusty musk
#

good question, are these numbers all gzipped or raw?

rare jasper
#

I think gzipped, but not sure

frigid nova
#

presumably the firehose statistic from @rare jasper would be the size of the http content which should be compressed (feel free to correct me if wrong)

rare jasper
#

that's my assumption as well, default should be compressed

lusty musk
#

does anyone know how x-rate-limit-ip counts by the way?

#

like does it increment the counter at the start of a request or when the response has finished?

#

and does it decrement the counter 1 second after the start of the request, or 1 second after the end of the request?

velvet fog
compact isle
#

everything happens at the start of the request

lusty musk
#

@compact isle from the perspective of the server though, right? so you have to account for variable latency

#

starting the cooldown upon receiving the first byte of response should be safe then

compact isle
#

yeah I don't think you'll be able to be completely accurate due to PHP / CGI stuff even with first byte

worthy cape
#

flares some clouds

lusty musk
#

@compact isle but is there a chance it will be too fast and still trigger the throttle?

compact isle
#

nah basing it off first byte should keep you within the limit assuming cloudflare doesn't get eager and start sending things before we do

compact isle
#

so I'm working further on our OAuth implementation to get it all ready for actual usage. Are there any must-have features that people can think of? I want to make sure I've covered as much as I can before we release more stuff

velvet fog
#

atlas progress, quest progress, map tab api ..

grizzled seal
#

Is there a straightforward way to get the current game version via some API (steam or otherwise)? specifically looking for it so I can pull the latest game version files from the patch CDN: patchcdn.pathofexile.com/<3.10.2.4>/[...]

#

writing a hybrid steam/ggg updater script that pulls files from both CDNs so I get the benefit of both systems (steam integration, ggpk defragmentation) in a single click

velvet fog
#

Could you read python script?

grizzled seal
#

sure, I'm writing this in python anyway

velvet fog
#

check update_patch_urls()

grizzled seal
#

thanks, this looks like what I was searching for πŸ™‚

broken cloud
#

atlas progress, quest progress, map tab api ..
@velvet fog @compact isle seconding this... having as much character data accessible as possible would be great

compact isle
#

atlas is possible, quest stuff is harder as there is a lot of tracking that isn't exposed in a friendly way to anyone without the entire quest map

#

private stash / character stuff has been a focus although I probably need to check with rasmuski to see if anything obvious is missing

carmine merlin
#

@compact isle any eta yet for cluster nodes showing their allocation on the website?

compact isle
#

it won't be 3.11 but this new character stuff will give you the "hashes" of allocated nodes

#

my understanding is that they're not simple to apply though

#

full support is still on the radar and it'll be implemented in a really friendly way if I can get it working the way I want

carmine merlin
#

Sounds great, also small gripe but on the website Timeless jewels use the crimson jewel art instead of their own purple jewel art, not sure if that was a temp measure or meant to be more permanent

compact isle
#

hm let me check

#

looks like an oversight should be an easy fix

carmine merlin
#

Thanks!

fickle tusk
#

@compact isle regarding oauth features - not exactly a must-have but i think it would be nice to have a api where you can push a message to a user via the website message system. so you can notify a user without having to have access to their mail.

rain pasture
#

Does anyone know when the skill tree on the website topically gets updated for a new league?

#

Or if there's a way of scraping the notable anointment data that would be available earlier~

minor charm
#

Is there any doco for the OAuth stuff i can take a look at ? Or is it just whats available under the Developer API docs until Oauth gets released ?

violet path
#

@rain pasture i think that's usually in the json they release to toolmakers before patch day

rain pasture
#

Oo how do I get in on that?

rain jacinth
#

They give out the link @rain pasture

hazy fiber
#

they post the entire json like 2 days before the patch

rain pasture
#

oh perfect, this is the same JSON I grabbed from the site

#

thanks guys

lusty musk
#

@compact isle for any 'private information' oauth system, I would like to see it separated in read only vs read write permissions

#

for example poe-racing or some wealth tracker I wouldn't mind giving read permissions to accurately track my characters and wealth

#

but if there's anything that you can do with the API that also involves changing settings, sending messages, etc (anything that can be considered 'writing'), I would prefer it if that was a separate login or permission so that we can safely give authenticate third party applications without worrying about them changing anything about or otherwise affecting your account

velvet fog
#

EVE Online!

worthy cape
#

@velvet fog Played a bit with deduplicating packs - put all the file contents in a database indexed by SHA256, 243 gigs of GGPK became 65 gigs of sqlite3.

#

Thinking of generating .ggpk-lite files that keep the internal structure but have no payload in any FILE entries.

velvet fog
#

wow

worthy cape
#

The database is a bit slow to operate, I should probably just put them in the filesystem in a bunch of directories.

#
sqlite> select count(1) from rainbow_contents;
1011123
rain pasture
#

sqlite πŸ‘€

worthy cape
#

@rain pasture I would've put it in postgres, but my installation kind of broke πŸ˜„

rain pasture
#

I didn't even realize you could have indexes on sqlite

worthy cape
#

It's quite competent if you hold it right.

grave wren
#

what about our lord and saviour containerization

worthy cape
#

Haven't had great experiences with running services in containers, but I might be trying to use them as if they were VMs and getting disappointed that there's no systemd inside.

grave wren
#

why would you need that for a db blackbox

worthy cape
#

I guess I'm not well versed in how to actually set up a suitable container image and running it.

#

Without going full weirdo with k8s and whatnot.

grave wren
#

you can just use compose

worthy cape
#

I'm supposedly a professional sysop - you should see my home environment πŸ˜„

#

Ah, Docker. That went "well" last I tried to get IPv6 into it.

grave wren
#

normally you'd pick up an image from the official postgres docker image team

#

no need to fiddle around with it for standard stuff

worthy cape
#

(where "well" is "fudge, traffic just drops at the container host for $reason")

grave wren
#

basic setups can be done with compose

#

if you need more than the db

worthy cape
#

Guess I'll look into that after I hit this machine with a large hammer.

grave wren
#

smack it

#

also dont try this on windows without wsl2

rain pasture
#

monolithic VMs for life

worthy cape
#

It runs Arch Linux because at the time it was the best way to get ZFS-on-Linux.

#

The gift that keeps on giving.

grave wren
#

tried to get mongodb going on windows

worthy cape
#

I just have to migrate out the very critical infrastructure of "minecraft server for the nephews and nieces" before breaking it.

grave wren
#

the docker image just doesnt work under windows without some dirty hacks atm

worthy cape
#

I wanted to like WSL2, but it's a bit bleh for my needs.

#

Instance startup is slow, so when I pop a wsltty terminal to do some quick maths, the bunch-of-seconds delay to a prompt grates.

#

As it uses Hyper-V, it also completely hoses VirtualBox, which I use extensively for work.

grave wren
#

didnt try wsl2 i avoid windows updates like the plague

raw storm
#

Did they change the API for the get-stash-items? I've been out of touch for a little bit here and now I'm getting error code: 6 'forbidden'

simple ravine
#

are you supplying a user-agent?

#

you should supply a user-agent with the app name and contact details to you

empty geyser
#

Question guys, im playing over Gforce Now since delirium atm makes it very hard to run on my pc. Anyway to get overlay tools to run with Gfn? dont know how autohotkey picks up info from the game

cosmic saffron
#

clipboard doesn't even work through geforce now

empty geyser
#

yes i know its disaster when shopping, im typing manually πŸ™‚

#

ok just as i feared - impossible πŸ˜„

#

thank god for multy screen setup πŸ™‚

raw storm
#

@simple ravine setting a user agent and referer seems to have fixed it. Thank you!

grave wren
#

I am sure you need to manually reload if that hasn't changed recently

rain jacinth
#

@earnest radish man that was my idea wth templarLul

#

@earnest radish going to character screen reloads filter so that would be okish for leveling

#

@earnest radish I also had in mind to put up a small hud that would be showing resists and pob dps

worthy cape
#

"just" make it πŸ˜›

fickle yew
#

ideas are cheap, execution is king πŸ‘‘

grave wren
#

πŸͺ“ where is that king that needs the execution

rain pasture
#

πŸ‡«πŸ‡·

candid ridge
#

We're discussing potentially adding a different flair for toolmakers on the poe sub, is this something people would find useful/beneficial?

lavish gust
#

I think yes

candid ridge
#

What do you mean

worthy cape
#

@velvet fog The figures I cited may be off... Error: database disk image is malformed

candid ridge
#

Ah yeah we'd probably keep it to well-known tools

rain pasture
#

yeah, no stinky no-name tool devs allowed πŸ™ƒ

worthy cape
#

Shame on me for believing what documentation says...

That is, calling create_dir_all concurrently from multiple threads or processes is guaranteed not to fail due to a race condition with itself.

compact isle
#

okay wall of text reply time

#

Private messages - not really in our domain, we would prefer people recieve messages when actually using a tool or on a third-party website
Map tab contents - map items yup, nothing on atlas state yet (would probably be a separate API)
No OAuth documentation yet as it isn't publically available
Write permissions - generally nothing will be writable, the only exception I can think of is item filters which I think is okay bundling write / reads. It is a good idea to keep those operations separate generally though I agree
Private API keys - we really want to deal with a "service" when considering requests / abuse cases rather than individual users so we'll keep with OAuth clients that require approval for now. It is a neat idea but unfortunately harder on us to support

#

follow up question - does anyone have good examples of existing OAuth services they've enjoyed using? So far I've been looking at Github / Discord / Microsoft for examples of features they support but always good to get an idea of other extensions to the standard

lusty musk
#

@compact isle would an 'activity log' a la client.txt be possible to query after oauth authentication?

#

this would allow third party tools that consume client.txt for all sorts of purposes to be run as a website instead of having to be downloaded and run on the users machine

compact isle
#

no, OAuth and the game client are completely different domains

civic crane
compact isle
#

possibly although at this point it would be with 3.11's release

#

hm best to delay it until after. There will be warning when it happens as I know a lot of people depend on it for discriminating items / uniques

velvet fog
#

what system?

compact isle
#

using generated image URLs instead of pointing to our copy of internal game art

velvet fog
#

bad news for me :<

compact isle
#

you can still get the art file used from the generated URL (described in the link from SnosMe above)

#

it just lets us do things like add a shaper background to an item easier than URL query params

velvet fog
#

but we can't generate this generated url from content.ggpk

compact isle
#

yeah we only want to serve content that is actually used

minor charm
#

@compact isle thanks for the info

rapid pagoda
#

silly things you find in old GGPKs: "PvP 6v6v6 Capture the Flag"

hazy fiber
#

3 way ctf just sounds like all ffa setups, ganging on on the weakest team for easy flags

rapid pagoda
#

this one would have also involved finding 17 other people who wanted to play that mode, which was…well, shall we say, overly optimistic

hazy fiber
#

yes well you said old GGPKs so maybe they thought pvp would be more popular

rapid pagoda
#

For sure. This was from 1.0

worthy cape
#

Any bets on how hard this will suck?

rapid pagoda
#

64 GB seems surprisingly small, considering

worthy cape
#

@rapid pagoda It's all the files from the first GGPK of each release, deduplicated on content signature.

rapid pagoda
#

Right, I figured from context. I'm still surprised πŸ™‚

worthy cape
#

Could be screwing something up, of course.

rapid pagoda
#

Current release containing ~30% of all content that has ever been released is quite high, especially considering the turnover on data files

worthy cape
#

@velvet fog poedb seems down, btw.

velvet fog
#

Server fails to start after installing intel-microcode package

worthy cape
#

eep

velvet fog
grave wren
worthy cape
#

I hear the whole world circles around webdev.

grave wren
#

Agreed still interesting

rapid pagoda
#

(command line: pogo analyze "/mnt/c/Program Files (x86)/Grinding Gear Games/Path of Exile/Content.ggpk:Data/DelveBiomes.dat")

worthy cape
#

Ooh!

#

This morning I managed to rewrite a GGPK file, stripping out all the file contents. The tree for current Content.ggpk ends up a measly 58.1 MiB. Looking to augment my library to read the actual data from the loose files I gathered the other day.

#

In other completely unrelated news, I'm running out of disk space πŸ˜„

#

(the long-term plan is to make full-tree traversals cheaper so I can run parser experiments faster)

#

brittlDapper

    // long enough to fully read all node headers, hopefully long enough for
    // the filename in a FILE or PDIR node as well
rapid pagoda
#

Idea being that you fault in only the data you'll need to work with the node itself, and defer reading the whole node until you need it. There's some logic in node_file.go to handle the "oops, really long filename" case

worthy cape
#

Ah, fair enough.

rapid pagoda
#

I've experimented with memory-mapping the GGPK, but wasn't impressed with the performance. It's basically a one line change, swap os.Open for mmap.Open πŸ˜„

worthy cape
#

I'm leaning toward traditional files again as well, just a bit of a pain when running multiple threads and reads to open additional handles.

#

I guess that overlapped I/O at arbitrary positions would work.

tight storm
#

So i was reading reddit and people are talking about the map mods.
I do really want something to let me highlight the reflect mods in a different color.
Definitely had a hardcore character die this league to reflect :(

Can someone tell me where I would get started on doing something like that?
IE. If modString.contains("reflect") modString.setFontColor(0xFFFFFF);

worthy cape
#

In what context? You cannot affect how the game renders.

tight storm
#

I see, basically, I would like some alert to be triggered when I mouse over a map with a reflect mod

#

In the reddit post I see people mentioning it may be possible to eliminate the mod strings which are less dangerous, so I only see mods I care about on maps.
Is that possible?

fickle tusk
#

the only ethical way would be to write a clipboard listener and check the map item text when you hover over an item an press ctrl+c. this only allows for identified maps ofc. everything else is considered automation and against tos

worthy cape
#

The only ways to exfiltrate information from the game client is reading what's written to Client.txt, and reading the data on the clipboard when Ctrl-C:ing an item.

#

You can also extract information about stash contents via the API, so it could be possible to write a "audit my stash tab" tool you could run on-demand.

tight storm
#

Hmm that makes sense, maybe I'll have to get into the habit of ctrl-c'ing my maps then and write a small script to analyze my clipboard and alert myself then

rapid pagoda
#

Those scripts exist. The old PoEItemInfo script had an option to check map mods, for instance

worthy cape
#

I could swear that I've seen danger ranking for map mods somewhere.

#

Ah, that probably.

#

Personally I craft my maps in a stash tab and search for "reflect" πŸ˜„

tight storm
#

this seems like a 5 minute project now, but I was hoping for something more foolproof haha

#

does client.txt have info about the items in my inventory?

fickle tusk
#

no

tight storm
#

dang

rapid pagoda
#

Client.txt is mostly a log of chat messages and a few other events like launching the game or changing areas. Doesn't get as detailed as individual item drops or anything

jade adder
#

didn't i hear something a while ago about OCR being allowed but nobody uses it

#

you know what to do

golden bane
#

OCR marauder

cosmic saffron
#

if (text == "Resurrect in Town") console.writeline("This was a reflect map")

jade adder
#

Can i pose the classic question of: would it actually save you time at all to develop that tool compared to just taking the extra .5 seconds per map to check the mods carefully?

#

πŸ˜†

cosmic saffron
tight storm
#

Why would I try to clean a screenshot for OCR when I can ctrl+c the item though haha.

#

I was hoping I wouldn't need the ctrl+c step since I may forget

grave wren
#

@jade adder spotted the nondev

#

You clearly automate everything

#

Regardless of efficiency

golden bane
fickle tusk
#

besides there are more aspects than time savings. zana always keeps asking me

grave wren
#

If it is a recurring task and it takes more than 90sautomate it:

tiny cargo
#

https://xkcd.com/1205/
In this case it could be also a time benefit

tight storm
#

oh I just got an idea, what if I made ctrl+click also a copy-to-clipboard operation

#

then whenever I dump my map into the device

#

i would also update my clipboard

rotund solarBOT
#

GGG is very strict about macros and automation. Your macro must follow this rule: a button must perform only one server action and it must perform that one single server action every time with no condition. If you have questions about what counts you are welcome to ask but questions about what GGG can detect are not acceptable. Please do not argue about what other games allow, GGG has their own rules.

tight storm
#

Is ctrl+c a server action though?

#

i assume it's client side

#

or i would hope the server isn't feeding me strings everytime I ctrl+c haha

rapid pagoda
#

brief rant: I've never been a fan of the "single server action" rule, as it's impossible for players to know what a "server action" actually means -- for instance, switching stash tabs is considered a server action, even though there's no obvious way for a player to recognize that without breaking out a packet sniffer

grizzled seal
#

Isn't it even more complicated than that? I'm pretty sure the first 4 stash tabs have their data automatically loaded, so it's only requesting data from the server past those

worthy cape
cosmic saffron
#

modularity means you pass on development/testing cost to the community

worthy cape
rare jasper
#

harder from a safety perspective

#

less so from a server actions issue

lusty musk
#

is a chaos recipe helper against the rules? that is, an app that reads your stash through the API and finds a chaos recipe set

#

then draws an overlay over the game highlighting the locations in a stash tab

#

technically it doesn't interact with the game, assuming the overlay is implemented as a partially transparent window

rapid pagoda
#

Would probably be allowable, although it probably wouldn't be a huge time saver -- good stash tab arrangement can do most of the work for you

lusty musk
#

well this would mean 0 stash tab arrangement just ctrl+click into a quad tab and then later ctrl+click out of it again

rapid pagoda
#

Staff are a little touchy about overlays but this would probably be fine

#

The problem you'd be most likely to run into is that the stash tab API -- even the personal one -- is delayed. Doesn't update until you sync your stash, e.g. by transitioning to another area or performing a significant crafting operation

sleek nacelle
#

if it uses the API to look through your stash then it should be fine, since that means it would work without the game running and isn't interacting directly with the client

lusty musk
#

just to reiterate, it wouldn't interact with the game itself in any way, like it doesn't read the active tab or anything like that, that'd all be static/hotkeyable, only drawing on a partially transparent window overlay and using the API

sleek nacelle
#

hmm, actually that might be too far. chris specifically mentions "overlays" in that comment, and while poe overlay and the like are technically overlays, they're not pointing out things in the client or anything, it's basically just a separate window over the client. putting an outline over specific parts of the screen would be pushing it at the very least

worthy cape
#

@lusty musk Procurement has had recipe helpers from the dawn of time.

lusty musk
#

@worthy cape as overlays?

worthy cape
#

Separately in the tool, as it's made in an era where you didn't overlay.

violet path
#

Quite a few trading tools have an overlay that highlights the item in the stash that someone whispered to buy, using the x:y coordinates

#

i think those are allowed

worthy cape
#

Slurped in your stashes, rendered them nicely, and gave you guidance on how to maximize things like GCPs and glassblowers.

#

Biggest problem with Procurement is that when stash tab count increased, it was way too easy to run into API limits unless you limited it to a few tabs.

frigid nova
#

@lusty musk Another fun thing would be auto updating filters based on current counts of base items in the stash. Would require people reloading their filters though.

lusty musk
#

example mockup (which doesn't make sense since it's an old store tab instead of chaos recipe tab)

#

and to deal with the delay there'd be a button 'next recipe' which will assume you have taken the previous one out

worthy cape
#

sigh

#

Heaven forbid that the key I pressed that has done the thing since forever would actually do the thing.

simple ravine
#

funky discussion re overwolf

#

oh, and apparently I fell asleep at 6 pm

#

woke up now

worthy cape
#

Well done.

lusty musk
#

@worthy cape is that real?

#

makes me not want to restart firefox

worthy cape
#

@lusty musk Not sure how it's been in there.

#

Ctrl-Shift-I still does the thing, but that's not where my muscle memory is.

lusty musk
#

hrm I just

#

restarted to latest version

#

still works for me

worthy cape
#

I can only imagine that it's some sort of hamfisted way of trying to prevent people being upset over "hacking tools" or prevent common paste-js-here phishing things.

#

I'm on 78.0b4 it seems.

#

Might be some A/B bullshit?

lusty musk
#

im on 77.0.1

#

which is 'up to date' according to my ff

#

im on win 10 on this machine though

#

and on stable, not any nightly channels or something like that

#

I really really hope they don't stick with that

worthy cape
#

I thought I was on release, currently 78.0b5 after restarting it.

lusty musk
#

that's so ass, just keep f12 working

worthy cape
#

Seems like it might be some one-off thing in your profile? F12 works after restarting the browser.

#

Or it's backed-the-fuck-out.

lusty musk
#

I also hate that browsers 'protect' you now

#

and refuse to paste in things that start with javascript:

#

or at least some generic "I know wtf im doing" option

#

that disables cruft like that

simple ravine
#

This Uri guy got caught up in the firing line heh

#

brave of him to stay

frigid nova
#

@lusty musk devtools.selfxss.count might still be an option in firefox config

cosmic saffron
#

haha my ctrl+shift+i got hijacked by radeon software to take screenshots

rapid pagoda
#

@worthy cape I like my dev tools but I see a pretty solid usability case for "a button that you can pretty easily hit by accident shouldn't make a scary window full of technical gibberish appear"

worthy cape
#

Myeah, I just have long-running grudges against the UX team.

lusty musk
#

@compact isle maybe an odd request/remark

#

but from a quick search only "The Twins" and "Rebirth" are names that can refer to two kinds of item

#

(in both cases a prophecy as well as a divination card)

#

maybe they should be renamed so that unique/currency item names are unique?

#

or maybe I'm missing some items, I just used poe.ninja's data to check that

rapid pagoda
#

@lusty musk kind of outside his wheelhouse, novynn mostly does web development

broken cloud
#

@lusty musk Ran into this problem a while back too when I was pricing items only by name

#

But the way to distinguish them is easily available though... item type is visible to loot filters as well as the website API

#

Also, there are others, "Beach Map" for example can refer to five different things depending on the tier

lusty musk
#

sure, but those are variants of the same item

#

in the case of the twins and rebirth they're entirely unrelated

broken cloud
#

Yup, my point was that relying on name / typeLine alone to distinguish items is not reliable... if you are writing a tool that trips up on this, it will probably be less work to do it the right way rather than have GGG change their item names

lusty musk
#

ok I know before weighted sums were a bit out of hand

#

but eh

#

THIS is already 'too complex'

#

which seems kinda ridiculous to me

cosmic saffron
#

curious as to why you want weighted sum for this

#

there are other mutually exclusive stats you can search for on impresence

lusty musk
#

@cosmic saffron I just used the first thing it came to my mind for something I was searching

#

and then computer said no

#

@fickle yew are level 1 20quality vaal gems excluded intentionally on poe.ninja?

fickle yew
#

@lusty musk no maybe they should be there

grave wren
#

Do any of you have experience with the new mobile ryzen cpus under linux, any issues or other unpleasant things?

violet path
#

@fickle yew oo if you're looking at gem stuff, might also want to think about level 5 awakened gems, level 6 corrupted awakened gems, level 1 vaal gems, level 1 20q vaal gems, and level 1 23q vaal gems.

fickle yew
#

Are you keeping a list @violet path ?

violet path
#

I use your website pretty extensively for my project so I notice a lot of things yeah

fickle yew
#

I'll take a look at the list, thanks πŸ™‚

#

I thought level 1 vaal gems (no q) were so common now that none of them were worth anything.

violet path
#

that is totally true yeah, i just listed them for completeness' sake

rain pasture
#

Track data for every level and quality combination and add some sliders πŸ™ƒ

south gorge
lusty musk
#

@earnest radish I'm really confused what you're replying to here haha

#

regarding the first, I know how the API works, I didn't ask? I was asking about the 'legality' of a hypothetical tool, not the method

#

as for the weighted search

#

no, if you try that search the website will say it's too complex and refuse to query

#

as for what your comment about reverse=True means, I don't know

lavish gust
#

xanthics: and can guess were the items will be on the screen, again without the game client running
the same was true for on-screen flask time display but it was banned

lusty musk
#

I guess it's because I'm not logged in atm

#

don't know why I got logged out

#

@earnest radish and about 'reverse=True'?

#

not sure what that has to do with weighted sum filters

#

alright

#

I'm sad the weighted sum filters got restricted so much though

#

but I guess I am also to blame πŸ˜…

#

@earnest radish not sure if you remember but I was making those πŸ˜›

#

oh well

#

I'm making an indexer now

#

so I'll have a minute delay but can do arbitrary logic

#

tbh I don't care about the minute delay people don't even respond to instant pms anymore in 2020 anyway

#

if you pm within 1 minute they always relist

simple ravine
#

hehe that's pretty hilarious actually

lusty musk
#

when you're successful it does

#

or at least did

#

weighted sum weights never counted for 1 iirc

#

ah

dusky sail
#

is API fixed next league or we stuck at 20 live searches forever?

rain pasture
#

sounds more like intended functionality πŸ˜›

trim widget
#

What's the current trading app that people are using now instead of trade macro?

lavish gust
#

Has GGG made any statement about User-Agent field for tools?

simple ravine
#

@lavish gust You should put your tool name and contact details in your user-agent, is what Novynn has indicated previously

rain pasture
#

Just rediscovered the joke file I leave for myself on all my Linux VMs..

$ cat speak
meow
compact isle
#

we don't have any restrictions around items having the same name and there should always be something you can discriminate them against

#

if you exceed a complexity limit it bails on the request so we wouldn't be able to provide a count for queries that fail

snow whale
#

for the /characters-window/get-stash-items endpoint, is there a way to get all items at once or do I have to send a request for every tab?

#

also, does it work for the map tab?

cosmic saffron
#

not for map stash

broken cloud
#

@snow whale 1 request for each tab, and there's a limit of 45 per minute

#

Current workaround for map tab is to make yours public, and query the trade site to search for your own items

#

Novynn says it will be working properly soon though!!!

snow whale
#

@broken cloud awesome, thanks for the info!

sharp flame
#

Is it allowed to index the inventory (or other item containers) by automatically moving the mouse over each slot and pressing ctrl-c? I think there's no server side action, but it feels questionable

lusty musk
#

@sharp flame no that's not allowed

#

the 'one server side action' thing is oversimplified

shadow mortar
#

So I haven't seen anyone ask here but would blocking mouse inputs (left click) when a certain line is in the clipboard be ok? Looks like it would be since it doesn't affect the game directly.

simple ravine
#

I suppose it depends on the use case, but also one thing to keep in mind is that if you have an application that will alter the behavior when a button is pressed based on external influence (i.e. to prevent you to just press 1 button to cycle between 1, 2, 3, 4) etc can come into effect here

#

Maybe not the best explanation, but yeah...

grave wren
#

Probably a crafting helper thingy and I remember that someone asked GGG if that is legal here previously

shadow mortar
#

Remember what they said about it?

#

I don't think they would like that obviously but eh

#

Just wondering cause a guy posted a nice tool on reddit for crafting, for now it only play a sound when the mods you want are on your item

grave wren
shadow mortar
#

K so basically we don't know

#

😢

grave wren
#

Yeah they said no once and yes to another guy

#

Welcome to Poe macros

rain pasture
#

Unwelcome to poe macros~

simple ravine
#

GGG too negative to like macros etc, but don't want to take too firm of a stance, in case they lose too many players.

#

Why not just make a definitive guideline on 3rd party things?

worthy cape
#

I recommend considering the spirit of the game. Altering how things are crafted mechanically or automating bulk tasks is super advantageous and quite against what is intended.
Compare it to triggered price checks in the client which is just borderline harmful and something they’d rather not have but hey, that cat’s out of the bag.
I quite understand the stance against new things, rather preferring that you use the API to add value decoupled from the game and not directly interacting with it.

#

@simple ravine definitive guidelines tends to invite the kind of person that argue around them and toe the line, and would grant more of a carte blanche for things that you may not want, instead of a case-by-case basis.

#

β€œdon’t be a dick” has worked decently thus far, even though some people fuck it up for everyone with excessive load.

simple ravine
#

Well they can always argue against a tool even though they argue around whatever. At the end of the day, it's their game and their policies

#

Saying yes to one person, and no to another in a seemingly identical case, is not really helpful for future aspiring tool developers

grave wren
#

We dont really know if its identical but yeah

simple ravine
#

maybe

#

but after being here for about four? years, i've seen a lot of wiggling

lusty musk
#

I personally really enjoy the WoW model

#

they have built-in macros and a Lua API in the game

#

this gives them full control over the power of what the players can automate/do by restricting the power of macros and addons

#

and makes the stance clear: if it uses in-game macros/addons it's fine

#

and users can download addons and share macros with a clear conscience as well as know it won't infect their PC

#

it does take care though

#

in older versions of WoW I tried to break the system and succeeded (just to see if I could)

#

there was no way to automate which spell to cast (to prevent botting and automatic optimal DPS rotations)

#

but there was a command to cast a random spell from a list

#

what the developers didn't foresee though was me reverse engineering the RNG they used (it was a terrible LCG built into MSVC), and calling random() from an addon exactly the number of times to advance the random state sufficiently that the next 'random' cast would be one of my choice πŸ™‚

#

I quit WoW shortly after and years later when I came back for a brief stint I tested it and it was fixed, so someone else must've found it

rapid pagoda
#

@sharp flame going back a bit, but there are web APIs for getting the contents of your inventory and stash

#

they aren't quite real-time -- the web sees the synchronized contents of your stash/inventory so anything you've picked up, moved, or modified recently may not show up -- but it's a lot better than ^C text

rare jasper
#

Synthesis implicits are back on the menu again boys, going to need to be added back to poedb

rapid pagoda
#

@rare jasper it's a random synthesis implicit though -- not one that's controlled by implicits on input items like it was during that mess of a league πŸ˜›

rare jasper
#

Still useful to know which ones are possible by item type

worthy cape
#

1.3T /media/stuff/depots/depots

lusty musk
#

what is the meaning of verified: false in the stash API when you receive stashes?

#

I would assume it means 'the item is gone', but if so, why is the item still given in the stash?

lavish gust
#

existence of the item

#

people can link items on the forum, verified items still exist

lusty musk
#

I'm talking about the public stash api though

#

not forums

lavish gust
#

GGG likes to reuse code (and many otehr things)

lusty musk
#

but I'm still very confused, the stash api is supposed to give up to date information, right?

#

so why is it giving a lot of information about an item that's not in that stash anymore anyway?

lavish gust
#

not sure, that's just their design & implementation

lusty musk
#

like all this

#

"look at x:6, y:2", note how Tempest Touch Slink Gloves is not over there

#

gee thanks for letting me know

lavish gust
#

the stash tab API is not strictly designed for trade, it's designed for all of their purposes

#

some fields have no meaning or duplicated meaning depending on purpose of data usage

violet path
#

afaik yeah it's used for forum links, not a public facing api at all so there's always going to be things like this

lusty musk
#

what does the response look like when you're already up to date?

#

is next_change_id null? or is it just empty?

worthy cape
#

Vague memories of it being itself, but that might just have been conjecture by me.

fickle tusk
#

next_change_id is always set in advance. the response to the next page is just empty afaik

lusty musk
#

I just handled all cases just in case

#

is there a decent description of all the fields somewhere?

#

the wiki is kinda out of date

lavish gust
worthy cape
#

@lusty musk The forum dev posts on each league has valuable information about the things changed in the API.