#tooldev-general
1 messages Β· Page 107 of 1
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 π
haha that's a good point actually
a very good use case
I have the same problem actually π
peobably many π
yup π
wanna implement the rare checking into your clone? π also one gif topic i guess
but not impossible imo
big topic*
pricing rares depending on their mods, base item etc
oh a price checker
um, I think the best way to do it would be using a boatload of data and AI
yeah indeed. if u scroll up a bit you see my idea already
u got a huge supply of price data for an ai to learn from?
π
poe ninja has π
do any 3rd party offer any for free?
<- newb π
oh π
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
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 π
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
I believe poe-trade macro have an ai pricing algorithm
and it's open source
you might wanna take a look
oh XD
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
yeah that doesn't sound right
@stuck blaze I was sinking around 5 MiB/s from the river.
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?
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.
thanks again
may I ask what tech stack u used?
im doing some asp.net core and ef core with sql server rn
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! π
π
I recommend stripping out or deduplicating all the fluff text in descriptions, there's quite a bit of it.
yeah and not really useful in an app like poe.trade
im making my own like it
for learning .NET core
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 π
@worthy cape hey hey I'm also using @simple ravine silly stack..
You clearly need to migrate to cobol
When in doubt, that is always the best solution 
That silly stack is real easy to prototype on and super easy to expand on
@west rover from 3 stashes/sec to ~70. Progress!! π
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.
Yeah about 74 stashes/sec over 60 minutes.
@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
from 70 stashes/sec to ~130. More progress!! π
Hey all. Could anyone share a trade API doc? If it exists...
does anyone happen to know where the minimap icons are stored?
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}
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?
what API? the official passive skill tree?
@strange tapir odds are the enchant on the cluster jewel isn't being parsed correctly, check for red text
@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?
@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
@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
That worked! Thank you!
@cur1ous_238 It's a known issue and will be fixed with the next update
thanks briansd9
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?
The website might also randomly log you out
yeah I notice it would randomly log me out every now and then. When that happens does the POESESSID change?
Yes, it changes then
if the POESESSID is wrong, will the request fail, or will it just treat it as one without the POESESSID specified?
Who: @civic crane
What: https://github.com/SnosMe/awakened-poe-trade
(you green now if that wasn't clear)
me: sending TCP ACK to @dense shore
@dense shore Ah what the heck, green me too please https://github.com/briansd9/exile-diary
Cheers
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?
I think you mean large cluster jewel
Yeah π
I can't webdev to save my life, sadly.
Like in this one, if you want Conjured Wall and Thaumophage, there's exactly three choices for the last junk notable - https://i.imgur.com/iYfBH9w.png
I believe this is what you're looking for: https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/master/Data/3_0/ClusterJewels.lua#L564
Order is ascending, clockwise
Are you also interested in extracting this data with your own tools?
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?
Yeah
PassiveTreeExpansionSpecialSkills={
[1]={
list=false,
name="Node",
refTo="PassiveSkills",
type="Key",
width=270
},
[2]={
list=false,
name="Stat",
refTo="Stats",
type="Key",
width=350
}
},
This is where they are written to the data file: https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/master/Export/Scripts/cluster.lua#L53
Hope that helps!
Good info, thanks.
I'm guessing the rules for how the notables/passives/sockets are spread out are hardcoded somewhere in PoB as well.
Yes, this is where that magic happens: https://github.com/PathOfBuildingCommunity/PathOfBuilding/blob/master/Classes/PassiveSpec.lua#L583
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.
My customer would classify that as report
Β« I shouted into the wind, why is it not fixed yet? Β»

There, did my duty and filed a report.
Thanks!
wonder if you could distribute the computation and objects of stashes using CRDTs
just curious, what does "G" stand for for a white socket?
D/S/I are dex/strength/int, that much I can understand, but not G
generic ? π€
I guess
also, what's the point of that attr property when we already have the color?
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? π
whats weird about a package manager?
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
it's normal that it ells you about them but 3xx is a lot
I'm sure that all this will integrate nicely with my 90s era HTML-with-tables.
you should read about the css grid
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.
grid is a for layouting 2d things, flexbox for either rows or cols
@worthy cape
the modules thing in js is a dumpster fire that isn't easily solved
stay away π
290 MiB for the template project, expected gigabytes.
count the files π
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.
now you add left_pad and is_even libs
That's languages missing a good core lib for you
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
"uses machine learning to find routes in your application"
that is the stupidest thing I've heard this day
Buzzword compliant tho.
Idiot-compliant.
looks like a typo/error in GGG's trade site code
the videos have the typo, not the code :p
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
would probably need more tool devs to be on-board with a protocol like that
that sounds a little sus yeah
pastebin is a bit too entrenched, doesn't help that it also contains p&b so it's synonymous with pob links
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 π
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
this looks like rather useful
https://zero.lol/2019-05-22-fun-with-uri-handlers/
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
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β¦
any idea how PDIR checksum generated?
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
ya, the only thing I can't understand is PDIR checksum
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
signatures of all the files means file SHA256?
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)
nice, thanks
Went and updated my janky documentation - https://gitlab.com/zao/poe-rs/-/blob/master/spec/ggpk.md#signature-computation
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?
"Too many files in this directory. Make fewer."
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
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
i dont think he meant og pob and pob community but rather install vs standalone of pob c
@grave wren Correct
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...
yeah I see both perspectives
I'd just prefer something besides pastebin as that is more and more prone to required captcha
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
https://poe.technology tracks build exports
Does someone know if official trade URLs expires at some point ?
discussing trade macro fair game in here?
Development/modification, possibly. Use of, #1βendgame-help .
@simple ravine C# developers working on the important issues - https://twitter.com/bmcnett/status/1263256680940224517

9.0 already?
in january when I was let go my company was only just starting to use 6.0
c# 6.0 was about 2014
#flattenthecurve
Records though. And source generators <3
source generators + ai = π
calm down terminator
can even be 4 -, so we can code in c++++ and c---- at the same time 
I think y'all mean C octothorpe π
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
VB++ :^)
It always was named COOL as well, for C-like Object Oriented Language
Coπ ±οΈoL
yeah, that's another beast... eww
C# actually comes from C++ ++
@simple ravine oh, i thougth that was a meme, interesting
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 writinggoto. And I'm the person that maintains the C => C++ => Python 2 / Python 3 toolchain for other team members.

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**.
Would anyone here be interested in starting a JavaScript based implementation of PoB? Without the UI, just the character stats and DPS calculations?
*Typescript
Based on PoB or from scratch?
*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.
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)
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.
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
@simple ravine Thanks buddy, I just imagined having the desktop implementation shipping on whatever Electron buzzword tech people use now... 
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
I love how regular chat applications consume a crap tonne of memory nowadays
remember xchat or mIRC?
its because every fking program nowadays is a chrome skin
and we know chrome loves ram
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
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 π
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 π
He took what he knew, and delivered value π
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
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
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/
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
@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.
@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
@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
Thanks so far, some very good points to consider π
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.
@uncut raft https://github.com/DrJam/PoEWikiBot
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?
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
Vulkan, vulkan, vulkan! 
all cluster jewel use passive_skill.json
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?
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
the include part makes sense, that's good to know
for Mods.dat, ModDomainID is stat_descriptions ID
@velvet fog
this part I'm not sure. so you're referring to this field right?
https://github.com/OmegaK2/PyPoE/blob/dev/PyPoE/poe/file/specification/data/stable.py#L12667
most of them were hardcoded const
class PassiveSkills
{
const STAT_DESCRIPTION = 'passive_skill_stat_descriptions';
hmm ok. so those aren't in dat. only in the game code?
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',
}
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
ya
is there a bigger list? MOD_DOMAIN.ITEM is absent
if not listed, the default is 'stat_descriptions.txt'
or does it default to stat_descriptions.txt if absent
I see
very helpful, thank you
but I don't sure how to map the support gems
active gems could use skillpopup_stat_filters.txt
yeah when I looked at it I didn't see any obvious explanation
but thats ok I doubt Ill ever need to translate gems
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.
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 π
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.
so we doing gardening now huh
time to make some optimum seed planting overlay tool
probably some thing that monitors time/map#runs to optimize when to harvest and when to sow etc
The ultimate challenge of a league this time of year, planning vacation.
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?
loot filters can only change appearance on the ground
inventory and other UI colors are fixed
Has there been any discussion about allowing something like this in game before?
i dream of the day tier info gets added to the clipboard read out
What is GGG's stance on that?
last i heard they said it was too difficult to implement, although @compact isle could correct me if im mistaken
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
Good thing that you don't have to do that anymore with the new league, eh? @pliant verge
How so?
you only drop every gear piece once per character, and then its up to crafting... absulutely confirmed. loot 2.0
do you have a link for that?
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
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
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
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.
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
or the "Export CSV" here https://www.pathofexile.com/forum/view-thread/2785548
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).
@wary crag @eternal sand check https://app.swaggerhub.com/apis-docs/Chuanhsing/poe/1.0.0 both limit to 15000
Join thousands of developers who use SwaggerHub to build and design great APIs. Signup or login today.
@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.
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
@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
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.
haha glad to know there's a precedent
π
@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
Would anyone happen to know the requirements/who to contact for registering your application with GGG's OAuth service?
@ashen dust roryv@grindinggear.com with your requirements and app information
Wonderful, thank you! π
it was pinned
is anyone working on code complete for loot filters?
i know there is syntax highlighting already
Are there any good tools that provide overlay / in-game steps for fast leveling?
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.
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?
I chacked https://steamdb.info/depot/238961/manifests/ and league start date
just manual mapping
@cloud holly missing api in the url
https://www.pathofexile.com/api/trade/search/Delirium
url = 'https://www.pathofexile.com/api/trade/search/Delirium/?q='
^ this gives me {"error":{"code":1,"message":"Resource not found"}}
if you check the pinned messages, you can see novynn going over how the API changed a few months ago or so
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
you're missing /api/ in the url as brian said
devil is in the details
never mind, i'm tired
it returns an error ^^
https://app.swaggerhub.com/apis/Chuanhsing/poe/1.0.0 try checking this resource
Join thousands of developers who use SwaggerHub to build and design great APIs. Signup or login today.
@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 how should this help me?
i tried it without the ?q=, results in the same error JSON response
also thanks for the better api documentation @simple ravine but that sadly doesn't answer my question
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)
they were at some point; see: https://www.reddit.com/r/pathofexiledev/comments/7aiil7/how_to_make_your_own_queries_against_the_official/
as you were able to get the full information of items in JSON form (see last varbatim box)
15 votes and 11 comments so far on Reddit
@cloud holly Are you sending any headers with your request? Try setting 'Content-Type': 'application/json'
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"}}
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
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
ohhh thats what you meant. thank you!
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)
i feel so stupid right now; thanks!
Working now? Cheers 
its working now π
My eternal struggle when doing WebDAV, fighting User Agents that felt like gluing on or removing slashes from URIs.
@velvet fog have you run into any rate limiting or account blocking, or is it a drop in the digital ocean?
guys is there any way to force a filter reload in a non manual way (barring hooking into poe)?
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
nobody can help if you dont ask :p
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.
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!
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.
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)
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
;
Ah, I used to explicitly say what sizes to use, dug out my old codebase from backups - https://gist.github.com/zao/5d068d86a0177036f7ad8d264a8d1843
@deft jolt Is poe.watch coming back?
seeing latest messages on poe.watch discord, I'm a bit worried
what do you mean?
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?
ah ok, thanks for the context
well I used the API too
it was actually my initial one before I got how to query poe.ninja
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
@worthy cape depotdownloader worked fine but a little slow with my poor internet
I'm getting somewhere between 1-2 MiB/s
Ran some delta tests with rdiff too:
23:32 <zao> Tried
rdifffromlibrsyncto 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> Ardiffdelta is 1.8 GiB there, compressed withzstdorpbzip2it'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.
will import .dat to database or json format for future use
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 π
@remote yoke Would it help if ninja included past leagues?
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.
Hehe
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
I could probably add that to ninja rather easily. You interested in current leagues or also past leagues?
I like the historical data but I'm probably not the majority, most people probably only care about previous / current / next and nothing else
This one actually has the previous league dates https://poe.ninja/data

I'd enjoy having aggregated data points throughout old leagues
for anyone that might find this useful: I wrote a mini language server for filters this weekend. client for vs code is called poe-filter-code-complete https://github.com/albysmith/poe_filter_ls
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
ye i found out right after asking, ty sir
@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
Downloads finished, 256-some gigs for the main releases, not too bad.
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.
@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?
there's a spreadsheet for flipping div cards https://docs.google.com/spreadsheets/d/1vW8INZBZzwU-0wjqO65MF9RkjjyKe_LNs2JKWDEUqGY/edit#gid=1541889015&range=A1
@remote yoke ill keep the count thing in mind + antiquary. Div card search sounds reasonably easy.
Thanks.
@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 π
Oh those Harbinger weapon pieces...
is there any other documentation available on the API other than this? https://www.pathofexile.com/developer/docs/api-resource-public-stash-tabs
nvm I found more on the wiki
Given how much the tool dev community has grown, is anyone maintaining a code snippet repository?
fun stuff with transcompiling
https://twitter.com/GuillaumeLample/status/1269982022413570048?s=09
@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
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.
Has anyone looked into a harvest league planting optimization tool based on the revealed info?
@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
It's in the pins.
Join thousands of developers who use SwaggerHub to build and design great APIs. Signup or login today.
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.
https://poedb.tw/us/DataHistory for Data/ History
ζ΅δΊ‘η·¨εΉ΄ε²ζδΎε ¨ι’ηη©εοΌε³ε₯οΌε―Άη³θ³ζοΌζζ°ηιζ²ζΆζ―οΌζε ¨ι’ηεΊη€η₯θγ
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 π
thanks, guys
Sooo... who tripped on the Texas datacenter?
why are all these tools moving to overwolf?
all what tools?
isn't it a popular platform for addon type stuff in other games
think they pay developer to use the platform
poe planner, poe overlay
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.
Embrace, Extend, Extinguish
why would you ever use a tool that isnt foss?
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.
I don't want my spaghetti code in public domain
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.
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.
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
im short on projects at the moment. anyone have a tool use that needs a tool?
@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?
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?
well, why do you need ast?
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.
im digging the monads
Is https://api.pathofexile.com/leagues supposed to only report PC realm leagues?
https://app.swaggerhub.com/apis-docs/Chuanhsing/poe/1.0.0
use ?realm=[pc/xbox/sony]
Join thousands of developers who use SwaggerHub to build and design great APIs. Signup or login today.
thanks
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?
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.
Anyone happen to have an estimate of the TBs down from consuming the stash API in delirium league?
@fickle yew tracks all-time stash data consumption on poe.ninja, so he might also have per-league data internally
I don't.
I guess I can always just write down the number on that page now and check back in three months π
Same with the next change IDs
ninja does have this though
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
@rare jasper thanks - thats probably the most specific number ive gotten π
And yeah - unfortunately no way to not dl it all though π¦
that is very true
@hazy fog im lookinig for league or per month specific numbers
do not try on any sort of capped internet connection, that's all I have to say
yeah its looking like estimates between 2 - 10 tb from what i can tell
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
does poe.ninja show gzipped size or raw?
I'm so many yaks deep right now.
- Hard drives are slow so running parsing experiments on files in GGPKs takes too much time.
- Maybe implement some sort of MFT for the packs so that runtime isn't dominated by minutes of tree traversal.
- Data storage is hard, maybe I should put it in a RDBMS?
- Ooh, I could deduplicate files by content SHA256.
- Why isn't my database responding?
- 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.
- FML.
Sounds about par
good question, are these numbers all gzipped or raw?
I think gzipped, but not sure
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)
that's my assumption as well, default should be compressed
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?
everything happens at the start of the request
@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
yeah I don't think you'll be able to be completely accurate due to PHP / CGI stuff even with first byte
flares some clouds
@compact isle but is there a chance it will be too fast and still trigger the throttle?
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
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
atlas progress, quest progress, map tab api ..
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
Could you read python script?
sure, I'm writing this in python anyway
check update_patch_urls()
thanks, this looks like what I was searching for π
atlas progress, quest progress, map tab api ..
@velvet fog @compact isle seconding this... having as much character data accessible as possible would be great
Also, some way to detect map completion / boss kill (as Overwolf claims to be able to do https://overwolf.github.io/docs/api/overwolf-games-events-path-of-exile#kill) would be awesome
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
@compact isle any eta yet for cluster nodes showing their allocation on the website?
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
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
Thanks!
@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.
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~
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 ?
@rain pasture i think that's usually in the json they release to toolmakers before patch day
Oo how do I get in on that?
They give out the link @rain pasture
they post the entire json like 2 days before the patch
@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
EVE Online!
@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.
wow
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
sqlite π
@rain pasture I would've put it in postgres, but my installation kind of broke π
I didn't even realize you could have indexes on sqlite
It's quite competent if you hold it right.
what about our lord and saviour containerization
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.
why would you need that for a db blackbox
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.
you can just use compose
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.
normally you'd pick up an image from the official postgres docker image team
no need to fiddle around with it for standard stuff
(where "well" is "fudge, traffic just drops at the container host for $reason")
Guess I'll look into that after I hit this machine with a large hammer.
monolithic VMs for life
It runs Arch Linux because at the time it was the best way to get ZFS-on-Linux.
The gift that keeps on giving.
tried to get mongodb going on windows
I just have to migrate out the very critical infrastructure of "minecraft server for the nephews and nieces" before breaking it.
the docker image just doesnt work under windows without some dirty hacks atm
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.
didnt try wsl2 i avoid windows updates like the plague
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'
are you supplying a user-agent?
you should supply a user-agent with the app name and contact details to you
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
clipboard doesn't even work through geforce now
yes i know its disaster when shopping, im typing manually π
ok just as i feared - impossible π
thank god for multy screen setup π
@simple ravine setting a user agent and referer seems to have fixed it. Thank you!
I am sure you need to manually reload if that hasn't changed recently
@earnest radish man that was my idea wth 
@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
"just" make it π
ideas are cheap, execution is king π
πͺ where is that king that needs the execution
π«π·
We're discussing potentially adding a different flair for toolmakers on the poe sub, is this something people would find useful/beneficial?
I think yes
What do you mean
@velvet fog The figures I cited may be off... Error: database disk image is malformed
Ah yeah we'd probably keep it to well-known tools
yeah, no stinky no-name tool devs allowed π
Shame on me for believing what documentation says...
That is, calling
create_dir_allconcurrently from multiple threads or processes is guaranteed not to fail due to a race condition with itself.
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
@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
no, OAuth and the game client are completely different domains
We will most likely move all item images to this system before 3.11.0.
still valid? https://www.pathofexile.com/forum/view-thread/2784742
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
what system?
using generated image URLs instead of pointing to our copy of internal game art
bad news for me :<
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
but we can't generate this generated url from content.ggpk
yeah we only want to serve content that is actually used
@compact isle thanks for the info
silly things you find in old GGPKs: "PvP 6v6v6 Capture the Flag"
3 way ctf just sounds like all ffa setups, ganging on on the weakest team for easy flags
this one would have also involved finding 17 other people who wanted to play that mode, which wasβ¦well, shall we say, overly optimistic
yes well you said old GGPKs so maybe they thought pvp would be more popular
For sure. This was from 1.0
64 GB seems surprisingly small, considering
@rapid pagoda It's all the files from the first GGPK of each release, deduplicated on content signature.
Right, I figured from context. I'm still surprised π
Could be screwing something up, of course.
Current release containing ~30% of all content that has ever been released is quite high, especially considering the turnover on data files
@velvet fog poedb seems down, btw.
Server fails to start after installing intel-microcode package
eep
Hi,
This morning I applied the latest updates on my Ubuntu 16.04 (kernel 4.15.0-106-generic + intel-microcode 3.20200609.0ubuntu0.16.04.0) and rebooted as usual to boot on the new kernel but the system won't boot: black screen.
I tried booting the previous kernel 4.15.0-101 ...
Async Python is slower than "sync" Python under a realistic benchmark. A bigger worry is that async frameworks go a bit wobbly under load.
I hear the whole world circles around webdev.
Agreed still interesting
@worthy cape et al -- I've added some neat DAT analysis tools to https://github.com/oriath-net/pogo
Demo: https://gist.github.com/duskwuff/3e5faa97843e0b5beca8f56970a666d7
(command line: pogo analyze "/mnt/c/Program Files (x86)/Grinding Gear Games/Path of Exile/Content.ggpk:Data/DelveBiomes.dat")
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)

// long enough to fully read all node headers, hopefully long enough for
// the filename in a FILE or PDIR node as well
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
Ah, fair enough.
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 π
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.
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);
In what context? You cannot affect how the game renders.
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?
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
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.
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
Those scripts exist. The old PoEItemInfo script had an option to check map mods, for instance
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" π
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?
no
dang
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
didn't i hear something a while ago about OCR being allowed but nobody uses it
you know what to do

OCR 
if (text == "Resurrect in Town") console.writeline("This was a reflect map")
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?
π
this was one of the features of overlay (still clipboard based) https://kyusung4698.github.io/PoE-Overlay/img/feature_inspect.jpg
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
@jade adder spotted the nondev
You clearly automate everything
Regardless of efficiency
If it is a recurring task and it takes more than 90s, automate it: https://github.com/NARKOZ/hacker-scripts
besides there are more aspects than time savings. zana always keeps asking me
If it is a
recurringtaskand it takes more than 90sautomate it:
https://xkcd.com/1205/
In this case it could be also a time benefit
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
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.
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
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
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
This, but automation - https://twitter.com/antonkudin/status/1270850510929768449
modularity means you pass on development/testing cost to the community
This post from uncle Chris recently is kind of fun, a bit harder stance than usual - https://www.reddit.com/r/pathofexile/comments/h123ac/hey_im_uri_marchand_ceo_cofounder_of_overwolf_ask/ftqmqh0/?context=3
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
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
well this would mean 0 stash tab arrangement just ctrl+click into a quad tab and then later ctrl+click out of it again
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
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
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
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
@lusty musk Procurement has had recipe helpers from the dawn of time.
@worthy cape as overlays?
Separately in the tool, as it's made in an era where you didn't overlay.
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
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.
@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.
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
sigh
Firefox UX gnomes are at it again... hit F12 to get at my POESESSID...
Heaven forbid that the key I pressed that has done the thing since forever would actually do the thing.
funky discussion re overwolf
oh, and apparently I fell asleep at 6 pm
woke up now
Well done.
@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.
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?
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
I thought I was on release, currently 78.0b5 after restarting it.
that's so ass, just keep f12 working
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.
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
@lusty musk devtools.selfxss.count might still be an option in firefox config
haha my ctrl+shift+i got hijacked by radeon software to take screenshots
@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"
Myeah, I just have long-running grudges against the UX team.
@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
@lusty musk kind of outside his wheelhouse, novynn mostly does web development
@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
sure, but those are variants of the same item
in the case of the twins and rebirth they're entirely unrelated
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
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
curious as to why you want weighted sum for this
there are other mutually exclusive stats you can search for on impresence
@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?
@lusty musk no maybe they should be there
Do any of you have experience with the new mobile ryzen cpus under linux, any issues or other unpleasant things?
@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.
Are you keeping a list @violet path ?
I use your website pretty extensively for my project so I notice a lot of things yeah
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.
that is totally true yeah, i just listed them for completeness' sake
Track data for every level and quality combination and add some sliders π
Hi,
I just finished work on my stash scanning tool, it allows to search for good mods with values you set by yourself.
https://www.reddit.com/r/pathofexile/comments/h86xw2/poe_tiers_in_stash_tool/
@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
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
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
hehe that's pretty hilarious actually
when you're successful it does
or at least did
weighted sum weights never counted for 1 iirc
ah
is API fixed next league or we stuck at 20 live searches forever?
sounds more like intended functionality π
What's the current trading app that people are using now instead of trade macro?
Has GGG made any statement about User-Agent field for tools?
@lavish gust You should put your tool name and contact details in your user-agent, is what Novynn has indicated previously
Just rediscovered the joke file I leave for myself on all my Linux VMs..
$ cat speak
meow
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
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?
not for map stash
@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!!!
@broken cloud awesome, thanks for the info!
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
@sharp flame no that's not allowed
the 'one server side action' thing is oversimplified
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.
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...
Probably a crafting helper thingy and I remember that someone asked GGG if that is legal here previously
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
Read more here #tooldev-general message
Unwelcome to poe macros~
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?
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.
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
We dont really know if its identical but yeah
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
@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
Synthesis implicits are back on the menu again boys, going to need to be added back to poedb
@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 π
Still useful to know which ones are possible by item type
1.3T /media/stuff/depots/depots
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?
existence of the item
people can link items on the forum, verified items still exist
GGG likes to reuse code (and many otehr things)
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?
not sure, that's just their design & implementation
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
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
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
what does the response look like when you're already up to date?
is next_change_id null? or is it just empty?
Vague memories of it being itself, but that might just have been conjecture by me.
next_change_id is always set in advance. the response to the next page is just empty afaik
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
Join thousands of developers who use SwaggerHub to build and design great APIs. Signup or login today.
@lusty musk The forum dev posts on each league has valuable information about the things changed in the API.

