#tooldev-general
1 messages ยท Page 31 of 1
oh, interesting
if all you want is the prices of divination cards, then instead of iterating that is a perfect use case for aggregations
Here is an example:
"query": {
"bool": {
"must": [
{ "term" : { "attributes.league" : "Perandus" } },
{ "term" : { "attributes.baseItemType": "Card" } },
{ "term" : { "shop.verified" : "YES" } },
{ "term" : { "shop.hasPrice" : true } }
]
}
},
"aggs": {
"cardName": {
"terms": {
"field": "info.fullName",
"size": 1000
},
"aggs": {
"price": {
"percentiles": {
"field": "shop.chaosEquiv",
"percents": [
25,
50,
75
]
}
}
}
}
},
size:0
}```
That will give you a list of every divination card with a price that is verified, and return the 25, 50, and 75 percentile prices for each card
you get back data like: { "key": "The Chains that Bind", "doc_count": 901, "price": { "values": { "25.0": 6, "50.0": 8, "75.0": 10 } } },
aggregations are very very powerful
for any situation where I'm not just looking for specific item information, I almost always end up using aggregations
i.e. instead of requesting 1000 items and parsing when they were added, you can just do a histogram aggregation that will return when items are added over time, etc., there are a ton
and they can be nested, like the one above
alright that would definitely be useful
can I compare values within the query?
so if I wanted to do updated-added time and query based on that
you can't do active scripting because I have that disabled for security reasons (that will hopefully change in ElasticSearch 5) but you do some of that
um, updated-added time should be shop.shelfLife but I think that field is broken atm
what's the difference between updated and modified btw?
yeah it's still broken wtf
it's in the api docs, updated means I saw it in a stash tab update, modified means something was actually modified on it
modified includes a price change, note change, or a verified status change
or a stash location change
ok I see
every item gets updated ina stash tab when anything changes in that stash tab
(cuz the API sends the full tab)
so either would work as removal time if I'm searching for unverified items
yes, in theory, the last modified time will be the time the item was changed to verified=GONE
though there was a bug with the GONE code that I think I fixed the other day on the v4 pipeline, so all the data on items fromthe past week won't have accurate times for that
haha ok thanks
Hey guys, just released a new version of the offline planner ๐ https://github.com/EmmittJ/PoESkillTree/releases/tag/2.2.7
Does it do cool stuff?
It does cool stuff like: Plans stuff offline, Planning skills not connected to the internet and saving builds offline using the planner.
it steals hours away from me as i make builds i already know wont work
good stuff ๐
meticulously plans out Ancestral Warchief build
i really want a mobile skill tree
I think there are a couple
The android one has you pay for some of the more advanced features but it works well
paying for something freely available though
i stand correctino
I think that is it though
thats all pretty cool stuff
@mortal bone Found a bug. 25% increased Critical Strike Chance with Claws is listed under Weapon, not Critical Strike
on what service?
From the node "Claw, Sword, and Dagger Critical Strike Chance" that leads to Deadly Dilettante
On the offline skill tree.
@pulsar moat the only app I develop
I am not mull gubben
But I see you
@buoyant socket It isn't really a bug, but I will fix its classification
It just isn't classified right
It doesn't break the program ๐
Will be fixed in the next release
hrm, @mortal bone there's something a little weird going on with the skilltree link in the last couple versions
if I create a skilltree then open the link in the official site, it displays the tree but the information isn't parsed properly
not sure exactly why
as soon as I change one node on the official thing everything resets properly
Does this happen when you reload one of the official links?
The link you sent loads and parses fine for me
What browsers? I'm getting the same result as Pete in Chrome. If I load it the "Link to this build" is empty, even though the nodes are selected.
emmit - does it show you x of x points used properly?
if I click that link it shows 0 of 123 points and has no "link to this build" url, even though the tree shows ok
as zinsho indicated
it happens with anything I load out of the skilltree planner, but clicking any node fixes it on the on-line thing
hrm, if I copy this URL: https://www.pathofexile.com/passive-skill-tree/AAAABAQCAAUtDPcS4RXsG5cvzDJOQKBDMUa3R35NRlO7Whpi7GVNdO1674TZhO-K8JLQouqplayvuR29Nr6nv9XAv8GCwzPKkNNv2sHpRg== and Load Tree in the planner, it becomes https://www.pathofexile.com/passive-skill-tree/AAAABAQCAAUtDPcS4RXsG5cvzDJOQKBDMUa3R35NRlO7Whpi7GVNdO1674TZhO-K8JLQouqplayvuR29Nr6nv9XAv8GCwzPKkNNv2sHpRgAAAAA= which still renders when clicked on but suffers from the same 0 of x points/no link problem
looks like they are doing padding slightly differently
yeah any time I hit load tree it seems to change == to AAAAA= for this duelist tree I'm messing with at least
for a simple witch https://www.pathofexile.com/passive-skill-tree/AAAABAMAAEuu34rpAg== becomes https://www.pathofexile.com/passive-skill-tree/AAAABAMAAEuu34rpAgAA when loaded in the planner
Your AA, does that include an ascendancy class?
ascendancy is at the beginning of the string
So where's the difference between AAAAA (5) and AA (2)
with an ascendancy class chosen or not, with points allocated or not, the official site is changing the padding at the end just slightly
https://www.pathofexile.com/passive-skill-tree/AAAABAMDAA3iGyUi9DkLR4VIjkuubAttGZMn2VvZXt-K6QL-gQ== on official site becomes https://www.pathofexile.com/passive-skill-tree/AAAABAMDAA3iGyUi9DkLR4VIjkuubAttGZMn2VvZXt-K6QL-gQAAAAA= in planner, etc. (== to AAAAA=) variants on this are happening for every link I import
Yeah, stripping even a few of those A's leads to an "invalid build"
it's something to do with the way the encoded string is padded, that subroutine was a bit beyond me but I think it has to pad out the binary encoded data and that's what the last few strings are
unless I'm totally wrong ;x but it definitely draws the tree ok, just doesn't process it properly
So if I'm reading that right, it's padding out to reach some arbitrary multiple to ensure consistent string length?
something like that, though again my understanding of that is a bit weak
1197 is the code that creates the new url
Looks like the official site strips 'A's at the end. The '='s that change are some kind of padding to a multiple I don't know.
The == is padding for base64
The beginning is a 7 byte array that holds skill tree version (first 4), char type, ascendancy type, and a padding
Yeah, just read the base64 Wikipedia article. Seems like either our and the official base64 function behaves differently at the end or we somehow have nodes with the index 0 at the end..
I am not sure. What is happening, but they were the same when I updated how the tree gets saved.
I was on chrome mobile when I loaded the tree
@desert needle I guess I can explain it a bit more in depth now. I was on mobile before. The url is as follows:
An int (4 bit), Char Type (1 bit) , Ascendancy Type (1 bit) , and a padding bit. This makes up the first 7 bytes of the entire string. Then for each node (int16) you will convert that into a byte array which will give you 2 bits. These are the adding to the end of the initial array of bytes and converted into a base64 string. In all it is basically a stack of bytes that is converted to base64. You exclude the starting node for the character and ascendancy types
It looks like I may not be generating links correctly. I will double check that this method is still used
My bad, the padding bit I refered to is whether or not the skill tree is full screen........
So, there was a problem causing the 0 out of x points bug. This has been fixed, but it will still generate different URLs than the offcial site. This is because the site sorts the nodes in ascending order, while the planner will just generate the URL from whatever order they were put into the HashSet in.
Do you guys think it would be better to generate the exact same URL? or just leave it?
@desert needle thank you for the skilltree renderer, that's amazing
I'd be fine with it as-is as long as it generates fine. Although ordering them would reduce the odds of anyone thinking the link is wrong because it doesn't match exactly.
In theory if it all works it shouldn't matter if the URL is different, but at the same time that seems a little strange. But again, if everything works I'd say it's probably not too important.
It is kind of annoying to sort them since we use a data type that isn't sortable as it has never been a problem. It does seem strange that the exact same tree can have n! ways of being encoded
It probably doesn't sort. It probably iterates through the hash on every tree update to identify active nodes (rather than append it recalculates). That would at least explain why it does what it does
The offcial tree, on loading will put all allocated nodes in a dictionary with the key being the node id and the value being the node data. This basically force sorts how trees are generated
watching a real time stream of items being added/modified in the Stash Tab API is kinda cool
now I just need to figure out htf to use node
node.js?
ya, first time using it
Ah, I like it.
I've progressed to connection to the service (using socket.io) and getting a streaming realtime list of items over web sockets
nice
I expect that turning that into proper JSON won't be too hard, but the thing that is really going to beat me up is allowing users to specify filters
why?
I'm in such an early phase where I'm just going through tutorials and that's what they say for socket.io to get started
oh I see
gotta keep hitting the books (googs) ;x
Do you have any experience in js previously?
very minimal, just what I learned to use AngularJS for http://exiletools.com/uniques
I'm hoping I can get to the point where I have a functional framework that makes sense then get some community folks involved on cleaning it up into a workable service
modules will be your best friend then
make each part of your project a JS module
similiar to a Class in C#/C++/Java
yeah that's 90% of what I'm googling ๐ it looks like I can use restify + socket.io, then the question is does restify do what I need/etc.
yep
Although external users should only have access to Read
unless you want all hell to break loose
oh yeah there won't be any ability to do anything else
it's pulling data from a read only kafka topic anyway
restify may even be too full featured for what I need, it's interesting because I'm not an experienced js developer I kinda end up spending a lot of time just trying out various modules to see how they work because I can't just read example code to figure it out ๐
Yeah, you really won't need a full module to do what you want
You just need to serve data to people that request it
there is no need for a full RESTful api
Yeah, now that I'm thinking more about it, probably would make sense to have the filter page outside of node.js / just some static thing, then just have the node server sending a matching JSON stream
Yep pretty much. I haven't really used Node as a backend before. I just made some modules for an open source project. I normally use python for my apis
lmfao
suddenly I thought my proof of concept was broken
it stopped streaming in new items
couldn't figure out what I had messed up
finally added back some console debugging and noticed kafka wasn't updating, oh crap, must be something wrong with my indexer
Thu May 19 16:55:59 2016 Web Server Error: Failed: 503 Service Temporarily Unavailable | Sleeping for 2 minutes! QQ
I need to have it send me e-mails or something when that happens, guess they are patching something
Yeah there is patch 2.2.2d atm
http://livestashtest.exiletools.com/ hrm looks like the proof of concept works
or not
well it works internally, just need to fix my fe proxy for web sockets I guess ๐
now it's working, exciting
@desert needle does that compare against a database to see if the item was modified, or is it printing every single item in each stash update regardless of whether it's new or not?
it's tomorrow but if anyone's still wondering... the undefined just means it didn't have a price set (I did no filtering at all)
Retik - the pipeline processor checks to see if an item is added or modified (price change/different stash location/etc.), only those items are sent to the kafka topic for the eventual live stream.
This is your data being streamed live correct?
yep
Very cool :)
hopefully this weekend I'll get a proof of concept up that will allow tool makers to send filters to it, because I don't want every person using it to have a full copy of the stream that they're mostly ignoring ๐
Yeah, that would be annoying as a developer, but I haven't gotten into items and such yet. I can't really have a say
damn, if https://www.pathofexile.com/forum/view-thread/1663440 is accurate, GGG didn't give us any way to tell if an item has been upgraded via Prophecy
It will only be an item if it is there
I was hoping for a prophecyUpgrade=true or something tag
They are adding to a prophecy menu then you can convert those to an item
I mean, you can't tell a normal Bramblejack from an upgraded one short of comparing the explicit mods
in the JSON data
Oh, yeah. You can only tell by name
Yes
uses a different icon too
so there's no obvious / simple way to tell what it comes from
I guess you could compare it to all uniques with the same base, ugly though
it would be awesome if they just added a line like "upgraded from X" or something
Same base and same set of stats, or close set of stats
we'll have to add support for the prophecy items for various bits it looks like
"frameType" : 8, woo they added it at the end this time!!
heh the tier 14 plaza map on the demo page is ilvl 45.
early map drops confirmed!
What the hell is frameType
internal testing server commands confirmed @desert needle ๐
nah just pulling the data from http://pastebin.com/7mYDBgYQ
frametype specifies what type of item it is
normal/magic/unique/quest/etc.
when they added divination cards, 6 was quest, but for some reason they added divs as 6
and bumped quest to 7
Prophecy is 8
which was very annoying
https://www.reddit.com/r/pathofexiledev/comments/4k8jxp/prophecy_json_preparation_thoughts/ for those who are interested
the proof of concept continues: http://livestashtest.exiletools.com/?filter=Armour vs http://livestashtest.exiletools.com/?filter=Jewelry
yay it works
wait no it doesn't
shit
the latest one you click takes over the first one you click
back to the google books
Any tips on hosting small apps like that? Just saw https://www.reddit.com/r/pathofexiledev/comments/4j2lln/idea_poeripscom/ ; if I were to roll with it, curious to know what my options are and what kind of costs I'd look at. General web dev question, figured I might ask here first
depends on a lot of things, but there are various free and cheap services out there, like static github, t2.micro's on AWS, etc.
for most small services you should be able to find a way to host it for free or very cheap, it's only when you scale up that it's $$$
(my elasticsearch index would cost a couple grand a month to run on AWS for example)
so not sure where to put this but my brother and I were encountering a bug in the harvest boss fight on cruel where piety wouldn't attack when transformed and you would have to leave and come back for her to transform back once killed, not sure if this is a random bug or a known one, just thought I'd bring it up.
Would probably be good to post to the bug report forum. The devs usually check there even if they don't always respond.
@desert needle Was curious: can we query your index for personal use? Or is it only intended for creating tools?
yeah I'll put it up in there, kind of a nice bug since Piety wouldn't attack but annoying to have to leave and come back to reset her.
Nuro - feel free to query it for personal use.
Just don't blow shit up ;D
(there are API limits at the moment but they're pretty high, try to avoid more than 20-30 queries per minute though in general, i.e. don't go blasting 10 queries every 2s repeatedly or you might get blocked)
Yeah I wouldn't be hitting it that much :P
Just wanted to check since it feels like mooching
that's exactly what it's there for!
You need a button to buy you a coffee or something then. :P
pete, eli5 elastisearch indices please
that's hard to eli5. ๐
it is similar to a database, designed to index information in a text format, but is highly optimized for rapid search, statistics, and calculations
not only can you search for text records (very fast, much faster than many databases), but you can actually run reports and analysis on them very quickly
for example, you can run a simple query to give you percentile price statistics on all items matching certain parameters, or draw histograms of average values over time, etc.
one of the big benefits of elasticsearch (which is a front end for lucene indexes) is that it supports dynamic mapping, which means you can add "columns" of data linked to specific items on the fly
for more you can find a billion discussions of it via google, such as https://qbox.io/blog/what-is-elasticsearch
So index is kinda like a db table?
I've been thinking about adding the ability to save multiple builds to ExileCraft. It would be useful for people creating build guides to be able to have one link to the level-specific trees with notes.
I'd like it for myself so I don't need a million bookmarks in my browser too
My thought is I could incorporate a similar sharing model that code playgrounds use (e.g. pklnkr)
Of course this means that I'll need to develop a server-side API of some sort but that shouldn't be a problem.
What do you guys think?
You may even be able to get an out-of-the-box sharing tool like plunker
I am pretty sure all of plnkr.co source is open
@robust heart better do that on the official forums, these guys here only dev 3rd party software ๐
trackpete the mimetype for your errors is wrong afaik
Real Time Stash API - filtered web socket based push notifications within 5s of items updating now available for anyone who wants to work on a client
w00t!
Nice
Tue May 24 2016 14:58:57 GMT-0400 (EDT) 1 Items Emitted to Clients in this interval woo someone's using it \o/
Any idea if they've mentioned when online status api will be public
I think that plan has died
๐
the last official mention I saw of it anywhere was "it's almost ready" 3mo ago
Ugggh, that's the one thing I need still. :/
There has to be a private online status api. Maybe they give it out to tool developers if asked.
there is, yep, afaik only poe.trade has access to it. I was offered access but turned it down initially because they indicated the public one would be up soon and I didn't want to deal with the hassle of hosting another api for them.
and they're very worried about people using it nefariously and I didn't want to deal with enforcing that
I heard from xyz that the public one they were working on was terrible and broken, it's possible they abandoned it
Ugggh.
They abandon a lot of api's that they say they are working on or have produced.
The league api went from working perfectly to broken, so they release another api instead of fixing the old one
Any of you happen to know which ports are actually being used ingame for latentcy sensitive stuff?
the list of ports they give on the website is pretty not useful for qos
um, if you check your client.txt log it shows connection information for instances
I can't remember offhand, something like 24200
yep, there is a private online status api.
You can get access to it if you ask.
any1 tried the new api? I'm getting this error:
WebSocket connection to 'ws://rtstashapi.exiletools.com/socket.io/?pwxid=5a0658c3-95d4-439b-9635-d926168136a6&EIO=3&transport=websocket&sid=jJseTXSIsrcjN09uAAAb' failed: Error during WebSocket handshake: Unexpected response code: 400
But it works still
hrm, dunno, maybe that's a side effect of not using the socket.io client or something
https://github.com/socketio/socket.io/issues/1942 hrm may be something on my end
(apparently that 400 means it will fall back to long polling, which isn't ideal) maybe that's the way socket.io handles non-socketio connections?
(I double checked everything in my load balancer and it should be all good)
one random suggest I see is to try specifying the port, who knows: 'ws://rtstashapi.exiletools.com:80'
@mortal bone did you only post the data and not an update to the skill tree?
Erm, there is a ton of nodes
maybe i'm blind
how many is a ton?
sabateur looks the same as 2.2
occultist looks the same
what do you mean?
i see the max 8 ascendency points now
but the tree itself is the same
nevermind, read chat in #1โgeneral
seems you're on it ๐
ty based Emmitt, can i have my energy back
the 2.3.0 tree data is patch 2.2.9 of the poe skill tree
we need one more patch so they're synchronzied
are we sure this is the final tree?
Hey Emmitt, how are you loading the new passive tree? Their CDN is missing two sprites.
They gave me the asset package
does the post not include that?
The post just has the JSON
Alright, I will double check that it is alright to release the skill icons.
Thanks
Thanks
Yep
exilecraft.org updated with the new skill tree. You may need to refresh your browser.
sweet deal
@mortal bone are jewels a thing in your tree planner?
flawless ๐
It would be kind of cool to have a tool to craft items and then export it as JSON for skill trees to use
Emmitt, your parsing breaks on the CHieftain's Ramako node
the end charge text gets split into 2 lines
in 2 different sections
"When you or your Totems Kill a Burning Enemy, 20% chance for you\nand your Totems to each gain an Endurance Charge"
That is the node description
\n means new line
GGG put that in there on purpose ๐
Whenever you see breaks that is because the data says that it is broken up
hey everyone, not sure if it's the right place to say this but http://pathofexile.gamepedia.com/The_Goddess_Scorned appears to have a broken link for me
I see " A Module Error: Too many results. Consider using page parameter instead. gem with at least 1% quality"
in the recipe
Hey @mortal bone i think there is a bug in passive skill tree planner
For the Malediction notable from occultist ascendancy, "When you kill an enemy for each Curse on that Enemy gain %4" shown in Everything Else while rest shown in general
Emmitt pls fix bad ggg formatting
@misty sparrow not really a bug. It is just misclassified ๐
I think most of the ascendancy stats go into the 'everything else' category
I normally fix tthose types of problems once GGG releases the final wording on nodes and such
@mortal bone small request, in the poe skill tree i find the new graphical 'group manager' to be much harder to use. especially since it cant import my old settings file
also i dont think i can modify the default groups
prob the 1 guy that actually used that feature
):
@hollow oar Looks like someone started changing the support pages' names, which breaks the links.
does thirdy still work on durian?
@mortal bone i am not sure if you understood me, sorry if so but what i am saying is half of the same stat sentence is in another section
when running single alter table in SQL.
is network overhead gonna affect it significantly peformance wise?
@misty sparrow screenshot? because I think I described what you are seeing
@loud umbra ok thanks, i'll fix the link
is poebuilder.com just broken for me or anyone else? no matter what build i import, it shows that X/123 points are used but the tree doesnt show up
I think it was bugged for me as well. it was also using an old tree if I remember correctly
The site has an old tree; not sure if it's still updated. poeplanner.com should work however.
thanks, that site works
@mortal bone https://gyazo.com/bfc525ab1a4e9af771dffb6eb08eeef1
skill tree giving some errors.
its in finnish so I really cant give you more info
What is the skill tree url you are trying to load?
it says the input is not a valid base64 string because it contains a non base64 char or more than two filler(?) chars or contains an invalid char among filler chars
Yeah, I recognized the error message because it has Base64 in it. That one is pretty generic so the skill tree url causing it would be helpful.
Yeah, we need the URL you are trying to load
Skilltree URL?
what do you mean
that error pops up on every startup
but after that the skill tree works just fine
https://github.com/EmmittJ/PoESkillTree/wiki/How-To:-Copy-Builds, open this file in notepad, and could you copy/paste the <Url> in the <CurrentBuild> section?
That is alright, next time you know ๐
Hey guys a question, even though not directly linked to the dev tools, when i open the skill tree on the path of exile website it buggs and shows no connections between the nodes (so all skill trees i get linked show as empty) - firefox works fine but anyone knows how i fix this in chrome?
You have to turn off hardware acceleration in Chrome's settings
Should be Settings > Advanced Settings > uncheck "Use hardware acceleration"
cant test it right now because im working on something but will try later, thanks a lot! :)
you should have it turned off anyways if you're using an amd card
@mortal bone I've had the same problem as Wyrelade had, it's obviously just because I tried to load an old build. Easy fix, I edited the xml. But for people that don't know that, maybe the program should clear <CurrentBuild> if it crashes that way?
In my case I tried to load a 2.2 build in the new offline planner, and it crashed. Then crashed again on every start up
This is one of the builds that causes a crash
huh, no idea why mine crashes then
$item{attributes}{itemType} = "Propchey"; woops
man I can't tell if a bunch of people are un-public'ing their stash tags or if GGG did something super wonky with the API
I'm getting hundreds of stash tab updates where all the items are verified:false
there was a post on Reddit saying poe.trade hasn't been updating correctly, as well
I just now changed the names/buyouts of 163 stash tabs, finished a minute ago, changed them all from tab names as ~b/o x chaos to ~b/o x chaos (randomID), which changed the tab from set price on all items to each item individually priced
that's like 14k items, dunno
weird, I just tested it on my own account and I see updates in seconds via my real time stash api
maybe it really is just hundreds of people preparing for the new league by un-public'ing tabs
Possible.
I did have 3-5 cases of people messaging me for items I sold, using public tabs, hours back over the past 2 days, as did a friend of mine.
I think poe.trade might be having some separate problems
I seem to recall he had some issues with the last merge too
3.2mil items available in standard/hardcore with a fresh api pull
How many items in just hardcore? Curious about the ratio w/ std.
I think verified is always false for stash api
@mortal bone I think there's been a change or two to the passive tree, preparing an update for you now
would you like it in JSON form or just the normal JS snippet?
JS Snipper is good, could we get the hash values for the icon images?
or just the hashed images
Yeah, sorry
is PoEMate developer here?
is there a way i can write a message to another member on the poe wiki?
I think someone just replied to me to this question but i cant find the answer anymore?
@compact isle why is it that the prophecy torrent has some umm questionable trackers, like wareztorrent.com or xxx-tracker.com
isn't it that ppl can choose to share after they are done downloading, so anyone can share the torrent including wareztorrent and the likes?
They're just trackers. It provides us with a wider audience of seeders. If a file has a virus in it it wouldn't pass the checksum so it wouldn't be allowed to be downloaded. There's nothing to worry about.
its navali porn
http://api.pathofexile.com/leagues?type=main&compact=1 new leagues are up
my point was more about how I don't want my PC to connect to xxx-tracker&co while downloading the official torrent
Most any torrent client worth its salt should allow you to disallow connections to/from a tracker/seeder
Also, I have gotten a couple words that the offline planner is working in wine-1.9.11 with POL. You install msxml via POL and then run winetricks for the dotnet45 install. You then need to install msvc100
@desert needle do you have a page on your site that lists the count for number of new items coming in?
i get the feeling i'm not processing very many items
@wind garden maybe this: http://exiletools.com/dashboard/
sorta but not what i had in mind
@chrome topaz is Kaom's Way showing up wrong on poe.trade? I don't see any life regen/endurance charge on it
Strange, poe.trade seems to be broken a little, when i search for rares I can put one mod to search for and it works fine, as soon as i put a second i get an internal server error.
e: can search for multiple mods as long as you don't specify a value.
@chrome topaz Hmm must have been a temporary thing, all is working now.
okay, good
@wind garden not anymore, because I split up the processing into different threads and don't have a central log. What you can do is run a very simple ES query every few minutes to count the number of items updated in the last X minutes
"query": {
"range": {
"shop.updated": {
"gte": "now-5m/m"
}
}
},
size:0
}``` that will show you how many items total were updated in the last 5m
(it looks like I need to update some stats stuff to point at the new index, woops)
(but directly querying the main one will work)
@desert needle did you wipe your index before prophecy?
@desert needle I was noticing way more items on poe.trade than what I was seeing in the stash api stream. I can only assume there's still quite a few using the forums
I just hope I'm getting all the items from the stash stream
@chrome topaz - yeah, I started from scratch about 2 days before
after the league merge
I wasn't sure if they would hose up things during the merge, so I just wiped and reset after it - last time I recall the merge was a bit painful
okay, thanks, that clears up some things
I was hoping they would do a one-time un-public of everything just to clear up idle accounts but alas
why?
it seems they broke the api by changing stash tab unique IDs, so now I'm getting dupes of items in standard and very angry users
oh, nice. I haven't looked, wonder if that happened with the latest patch or during the perandus merge. I might have to reset anyway if it happened at the patch.
I was hoping they'd get rid of idle stuff because they don't timestamp updates so when you start the stream from 0 you get tens of thousands of stash tabs for people in standard that haven't logged in for weeks
doesn't affect anyone who is consuming live but it's super annoying for anyone starting from scratch
parsing item clipboard text is so annoying >_<
Anyone know the best way to contact xyz? Seems like there is a bug with the currency market parsing the newly added types for Prophecy.
Thanks! <3
we managed to break the IDs that it uses to keep track of tabs, so it has to re-index public tabs from the API
dang
that could take a long time
does it have to start from the beginning of the chain?
assuming so
shouldn't be too crazy, but yeah it won't be up for a little while
yes, but the chain only has current data
when you follow the river, it will give you updates
right
when you start from the beginning, it will only give you current data
ah i see
there is no historical information stored
i remember when i first started it took an hour or so to get from the start of the river to the tip
yeah, there's so many tabs and items it's insane
to save time I use one of trackpete's APIs to query the last next_change_id processed if it's been more than 24hrs since my last update
i only process new data, i don't store/index it
so i don't care about missing old pages
you may miss out on "current" data that way
the ID acts as you saying "I have all the information up to this point"
so by using someone elses, you're saying you have more data than you actually have
so some stashes will not be included
ah, then I suppose it doesn't matter so much for you
yep ๐
it's an sniping/flipping app
what's interesting is indexers like xyz's and trackpete's have to take time to process
and so during busy hours, they can get behind
sometimes 5-15minutes
so i wrote my app to make it as fast as possible to find new items
and then i can specify criteria for whether or not i want to display an item
it doesn't get behind 5-15 minutes
with live search it's a few seconds from when an item gets to stash api and when it gets displayed on the live search results page
I've tested it to compare
Updated an item in my stash
Usually live search is fast
But I've seen it slow
So idk
@chrome topaz do you know what percentage of items are still on the forums?
I don't track this
Hmm unfortunate
@compact isle does the id change require me to pull the river again as well?
if you're just tracking things live then no
k
@desert needle i know your tools have a way you can see price reports on unique items. is there a way to browse by average price?
i'm looking for a way to see unique with prices ~1ex
What are those?
@storm crescent something like this https://www.reddit.com/r/pathofexile/comments/2cui3l/mtx_finder_done/ .... goes through your chars/stashes to see where you left an MTX. helpful for when you RIP or make new chars constantly
Microtransaction. Press M in game to see a few. There are MTXs such as alternate art for items and effects, hideout decorations, and the like
ah
@wind garden - I don't have a browser for it, but you can run an aggregation query for average price
you probably really don't want to use average price though, since it sucks
https://gist.github.com/trackpete/e224d6ac74e4b4981180c0eafbf2a1f2 here's an example query
there are way too many random insanely priced items to ever use an average, better off using percentiles
I updated that gist to include a 50% price, which is way more accurate
thanks @desert needle i think this will be helpful
np! If you get bored and want to make a web tool to output stats like that, feel free - I used to have one that showed a list of all uniques with a bunch of stats for general browsing but I never updated it when I moved to elasticsearch
hrm, looks like I'm going to have to re-index after the stash tab uuid thing after all.
i'm not super familiar with elastic search actually. Do you have any good resource you'd recommend for reading up on it?
my gist gives a lot of starting examples, but the official documentation is actually quite good, I pretty much have it up all the time when writing queries
i get the feeling a lot fewer people are playing prophecy than perandus
stuff just isn't selling like it was
I've seen a lot more general complaints about trade this league, I think people are less interested in making small trades now
it reminds me of zana rotas - they started at full clears, then the next league it was "full clear 75+" then the next league it was "mission only" then it finally became "rush mission screw party play"
people just seem to be jaded with the trade system more and more
or maybe there's just fewer people playing to trade with ๐
i wanted to compare the number of people still using forums to post items vs stash api
but xyz doesn't keep statistics like that
so i don't know how to get that info
that's really not that many
it's higher than Perandus
at this time int he league
I think that graphic was a week in so into Perandus?
Mar 7 I posted that, Perandus started on Mar 4, so it's about the same
that's 27119 unique seller accounts
hmm
no way to know how many unique accounts in perandus?
i imagine we'll have to wait to get some numbers from chris
922516 total items verified YES right now in Prophecy, 200k more than this time in Perandus
looks like prophecy is crushing perandus
hmm
another possibility
i'm justing based on the rate at which mortal hopes are selling
could be that at this time in prophecy there are a lot fewer people doing uber
I bet the new labyrinth means more people focusing on that instead of uber
and the prices of those mortal pieces in perandus was so much cheaper/more available
weird
but i imagine reduce demand coupled with reduced supply
yeah, the whole "what are top tier players doing" is probably different now
ya
less people running normal atziri too I bet
i got merc izaro to 1% last night and died :/
not ready for uber izaro yet heh
and that was with 5k hp and 9 endurance charges
ridiculous to get 1shot
I've played fb w/ shield charge as a main for the last couple of leagues and decided to run it again to start this league with the shield charge change, figured it'd be exciting
fuck me I might re-roll because gear for it is SO much more expensive now
thx Mathil
Abyssus going from 10c to 1+ex... ergh
and forget about decent life + flat phys gear + resist jewelry
Sacrifice at Midnight of Weaponcraft wtf?
Mortal Grief of Weaponcraft Mortal Hope of Weaponcraft wtf are these
"Map Fragment": {
"crafted": {
"Cannot roll Caster Mods": true
}
}
},```
"rarity": "Magic",
Is that in Standard?
There was a bug a year ago where you could mod them.
"sellerAccount": "H4xolotl"
heh
I just noticed those showing up as Map Fragments resulting from the code I wrote to trigger for end game labyrinth fragments
guess I can leave 'em in
Pretty sure you can still craft stuff onto them
Most of the meta mods can be applied
I'm removing and rebuilding the exiletools index now if anyone cares, don't want to risk having any leftover items from the weird stash uuid thing
my favorite part of reindexing is that sweet sweet .5ms search latency when there's only 100k items in the index
Hey, is there a more up to date filter editor than filtration right now?
I only have saved http://bschug.github.io/poedit/poedit.html this guy and http://pastebin.com/raw/JCdUixKS this syntax highlighting script
last I read I think the thought was that filtration should still work
Filtration works but it doesn't have some new things which you have to add manually
The poedit is nice cause I can see what items I might want to customize
But it hasn't been updated
was updated like 3 days ago
Poedit?
Yep
It is there to show what a script will do to items
you can write a filter there, but you have to know what you want your filter to do exactly
I usually just modify one that I made myself
But it's hard to keep up with the new item additions so I was just hoping there was someone out there that updated their files with the coins and prophecy stuff
I use the 'Classy' filter if you are looking for an updated, but non-intrusive, filter
Yeah I started with it but I modify it slightly to suit mapping
And every league the things that are good changes
It's not a big deal though, I was just hoping to save an hour or so of editing my filter
what do you guys think about the trade system in PoE? Do you like GGG relying on devs like @desert needle and @chrome topaz ? Seems there's been above average amounts of complains on reddit about the indexers going down yesterday and how it's "not acceptable". But personally, I like how things are and wouldn't change a thing.
empty?
Lmfao
hundreds of pages of notifications that stash tabs are empty
that's all I've been downloading for the last 5min
1275 empty stash tabs per update
Was just about to do that
That is awesome, empty data. Why is that even posted to the stream?
Poor Novynn.
So, that is posted to the stream during normal operation because it's how you get told someone took a stash tab from public to private
but I can't think of any reason for those to be in the stream when starting at 0
Ah
it's still going on these, holy crap
The id changes?
looks like 50k+ stashes that are set to private so far
'Closing' shops
I wonder if it's giving me the entire history of every stash tab that has ever been closed
You're going to be at that awhile
Tue Jun 7 14:42:25 2016 * Consumed 9400 stashtabs (0 items) in 24.51s (383.46 tab/s, 0.00 items/s) (5.2462s kafka production time).
I like to see stats like that though
heh
they've never really had a good system for starting from scratch, but it's definitely not scaling at this point
loll
DEBUG 2016-06-07 11:43:04 - Loading: http://www.pathofexile.com/api/public-stash-tabs?id=6351711-6774891-6236161-7385620-6868964
DEBUG 2016-06-07 11:43:07 - Loaded Chunk Size: 3495KB
DEBUG 2016-06-07 11:43:07 - TotalItemsProcessed: 0, NewItemsProcessed: 0
gg
oh shit is that happening at the end of the stream too?
It was a good start, but I don't think the implementation is there
I thought it was happening to me because I hadn't caught up yet
ah, ok, yeah
and since it was off, i pulled my chunk_id from you
I'm finally getting some data again now
so i'm getting the same data as you
It may have been throwing tabs to private in an attempt to not duplicate tabs again
to answer your earlier question though: I have two separate thoughts on it. My main thought is: If GGG wants to rely on third party developers, they still need to really support those developers with API's and tools. They don't do a very good job of this - actually they do a very poor job. It's a real bummer.
My other main thought is that I really really think we should have a way to actually force transactions. The majority of complaints are "seller is AFK" "seller is a dick" "seller is not on-line"
those three things can never be solved by a third party
They can if an online api reports afk
the problem with forced transactions is you're essentially making an actuion house at that point
well, "seller is AFK" I mean more "seller is not responding for whatever reason"
You have three states online (active), online (afk), offline
ya, status reporting is a big issue
especially with programs that can report you being online when you're not
I don't think an auction house and forced transactions have anything to do with each other, and I don't think bots and flippers are automatically a problem in controlled transactions
the biggest thing I see when people talk about trading is going immediately to "that's an unsolvable problem because Auction House"
maybe i'm not understanding what you're suggesting
i'm just thinking, if you set it up so i can click a button on poe.trade and it instantly completes a purchase
isn't that an ah?
I think they could break it down and solve it - like, starting with AFK, as you said - start by giving us a clear way to 1) tell if a person is AFK via API 2) allow people to say they don't want to sell in league X or for X time
Isn't what we have now an interactive ah?
the user still has the ability to decline to trade
You basically click 'buy' when whispering
for whatever reason
yes we use it like an ah a lot of the time
but not all the time
seller is not on-line problems could be potentially solved with some sort of escrow service, or offline messaging, or various other weird ways without going full AH
They do in an Auction House as well with a buyout and bid system
I personally like the "vending machine" idea for a marketplace
You can put up to X items a day into your vending machine, then people can buy up to X items a day from vending machines
the problem i have with an AH with bid/buyout is that it equalizes the bid/ask
which makes it much harder to make a profit flipping
the trick for POE IMO is to not have all or nothing
agreed
I on average buy or sell less than 5 items a day
I would really like to see an OAUTH or similar API, I think that would open up a lot of possibilities.
They try, but the apis get left in the dust
Verified buyer/seller reviews for one thing
When making changes no one checks the apis
but yeah the lack of actual API support... it's crazy
They just assume it will work and they blow them up
I got excited about the stash tab API, and Jonathan really listened to some initial feedback
now it's le crickets
you can't have a 3rd party AH as long as trading is required in game
but seller reputation could actually be a thing
since you'd have to have a verified account to be able to review sellers
OAUTH just means we don't need username and password
ok ya
Well, it could
I could do a community tool site for tool reviews/etc.
i was thinking of being able to put an item in escrow and then authorize its sale to a character via API
there's no way for someone to tie their Path of Exile identity into any other service officially, which is a big oversight I think
But they aren't meant for third party use. We just use them
Why are those private?
They are to make front end development easier
and tie to a 3rd party app
I do it all the time
You make a back-end that servers data, and your front-end queries and displays it
They are private in the sense that you have to be logged into a browser to get the data
i think stash api is broken
i was caught up and still getting 0 items
and it's just spitting out sooooo many updates so quickly
all empty
what url are you at?
I'm at http://www.pathofexile.com/api/public-stash-tabs?id=7449377-7982460-7343519-8664409-8100394 and getting data
wierd I don't even see 7337* in my history
https://www.pathofexile.com/my-account/preferences
At the bottom here we have a bump key I wonder if we could get that expanded
the way that API works at the back end is really really weird
ya
you're not guaranteed to get the same IDs in the chain
even if you start at the same place
depends largely on how fast you're updating
Everyone still need all the same updates so wouldn't you have to hit all the same ids?
hrm, they added this sort by bump-time to the shop forums but it doesn't seem to work
wish they would just add sort by last-edit
Yeah, I don't know what a bump key is, but I am hoping it is a oauth type key
I think the idea of the bump key was that Acquisition/Procurement would get a bump key
then instead of "bumping" a forum post with a new post, you would use this bump API they made available
You should be able to generate a key with preferences like read only characters or something
except Acquisition doesn't need to do that because who cares
thus making the API pointless
Yep
At this point I don't think there is a way to compete with xyz
Every api they try just makes the gap that much bigger
@desert needle all the updates i'm seeing are for standard, not a single Prophecy item
might not be fully caught up yet then
hmm
wow
Wtf
it's like 5-6 hours to catch up if you start from scratch
no ๐ฆ
...
the stash tab api is literally a bizarre river of data, but it's somehow generated randomly on the fly as well
not part of the stash object
so for a single stash that has 400 items, you have 400 tags all saying the same thing
so let's say it has 1000 stashes that it wants to send you
it sends you a random 10, then another random 10, then another random 10
but say 50 of those 1000 get updated while you're getting the initial ones
that means in the third random 10, you could randomly get some of the ones from the first 10 again
there's no sense of FIFO or streaming or anything
Any idea how it does this?
I would love to know wtf they are using for the underlying system.
I'm confused why it isn't just fifo
i wonder if that explains why sometimes items i see are delayed
even though i just updated my stash, the update is behind a bunch of random updates
I mean, not to sound like a dick, but I wrote a system that did message queuing for every item I processed in a stable FIFO consumable queue using node.js which I had never used before in about 6 hours
that might have come after mine
FIFO is really easy
just using an off the shelf messaging system (Kafka)
oh, FIFO is a bad choice, I mean, ordered
you can obviously start anywhere your want
but order is atomic
right
Right
that said, who knows what they have going on under the hood
maybe they are making active queries to like 50 different database nodes to grab things, so the order appears random based on response times or something
I just can't think of a logical reason to send updates on partial information
or, like, with some databases if you do the equivalent of select * FROM X LIMIT 1000 you get a random 1000 rows every time
whatever was the first 1000 in buffer or whatnot
Yeah, it could order them by new/old ids
elasticsearch does that too, if you don't create a scroll and scan, the same search will give different results a few seconds later
Giving you update on old stuff before sending new
Instead of giving you all the new then updates on that
the fact that it might have separate streams to separate clients is mind blowing too
so it's like keeping track of what I've been sent as a client based on the update id I give it? that's bonkers ๐ฎ
It should be one big river that you can dip in and out of
what's mind blowing is that there aren't different rivers for each league!
yeah, literally give me a kafka topic I can subscribe to
That too
no filters at all
ya
the ExileTools RealTime Stash API filter is pretty badass for that though ๐
ya i'm gonna start working on a client for your stash apis
If you want it all query it all
yeah four separate leagues would probably reduce some overhead a bit
I'm sure there are a number of people who don't care about standard
gonna make an app called WhatToFlip that sorts items by volume and 50% price
Hardcore
Too
I have been putting some serious thought into competing with xyz
The model he uses is pretty simple own client, own service, own parser
The problem is computation and space
Retik - oh yeah, I was gonna build a page like that for fun, an upgraded version of http://exiletools.com/realtime/uniques (whch is kinda broken atm) - the idea was just go there, say "Notify me when someone posts a GOOD Abyssus for less than market rate" and it calculates what both of those things mean and sets it up
nice
tbh, the biggest problem with trying to do anything that would compete with poe.trade is that it's so bedded in
the reason i wrote my app was because xyz didn't have a way to notify me of live updates on item searches
there was browser notification, but i couldn't really hook into that
there are definitely ways you could provide an alternative and more powerful engine
but I think a lot of people would just not care
The thing is to simplify it
for example, I've been excited about the idea of two-way data binding in the search UI
People are coming out with all these complicated tools
There is no reason for it. Most of the user base aren't power users
i use a duplex WCF channel in my service/client
service runs on my system and i can connect to it with N number of clients
select a ring, now you only see mods for rings. Select a ring with +60 life, it only shows you mods available on rings with +60 life. Select Cold Resistance, it says "24-32% cold resistance" for the range because that's all that's available on rings with +60 life, etc.
so i'm not having to pull the river multple times
@desert needle yes something like that
but tbh I think the real "killer app" would just be the ability to go "give me a ring with t1 life and three t2+ resists" ;x
exiletra.de is kinda like that, but I don't have mod tiers in the index
well ggg still doesn't give us tier indicators for mods in the api
I think there's room for a lot of improvement in the UI too
we have to infer
The biggest thing to get me to try a different service personally would be making it really easy to figure out the value of items. People search on poe.trade to figure it out... and it's extremely slow and painful, especially when you need to widen rolls and try various options to find something comparable.
which sometimes is impossible
Retik - sure, but GGG doesn't give us Q20 DPS, Pseudo Life Totals, etc.
right but you can calculate those with 100% accuracy
it's superfluous data
sometimes it's impossible to infer all 6 mods
Nuro - I'm working on a node.js backend for clipboard conversion so I can upgrade my price macro as well as provide an open service for other macro/tool creators that will hopefully make that process much easier - but it will still be fuzzy matching... someone needs to do some genetic algorithms with rnn's to really find values ๐
true on infering mods, but you can accurately infer 90%
Right, it is easy to calculate damage and such, but to you try and classify mods and it is impossible
I can say "this ring has 2 prefix and 3 suffix mods and the mods are t1,t1,t2,t4,t4" 80-90% of the time
Right
but 80-90% of the time is thousands of searches a day from users ๐
there's a reason poe.trade finally added estimated prefix/suffix to mods
Yep
knowing that you're missing stuff
once maniccompression came out with an extension showing it was possible, then started doing it in durian and exiletrade and other tools, people stopped accepting the "but it can't be perfect" excuse
but yes going back to the earlier conversation, if GGG was actively supporting third party development, they would have listened to the thousands of times tool creators have asked for better information in the item JSON data ๐
the fact that I have thousands of lines of code just to f'ing parse their JSON into proper JSON format is boggling
haha, that'd be a terrible idea (hiring me at least), they should hire an actual developer ๐
but I think it's just not a priority
well, i didn't name names
but hiring someone from the tool dev community who knows what we need
paying someone $150k/yr to enable third party tools is probably a tougher business case to make than it may seem
then make it part time
as a side job
most wouldn't necessarily want to quit their day job anyways
it would be crazy awesome to see lots of API improvements and action
i wonder what GGG would say if you proposed something like that, even contract based per/feature
maybe Novynn is doing a bunch of super secret shit behind the scenes that we'll get a surprise unveiling of ๐
"I'll improve your API with x, y and z (no pun intended) for $x"
I already improve their API's for free ^_^
he's probably not supposed to talk about stuff like this
I just need to get around to figuring out this elasticsearch stuff before I can use yours... :x
same
trust me if you just kinda start with a general approach it is very very easy
is elasticsearch similar to restful apis?
just keep the main documentation up for ideas
a lot of people ask me questions about like doing 500 queries to pull data to do X and I'm like "there is an aggregation query you can run that will do that for you server side"
The problem with hiring someone is NZ law
elasticsearch is restful
it's super super easy to use
there are a bunch of various modules for various languages that simplify connection and query creation as well
as long as you have a system that can interpret JSON you're good to go
the outbound queries are JSON, the response documents are JSON
C# has a good JSON library
JSON is probably the easiest return object that you can parse
We use JSON in the offline planner
you basically convert the JSON directly to a class in C#
I'm guessing a class is equivalent to an object in js
yeah super super easy to work with then
and you can build your queries in a modular way with classes then, like objects, I expect - i.e. here is a default set of 8 parameters, then I'm going to add a 9th parameter where league is set by variable by adding it to the class, etc.
Properly
Ya
Yep, you would be able to 'export' your class to JSON
yes
as opposed to when I was using SQL queries and I had to write queries that looked like: select namefromtable WHERE $clause1 $clause2 $clause3 $clause4 then define a bunch of $clause1 = "league=x AND " kind of crap
it was terrible :p
Ya its great
I just fed it a stash tab url
public class Stash
{
public string accountName { get; set; }
public string lastCharacterName { get; set; }
public string id { get; set; }
public string stash { get; set; }
public string stashType { get; set; }
public List<object> items { get; set; }
public bool @public { get; set; }
}
public class RootObject
{
public string next_change_id { get; set; }
public List<Stash> stashes { get; set; }
}
nice
But I love sql D:
It doesn't like the skill tree json ๐ฆ
doesn't the skill tree json fail on a validator?
I seem to recall having to hack it up a bit because it had some weird nesting that wasn't spec
JSON lint says it is valid
it might've been one of the early release trees I had problems with, I just have this vague recollection of ;'s in weird places
@desert needle -- slight pedantry, but your documentation says white sockets for all of the total<Colour> fields.
I had to strip down the stash api Json to a few stash entries
Yeah, I may have to do that
It couldn't handle the full thing
I know the classes work, but it would be nice to clean them up
nuro - whaa
"totalRed": 4,
"totalGreen": 2,
"allSocketsGGG": "R-R-G-G-R-R",
"sortedLinkGroup": {
"0": "GGRRRR"
},```
random item
you sure you aren't just looking at a tabula rasa? :x
That's what I did, changed data types, added enums, etc
Something like http://json2csharp.com/ is built into Visual Studio actually: Edit -> Paste Special -> Paste JSON as classes
sockets.total Red: "A count of the total White sockets on the item" in the Index JSON Structure page documenting the fields
Used the xml equivalent of that feature to write data down in xml and then generate classes to deserialize them.
public class Art2DartSkilliconsPassivesMasterygroupclawPng
{
public int x { get; set; }
public int y { get; set; }
public int w { get; set; }
public int h { get; set; }
}
public class Art2DartSkilliconsPassivesMasterytotemPng
{
public int x { get; set; }
public int y { get; set; }
public int w { get; set; }
public int h { get; set; }
}
public class Art2DartSkilliconsPassivesMasterygroupscepterPng
{
public int x { get; set; }
public int y { get; set; }
public int w { get; set; }
public int h { get; set; }
}```
lmfao
rip
Yeah, it names that stuff hierarchically ^^
@loud umbra - fixed in docs, good catch. I think I might need to make a pass at that page as well with stuff like the new prophecy and Map Fragments
I noticed a while ago but felt emailing you about something that silly would be annoying
I love discord, it's like irc 2.0
Yeah, it is amazing
It is like slack with voice
pretty sure it is the same framework
Well, I am completely wrong. Completely different stack
something something elixir supremacy
index finally caught up, 4.8 million documents in the stash tab api stream right now
Surprised it's only 20GB
@loud umbra those docs are in the github project if you ever find something like that and want to just toss an issue or a pull require or whatever, feel free
that's just "day 1" size - by the end of Perandus I was at around 200GB
crazy
day 4 and 1.4mil items available for sale, not including everything that sold over the last 4 days
Hey, do you know if there is already a syntax highlighter for item filters in notepad++? If there is not I'm thinking on creating one
yes
So, I was thinking about making a SASS like language for item filters