#tooldev-general

1 messages · Page 124 of 1

primal schooner
#

What else would I need to do to get a new Spectre to work in POB? I updated the lua for spectre.lua and spectres.lua

#

but still getting an error

worthy cape
#

The error may contain information that indicates what's wrong.

#

(something my users rarely realize 😄 )

#

Are the skills included in those files?

worthy cape
#

Trade site needs some elemental ailment immunity ^_^

civic crane
#

trade site should require authentication, and ||sacrifice in-game currency to perform n-amount of searches|| 😅

tiny cargo
# civic crane trade site should require authentication, and ||sacrifice in-game currency to pe...

May I ask you something? After reading the conversation regarding the trade site I would like to hear your thoughts.
Do you think it would be feasible to just display the price information without the listing for some items?
When checking e.g. a div card in most cases the desired information is the price and maybe the history. Both information (price and history) could be displayed without a request to the trade, right? Without checking the code this information is displayed, even when the listing are not loading, so you got from a different source?
Checking with your macro is just very convenient and I am guilty of using it for ritual rewards too.

grave wren
#

where would you get price and history if not from trade

#

is ninja reliable if the river is that bad

tiny cargo
#

@grave wren Idk, what the source is but it is shown before the trade request is even loaded, therefore I assumed it is not calculated on the fly with the request

civic crane
worthy cape
#

More of a priceglance than a pricecheck 🙂

grave wren
#

ooh neat woke trade macro now recognizes stacks when using . as thousands separator ablobhype

worthy cape
#

Sent a probe item into the river, poe.trade is just 8-9 minutes behind atm.

#

Official site has the item listed almost immediately, but doesn't yield results soooo... 😄

grave wren
#

i conclude that poe.trade is the devil, thanks for testing

primal schooner
#

where is the spectre lua on POEdb generated from?

#

-- Data\Spectres.lua
minions["Metadata/Monsters/Maligaro/SecretDesecrateMonster"] = {
    name = "Flickershade",
    life = 3,
    energyShield = 0.5,
    fireResist = 0,
    coldResist = 0,
    lightningResist = 0,
    chaosResist = 0,
    damage = 1.05,
    damageSpread = 0.2,
    attackTime = 1.005,
    attackRange = 25,
    accuracy = 1,
    weaponType1 = "One Hand Sword",
    skillList = {
        "SecretDesecrateMonsterTeleport",
        "SecretDesecrateMonsterEarthquakeTriggered",
        "SecretDesecrateMonsterMultiSlash",
    },
    modList = {
    },
}```
#

copied that into spectres.lua

#

copied the skills portion into spectre.lua

#

is there another piece i'm missing?

#

the name shows up in POB and that error shows up when I select it.

golden bane
#

@primal schooner There is a guide on Reddit somewhere for adding spectres

primal schooner
#

is the 3_0 folder a deprecated file location? because the current CF fork I have installed doesn't have those files in the same location

#

they are just in \data and \data\skills

#

additionally, that's the exact steps I did (save the 3_0 folder, because that's not where the current CF POB has those files) in the guide, and that's the error I'm receiving

worthy cape
#

Ooh neat, the PoB Dev Mode console has a built-in memory leakusage counter

frank drift
#

PoB crashed on me yesterday

#

first time that's happened in awhile

sonic gull
#

@velvet fog Hi, quick question. Do you happen to have any updates in regards to the Model Viewer on PoeDB? It does not seem to work anymore

worthy cape
#

ho ho, models

#

Out of curiousity, what are you using it for?

#

(I've put in a fair bit of work in parsing and trying to apply the engine materials, rendering PoE meshes is a fair bit more involved than the static textures you may typically have)

velvet fog
#

@sonic gull there are some model generating issues in new version, so close the function

chrome topaz
#

is the community pob still using proprietary windows runtime?

worthy cape
#

@velvet fog Anything fun in the model formats, or mostly around textures?

velvet fog
#

Model exporter reports error and i dont have much time on it right now

sonic gull
#

im mostly using it(the models) to gather Screenshots to use as Materials for the Path of Paper (dnd) session which im hosting

simple ravine
#

river having a bad time?

worthy cape
#

@simple ravine poe.trade update time from stash price change to live search notification was 21:53:59.06 -> 22:06:18.71

#

So "somewhat"

simple ravine
#

oof

velvet fog
#

@sonic gull I will try to fix that this weekend if I have time

violet path
#

): have to specify items you have on bulk exchange now, guessing a way to limit price checkers?

civic crane
#

flipper tools, not price checkers

golden bane
velvet fog
#

Please support utf8 @golden bane

golden bane
#

I know that's an often requested feature, but it just doesn't seem feasible without switching the whole graphics stack

velvet fog
#

China forum had modified binary version can display chinese utf8

golden bane
#

I'm not too keen on reinventing utf-8 support. Maybe someone else is, I wouldn't know how to do it anyways

velvet fog
#

Will source code be public?

golden bane
#

Yes, I just didn't have time yet to set up repos and permissions for our maintainers of Openarl's SimpleGraphic

velvet fog
#

Great news

golden bane
#

But we have up-to-date sources for SimpleGraphic.dll, Path of Building.exe and Update.exe

#

I don't know how much we will have to change to get it to build with our pipeline, but I can get you the code now if you're interested

velvet fog
#

No hurry, we had used china version for years

sonic gull
velvet fog
sonic gull
#

Hm

#

I'm on my phone rn at work, could you check if Sawbones also works?

velvet fog
#

Not in front of computer too

burnt terrace
#

Is there currently an algorithm for poe that reads a screenshot of the game and returns the hovered item mods?
So basically the information that you would get from ctrl+c an item but by processing a screenshot?

This would be useful for adapting current price-checking tools to poe players in streaming platforms such as Geforce Now and potentially Stadia. Indeed it would be better if the streaming platforms supported the exchange of information between both clipboards, but it doesn't seem like they are going to implement this anytime soon.

worthy cape
#

From a technical standpoint, as resolutions vary and the backgrounds of the info panels is no opaque, it's going to be an OCR hellscape.

#

People used to extract market data from Elite Dangerous stations by analyzing screenshots, the hit rate wasn't exactly stellar even with lots of training.

#

Compression artifacts from streamed gameplay probably won't help either.

static dust
#

what would motivate one to use screenshots over clipboard (besides the QoL perhaps)?

worthy cape
#

@static dust Apart from the "you don't have clipboards in streaming", you also don't have access to the Advanced Mod Descriptions.

#

A Ctrl-C export bakes stats together.

static dust
#

regarding the streaming: sorry, I just noticed.

regarding the Advanced Mod Descriptions: you mean, if you hold down ALT..? Yeah, I can see that

burnt terrace
#

@static dust You could perhaps write a script that ctrl+c the items opens the steam browser, navigates to a url and posts it there so it can be acessed. The problem would be that this task is really slow on streaming and it would take the user screen.

#

I tried working with opencv just to get the text of the top rectangle of the item that contains its name so that at least non-rares, like currencies, fossils, cards, etc could be quickly priced, but I wasn't even able to get that, it should be possible it's just that my rectangle detection algorithm and ocr is probably really bad.

worthy cape
static dust
#

just curious.. does anyone know, if there is any significant player base playing via streaming platforms?

#

I would imagine hardcore players (and perhaps players in general) having a hard time with the inevitable delay

frank drift
#

it seems to be getting more popular, some people do it to play without stuttering and other issues that are hard to figure out how to fix locally

#

I'm half considering trying it, I'm having stuttering issues again this patch

burnt terrace
#

I play with it, I'm like in a considerable non-optimal ping of over 150ms and it's fine most of the time, I don't perceive the delay exactly cause there is just too much happening on the screen, it's mostly noticeble when moving items in the stash, an issue that sometimes happens is a small dsiconnection that freezes the streaming for about 2s, you can still control the character you just don't see it. But in optimal conditions I doubt it happens.

static dust
#

@burnt terrace what service are you using?

burnt terrace
#

Geforce now.

young osprey
frank drift
#

my computer can run Cyberpunk 60fps but apparently not PoE

static dust
#

im motivated to try it out myself. would be cool to play on a neat ultralight laptop as well

young osprey
#

yeah, its very useful since I am on a laptop as well. There are a couple annoyances, but nothing I cannot get around

primal schooner
#

@golden bane in reference to the code in the most of each of the skills for spectres abilities, can you explain the 2nd column of values in the levels= array?

#
        [1] = { 75, 0, 26, baseMultiplier = 0.75, levelRequirement = 1, statInterpolation = { 1, 2, 1, }, },
        [2] = { 75, 0, 26, baseMultiplier = 0.75, levelRequirement = 19, statInterpolation = { 1, 2, 1, }, },
        [3] = { 75, 1, 26, baseMultiplier = 0.75, levelRequirement = 20, statInterpolation = { 1, 2, 1, }, },
        [4] = { 75, 200, 26, baseMultiplier = 0.75, levelRequirement = 84, statInterpolation = { 1, 2, 1, }, },
    },```
#

the 0 0 1 200

golden bane
#

That should be the damage effectiveness modifier

primal schooner
#

would that be the Deals 101% of damage value found in poedb

golden bane
#

It would map to that, yes

worthy cape
#

Each value there maps to an entry in stats or something, and statInterpolation indicates the kind of interpolation?

primal schooner
#

and therefor at level 84, the damage effectiveness is 300% (200% increase) ?

worthy cape
#

So you have static 75% skill_physical_damage_%_to_convert_to_cold, linearly interpolated active_skill_damage_+%_final, and static 26 arrow_projectile_variation?

#

(note that I have no idea what I'm talking about, just asking questions)

primal schooner
#

yeah 75 is dmg % 26 is the model ID

#

well skill model

golden bane
#

I don't know this off the top of my head, but the values in statinterpolation are something like opcodes iirc

worthy cape
#

Squinting at that, active_skill_damage_+%_final is linearly interpolated from 1 at level 20 to 200 at level 84.

#

given that we have this:

    stats = {
        "skill_physical_damage_%_to_convert_to_cold",
        "active_skill_damage_+%_final",
        "arrow_projectile_variation",
primal schooner
#

should it even be scaling?

#

shouldn't it just be 1 (101%) for all levels 20-83

#

according to w/e comes from the ggpk (which is where I'm assuming these breakpoints are coming from)

worthy cape
#

What are you consulting for that value?

#

poedb?

#

Only chuan can answer how those spectre level previews are generated.

primal schooner
#

well, POB has the same breakpoints (at least for lvl 84 and non-level 84)

#

Idk why there are tabs for spectre model level 68,73,78,82,84 on POEDB

#

I'm assuming those were breakpoints in days past that have just been left (as new ones were added for current coding)

#

other than level 84, the information for all POEdb model abilities at each level scaling tab (as far as i've seen)

rare gulch
#

Hey how does path of building get around cloudflare when making requests to get-items?

#
import requests

url = R'https://www.pathofexile.com/character-window/get-items?accountName="druuu"&character="dru_ritual"&realm="pc"'

accountNames = requests.get(url)


print(accountNames.text)
resp [403]
simple ravine
#

use a proper user agent header

worthy cape
#

Where "proper" includes your tool name and contact information, for when it misbehaves.

simple ravine
#

just tried, and it works without too

#

I guess you're not adding the POESESSID cookie

worthy cape
#

Still, the way to "get around" any protection is to adhere.

rare gulch
#

makes sense lmao thanks

#

not used to messing around with apis that dont use keys

rare gulch
#
    launch:DownloadPage("https://www.pathofexile.com/character-window/get-characters?accountName="..accountName.."&realm="..realm.realmCode, function(page, errMsg)
#

This is from POB. I'm not really familiar with LUA but I don't see any class for launch or DownloadPage

#

and it doesn't seem to be something native to LUA, so where is it defined

worthy cape
#

Probably defined in the runtime provided by the EXE.

#

@rare gulch Defined in Launch.lua

rare gulch
#

thanks so much

worthy cape
#

You may want to keep a cookie jar around, I guess.

broken cloud
#

@burnt terrace I use OCR on in-game screenshots to get the list of map mods... it works quite well, maybe my approach could be adapted to your needs?

#
  • scan for a solid horizontal line of the correct border color (rare yellow, unique orange?)
  • scan line downwards until end of text box found (pixels are no longer dark enough (brightness < 20) or of a known text color)
  • OCR the box, matching against a list of permissible text (stats, mod names, etc.)
worthy cape
golden bane
worthy cape
#

I just noticed there are back-arrows, ugh.

worthy cape
carmine merlin
#

@worthy cape did you enjoy looking at the spaghetti?

worthy cape
#

If I had to pick a time of day to look at this, the hours of 3-7 AM were probably the best 😄

#

It was much nicer once I got around hooking up a debugger instead of spamming the console, but got sidetracked by VSCode showing the wrong variable for nested locals.

white cave
#

any word on how long these rate limits are intended to stay, if not permanently?

hazy wigeon
#

Actually starting to make good progress on PathOfServices, successfully got the whole OAuth redirect stuff working, cookie based authentication, SignalR working (with authentication as well, turns out it automatically authenticates by default so thats dope), and the core framework for my single page vue app functional.

#

Now that all the boilerplate is done, I feel like I can actually start making progress on actual functionality and whatnot. Yay!

broken cloud
#

Is there any data file that provides the name of the unique boss in each map?

velvet fog
#

WorldAreas.dat

velvet fog
#

in character-window/get-passive-skills api, it had jewel items, but how to know what the jewel's nodeId

broken cloud
#

@velvet fog Jewel's x property is an index to the jewelSlots array in passive tree json

frigid nova
#

@obtuse citrus any status update on pypoe for 3.13?

obtuse citrus
#

I'm pretty much on break in regards to pypoe & wiki updates right now, so unlikely anything till march

worthy cape
#

"patches welcome" 😉

velvet fog
#

@broken cloud thanks

worthy cape
#

@velvet fog Not sure if the spectre dude has talked to you about this, but what kind of interpolation are you using for the skills of sentries like https://poedb.tw/us/Redemption_Sentry ?

#

The Deals 101% of Damage/Deals 300% of Damage stats of MeleeEyrieArrow has interpolation type 2 which PoB considers linear interpolation/extrapolation, while your spectre examples seem to treat it as type 1 (static).

frigid nova
#

@velvet fog btw the buff consuming bug is back again, this time for helmet mods:

#

(second stat is consumed by the buff, and therefore shouldnt be rendered)

velvet fog
#

@worthy cape should be fixed

#

@frigid nova thanks, added to my todo list

runic gorge
#

heya this might be a dumb question, but I was wondering if anyone made a readily usable script/program that can convert the current-day .smd/.ast/.fmt filetypes to ones that can be used in a regular modelling program (whether it's .fbx/.obj/.abc and so on doesn't matter) chaosthinking
i found some scripts from years ago, but they don't seem to be working anymore

worthy cape
#

Short answer, not quite. Long answer, not by far.

#

Raw geometry from meshes is reasonably well understood with submeshes and material indices.

#

Skeletons and animations are somewhat mapped out but I don't think anyone has attempted skinning, I know I screwed it up good in my previous^2 codebase.

#

Materials are quite well-understood but do not translate well into a traditional static scene kind of world, as the primary way a VFX/texture designer controls the appearance of surfaces is to hook into the renderer via programmable effect graphs (noodle soup-like blueprints) in materials.

#

I'm currently messing around with reimplementing some of the renderer and trying to compile materials into HLSL shaders but it's nowhere close to done.

#

I had an .obj exporter for the raw geometry way back when, chuan has something similar for poedb's model viewer, and poeloremaster has his own implementation feeding into whatever evil drives his web UI.

#

For static meshes you're probably "OK" with a straightforward export but will miss out on a lot of material properties that come from effects, I haven't really looked much at what kind of materials regular doodads have.

runic gorge
#

Ahh thank you very much for the answer, and makes sense yeah, especially concerning skinning & materials, I'd assume even more so for the latter since the gradual switch to a PBR pipeline

I was curious because I wanted to make some 3D fanart, and for a lot of things there aren't that many easily usable references, it's much easier to have the original model just right besides what I'm working on etc.

#

Especially for smaller things & characters like Dominus, where for example I'm not sure whether his blue head is his face, or a mask

#

Do you have a link for your .obj converter exaltThink i can only find an old archive of some converted models, and an .rs script I'm not entirely sure what to do with it

worthy cape
#

I don't know which iteration of the codebases I hacked that up in, heh.

#

.rs sounds like Rust, so probably my poe-rs but I don't know where in that mess it'd fit in

runic gorge
#

Yee I was about to link it, that one yeah

worthy cape
#

This is very broken now as it predates the tech patch where the filesystem was all changed around.

runic gorge
#

ahh we'll see
thanks for your help regardless :D in all honesty I was surprised there isn't a singular tool that deals with this, as there are for many other, less popular games, but it looks like it's for a good reason

worthy cape
#

Looking at some .fmt files like Art/Models/MONSTERS/Dominus2/dominus.fmt they seem to have since also updated the file format version to 6 from my supported 4.

#

It's definitely on my roadmap to figure out any updated mesh formats again, but right now I'm quite stuck in the material soup.

runic gorge
#

There's no rush hahah, it's good work that you continue to put out :D

worthy cape
runic gorge
#

ah yes the one hex atziri's shield doesn't protect against

#

:')
I honestly can't wrap my head around how people figure out how to convert that to workable filetypes, I occasionally read the magic that people do on the Xentax forums, but it's just witchery to me hahahah

#

What are things that you're stuck on concerning materials chaosthinking I can't program to save my life, but I do know some things about PBR/shaders

#

maybe i could be of help with that

worthy cape
#

It's mostly a matter of glue I believe.

#

I've got graphs that hook into different stages of the renderer, which read a bunch of parameters and inputs and produces some outputs, all sourced from artists-controlled constants or stage input/outputs.

#

I don't know much at all how the stages fit into a frame and the drawing of geometry, and there's some interesting circular dependencies.

#

The building blocks that an artist has is graphs like that that achieve some sort of incremental effect on the surface, like adding a bit of fresnel rimlights, shifting UVs over time, distortion based on textures, things like that.

#

Or heresy like that celestial graph 😄

runic gorge
#

Ah oh jesus you're mapping out the entire rendering engine flowchart, that's mega brilliant
hmm, I know how to mostly recreate shaders in other engines (such as Cycles in Blender), but that doesn't include game-engine specific things like per-pixel effects

worthy cape
runic gorge
#

If that flowchart is how it works in the PoE engine, that's some very smart programming

worthy cape
#

Was kind of fun watching that video after blindly understanding some of the formats, the tools looked so familiar 😄

runic gorge
#

Ahh yeah i've seen that one :D it gave me some ideas on how to "cheat" effects like the normally expensive refraction on the crystal within other programs

#

they've got some really smart people working there

worthy cape
#

base_fixed_blackc_RefractionAlpha_addnormal_FresnelAddTex_expand_MaskedAddTexEmissive_Fade_Time_Tex_projectiveuv_expand__pixel:6493:10: warning: implicit truncation of vector type [-Wconversion]

#

The generated shaders are not exactly tiny, I'm guessing there's quite a bit of glue and boilerplate in there.

runic gorge
#

Ahhh yeye

#

The only thing I'm not sure about what it does is the expand__pixel function

#

but the rest seems like the good/standard workflow

#

or is it projectiveuv_expand

#

which would make more sense

worthy cape
#

I'm guessing the filename is just the individual graph names glued together as part of generation, this is from the game logs so I don't have the actual "file" to look at.

#

Would be much easier then, but I don't touch the game client.

runic gorge
#

Yee
Hmm, maybe you could contact people like Durante from ReShade, or Boris Vorontsov from ENB, they do this kind of dissecting almost for a living

worthy cape
#

In any way, I'm not quite sure what the end-game would be for someone who would like to use assets outside of an interactive viewer.

#

Even if I get a somewhat approximate renderer going, that won't help that use case much.

runic gorge
#

Yeah
I mean I'm fine with just the models & textures as they're only for reference use anyway

#

Shaders can usually be approximated in other programs should someone want to go that far

lean spindle
#

What was the cause of this issue with textures again? I feel like I remember people tangling with this before. Did we come upon a solution?

lean spindle
#

should be Art/Textures/Interface/2D/2DArt_UIImages_InGame_AtlasRegions_AtlasTrees_1.dds

#

wait no thats it

#

hold on im confused, My dir is a mess

#

2 secs

worthy cape
#

worksforme, except that xnview loves to sometimes not render images correctly on first load

civic crane
lean spindle
#

hm. odd

#

switching img viewers! brb

worthy cape
#

Should be a boring old BC7 image

lean spindle
#

going to do some conversion before viewing & check back. maybe xnview's dds viewer is confused

worthy cape
#

I've had it occasionally garble images on load, but tending to fix itself later.

#

xnviewmp, that is

lean spindle
#

Ok, I believe that it has to do with some special formatting that ggg does that the exporters you used takes into account, but I did not

#

because when I export w/ libggpk2 to png I get a fine image

#

but when I try to manually convert the dds to png, i get a "corrupt file" error

#

Is there some processing/formatting of the dds that has to be done before exporting?

golden bane
#

The .dds files are compressed with Brotli

worthy cape
#

That shouldn't matter since the tech patch.

#

Everything between the tech patch and texture streaming should be either a plain DDS or a symlink.

golden bane
#

Right, forgot about that 😅

worthy cape
#

Everything since texture streaming should be a .dds.header with a proxy texture or a symlink; or a plain DDS texture.

lean spindle
#

What are the 4 magic chars & the top of the file spec before the dds header?

worthy cape
#

version, fullsize width, fullsize height, payload size, followed by that much payload.

#

payload is either a tiny DDS file to be used as a low-LOD placeholder or a *Art/blargh type symlink.

lean spindle
#

Does that need to be stripped from img export?

#

sounds like it should?

worthy cape
#

Cubemaps and other non-tex2d DDS files don't have proxies.

#

Depends on what you mean.

#

*.dds are plain DDS files without any external compression but the Oodle from the bundles.

#

*.dds.header consist of that fixed header and payload, if you want a contained proxy DDS there, you need to strip the fixed header.

lean spindle
#

looking. Somewhat confused.

#

So those chars only appear in *.dds.header files? or am i misunderstanding?

#

Or that is a part of dds spec and i misunderstood entirely

mellow ice
#

Hey, I need serious help getting to endgame/bossfights, iv got some T15/16 maps but im struggling understanding how i should be going about it, if someone can help me i can stream my screen

worthy cape
#

@lean spindle The actual DDS files named *.dds are as vanilla DDS as possible, there's nothing special about them at all. They were more special in the past as they could be both Brotli compressed or textual symlinks.

lean spindle
#

Not the channel for that, friend. @mellow ice
Try out the 'help' categories for assistance

#

Ok. icic

worthy cape
#

The new texture-streaming related *.dds.header are present for all regular texture DDS file paths. They always contain the fixed header, and then follows either a tiny embedded DDS file, or an * followed by a path to the actual texture it references.

lean spindle
#

Also, the dds you sent me is failing to display correctly in the same way as before. Most strange. Almost definitely on my end, I suppose

#

AH

#

I understand

worthy cape
#

That actual texture in turn should have a .dds.header and possibly a corresponding .dds file.

lean spindle
#

I just had a vision of symlink hell, but ty for explain. This makes sense now

#

An update of xnview fixed viewing problems. Now to figure out why the image format conversion lib I'm relying on is throwing a fit.

#

sometimes its the simple things, it seems

worthy cape
#

Tech patch upgraded pretty much all textures to BC7, so if it doesn't support those "new" formats it might get a bit upset.

lean spindle
#

Ah, I see. This gives me something specific to look for, tyty

civic crane
#

@compact isle today's trade slowness was strange because Russian was affected too. are you making some internal maintenance and decided to tmp block APT?

wind garden
#

bex comment confirms they blocked APT

#

Comments also mention Poe Overlay as well. Could be the other tool causing the issue but yours got hit in the collateral.

sleek nacelle
#

I think the comment is suggesting poe overlay as an alternative, not saying it's part of the problem. poe overlay community fork still works fine for me

grave wren
#

doesn't parse to me like the app is an issue just that lots of people use the app?

frank drift
#

it parses to me that they want it to have rate limiting or something

grave wren
#

it has rate limiting?

frank drift
#

does it? I only use Overlay Community, which does

lean spindle
#

Awakened PoE Trade does have rate limiting

frank drift
#

"We’ve temporarily blocked it to fix the issue and spoken to the developer to let them the know the problem."

#

= they think it's doing something bad, and the bad thing can be fixed

patent pendant
#

apt had an update 4 days ago which affected how bulk trade requests are made. Might simply be a bug which manifested heavily today for whatever reason. I, for example, got the automatic update to that version today.

wind garden
#

yes, APT rate limits and checks the rate limit state to make sure it doesn't go over

#

Seems unlikely that APT would suddenly bring the server to its knees at 9am in the morning on a weekday when it hasn't been a problem for the first week and a half.

#

on the topic of rate limits, they're ridiculous as is. Need a better long term solution than steadily increasing the rate limit every time there's a problem. Idk how many times I've refreshed a couple of search tabs and accidentally gotten myself throttled for 60 seconds because I can click refresh more than 3 times within 5 seconds.

#

And how'd that work out for you?

#

The river is unusable. Literally and figuratively. The only way you can get whitelisted is if you're big enough and if you're big enough to get whitelisted you're competing directly with ggg's own trade site.

#

yep

frank drift
#

certainly they ought to invest in better infrastructure, I don't disagree

#

I'm including architecture in that

#

probably hard to invest in new development with closed borders atm, but hopefully it's something on the long term roadmap

#

instead of continually punishing users / tool devs

wind garden
#

I think the main issue is it's hard to measure the ROI

#

how much business are they really losing by having a bad trade experience

frank drift
#

probably not that hard to see the impact when they block Awakened or whatever

wind garden
#

if it stays blocked long enough, yes

#

my guess is they'll come up with some bandaid and unblock it in a day. but that just kicks the can down the road.

grave wren
#

i am a bit amazed at their post saying they didnt expect a 1x% increase in traffic

#

for a huge release

#

doesn't sound good for the future

wind garden
#

I didn't think they said what % capacity they were actually at before launch. I think the 1% was just part of the example how you can be "fine" operating at 99% and then suddenly not fine at 100%+

#

but it is a good question, if they were close to max capacity, why didn't they address it sooner

frank drift
#

in the case of the database overload at least, they didn't see it coming seemingly

wind garden
#

@civic crane what have you learned? Is this really as simple as "too many people using trade macro"? Why wasn't this seen earlier last week?

civic crane
wind garden
#

but blocking one trade macro isn't going to fix anything, people will just switch to another like the older versions (which are still working).

#

how do they selectively block your app anyways?

hazy fog
#

user agent

long edge
#

and noting that its due to a third party tool only brings out reddit experts on the case, blaming APoET for everything regarding trade

wind garden
#

so you're considerate to use a unique user agent instead of spoofing chrome's 🙂

hazy fog
#

yeah see that gets you in trouble

long edge
#

how so

wind garden
#

isn't that what poe trade macro does?

hazy fog
#

because Novynn smites you

long edge
#

its only accessibility issues

#

awakened is available on github

hazy fog
#

I'm sure the pattern of usage of apoet is unique as well so they'd catch on

wind garden
#

doubtful

long edge
#

i dont think they have the resources to spend to analyze that

civic crane
#

it's default electron's UA user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) awakened-poe-trade/2.9.0 Chrome/87.0.4280.88 Electron/11.1.0 Safari/537.36 I decided not to change it, because you know... there is Cloudflare in front

wind garden
#

I'm not advocating for anything that would make their job more difficult

#

but a real solution will need to be found

#

and this isn't it

long edge
#

yeah, im just saying that blocking it is doing exactly nothing

#

it is essentially the same as not responding to any queries or closing down the api etc

wind garden
#

all it would take is one person from the community to fork APT and change the user agent

long edge
#

all it does is shift the blame onto someone else

#

instead of smiting people, theyd do well to figure this out once and for all

grave wren
#

But Reddit has a new culprit now so all is well

wind garden
#

in other news, it's snowing!

chrome topaz
#

wow that thread hurts to read

lean spindle
#

is truly painful, yeah

simple ravine
#

tldr - who messed up?

lean spindle
#

Combination of things, really

#

GGG has had issues with their trade system & databases since league start

#

This compounded w/ the fact that Awakened PoE trade doesn't do local caching for repeat searches (and also the fact that its spiked massively in popularity) led to ggg having increased troubles w/ trade systems

#

culminating in them blocking Awakened PoE trade atm

#

at least this is how I understand it

#

overall, increased traffic that ggg was unprepared for

#

and this is their bandaid 'fix'

simple ravine
#

Awakened Poe, got it

#

hey snos, as they say... all pr is good pr

#

time to make some memoize mimosa

civic crane
simple ravine
#

until application restart would be a fairly safe bet

long edge
#

couple of minutes to account for people finding another broken interaction, prices spiking/dropping and it getting nerfed causing prices dropping/spiking
/s

#

but yeah app restart sounds good

#

i remember reading somewhere that you considered disabling auto search

simple ravine
#

i'm sure people will have a problem with that, but u know..

long edge
#

thatd be good aswell, as for a lot of things poe.ninja is a safe indicator

simple ravine
#

rasmus updates poeninja every 15 minutes

lean spindle
long edge
#

do you already cache poe.ninja prices btw? too lazy to check, but id assume so as it shows up instantly

lean spindle
#

Local caching doesn't have to be time-based

#

just x most recent searches ought to do it, I think

#

and clear on app restart, yes

simple ravine
#

this reddit thread needs popcorn

worthy cape
#

@simple ravine the reddit thread needs brittlBonk brittlCop

long edge
#

its a pool of possible recruits for many interested parties

#

i have one in mind

simple ravine
#

It's extra amusing when they crack open the "distributed system" term without having a clue

long edge
#

tbf it's pretty hard to make an accurate assertion even with (some) degree of technical expertise, but its alright to make an assumption i guess

lean spindle
#

I think maybe having a "search" button that you click w/in APT instead of the "hover here to search" and "search on each query field change" could also reduce number of trade api requests made by a hefty sum, at relatively low labor and user experience cost.

fervent pagoda
#

with complex systems it can be hard to make an accurate assertion even if you own the code

simple ravine
#

this one is gold

worthy cape
#

Isn't this what cloud architects like you do all day? 😉

long edge
#

imho, regarding apoet, hover to search should be fine, if i was a betting man id betthat most people are checking currencies/fragments multiple times back and forth and hitting the limit because they have goldfish memories (i dont do it i swear)

fervent pagoda
#

scaling always easy when there's no existing technical debt that you have to work around, but that's never the case

simple ravine
wind garden
#

if APT returned poe.ninja prices for items instead of the current listings, it would be unusable for a large number of people

#

poe.ninja prices tell you ballpack, this thing is worth small/med/large amount

#

but they don't tell you enough to properly list the item for sale

long edge
#

but there is no need to search the bulk trade every time you check a fragment price

wind garden
#

yes but that's not even the common use case

long edge
#

without statistics i have no way to know, my sample is 1 and most ritual guides tend to focus on how people overemphasize spending on currencies/fragments

wind garden
#

and even in that case, if you're listing fragments and poe ninja tells you they're worth 4c each and there's 10 people listed at 3c, you're gonna sit there and never sell and wonder what's up

long edge
#

but the point is apoet doing the search automatically

#

if you want to sell it, you are free to move the mouse over the search button

wind garden
#

hmm, so proposal is differentiating between price check of "is this worth somethign" vs get current listings

#

I don't like the idea of making "get listings" be manual, that's just inconvient and doesn't stop anyone

#

but I would suggest having a separate keybind to get listings and point people to price check as the default

#

maybe even put a heavier rate limit on get listings

lean spindle
#

its already sorta manual

wind garden
#

right

lean spindle
#

you have to move your mouse a certain way

#

after ctrl + d

long edge
#

you do?

lean spindle
#

I'm proposing, that for filtering based on item stats

#

you dont search every time a box is checked

wind garden
#

what do you do?

lean spindle
#

you search when they hit a button in that instance

wind garden
#

have to mouse over hte item you want to search for and then hit the key

long edge
#

so i mouse over a fragment, hit the search key and get listings

#

do i unconsciously perform something else?

lean spindle
#

If you move your mouse below the basic info it grabs initially, i think it then searches listings. or I'm hallucinating, one of the 2

long edge
#

well the author knows for sure

#

in any case, having to manually confirm sending a query would cut back a lot even after implementing a cache

lean spindle
#

Agree, I think its worth doing

simple ravine
#

if cached, show immediately, if not show button

wind garden
#

How often do you think people are searching for the same item? If you're mapping and price checking every item in a ritual, most of those items are new.

lean spindle
#

give option for research, with a cooldown, perhaps?

#

or am i getting too fancy?

simple ravine
#

my memory is so bad

wind garden
#

or do you mean cache ALL of poe.ninja's data

simple ravine
#

i price-check the same item multiple times

wind garden
#

which isn't hard to do

simple ravine
#

when tinkering

worthy cape
#

My memory is good but short.

long edge
#

what is memory

lean spindle
#

@wind garden currently talking about locally caching previous queries made by the user

simple ravine
#

something you'll gradually lose after 30s

wind garden
#

ya I don't think that would be sufficient

long edge
#

im just randomly trying out stuff i think would produce the biggest result

simple ravine
#

apparently

long edge
#

and then i have to reconfirm previous tries because im not sure if this one was highest

wind garden
#

I think caching poe.ninja data would help a lot with price checking uniques and bulk items

lean spindle
#

Yes, I think any item that is non-random-rolled would benefit from serverside caching

#

but that takes a bit more work

worthy cape
#

"is this essence one that's worth having at all?"

wind garden
#

right

#

the "is it good" query

long edge
#

but poe.ninja hits dont go through to trade api do they

wind garden
#

as opposed to the "how much is the cheapest listing for this item?" query

long edge
#

so thats a separate issue

worthy cape
#

There's either that kind of fetch, checking the general range of an unique (again ninja territory), and then the tricky bit of rares where poeprices.info (or whatever the guesstimate source is) rarely helps.

#

But in the last case, you have to manually trigger a search for mods, don't you?

simple ravine
#

I'm somewhat sure that if you cache rares, you'll decrease the total volume of queries a fair bit as well

wind garden
#

price checking rares definitely shoudln't be automatic

worthy cape
#

@long edge The point is that several types of lookups don't need the trade site API, despite hitting things like the exchange unconditionally now.

wind garden
#

you pretty much always have to check 1-2 mods to lock in

long edge
#

yeah thats what i was getting at earlier

worthy cape
#

(I forget if APT culled down on the exchange lookups, it was a while ago I saw it mentioned)

simple ravine
#

jUsT iNStAlL mONgO dB

lean spindle
#

stop

#

pls

#

pain

simple ravine
#

If I was forced to bet, I'd say they're probably using a centralized server that every user talks to using the trade page. The standard approach to fix this problem is to use a cascading net of hierarchically linked servers where first the central servers talks to some proxy/cache trade servers, who again talk to some proxy servers, who again (... repeat for as many layers as you need), where only the outer leaf nodes are actually exposed to users, so you can scale the actual searches and such very easily.

This trivializes search performance. For listing items, the central server still needs to be able to cope with the total amount of stuff users want to list, but that doesn't appear to be a problem for this game. For searches, end users only talk to one of the leaf node proxy servers and you can scale as many hear as you want to satisfy search performance.

PoE has an exceptionally trivial case of this problem as well: It's not a problem if one server thinks an item is still listed for a few seconds longer (as there is going to be a small delay until all these servers have sent and received their messages). From the user's perspective this will result in an additional whisper while the item is being traded to another seller from time to time, but it doesn't lead to data incorrectness issues or anything like that.

#

lord jesus wtf this guy

frank drift
#

you love to see it

minor charm
#

Hey I have a problem with APT

#

Price checking this item returns 0 results

#

😮

pallid doveBOT
#

Please don't post discord invites

#

Please don't post discord invites @wind garden

wind garden
#

is this really a bot? quite aggressive

lean spindle
#

wow, greust really gotcha

#

you just gonna take that?

wind garden
#

just trying to help lol

lean spindle
#

xD

frank drift
#

you know what would be cool is a "tribute <=" filter function

#

could save some queries

lean spindle
#

how would that work

frank drift
#

like BaseType == "Stacked Deck"

#

Tribute <= 1100

#

then it'll show on the filter rule in the ritual menu

lean spindle
#

tribute doesnt behave like most currency, as you can't save it

frank drift
#

just for the menu though

lean spindle
#

I don't think I understand

minor charm
#

Your item filter has rules added to it for tribute so that it works in the ritual window

#

on top of the existing stuff

#

I've had higher stack sizes of the same item in the same window offered for less tribute.

rapid pagoda
#

As an aside, I am super curious whether people have been writing down the base tribute costs they're seeing for div cards and uniques. Could provide some insight into the game's internal concept of rarity "tiers" (which might or might not actually be tiers)

frank drift
#

only for basic currency mostly

#

my approach is just to figure out what a chaos orb costs baseline

#

and then price everything else off of that

minor charm
#

Are you seeing any variance in the tribute cost for a single chaos orb?

#

Or is it the same every time ?

rapid pagoda
#

There is definitely variance, maybe 10-20%.

frank drift
#

yep, variance on everything

celest coral
# long edge in any case, having to manually confirm sending a query would cut back a lot eve...

Disabling initial search and setting debounce time to infinity was the first thing I've done with my PoE Overlay (now community fork) when these options became available. For me it's more convenient even w/o considering the API spam part.
To quickly assess whether the item is worth anything or not the poe.ninja data is enough. Getting more precise pricing requires selecting specific important stats (or minimum stack size for stackable items) manually anyway, and for obvious junk items you don't make a query at all.

worthy cape
#

Care would need to be made around Vaal rituals for data-sourcing, as they used to be able to both inflate and deflate by a larger amount, and since patched only deflate.

gilded tree
#

Request time wise or time till you see recent items(timeliness/actuality of the data from the latest change id)?

worthy cape
#

I updated a price and zoned at 18:33 with a live-search running on poe.trade, it's 18:57 and it has yet to trigger.

#

19:06, item appeared

long edge
#

I googled a bit and apparently Tesseract should be able to segment by line by itself, but I'm not quite sure how to achieve that. People are linking research papers left and right and I'm a dunce. Anyone perchance has any experience with it? Ultimately I'll do the segmenting by myself (indicated by the visual representation there) aswell but I wanted to compare results/performances. Related example image of testing phase:

#

for example doing it without invert results in 1.21 runtime

#

so i might get significant gains if i dont segment myself for no reason, or if my segmenting is less expensive

simple ravine
#

jokes aside though, it's starting to itch a little in the solutioning-fingers after that reddit debate and "problem" the other day

compact isle
#

can't see any performance issues for the river in the graphs

#

yeah no issues on our end for the past 12 hours

#

I'll dig a bit deeper but these analytics have been accurate to problems in the past

worthy cape
#

I only have poe.trade to test with, but as mentioned above, it took from 18:33 CET to 19:06 CET for an item to appear on their trade site livesearch, 33 minutes; compared to the 8-12min it has taken earlier days.

compact isle
#

I see a dip in your requests but no dip in our response times

worthy cape
#

How does CF factor into things, do you have any stats on whether they do funny things?

compact isle
#

they don't have great analytics unfortunately

worthy cape
#

Current whoop latency - 10.5min

gilded tree
simple ravine
#

@compact isle what data rates do you have in peak hours vs average etc? Curious

#

e.g. how much does the data weigh you create per second or hour or something

compact isle
#

those aren't super easy for me to collect for specifically the public stash API

simple ravine
#

hmm, more like how much data do u pump into the databases or something?

compact isle
#

that's a strange metric that I don't collect

#

there does seem to be a strange discrepancy between PHP's processing time vs nginx's total request time

simple ravine
#

i'm just in the mood for some tinkering, but wanted to know like... how much data is being added / updated to understand the magnitudes

chrome topaz
#

the api needs a higher max item cap

compact isle
#

we could try higher payloads

chrome topaz
#

my implementation is basically fetch new data in a loop w/o doing any processing and its impossible to keep up

compact isle
#

high nginx total request time suggests that it take around 2s for the response to be completely streamed out

#

not sure how cloudflare interferes here, and if that 2s is to cloudflare and then extra time to you

#

yeah I'm keen to reduce that

chrome topaz
#

i think if it returned 10x amount of stashes it would be easier to catch up

#

also easier to spot issues when it takes too long

compact isle
#

that means 10x the PHP processing time which would be... about 5 seconds per request alone

#

yep it would be a very expensive change

chrome topaz
#

might be a good optimization target

worthy cape
#

Can one (and do you) look at the IDs from where you're in the river at the time, vs. what's known to be at the front of the river?

#

(by occasionally sampling at the tip)

#

Or is that normally not a problem when you're caught up?

#

(I guess that individual ID parts (shards?) do not necessarily correspond to update counts, but still)

chrome topaz
#

you can't get caught up...

#

time to first byte around 2s, if at that point you rip off change id out of first 500 bytes or what not and send request for that change id

#

you still can't cathc up

compact isle
#

are you guys using https or http?

#

the discrepancy could be TLS handshake to cloudflare

#

most requests take no extra time but some seemingly randomly do

#

unless you hit different edges

#

the request time does get larger for both of you during peak but it's much much worse for poeapp

#

for around the same number of requests per minute

gilded tree
compact isle
#

the holy trinity of apps

#

ninja also has less requests but doesn't exhibit this request time issue as much as you @polar island

gilded tree
#

I am glad that I don't have to be that up2date like @polar island

#

less things to worry about

compact isle
#

it is a metric fuckton of data to keep up with

simple ravine
#

metric fuckton. now we're getting closer to something, Novynn 😛

long edge
#

poeapp wont have to worry about it soonish

#

unless you decided differently recently

gilded tree
compact isle
#

poeapp / xyz don't have any request restrictions

chrome topaz
#

10x stash tabs pls

gilded tree
#

oh

compact isle
#

yep I'll bring up increasing the limit

gilded tree
#

maybe with parameters

compact isle
#

I'm interested for us to support requesting from individual shards too which is 5x the throughput for free

simple ravine
#

I think I made one of those comments a while ago, i recollect someone in here wasn't super happy heh

#

but you technically kinda could do something like that today, by having a very high number for all but one shard in that id

compact isle
#

yep the idea wasn't internally liked but I'll push for it

simple ravine
#

but yeah, you'll likely just end up with the same issue

compact isle
#

of course, eventually nothing we do will be sustainable for third parties to keep up

#

let's hope there are some trade changes before then 😄

simple ravine
#

unless people are smart enough to detect that shards require varying RPS

chrome topaz
#

inject the river straight into my veins

simple ravine
#

i still want some numbers, because I like the problem

compact isle
#

here are 400 map stashes that people public with no intention of selling maps

#

injects

gilded tree
long edge
#

would be nice if i could inject a specific person's map stash into my veins

worthy cape
#

@simple ravine At least 30.

compact isle
#

yeah we're pretty sick of waiting for OAuth stuff to be allowed out lol

simple ravine
#

it's easier to ask for forgiveness than permission Angel

compact isle
#

not when we're waiting for legal ToS update stuff :p

simple ravine
#

what's the worst that could happen kekw

compact isle
#

last I heard it was a matter of weeks and not months so yay progress

gilded tree
#

😄

compact isle
#

😂

#

those aren't tears of joy

worthy cape
#

Any decade now.

gilded tree
#

maybe oauth isn't a thing anymore when they allow it

compact isle
#

@earnest radish oh yeah map stash search is a mess, I wish I could say it is an easy fix but boy is it not

simple ravine
#

mm legal

#

reminds me (not happily) about our public sector customers

#

cloud and gdpr and swedish privacy laws. mmm...

compact isle
#

I keep getting pulled away from OAuth stuff to put out server fires so you can thank snosme for any delays 👍

worthy cape
long edge
#

i dont understand data talk so i'll sidetrack for a bit, what is the channel to request additional filtering for the frontend part of the official tradesite? id like bulk-feature of minimum amount but im loathe to hack the frontend filtering myself

compact isle
#

luckily all we needed to do was add 3 layers of caches in a complex network of AWS proxies that only hit our centralized server if they absolutely must

simple ravine
gilded tree
#

easy

compact isle
simple ravine
long edge
#

mmmm wording, id like to apply it to item bases, gems etc, basically results from non-bulk market

compact isle
#

we don't track stock for non-bulk items

#

then again we have to rip that whole system out at some point so maybe we can sort something like that out

long edge
#

so i guess if i want to see it soonish ill have to do it myself, pullshair

compact isle
#

such is the developer way

long edge
#

i just want to play the game

simple ravine
#

someone watches good tv shows

gilded tree
#

You can play while programming

worthy cape
#

I need a project manager and an UX person 😄

gilded tree
#

UX persons are rare

worthy cape
#

Also self-curse temporal chains for more hours in a day.

gilded tree
#

I would sometimes need an int stacking build

worthy cape
#

I actually have an UX person I could ask for feedback, but that means getting to the point where I have UI, potential users, and something resembling a product.

minor charm
#

What's this for , if you don't mind ?

worthy cape
#

My long-term hideout editor project.

#

Right now I'm shaving the material yak.

#

@minor charm Base idea is to have an editor that has a bit richer representation of a hideout, where you can group decorations, more intelligently placed decorations, have prefabs, hideable/freezable layers, stuff like that.

#

A project manager (or analogue) would help with spreading myself way too thin doing things that are interesting but are not furthering the core idea.

#

Like trying to render things correctly.

minor charm
#

and then import it in-game ?

worthy cape
#

Yeah, then have exports to the vanilla .hideout format.

minor charm
#

ahhh nice one 😄

worthy cape
#

You could have alternative decorations to replace MTX-only ones, export a light-weight variant if you like FPS more, the sky's the limit.

long edge
#

export to autocad would be nice so i could build a nice hideout in my backyard

worthy cape
#

There's a lot of interesting room to improve on what is currently available in-game, and I'm sure as heck are not the person that's good at it.

#

@long edge STL files to 3D-print your hideout 😉

long edge
#

now were talking

compact isle
#

now I'm interested

gilded tree
#

real life hideouts

minor charm
compact isle
#

can it print all the pretty particle effects

worthy cape
#

Did I mention the VR support I had a few iterations ago?

gilded tree
#

damn

worthy cape
#

"any decade now" is probably a reasonable timeframe here

long edge
#

printing custom hideouts would be quite profitable for ggg i reckon

compact isle
#

shipping anything out of NZ is a pain

gilded tree
#

How would the Celestial Nebula hideout look irl?

worthy cape
#

Why limit yourself to hideouts - print iconic events in PoE history, like when <streamer> gets oneshot to Standard.

#

The Celestial Nebula hideout groundtiles can go hecc themselves.

#

Have you seen the material for those?

long edge
#

the kinks can be ironed out along the way, im sure there would be no big issues

gilded tree
worthy cape
#

Most other fxgraphs are rather straightforward in what they do. This one ehm...

gilded tree
#

interesting

compact isle
#

@chrome topaz can you add me on discord?

chrome topaz
#

sure

compact isle
#

I uninstalled Skype as soon as I possibly could 😄

worthy cape
#

Right now I'm trying to sort out shader source code generation, but the game eats time like candy.

gilded tree
#

😄

compact isle
#

nah surprisingly we managed to convince everyone to be on discord or slack

minor charm
#

I had to install Teams to be able to talk to our Contract Manufacturer 😦

gilded tree
#

Teams isn't bad tho, I just feel like they often have server problems

long edge
#

trade would feel right at home there

chrome topaz
#

yoo

#

that's the only reason i still have skype

simple ravine
compact isle
#

Teams probably doesn't have any trade macros

long edge
#

maybe it should, zensei wouldnt have to sit 5-7 hours a day then

simple ravine
#

no, but 14

compact isle
#

it could Watch_Dogs-style look up someone's information so you can assess if you want to use your tribute on them or not

simple ravine
#

Now I have to admit, I only made it to A1 in current league, and have no idea lul

long edge
#

trade could be temporarily mended by hiding ritual rewards (like they are at the start) and slightly increasing tribute count. that way it will be a gambling simulator so not any different from the crafting part of the game

pseudo ocean
#

pl

long edge
#

am i rich

hazy wigeon
#

Ive got a solid bead on the implementation I will be going for on the user rank system, which I think will be a four part system.

  1. Vouches, how many users have vouched this user
  2. Complaints, how many complaints they have (can click this number to go to that users profile and see all complaints filed on them by other users)
  3. Distance, how many steps it takes across the network to get from you to them in trust. Will just say '---' if its greater than 8
  4. Rank, a number from 0 to 100 which represents their rank via a hidden ranking algorithm. Im opting to not expose the algorithm for this and will do it via a Stored Proc periodically under the hood. The main reason being so that individuals cant min/max and attempt to 'game' the ranking system. The rank is based on all the various info for points 1 to 3 of course, so users are encouraged to focus on all three.

Thoughts?

rapid pike
#

why not just integrate with TFT discord

#

I will LITERALLY never trust your user ratings.

#

No offense.

#

With TFT you get join dates going back years and people with thousands of vouches.

hollow knot
#

Could be a good idea to account for value of items used in the service. Since a user could do 100s of low cost trades, and then get 1 negative on multi-exalt service.

grave wren
#

Join dates and vouches also mean newer people are left in the dust a lot of the time so TFT isn't that optimal. Should be getting worse and worse for new people to gain rep

rapid pike
#

I actually don't care if newer people are left in the dust. That's high risk high reward. Those players should be forced to offer services at lower prices just like the vets did.

#

When the barrier to entry is a new discord account that's how it should be quite frankly.

#

Oh yikes, I wasn't aware of any drama.

#

I used them extensively in harvest

#

and had no issues

#

There's also the PoE trading discord which also has similar systems.

#

@earnest radish maybe use the other trade discord then?

hazy wigeon
#

@rapid pike thats what the other three vectors are for, and you should see that the rank of the user is pretty reflective of the other three scores, it is purely meant to be used as something to sort the results by, the other three vectors will also be visible

#

Also I already chatted with the TFT team about integration and they declined to expose their stuff, they require integrated apps to be TFT branded. I wanted to make my app open source such that anyone else could host their own instance of it (on that note, TFT absolutely can host an instance of my app and integrate it into their system, which we already chatted about and I plan to expose tooling to make it easy for them to do that)

#

Basically my goal is to have something like a group of friends, a private league community, etc could spin up their own instance of the app of their own for use within their circle, and then I will be hosting my own as well likely which I expect will be the "primary" one folks use, since theres a bit of effort required to host your own instance (you need to host a front end web server and a backend API connected to a DB, and probably come up with your own Ranking algorithm if you wish, though thats technically optional! Leaving everyones Rank value at null is valid and will still work)

#

@grave wren already accounted for in my ranking algorithm, Rank will probably be logarithmic in form, such that its easy to get your rank up to a decent value, but then it curves out. Theoretically only one user in the system should have a ranking of 100/100. It should, I believe, work out to be a bell curve I think, if I am reading these papers Ive got right.

long edge
#

it's impossible to fix trade anyways so making it (or a part of it) more accessible is always welcome

#

regardless, there will be people who game any system if its left without overseeing, and abuse can happen in any situation of power, so youre kinda forced to choose an option with least risk for yourself in your opinion

#

i had a hard time falling asleep after failing segmenting algorithms, so i kinda got the novel idea that instead of doing ocr i could request ggg to allow us to ctrl+c harvest crafts. what are the chances of that happening?

worthy cape
#

There's implementation-heavy solutions to services trading that avoid the "ha-ha your item is now mine" scenarios. WoW supposedly had the enchant-window, where you offer an item for someone to apply an effect to, but at no point do they have it in their possession.

long edge
#

yeah i meant it more like from a perspective of a tool dev

#

i dont think ggg relly wants you to trade services so theres that

worthy cape
#

Indeedily 🙂

#

A lot of the design of neo-Harvest is keeping some semblance of personal crafting power, while rendering bulk sales impossible.

#

Can you Ctrl-C anything that's not in an inventory?

#

(inventory being a more generic thing like a stash, inv, crafting box, 2D place)

#

Chat hovers, I guess.

#

There's no precedent for Ctrl-C things in the world, even items on the ground, right?

#

I'd estimate your chances to approximately zero ^_^

long edge
#

dont have poe open but i would imagine that pressing ctrl-c on an item on the ground would just open my inventory (bound to c), because i vaguely remember trying it at one point

#

that would mean that the chances of me successfully finishing this project are slightly higher than appealing for a change

#

thats nice

#

its hard to be stupid

worthy cape
#

Implementing real-world OCR is very educational, if nothing else.

long edge
#

every search query is chock full of research papers with formulae i dont understand, all i want is a "this is how and why you do it dum dum", not "heres a link to my doctorate"

#

yeah, image processing was interesting at least

#

i realised how i could do image comparison more efficiently than pixel by pixel

#

and last time i read on it (when i was trying to do an atlas overlay and gave up shortly after) it just sounded like some complicated mumbo jumbo because i hadnt tried processing anything myself

worthy cape
#

Ctrl-C on ground items, even with Key Pickup disabled, does nothing.

long edge
#

why cant we have nice things

worthy cape
#

Gah, now I can't remember which setting I used to have and none of them feels right 😄

long edge
#

what does key pickup even do

worthy cape
#

If enabled it won't pick items up unless you hold your highlight or pickup key (both default to Alt, I've rebound highlight to F).

#

Main game effect it has is that you can actually move around loot instead of accidentally picking shit up and dying.

#

Separation of binds is to avoid it showing all the irrelevant loot when pressing the button to pick things up.

long edge
#

hm, i think mine was disabled, as i usually hide everything if theres such a fight

#

default is z for that i think

worthy cape
#

Yep.

#

Fun side effect is that whenever I want to look at advanced mod descriptions I'm typing a stream of f into any available chat or filter box 😄

#

I use Z for visibility sometimes, and then forget to enable it for maps upon end <_<

long edge
#

yeah, unless i hear a DING

#

and then keep looking for nothing

wise condor
#

Heyo. An trade api question here. If I would like to get only items publised today, how would I do that? I see that there is a indexed key in the trade_filters, but however I try to set it, does not seem to change the response in any form. I can not find a comprehensive guide for the trade api anywhere

#

The api based on the trade site. The one from here https://www.pathofexile.com/api/trade/search/Ritual

#

❤️ u are the best, thank you very much. did not know that that's how u should set it

worthy cape
#

The "guide" tends to be "whatever the trade site does to itself" 🙂

wise condor
#

i tried with timestamp and everything

long edge
#

your best bet is doing the search manually and checking the network for query

wise condor
#

Yea, forgot about that. Guess i got to used to documentations lately

rain pasture
#

Postman 8 sucks butts, pass it on~

long edge
#

im thinking of not training my own tesseract data because thats a whole other bag of "poorly documented for schmucks like me" i dont want to get into now.

rather than that, i'm thinking of using the first found word (for example: Reforge, Augment, Randomise, Set, Add, ..) to then find similarities within a subset of harvest crafts.

am i underestimating the performance impact of my own such implementation and is it instead worth the effort to get a properly trained dataset? I am aware that my filtering is basically what an OCR might do in the first place, but if its not too expensive id rather go with it than needlessly overwork myself on a simple project

subtle gyro
#

@long edge just use Capture2Text. You’re making it too hard 😛

long edge
#

capture2text uses tesseract anyways

subtle gyro
#

Yes I’m sure it does, but my point is that if you’re having to consider training etc., you’re way in the weeds

#

The only remaining “challenge” is to either aggressively crop the image based on where you know the tooltip to be, or to figure out how to filter the text output to find what you care about

long edge
#

thats what i asked about didnt i tho

subtle gyro
#

Sorry not sure what you mean. I came in late to the discussion so apologies if I’ve misunderstood what you’re looking for

long edge
#

in any case from user perspective it doesnt feel good to grab even one more app, let alone two. nah im grateful for the suggestion, but it seems that running everything through c2t cli is not that different to a correctly set up tesseract

subtle gyro
#

Just trying to save you the time of training tesseract and reading dissertations

#

You can always distribute c2t with your application

long edge
#

yah, all good, i appreciate it. but i think id get the same result if i copied over the tesseract related files

#

otherwise it neatly grabs almost everything if correct image preprocessing settings are used

subtle gyro
#

Curious how c2t does? They are likely doing some serious image preprocessing

#

That’s the “hard” part

worthy cape
#

You can't leverage something like that the line spacing ought to be equal?

#

Or can you anchor it to the surrounding frame dimensions?

subtle gyro
#

You also don’t need the OCR output to be perfect. Even the simplest of string comparisons could identify which craft that is based on the output shown there. Something more advanced would be even better

long edge
subtle gyro
#

Yeah that’d work well

long edge
#

but sometimes small L might be construed as I or ] or )

worthy cape
#

The box around the count and the level indicator, and the whole frame could probably serve some purpose?

subtle gyro
#

I’m wondering if there’s some sort of lucene based solution here. Going to dig

long edge
#

see, i have no idea what lucene is

worthy cape
#

Some edit distance shenanigans?

long edge
#

@worthy cape im trying to make it work out of the box for any resolution

subtle gyro
#

Yeah basically just edit distance

long edge
#

i guess i could even out the lines somewhat by detecting which segmented parts have only 0s in them and based on that it could sometimes work

worthy cape
#

The art is of fixed aspect ratio and layout, so it's one thing that's constant.

subtle gyro
#

Char-by-char edit distance would likely have 100% accuracy

worthy cape
#

Lucene is a big-ass library for text search and related algorithms.

subtle gyro
#

Yeah you don’t need lucene

worthy cape
#

Edit distance (Levenshtein distance) computes how close a string is to another if you would make changes to get from one to the other.

long edge
#

sometimes because at that point if i have to be perfect i suppose id have to use some other complex algorithm because if you have "type" then its going to have less zeroed-out lines below it than "ziz"

worthy cape
#

Take your match, match it against all possible descriptions, likely to find a closest match.

long edge
#

would it work out of the box

#

or is some additional filtering like i mentioned preferred

subtle gyro
#

There’s realistically no way I see there being any ambiguity if you just use an edit distance implementation

#

Just steal one from SO in whatever language you’re using.

long edge
#

i agree with that and understand it somewhat, but isnt that what ocr does (depending on ocr implementation)?

#

usability is a big factor so if you ahve to wait 10 seconds to grab all crafts it doesnt feel good

subtle gyro
#

No, so what you are doing boils down to

#

Image -> text -> uniquely identify craft

worthy cape
#

OCR against a known set of strings vs. OCR to accurately identify arbitrary text in a font are thankfully differently scoped.

#

Elite Dangerous' market tool was scary as it had to find actual numbers for prices.

#

And possibly unknown commodities.

subtle gyro
#

OCR handles the first transformation (image -> text). A naive Edit distance comparator is what we’re proposing to handle the second (text -> uniquely identified craft)

long edge
#

ill give it a go then with the naive edit distance

subtle gyro
#

I’d go the edit distance route. It’d take you 2 minutes to implement I think.

long edge
#

so 2 hours for me, gotcha

worthy cape
#

I have no idea if there's OCR-by-example, I guess that's what the fancy modern training is about.

subtle gyro
#

Mucking with your OCR model is going to get weird

#

No need

long edge
#

mucking with it is pretty hard because documentation is lacklustre

#

people simply know how to do it

subtle gyro
#

In this case it’s hardcore not worth imo

#

What are you writing all of this in so far. Python? Or just calling tesseract from cli?

worthy cape
#

whispers to themselves: "I will not get baited into trying this. I will not get baited into trying this. I will not get baited into trying this."

long edge
#

thats the magic part, C#, im using a wrapper for opencv (opencvsharp) and a numpy port (numsharp)

#

so i have a whole set of problems on top of actual problems

subtle gyro
#

Great, c# is my primary language. Just a sec.

#

You probably want to use the Damerau-Levenshtein Distance Algorithm

worthy cape
#

I just got the worst idea. Determine the dimensions of the craft list items, load Fontin, draw the known strings matching how the game lays them out, and compare the images 😄

#

(don't do this)

long edge
#

apparently if i was doing it in python, id be able to set a OpenCv Mat format to a numpy as an NDArray dataset, but i couldnt get it to work (probably steps are wrong or smth, who knows) so I hacked in this. theres a bunch of overhead that i gave myself for choosing c# :)

long edge
subtle gyro
#

It’s the most flexible option. Beats hamming and plain leven for sure because it allows transpositions

#

Idk you can try hamming and plain leven and see which is most accurate. Ultimately I think all 3 will be near 100%

long edge
#

just grab binary projections and compare them to stored data

subtle gyro
#

Yup

#

But you’re already 90% of the way there with OCR

long edge
#

this is more fancy and could work going forward more easily tho

subtle gyro
#

Like I’ve said, my hunch is that you can afford to fuck it up real bad and still achieve 100% accuracy here

#

Which is why I led with “just ship it with c2t bundled”

long edge
#

after im done with the smoke break ill go ahead and give it a go, but my intentions after im done with everything is to get samples and run simulations based on various image settings and check results/performances

#

yeah, but honestly you don't need to do much processing to get pretty accurate results from tesseract out of the box

subtle gyro
#

you can get a solid variety of data from twitch streams too

#

Images to test with I mean

worthy cape
#

Is the UI the same for the horitcrafting station vs. in-grove?

long edge
#

yeah

subtle gyro
#

Only a few minor differences

long edge
#

i thought of asking people to dm me sshots

subtle gyro
#

You can probably find hella screenshots on Google images tbh

long edge
#

ah true

#

i forgot harvest isnt new

worthy cape
#

For size stability you could automate resizing PoE, taking a screenshot at every possible resolution 🙂

subtle gyro
#

I don’t think any of the craft strings have really changed

#

How are you handling cropping?

#

Or are you using openCV to hunt for the currently selected craft?

long edge
#

this is a testing case, but its a sample of how it could look ingame. my initial idea is to have hotkey to show overlay and select crafts you want to "convert to text"

#

similar to how APoET handles the delve grid i guess

subtle gyro
#

How long did that UI take you lol

#

I fucking hate .net GUI work

long edge
#

its abysmal, im just throwing controls on there whenever i need new ones, once im satisfied with everything and am sure that i can make it work 99% of the time, ill just create another project with cleaner code and deal with actual gui

#

i made this so i could test out various processing as i am completely new to everything in that field

subtle gyro
#

You may not even need one. Can’t you just pull the region under the current cursor position?

#

Even if they have the cursor obstructing a word it’s going to be nigh impossible to lose accuracy after comparing by edit distance, from what I can gather

long edge
#

ultimately id like to have extended functionality like formatting etc

#

not a simple ctrl+c get

subtle gyro
#

Ah

long edge
#

but perhaps its unneeded?

#

i wanted to write it so i can press F9, get crafts, input prices and paste in a channel

#

saves me 2min

subtle gyro
#

Tbh you could automate all of that besides price input

#

Oh you mean grab multiple crafts with a single key press

#

I see

long edge
#

yeah like the overlay here can read from 5 different crafts, but maybe you want to exclude 3

subtle gyro
#

Yeah I could see both being useful. Sometimes people will want to bulk list, sometimes it will just be a single craft

long edge
#

the lowest i got tesseract to process without horseg so far is ~0.5s

subtle gyro
#

Ooof

long edge
#

which is why i want to run simulations on tessdata_fast, tessdata_best, older version of tesseract with --oem 1 or whatever it is, various image processing things etc

#

and tesseract page processing settings itself

subtle gyro
#

Btw should we go to breakout? This is my first time ever participating here. No idea how it usually works

long edge
#

were not really offtopic nor is anyone discussing anything else here so i think were fine

subtle gyro
#

Word

long edge
#

additionally, if you have 10 crafts in horticrafting station, you cant show them all at once, but youd want to export them all at once, so it saves you that texteditor opening perhaps

#

if i include a overlay/gui like apoet has

#

but i reckon itd be a pain to make a nice overlay like that

subtle gyro
#

Wouldn’t you have to force the user to scroll for you too?

#

(Sometimes)

#

Btw re: speed I think if you get this up and running, optimization is certainly possible afterwards. Wouldn’t kill yourself over it prematurely

long edge
#

the user is in control i suppose, wouldnt want to automate everything, even this way im probably on the edge of ToS

subtle gyro
#

Were it my project, I think I’d focus on single crafts just to get it working before handling bulk. That’s just me trying to KISS though

#

Nah I don’t think you’re anywhere near the ToS line.

#

OCR has been a thing in the PoE tooling community for years and years.

long edge
#

im sure im pretty safe as long as i dont interact with the game with the data

#

but still you never know

subtle gyro
#

Even if you interact, you’re still fine as long as the user is creating inputs for each action

frank drift
#

the game is overrun by bots again, I think GGG has higher priorities

long edge
#

from usability perspective it also makes sense to make the user in control in my opinion, similarly to how apoet does (or used to do) the query for you automatically and i certainly dont want it to do it for me

#

automating extracting creates another set of problems if someone wants to (for whatever reason) export from various non-horticrafting stations. when do you overwrite, when do you add to current list

#

its simple to create a list of saved listings, but id rather not overcomplicate things

#

in any case, creating the boxes for cropping could be done on a predetermined resolution case, with an optional detecting algorithm for niche cases, but that'd be after everything is said and done

long edge
#

how hard would it be to get the "distance" and probability between an item x and another item y by lets say utilising only harvest crafts

#

like you ctrl+c an item, ping ping ping its x amount of crafts

#

that way i could choose my desired outcomes and play the game with even my brain

worthy cape
#

A major problem with everything Ctrl-C is that you do not have affix information, just baked stats.

long edge
#

ah, figures

worthy cape
#

(it doesn't export advanced mod descriptions-type data, so you don't have tags nor do you have the exact affixes)

long edge
#

so you'd have to read them off the image

#

bollocks

worthy cape
#

I think I mentioned this before, but reading an item tooltip is more painful as it's partially transparent.

long edge
#

yeah, and it has different fonts if i remember correctly

#

or at least italics/fontsizes etc

#

probably still fontino

worthy cape
#

Just look at the mess leaking through there, unless you put it just right in an empty stash tab.

#

Heh, I hadn't noticed, but the separators in the popup are coloured according to rarity.

long edge
#

so you'd have to have an affix calculator to process the item first which is what poeapp was complaining about

#

meh, it was a nice idea

static dust
#

does an affix calculator exist out in the open?

#

(I'm asking, 'cause I wrote one last expansion)

long edge
#

perhaps i was a bit out of order with the ~0.5s timings

#

i made step by step stopwatches that exclude creating/showing visuals

#

so either its much more efficient without any optimization or (more probably) im a retardo that doesnt know how to measure performance. or both.
nvm string outputStr = result.GetText(); where Page result = tessInstance.Process(bmap, pageSeg); is the culprit
nvm it's probably waiting for the ocr to do it's stuff before it can return the text

worthy cape
#

You and your silly region 🙂

long edge
worthy cape
#

Always fun to try to tell if a spelling is with a capital or miniscule letter.

#

If you're wondering, the crafts seem to all be outlined in HarvestCraftOptions.dat, but the spec has changed since last time.

long edge
#

i pulled them and cleaned from poedb

worthy cape
#

I guess that they might be updated as there's none that mention life-force in the list.

long edge
#

ideally id be pulling it (on user request) from repoe or something but we can see how that'd work out

worthy cape
#

Needs someone sorting out PyPoE's spec first then, assumedly.

long edge
#

not sure how to automatize it to remove myself from the equation

#

yeah, all the best to people who work on that, but thats my goto source for grabbing anything up to date that's properly formated

frigid nova
#

fyi - an affix calculator can be a bit of a rabbit hole for affixes that can show up on items but not spawn naturally on them, like delve and incursion mods. These mods will not be linked to the items via RePoE

#

In general for an item though, you could just string search against the bank of all stat translations, which does exist in ggpk (after removing numbers)

long edge
#

ill leave that to the big boys and play with my legos over here

#

i went down that path when i wanted to do something similar (synthesis merge calculator/predictor) and quickly gave up

#

(it'd be nice to have it as a library tho, hint hint)

frigid nova
#

At the very least it has CUDA support

long edge
#

i switched back to a fast set of trainingdata and now i get below .1second runtime on that. i initially avoided it because i had no idea of the efficiency of edit distance for this use case

#

its python only :(

frigid nova
#

Oh apologies, missed that detail about your project

#

yeah most OCR tooling will be python-centric

long edge
#

thanks for the link, but still its way above my belt and this project. i noticed that most machine learning things are in python (hard to miss really)

subtle gyro
#

Sorry disappeared for a while. Glad to see it’s working well.

subtle gyro
long edge
#

yeah json/txt is a definite, but im thinking of cases where in the future ill inevitably not be keeping it up to date myself. i guess a simple info would suffice for those 3 people whod be using it anyways

worthy cape
#

My stuff relies on having access to a game folder, but I also use actual assets. I still have the DAT spec as a JSON file, so that someone can update it without having to touch the executable.

#

Putting the relevant descs outside is nice in that way.

worthy cape
#

(I've got the scale of nodes a bit off compared to actual tooling and haven't merged stage input/output nodes, but this is starting to be readable)

subtle gyro
#

@worthy cape what is this? Some kind of texture processing?

worthy cape
#

@subtle gyro It's an "fxgraph" from one of the "mat" materials.

#

In this particular case: Metadata/Effects/Microtransactions/Spells/raise_spectre_celestial/graphs/CelestialMaterial_Projective.fxgraph

#

Materials in PoE have a bunch of textures and constants associated, a main effect graph and several graph instances. These hook into the render pipeline to supply texturing, UV animation, brightening, and other VFX.

#

The CelestialMaterial ones are for the slightly animated background you see through celestial MTX effects and also in the Celestial Nebula background (actually groundtiles).

#

Nodes in the graph correspond to shader code fragments stored elsewhere in the pack which are used to generate regular boring vertex/pixel shaders.

#

These graphs are exposed to and edited by artists to do VFX and twiddle the look of things.

#

I'm treading water in the deep end of the PoE pool 😄

simple ravine
#

just break it down into small units, TDD it and hope for the best

long edge
#

as long as we get closer to 3d printing its fine

oak estuary
#

How do you pull tags for item bases from the ggpk? Looking in BaseItemTypes.dat the Tags column doesn't have the complete list. Is there a reference to the abstract item type somewhere that I should be looking at?

velvet fog
oak estuary
worthy cape
#

Summaries and affinities are ❤️

slate field
#

does anyone happen to know offhand where exilence next (https://github.com/viktorgullmark/exilence-next/) writes its snapshots? i've rummaged around a bit in the source but nothing leaps out at me, and there seems to be little information in any docs

worthy cape
#

Worst case, run it with Process Monitor and look for CreateFile?

slate field
#

yeah, i hoped to avoid anything too involved cus the data i want to edit its more of a minor annoyance than anything. was hoping someone might know offhand

worthy cape
#

C:\Users\Lars\AppData\Roaming\exilence-next-app

#

Whole bunch of web:y junk in there like IndexedDB, Local Storage, databases.

slate field
#

hey wait a second, this machine doesn't have a user named lars

#

jk, thanks for your assistance

#

much appreciated

civic crane
#

how much time it will take to run N requests against rate limited api (assuming requests are fired as soon as possible)? has someone already done this algorithm?

civic crane
subtle gyro
#

Oh, I thought you meant in general. Let me loot at the specific rate limiting in place in this API.

#

Which API? Trade?

civic crane
#

yep, sliding window rate limit (in pinned posts)

subtle gyro
#

Ok, so 60:60:60,200:120:900

#

Maybe I’m dumb, but I don’t see how it is possible to hit 200 requests in 120 seconds given the first rule that limits you to 60 requests in 60 seconds.

#

Regardless, it looks like the formula I wrote above works fine. You cannot exceed a rate of 1 req/s. Your ETA is N / 1

#

Ah, I guess the second rule is meant to punish people who continue to pound the API after hitting the first rate limit.

#

Doesn’t change the answer ofc.

#

Yeah I’m stupid it’s 1 req/s lol not 60. Edited.

#

@polar island still intent on bringing the app down?

civic crane
#
n: 15, window: 60s
n: 30, window: 300s```
21 request will be completed in 70s
subtle gyro
hazy fiber
#

his is a thoretical 5:10:X,15:60:Y where doesnt matter what timeouts are as he doesnt want to hit them

subtle gyro
#

I see

hazy fiber
#

and then asking how fast for 21

subtle gyro
#

21 / min(5/10, 15/60) = 84s

hazy fiber
#

ahh but you dont need to trigger the second one twice

#

so you only need to stop at 15, then the next 60s period you can request another 5, and 5, and 1

subtle gyro
#

Yeah, true.

#

So it’s ~71 seconds.

#

I see why you asked for an algorithm now.

#

You can do it with dynamic programming pretty easily

long edge
#

whyd you need an algorithm tho, dont you get a state response?

subtle gyro
#

He’s asking for his own purposes not his code’s, from what I gather. Just wants to know how long something will take.

long edge
#

ah, fair enough

hazy fiber
#

for W:X:?,Y:Z:? assuming W<Y and X<Z and W/X >= Y/Z it should be somthing along the lines of floor(N/Y) * Z + floor((N - floor(Y/N) * Y)/W * X)

#

right?

subtle gyro
#

That’s not a general solution but works here.

#

It’s a solution for any inputs that require 1 Z period followed by multiple X periods.

hazy fiber
#

well it would just be ordered list where you dont care about timeouts, and it wouldnt make sense to have limits that when ordered dont follow the above right?

subtle gyro
#

Wait nvm I’m dumb again?

#

Yes

#

Yeah I guess that works fine, but now handle an arbitrary number of rules and you’re fked

#

You’d have to use a summation over the rules

#

With recursion too

hazy fiber
#

eh shouldnt be that hard with a recursive function

#

wont have a nice formula but should be a simple function

function limitThingy(sum, N, limits):
  if limits.size() < 1:
    return sum
  return limitThingy(sum + floor(N/limits[-1][0]) * limits[-1][1], N - floor(N/limits[-1][0]) * limits[-1][0], limits[:-1])
``` mesh of languages but you get the idea
where limits is an ordered array 2d, you grab the last element to do math, reduce N by the remaining requests, and then you pass down the entire array but the last element
#

reducing the number of rules by 1 each time

subtle gyro
#

I don’t think this handles N < W

#

Eg n=4 for our previous example

#

N=4 takes 0 seconds (instant requests)

hazy fiber
#

you could send them all instantly and thus they would add "0" time, based on @civic crane "compleated in 70 seconds"

subtle gyro
#

There needs to be some comparison between each rule and N at each step

hazy fiber
#

if N is less then the size of limits is 0, so add a base case for when the array is empty

#

I didnt have a base case so it woulda gone on forever anyway, good thing I didnt try and run my fake code anyway

#

@civic crane the formula and the pseudo code function work for you or seen any issues?

civic crane
hazy fiber
#

oh btw the current ratelimit doesnt exactly work with mine becouse its a nonsensical limit (200/120 < 60/60) as youll always hit the 60:60:60 before you hit the 200:120:900

long edge
#

isnt that only an example or something tho?

#

as in, when i was doing a project when conq rolled around the limits were closer to what im currently seeing by inspecting ggg trade

pseudo ocean
#

nice equations

glossy ibex
#

poemap.live is using oauth to authenticate the user, does anyone know if there is any public documentation on this? Mainly if its possible to register other applications, if there is sandbox instance and if there are other apis available with that token?

golden bane
#

Oauth will be public soon™️

#

(Probably in a couple of weeks/months)

glossy ibex
#

Great thanks!

golden bane
#

IIRC it's already done or close to done, but bottlenecked by legal issues

velvet fog
#

or seasons

simple ravine
#

or years

#

(not Novynn's fault tho)

glossy ibex
#

well, they are producing a lot of content with a relatively small team, so I guess something like oauth might not be high on the priority list

simple ravine
#

I mean it's been in development for 2 years heh

glossy ibex
#

i think its nice that there is at least some sign of this.

long edge
#

yeah i mean its only 2021

simple ravine
#

sorry, 3 years

subtle gyro
#

legal issues?

#

You can try emailing Rory for access

long edge
glossy ibex
#

@subtle gyro thanks, if I get a promising prototype done i might try. No reason to bother people if its just an idea right now 😄

long edge
#

i had an idea which relied on oauth giving stash/char info

#

so i prototyped and then was forced to hack alternatives once i realised i based it on an illusion

velvet fog
#

Waiting for blizzcon on February 19 to push poe to perform something

long edge
#

perhaps another hasty announcement

simple ravine
#

the problem back in 2018 when discussing this was that the IP based throttle was in effect, meaning that you couldn't create an application that relied on users' data

#

you'd effectively get throttled very quickly if your application got used by more than a couple of users

#

that was a while ago though, so hopefully that'll be addressed in a good way

grave wren
#

how bad is the river atm? still getting pinged after selling a woke orb half an hour ago

wind garden
#

Ug, trade always breaks on the weekend

#

Constantly getting whispers for things sold over 30 min ago

frank drift
#

if you think it's bad now wait till tomorrow

primal schooner
#

Anybody here interested in dev'ing a super-simple overlay that ties to a website I'm working on? PM me

subtle gyro
#

Ah, so not legal trouble. They are waiting on their legal team to update their ToS.