#tooldev-general

1 messages · Page 100 of 1

carmine merlin
#

but I have no idea how to access that file type

worthy cape
#

Format seems quite regular, and there's what seems to be quite likely floating point numbers and smallish integers in it, but no idea about the structure.

#

Now sleep 🙂

#

Initial count of u16, then the rest of the file is that times 884 bytes. Apart from a prelude the values are interspersed u32 and f32

#

Might be misremembering the exact sizes, left the computer already 🙂

worthy cape
#

There... the .pjd format has two leading u16 counts, A and B. There's A 6-byte chunks immediately following. Then there's B 8-byte chunks where the first four bytes seem to be floats between 0.0 and almost 2000.0, seems to be an increasing sequence. The other four bytes are unknown but the last two seem to always be 00 00.

#

@carmine merlin If this is of any help, have fun 😛

#

@velvet fog If you care about this file, the above might be useful information.

velvet fog
#

@worthy cape ```
u16 JewelCounts
u16 DistanceCounts
struct Jewel[JewelCounts]
u16 PassiveSkillGraphId
u16 DistanceOffset
u16 DistanceCounts
struct Distance[DistanceCounts]
float32 Distance
u16 PassiveSkillGraphId
u16 nullInt

worthy cape
#

Ah, you’ve got it all decoded. Nice!

frigid nova
#

Has anyone in here worked a lot with stat_translations?

rugged pecan
#

since im not sure where to post this how does one add tranquility in pob?

carmine merlin
#

Add this "Allocates Tranquility" to your amulet

rugged pecan
#

its not working

#

i dont do it under add modifier right?

carmine merlin
plush sequoia
#

hi all. I'm getting an error when trying to export divination card data. Here's what I did 2 leagues ago and it worked:

pypoe_exporter wiki items item by_filter -wr -ft-c "Divination Card" -d "./exported_data/cards"

But now I get KeyError: 'enchanted' Python error.

rugged pecan
#

mk ty

carmine merlin
#

Also, @rugged pecan, the "other-questions" page is a better place to ask for help like this fyi

plush sequoia
#

Meanwhile other exports work. For example this works fine:

pypoe_exporter wiki items item by_filter -wr -ft-c "Active Skill Gems" "Support Skill Gems" -d "./exported_data/gems"

rugged pecan
#

ah ok i wasnt sure being pob is a 3rd party tool

simple ravine
#

this channel is more for the development of those third party tools you'll be using

#

@frigid nova got some c# stuff for that, not sure if that'll help u

#

it's a while ago since i messed around with them, so my recollection isn't fresh

plush sequoia
frigid nova
#

@simple ravine yeah there are just some stat translation entries which look like bugs to me and was looking for independent confirmation

tender burrow
#

Anyone got link to the website where you can input anoitment oils and it tells you what and how?

cosmic saffron
void blade
#

Since apparently MercuryTrade is getting discontinued, is there a good alternative?

violet path
void blade
#

Alright, thanks I'll check them out

inland kestrel
#

I hadn't seen that one before, @violet path . Is there a technical reason why I see apps like this saying "supports poe.trade and poeapp.com" but not the official trade website?

violet path
#

i don't think so, works fine with any whispers i get from any site

inland kestrel
#

Alright, thanks

mortal bone
#

They all pretty much use the same format for buy messages

simple ravine
#

I think poeapp sometimes(?) uses a shorter form, like "wtb your ..." instead of the more verbose "Hi, I'd like to buy your ..."

carmine merlin
#

Is there an easy way to source the price/average price of an item from a specific trade search, for use in something like google sheets?

rose sapphire
#

pyside2 v5.14.0 repaired PyPoe for python 3.8.
no more

TypeError: 'Shiboken.ObjectType' object is not iterable
pseudo ocean
#

can anyone tell me why my characters are grayed out? I don't have my characters set to private.

tiny cargo
#

Only the selected one is highlighted white

pseudo ocean
#

oh ok. I thought to import I just had to select and press done

worthy cape
#

\o/

rose sapphire
#

@golden bane but what was changed there except README.md?

golden bane
#

Working on the rest now 😁

worthy cape
#

I had so looked forward to celebrating the end of Python 2 on New Year's...

rose sapphire
worthy cape
#

That site needs to revise 🙂

golden bane
#

There are a lot of Python 2 remnants in PyPoE btw

#

Stuff like ```python
class Stuff(object):

#

PySide2 bindings are really bad tbh, .connect() or .emit() methods for example have no matching signatures, so they are linted as errors

#

And signal/slot is like the main selling point of Qt besides cross-platform

#

Widget alignment via Flag1 | Flag2 is deprecated in Python 3.8, but because these alignment flag classes have no __index__(), there is nothing you can really do about it without modifying PySide2 itself

worthy cape
#

Got my arse in gear and moved my DAT spec codegen from a pile of printf into Handlebars templates. So much nicer, even if the result looks like whitespace hell.

#

Nothing a bit of rustfmt can't fix 🙂

long edge
#

@carmine merlin are you perhaps looking for something along the lines of what trademacro does?

golden bane
#

f-strings (handlebars formatting) are a good fit for Python, as the whitespace is meaningful anyways

#

And after some optimizations they're the fastest formatting option

worthy cape
#

What's up with trade nowadays, river being silly or something? I super love getting whispers for 50 min after I sold something.

simple ravine
#

thisisfine🔥

velvet fog
#

where can I found icons listed in MinimapIcons.dat?

worthy cape
#

No idea about the location, but the Id string doesn't typically exist anywhere else in the GGPK, at least not in uncompressed data.
Art\2DArt\minimap\player.png has one version of the images, but I can't find any mapping for it.

#

Some .ot files reference the id, but nothing more.

zenith notch
#

hey guys... how could i see my items from unique tab in procurement?

worthy cape
#

Some kinds of tabs are not retrievable, like the Map stash tab. The Unique one may be similar in function.

fast citrus
hazy fog
#

by known issue they mean 'fuck programming that it's not worth the effort'

lavish compass
#

Is there a API or so to send chat messages or do tools like mercury trade or trade companion just focus the game and send enter, message, enter?

grave wren
#

second part of your message is how they do it

lavish compass
#

@grave wren Ah okay, I suspected this

frigid nova
#

It's pretty wild that the delve fossil mods on helmets are supposed to give minus resistance, which shows up everywhere (including poedb and the official trade website), but do not show up on the items nor do they give the minus resistance in game.

    "stats": [
      {
        "id": "local_display_nearby_enemy_cold_damage_resistance_%",
        "max": -9,
        "min": -9
      },
      {
        "id": "base_cold_damage_resistance_%",
        "max": -9,
        "min": -9
      }
fast citrus
#

What do you mean by not show up on the item?

#

I've definitely seen it during metamorph

frigid nova
#

The mod (in the ggpk) grants a stat giving -9% cold resistance to yourself

violet path
#

it also isn't some hidden effect that works; there's no change to your res with the helmet equipped and functioning. just wild

deft jolt
#

+1

#

Maintaining a list of base types and matching item names against it is quite a bit of work

broken cloud
#

+1 for this as well... I was very sad when "Vaal Temple Map" became an ambiguous identifier

grave wren
simple ravine
#

h4x0r

grave wren
#

was checking out various item filter addons for VSCode

#

the old one i have still has the nicest autocomplete for me

#

but it's outdated for a year now :<

simple ravine
#

ahh, i think neversink put my name in the "credits" in the filter

grave wren
golden bane
#

@worthy cape Do you know the compression level the .dds inside content.ggpk compressed with brotli have?

worthy cape
#

Nope. I don't think there's anything in the bitstream that indicates it.

#

I haven't looked at what DXT formats the files have either.

golden bane
#

Thanks for the quick reply, I was just wondering how it would fare against zstd

#

The likely much higher decompression speed would help performance I think

worthy cape
#

Shouldn't be impossible to run some trials, I guess.

golden bane
worthy cape
#

I know I had to patch dds-rs a bit to make it load them successfully, but I don't remember why.

#

They're regular boring DDS, just a library bug.

gritty olive
#

PoB Fork MoodSpy

bold spire
#

So, I wanted to automatically spam ctrl+c on cursor movement within areas that could be stash or inventory to get the clipboard data for the items that might be below the cursor. I asked ggg support if that'd be okay, given that although it is fully automated, it doesn't do anything serverside afaik, and their reply was that they will not comment on whether or not it would be allowed.

So now I mostly just want to know if, based on what's already out there and the rules that are known among third party devs, there's a reasonable chance that using this could get my account banned or the like.

jade adder
#

I think you have your answer already to be honest, but I can say that sounds vaguely too invasive and automated to not be put on someone’s radar

gritty olive
#

Too far automated, but why do you want to do it

golden bane
#

Even if it would be allowed, it seems more likely to get banned as a result of a false positive than other macros

gritty olive
#

I wonder if this guardian build will stay at the top after a week https://poe.technology/poebuddy/ apparently people are already using the PoB fork though, first and second are exported from it

keen spruce
#

im trying to install the poe net worth thing but i cant find the client.txt file

cosmic saffron
#

it's the same directory your poe exe file is in /logs

keen spruce
worthy cape
#

That's your Documents folder.

#

You want the directory in your steam library/common/ or wherever you installed your standalone client.

#

If Steam, open Properties on the game, Local Files -> Browse Local Files...

keen spruce
#

ye i found it

worthy cape
#

@golden bane Interestingly enough, there's quite a few DDS files that are not compressed with Brotli, many are 1-2 megs in size.

swift anchor
#

I downloaded Poe Trade Companion , it works and everything but it doesnt show up in game... i see it on my desktop though, anyone know a fix?

#

Ive tried my game windowed and fullscreen and it still wont show up

mortal bone
#

@swift anchor this isn't really a tech support channel. This is for tool development discussions

swift anchor
#

lol

#

It works now anyway.... can i get some Tech Support?? hahaha

worthy cape
#

Ran a survey across the DDS files in the GGPK, with zstd and Brotli.

Art/2DArt/Atlas/AtlasBlank.dds|zstd:maximum|4632436
Art/2DArt/Atlas/AtlasBlank.dds|ggg|4674379
Art/2DArt/Atlas/AtlasBlank.dds|zstd:level9|4712147
Art/2DArt/Atlas/AtlasBlank.dds|zstd:level8|4737007
Art/2DArt/Atlas/AtlasBlank.dds|zstd:level7|4738570
Art/2DArt/Atlas/AtlasBlank.dds|zstd:level6|4748310
Art/2DArt/Atlas/AtlasBlank.dds|zstd:level5|4781295
Art/2DArt/Atlas/AtlasBlank.dds|zstd:level4|4949236
Art/2DArt/Atlas/AtlasBlank.dds|zstd:level3|5088682
Art/2DArt/Atlas/AtlasBlank.dds|zstd:level2|5299094
Art/2DArt/Atlas/AtlasBlank.dds|zstd:level1|5309727
Art/2DArt/Atlas/AtlasBlank.dds|raw|6291656
#

Sadly I hecked up and accidentally ran zstd instead of brotli, so I had to throw out half my results 😄

#

I need to store the compression/decompression times anyway, so not the biggest loss.

#

Levels are whatever the smush Rust library considers quality levels, so may not map directly to the underlying compressor.

golden bane
#

That's impressive compression from GGG

#

Thanks for running the survey!

worthy cape
#

I'll see if I can complete some Brotli encodes in finite time.

#

Compression in the GGPK for that file seems to be somewhere between Brotli q4 and q5.

#

Checked the source, the quality levels in my DB are the literal ones that a zstd or brotli compressor would take.

golden bane
#

I thought brotli would perform worse in every aspect

#

Still, zstd -9 seems to have 2-3x the decompression speed at a lower memory footprint and a slightly higher cost for compression compared to GGG's

#

(at almost equal file size)

worthy cape
#

Single decompression of warm data, so there might be quite a bit of slop in the figures.

#

Timings include setting up an encoder and decoder, so if you can up-front that I guess it helps.

golden bane
#

The results are still expressive, especially for bigger files. Thanks again for testing!

gritty olive
#

i keep meaning to make an api for that thing

worthy cape
#

Here's the sqlite3 DB of measurements, levels 1/5/9 of brotli/zstd

#

Tests run in parallel on a 8700K with the GGPK on a RAM-disk.

steep latch
#

where do I find the latest official gems.json?

mortal bone
#

Is that what you mean by "official"?

pseudo ocean
#

i can produce them at a higher rate

#

im afraid

#

editing the good man's mention out

mortal bone
#

He asked for the gems.json

#

What do you mean?

pseudo ocean
#

i mean to ask what that is

#

this gems.json file

#

if you could kindly explain

golden bane
#

If you need to ask, you most likely do not need to know

pseudo ocean
#

should i trust your judgement then

mortal bone
#

It is a json file that contains gem definitions

pseudo ocean
#

THATS AMAZING

#

thank you kindly and bless your soul

#

@golden baneyour judgement was wrong by the way, i find this incredibly helpful in terms of game immersion

jade adder
#

@pseudo ocean If you continue trolling your ability to participate will be removed.

pseudo ocean
#

@jade adderyou misunderstand me

#
  1. i am not trolling
  2. i do not care for my ability to be in vigor
#

do what you must

#

which reminds me, in case my privileges are revoked, i wish you a happy new year

steep latch
#

well, I haven't messed with it in awhile, but in 3.5 there was an official gems.json. is there no longer?

#

and I think you could get it from the poe forums, if not, possibly from the wiki, but I'm pretty sure it was on the poe site itself

mortal bone
#

Hmm, I don't think so

#

Pretty much any sort of json from the ggpk has been maintained by the community. The gems.json file I liked is directly generated from the ggpk

frigid nova
#

It should be noted that this gem information is also reflected also on poedb and the wiki - for those looking for gem info not in a json format.

inland kestrel
#

Is there a list of outdoor maps anywhere? I didn't see it in the repoe data files

long edge
#

i know that poedb has house icon for indoor maps

inland kestrel
#

oh it does? interesting

#

I don't see any house icons

#

podb has them tagged but I didn't know if there was a deadlisting

#

alright, found what i needed - thank you salty

polar oriole
#

any you dudes run wireshark on this game yet?

worthy cape
#

@polar oriole Very much against ToS, as you need memory reading for keys.

#

Also quite uninteresting for tool-dev in general.

polar oriole
#

i am looking if chat is raw text

sacred tree
#

as in the client log?

worthy cape
#

All I know is "shit's encrypted". No further interest.

sacred tree
#

they have some pretty big encryption tbh

polar oriole
#

chat might not be

sacred tree
#

why do you need to know that?

polar oriole
#

workin on a tool

sacred tree
#

i figured that lol

worthy cape
#

A wild guess would be trade assistance for Kakao etc.

polar oriole
#

nope

sacred tree
#

that would be nice actually

#

but probably break TOS

polar oriole
#

fixin fuckin spam bots i want them gone from chat

worthy cape
#

Fairly sure this has been up in the past, with the conclusion that you need keys.

polar oriole
#

im searching some packets right now ill see

sacred tree
#

gl with that

#

any program you'll end up making that sniffs packets/reads memory will be against ToS i'm fairly certain

violet path
#

iirc there was a blog post a little while ago about sniffing poe packets

#

might want to look that up if you can

polar oriole
#

i dont really care its for educational puroses

#

im sure tencent would be super bummed if i removed spambots from their game thatd be tragic

#

we made a script that runs /clear in chat when they type but thats a shit method

sacred tree
#

I also have a question of my own.

violet path
#

^that was the one i had in mind

sacred tree
#

I am utilizing the trade api endpoint https://www.pathofexile.com/api/trade/search/Standard as an example.

I'm trying to figure out exactly how to add different filters to the json body. For example, If i wanted to see if an item has shaper influence, where in the body of the request do I actually put that?

#

i've tried a few places and keep getting 400 errors

polar oriole
#

thx djriff

#

this still scanning packets

sacred tree
#

i'm still not sure why you can't just read the client.txt

dusky charm
#

is mercury trade no longer working?

sacred tree
#

it works alright

#

i've been using TraderForPoe this league.

#

unless you were using the overlay stuff, which still works

polar oriole
#

editing client.txt doesnt reflect in chat window

sacred tree
#

ohhhh

#

yeah what you want to do is definitely against the ToS

polar oriole
#

im sure it is

dusky charm
#

is there any trader that is still being updated?

#

i see this traderforpoe last update was last 2018

sacred tree
#

still works fine

polar oriole
#

trade companion is very outdated but still works

sacred tree
#

most of the time those don't need updates unless something major changes

polar oriole
#

trade companion doesnt work 100% right on ultrawide but otherwise its ok

#

and it doesnt grab asian text

sacred tree
#

there's a reason for that

#

that's pretty neat

dusky charm
#

@sacred tree

sacred tree
#

yes

dusky charm
#

how do i install tradeforpoe?

#

it says just run exe but i dont see an exe

sacred tree
#

sec

dusky charm
sacred tree
#

you just cloned it i'm guessing

#

which filter does influence need to go under when searching an item with the trade api? I've tried misc_filters, but it keeps tossing an error at me.

dusky charm
#

i just extracted it

sacred tree
#

yeah, that would require you to build it into an exe yourself

#

if you go to the link i posted, there's an exe you can download

polar oriole
#

go to releases there is an exe hades

#

it says in main description its 1 paragraph down says download here

sacred tree
#

i also linked it above

worthy cape
#

Please note that this channel is not tech support, but for developing sweet tools.

sacred tree
#

notes down

#

zao any ideas where it's suppose to go?

dusky charm
#

did i link the client to the right file

#

i didnt see any txt and this one seems to be ab out right

sacred tree
#

taking this to DM

polar oriole
#

what qualifies yall for a tool dev discord role

worthy cape
#

@polar oriole Having shipped or are working on some cool tool.

polar oriole
#

how cool does it have to be

worthy cape
#

In my case, file format viewer/library in Rust, and reversing a lot of the asset file formats.

#

Others made trade sites or the big tools you see.

polar oriole
#

sorry if we're not cool enough

violet path
#

mine is a google sheet so you should be fine

sacred tree
#

this influence thing is driving me mad

#

i don't understand why it's not working

#

veiled, corrupted, enchanted, mirrored, everything else works fine

#

but influences which should be under misc_filters doesn't work.

violet path
#

they work for me, if we're talking about the same thing

sacred tree
#

i'm attempting to search it using the API

polar oriole
#

who do I bat my eyelashes at to be graced with dev role?

sacred tree
#

@violet path i ❤️ you so much.

hexed mesa
#

@polar oriole pinned message

fickle yew
#

@timid hemlock PoB doesn't seem to like The Hungry Loop with a Barrage skill. Probably after there's both an active and a support gem.

timid hemlock
#

Oooh :S

fickle yew
long edge
#

@sacred tree the best thing to do imho is to make a search on the website and check the network inspector

umbral mortar
#

Anyone working on POB here? It gives me coil whine on gpu, is that something that I can fix?

simple ravine
#

That has nothing to do with POB.Additionally, coil whines are many times not dangerous to your card, but sometimes an indicator of a card starting to fail

umbral mortar
#

It's the only program that does that, mostly in the passive view.

#

Like it is rendering something uncapped

simple ravine
#

Yet it uses quite high-level opengl(?) APIs to render its stuff.

umbral mortar
#

Is it able to cap or limit it then?

simple ravine
#

nvidia or amd?

umbral mortar
#

Nvidia

#

A 1080

simple ravine
#

tried riva tuner to cap it?

#

also check ur nvidia settings

umbral mortar
#

Tried using profile inspector etc

long edge
#

well if you never pushed your gpu to it's limits

umbral mortar
#

Setting global profiles

simple ravine
#

either way, it think there's a more wider problem to your card

long edge
#

coil whine is understandable, run a benchmark. google is your friend

#

this isn't really the channel for that unfortunately

simple ravine
#

is it very noisy, or do you have the case open?

umbral mortar
#

Yeah I know that I won't be able to get rid of that it's just that a frame cap would fix the issue

simple ravine
#

try riva tuner then

umbral mortar
#

Very loud, it's at high framerates only and not power draw

simple ravine
#

high framerates = higher power draw

umbral mortar
#

There is no innate frame limit in opengl

#

So it has to be custom made so using software to cap it wouldn't help?

fickle yew
#

Is there any reference on what endpoints the OAuth solution provides access to? Private stash tabs and loot filters at least I assume..

long edge
#

if you believe this is an issue related to pob, ping OpenArl LocalIdentity - not sure which part of the code is responsible for it. your personal stopgap measure might be downclocking your card or limiting it via any software, example given already as rivatuner for limiting

simple ravine
#

rasmus, it's based on scope

#

i think i was one of the first to beta test it, and there were 3 scopes

#

let me check convo history with novynn

#

rasmus: profile, characters, stashes

long edge
#

doesnt give stash

simple ravine
#

at that point in time, but it was March 2018

long edge
#

at least not in the current implementation

fickle yew
#

I thought poemap.live used it? It uses public tabs?

simple ravine
#

I think I got stashes to work with that

long edge
#

The OAuth implementation does not allow for player stash access at this time. 17.12.2019

#

@fickle yew afaik it uses it only to authorize your account and grab character

#

to prevent abuse

fickle yew
#

Ok

sacred tree
#

@long edge that's what I ended up doing. Didnt realize I could do that lol

lavish compass
#

I'm looking for the API to retrieve my private map tab content, but I can only find queries for public stash tabs. Can you give me a hint where to look?

long edge
#

map tab is not implemented

umbral mortar
#

Maybe I will post as issue on github

#

@timid hemlock

lavish compass
#

@long edge really? oh god 😦 I wanted to quickly find out for which atlas area I have three maps so that I can spawn the conqueror...

#

I already coded the atlas part, but I did not think that the map stash is not supported.... that's a bummer...

long edge
#

i stopped the project for now because anything other than near realtime is much too slow

lavish compass
#

@long edge how does the ahk script find out which maps I own?

fickle yew
#

The extension searches trade with account name?

long edge
#

it queries trade, so you need to have the map tabs set to public

lavish compass
#

ah okay

long edge
#

yeah @fickle yew

fickle yew
#

Makes sense

lavish compass
#

yeah sounds like a workaround 😄

#

but good idea

long edge
#

it sounded workable on paper

#

but once i made everything work and went to try it out during playtime

#

i realised how much of a hassle it actually is

simple ravine
#

you also get a lot of WTB whispers, even if u set the price ridiculously high

lavish compass
#

@long edge what's the exact hassle? trade api too slow?

long edge
#

yeah, thats the case for any project that wants to take map tab into account

#

@lavish compass querying takes too long because of query limits

#

16 per 6 is the limit i think

#

it takes ~190 seconds to get all tier data, but even if you cut it down to within two tiers its still considerable for higher tiers

#

might work for whatever you have in mind, but for me personally during playtime anything above a few seconds is unacceptable

lavish compass
#

@long edge hmmmm the problem I want to solve is "In which region can I easily spawn a conqueror with my current map pool". So in theory it's enough if I just know if I have a map or not. Maybe it's fast enough to wait 3 minutes or so

umbral mortar
#

You guys should have a list of tools for poe in this server

lavish compass
#

@long edge hmm I guess I'm too stupid to use the API right. It always says "unknown item name"

#

I tried Siege, Siege Map, SIEGE MAP, but always get the same result. Do you know what I do wrong?

grave wren
#

{"query":{"status":{"option":"online"},"type":{"option":"Siege Map","discriminator":"warfortheatlas"},"stats":[{"type":"and","filters":[]}]},"sort":{"price":"asc"}} is what the official site does when picking the siege map from the selection

lavish compass
#

@grave wren Thanks!

grave wren
#

welcome

lavish compass
#

@long edge 12 queries in 6 seconds is really not that fast, it takes forever to query all the maps 😦

long edge
#

16*

#

yeah

dusky charm
#

is there a fix for when the search for price function of trademacro is very slow?

#

its literally taking between 20-40 sec to load stuff

lapis cargo
#

This^

lilac reef
#

Do we know if copying an item to clipboard (ctrl + c) is a server-side action?

worthy cape
#

"Just" need to set up a good heuristic for ref|list of a bunch of types, and somehow present the results.

#

It's definitely not going to yield a definite spec, but ought to help figuring changes out.

#

Doots in the matrix above are locations in the dat32 and dat64 where two-byte values agree across all rows.

#

This feels very much like an Advent of Code problem 🙂

simple ravine
#

frigging Intcode machine

worthy cape
#

So happy I skipped AoC this year, 2018 broke me.

simple ravine
#

yeah, too math-y for me

polar oriole
#

howdy howdy

inland kestrel
worthy cape
#

Didn't they replace some of those with "all gems of type X" this patch?

inland kestrel
#

That's what I'm wondering. But I see items available in metamorph up for sale

frigid nova
#

Ah - attack staff specific

#
  "LocalIncreaseSocketedGemLevel1": {
    "adds_tags": [],
    "domain": "item",
    "generation_type": "prefix",
    "generation_weights": [],
    "grants_buff": {},
    "grants_effects": [],
    "group": "IncreaseSocketedGemLevel",
    "is_essence_only": false,
    "name": "Paragon's",
    "required_level": 50,
    "spawn_weights": [
      {
        "tag": "attack_staff",
        "weight": 1000
      },
      {
        "tag": "attack_dagger",
        "weight": 1000
      },
inland kestrel
#

That's what I thought

inland kestrel
#

ahhhhh

#

I understand now -- thank you

#

Interesting on the wiki that the headings for the new influences are: Eyrie, Basilisk, Adjudicator, and Crusader

frigid nova
#

internal names

inland kestrel
#

do you believe the warstaff mod list on the wiki is complete?

frigid nova
#

I have no reason to think it's incomplete

inland kestrel
#

I guess not - doesn't have incursion mods

frigid nova
#

Incursion mods have to be hard coded in everywhere they show up (same with delve specific mods that aren't fossil mods), since they are not naturally spawnable on items

inland kestrel
#

Thanks for the help nick_

polar oriole
#

@hazy fog requesting dev role, we released a script to hide currency bot spam from chat. monitors client.txt for currency bot spam and runs /clear in chat when detected. working on less annoying implementation and detecting additional spam types https://github.com/nikgame33/POE-ChatBotDestroyer

#

whats the lul for

#

I feel like you guys dont really want me here or something

worthy cape
#

I'm personally just bemused by the immediate insistence on a piece of flair.

hazy fog
#

it does follow the pin blobshrug

polar oriole
#

if my stuff isn't like good enough let me know and I will work more on it before posting it

hazy fog
#

I'd point out that hardcore users say stay safe after trades

worthy cape
#

Is the regex supposed to go [Fa]? Judging by the other keywords, shouldn't it be [Ff]?

hazy fog
#

pepoShrug it's good enough for me. meaningless dark green role applied

polar oriole
#

oh very cool thanks

#

imma put it on my resume

hazy fog
#

Welcome to tooldev # I don't care about numbers anymore@polar oriole creator of a little script to clear your chat everytime it detects commonly used words by spam bots available here: https://github.com/nikgame33/POE-ChatBotDestroyer

worthy cape
#

Does PS1 regexes support \b-like word boundaries?

polar oriole
#

thx yall appreciate the recognition

long edge
#

if one could get a bright pink role thatd be noice..

#

@polar oriole whats the powershell for

polar oriole
#

thatd be v fancy

#

the powershel monitors client.txt

#

it calls the ahk when it detects the spam text

long edge
#

is there any issue with monitoring clien.txt with ahk?

polar oriole
#

it is a 0/10 implementation and is going to be changed

#

yeah my partner demanded powershell and just whipped it up in 60 sec

#

if you have an ahk page on monitoring text I would love that, ill google around too

#

client.txt is kinda huge too I don't know if ahk can handle it cleanly, the ps works very well with it and only compromises all user security permissions

polar oriole
#

i am getting oom error trying ahk with client.txt

gritty olive
#

Having your chat get cleared everytime sounds exciting

long edge
#

um

#

i kinda did it but

polar oriole
#

yes sir keeps u on ur toes

long edge
#

am i correct in thinking that the ps reads the last line right?

polar oriole
#

yes

gritty olive
#

Honestly easier to make a nodejs app that uses the npm library and runs in the background

long edge
#

so if i type safe anywhere

#

my chat will get cleared?

polar oriole
#

im not a programmer I dont know how to do anything correctly

long edge
#

also 2019/12/15 15:36:25 40969093 ac9 [INFO Client 7288] Al-Hezmin, the Hunter: There is no true safety from you, is there?

#

that will also trigger a clear

#

etc

polar oriole
#

it should be only if you type safe & fastest & cheapest in one line

long edge
#

oh, am i misinterpreting the match in ps

gritty olive
#

Time to create a character named CheapFastSafe

polar oriole
#

my partner did the regex he said it should be only for that string

gritty olive
#

the regex looks for one of

#

.*([Cc]heap|[Fa]ast|[Ss]afe).*

long edge
#

yeah right? i thought so

polar oriole
#

does it really

gritty olive
#

Yes

polar oriole
#

time 2 trash it

long edge
#

fwiw, ```#Include <tf>

MonitoredFile := "test.txt"
Loop {
buff := TF_Tail(MonitoredFile, 1)
regexBOT := ".([Cc]heap|[Fa]ast|[Ss]afe)."
if( buff ~= regexBOT ) {
msgbox clean me
}
}
Return```
using https://github.com/hi5/TF/blob/master/tf.ahk

#

seems to work fast enough for me

gritty olive
#

regex are regex

#

oh

polar oriole
#

the release version is correct yall looking at master

#

$regexBOT = ".(Cheap & Safe & Fast)."

gritty olive
#

How am I supposed to know master isn't your release

polar oriole
#

because theres a release tab and the text says use release

long edge
#

smh

gritty olive
#

Well your new one doesn't work

#

😄

polar oriole
#

yeah iam very aware and ps is getting deprecated anyway

#

i dont want people running ps and having to bump their permissions that stupid for release

long edge
#

anyways try out doing it all within ahk

polar oriole
#

i just found a cmd tail.exe that works very well if i cant get ahk to cooperate

gritty olive
#

The old one is hilarious

polar oriole
#

yeah the ahk just throws me out of memory

gritty olive
#

It only works for a specific pattern

#

I don't know if bots change messages but

long edge
#

@polar oriole try the code i linked

polar oriole
#

they have not changed since ive seen them last couple months

#

k

gritty olive
#

does ahk support regex flags @long edge ?

polar oriole
#

yep i got the TF library too i was just picking away at that

long edge
#

i guess #include <tf> should be #include tf.ahk if you dont put it in Libs folder in scriptdir

polar oriole
#

yes thats what i hav ein my file i was jus tmaking

long edge
#

@gritty olive no idea i just literally googled regex expression ahk

#

:P

polar oriole
#

ive never ref'd a library with ahk so i was googling how to do that correctyl

#

error in include file TF.ahk

#

mem limit reached

long edge
#

apparently it does but it calls them options and you have to specify them before the regex with a close parenth

#

whats your client.txt file size

polar oriole
#

98mb

#

client is huge for txt

gritty olive
#

@long edge oh so its pcre style

#

(?i) ?

#

(?i)(?(DEFINE)(?'spam'(cheap|safe|fast))).*((?P>spam)(\s&\s)?(?P>spam)(\s&\s)?(?P>spam)).*

#

Enjoy

long edge
#

i guess it is, im not that well versed, but it provides example "i)abc.*123"

frigid nova
#

I'm very confused - is the premise here we can use a regex string to filter out trade spam that somehow ggg can't use?

polar oriole
#

ye kinda

frigid nova
#

that seems.... presumptious

long edge
#

the premise here is to help a brother out whatever he is doing

polar oriole
#

tencent dont want their spam bots to go away

gritty olive
#

That regex should match the majority

polar oriole
#

there are absolute limitations unfortuatenly

#

deleting their trash from client.txt doesnt reflect in chat window

#

running /clear is horrible

long edge
#

here's a twist

#

why dont you make your tool educational

polar oriole
#

oh it has disclaimers everywerhe do not use

#

eductoinal purposes only

#

i am very willing to disregard tos

long edge
#

if the filesize is over a limit, inform the user that youre about to delete his client.txt because its horrible practice not to have it reset on major releases

polar oriole
#

client.txt cant be dumped if game is running

#

i think it just goes back up to 100mb when game restarts anyway its full of diag stuff

compact isle
#

I wouldn't talk about willingness to disregard ToS in this chat

polar oriole
#

partner said his was same size hes on steam too

compact isle
#

especially not when your account is easy to find :)

long edge
#

alright

#

lets talk about

gritty olive
#

@compact isle how do I get access to Oauth

long edge
#

api limitations

#

when?

gritty olive
#

❤️

compact isle
#

hey hey it's the 2nd I'm not working today :p

polar oriole
#

lets talk bout ggg not writing 2 lines to filter out spam

gritty olive
#

@compact isle I'm not working either but...

#

can you put me on the list for when you go back

compact isle
#

email me

long edge
#

anyways im out, look into running the ps script from ahk then corndog, gl with it

gritty olive
#

cgheart dm me your email

polar oriole
#

thx for help

long edge
#

@gritty olive its in the pins you lazy person

gritty olive
#

I just wanted novynn to dm me

#

don't call me out like that

long edge
#

my bad, i just messed up big

#

disappears

polar oriole
#

so yeah i dunno im disappointed with my end limitations kicking spam out of chat

gritty olive
#

No matter what you do

#

They will adopt

#

At some point they'll speak summerian

#

¯_(ツ)_/¯

#

time to introduce a google recaptcha to the login

polar oriole
#

the only other method I have to make spam less natsy is typing some blocks of dots in chat to omve it up screen which i have owrking but its still so boring

#

poe disconnects you for typing too much local too which is a super weird choice

#

whats also v strange is all bots are lvl 25/27 witches

#

that must be their script of choice

#

i feel like im letting down ggg & the world not fixing the spam bots

#

if($_ -match $regexBOT) how do i put an or in there for a 2nd string

#

is it just a pipe

#

if($_ -match $regexBOT, $regEx2){

#

not working for either that way

#

elseif fixes everything

polar oriole
#

🥳

velvet fog
#

@obtuse citrus is it possible to add a locale column in stable specification data?

polar oriole
#

clarification on TOU will spamming local have negative effects

wise forge
#

i'm seeing Unwavering Faith grant 0.35% Life Regen per aura instead of 0.20% in PoB - anyone else notice that?

polar oriole
#

alright

#

whats that mean

hazy fiber
#

if they say stuff it doesnt show up in the txt

polar oriole
#

very weird

#

ive had it catch pretty much everything so far

#

i am on usa servers though do you mean if a user is in a korea server it wont function

worthy cape
#

Right.

polar oriole
#

i will add that to description good info

#

i had someone on reddit say this script is just gonna mute everyone because local will cause mute so I'm just doing inquiring. it says all over the page prob 4 times do not use you will prob get banned but thats not a good excuse

worthy cape
#

Unless you want to match substrings, you should probably look at \b btw.

polar oriole
#

ok

#

i did a v2 release a couple hours ago

worthy cape
#

Sources still seem to amusingly do [Fa] too 😄

polar oriole
#

i was thinking about running a side windowed chat that would filter all the trash

#

if itd just integrate into hexchat or something people might use it

#

i dunno I just wanted a tiny little script to get spam off screen

#

i tried running a library to tail it and kept getting OOM errors

#

ill see how this works

ripe willow
#

Anyone knows about a script from poe-trade-companion that can automultiply chaos what stack I need to buy?

Like I want buy Awakened Sextant(2c/each) type "x2" will automultiply and show "x2(4chaos)" in chat

worthy cape
#

Auto-deduction of DAT structure was fun, but the possibilities are a bit too broad for the few datasets I tested with.
Anything that's not a ref| blows up match count thanks to byte, short and int widths being subsets of long, while ref|string also tends to match ref| to integer types >= 4 bytes.

#

I guess that it might be of more use if I could constrain it with some ground truth fields.

velvet fog
#

ref: 4->8
list: 8->16
ulong: 8->16
long: 8->16
ref|generic(int): 4->8

#

ref|string may use localization .dat file to auto-deduction

#

they have different value

worthy cape
#

Hrm, that's interesting.

#

Might play with that later, but I'll stash this for now.

fickle yew
#

@velvet fog Have you been able to find the "Other Jewellery" translation from the Essence tooltips?

velvet fog
#

I don't find it in any .dat file

fickle yew
#

Ah clever. Thanks.

prime wasp
#

i'm trying to connect to poe's websockets but it seems to close randomly thonkeng

#

eventually it connects if i run it a few times but 99% of the time after connection it closes instantly

#

1008 monka

#

am i not allowed to connect to their websockets programatically lmao

#

wait my poesessid was outdated

#

L0L

#

wait no that's still not it

#

it sometimes lets me connect other times i just get 1008 i'm confused

simple ravine
#

you have to put the web browser costume on

prime wasp
#

ah of course

#

costume on now working

#

ty

deft jolt
grave wren
#

@fickle yew the essence mods for rage etc granting plus level to fire cold lightning are not updated to the new pen modifiers on ninjas essence hover.

prime wasp
#

ok i guess i didnt get it

deft jolt
#

hm everything worked fine when i wrote my websocket client

prime wasp
#

im trying setting user agent now

#

forgot about that

#

yeah it still works sometimes but others it just insta closes lol

deft jolt
#

it worked fine for longer periods of time

prime wasp
#

all you're doing is creating a websocket to the url?

#
        self.ws = websocket.WebSocketApp(
            "wss://www.pathofexile.com/api/trade/live/" \
            + configloader.get_league() + "/" + identifier,
            on_message=lambda ws, msg: self.on_message(msg),
            on_error=lambda ws, err: self.on_error(ws, err),
            on_close=lambda ws, code, reason: self.on_close(ws, code, reason),
            on_open=lambda ws: self.on_open(ws),
            cookie='POESESSID=' + configloader.get_poesessid(),
            header=[
                "User-Agent: Mozilla/5.0 (Windows NT 6.1) " \
                "AppleWebKit/537.2 (KHTML, like Gecko) " \
                "Chrome/22.0.1216.0 Safari/537.2"
            ]
        )
        thread = Thread(target=self.ws.run_forever)
        thread.start()```
#

this is how i'm creating it

deft jolt
#

i was doing a couple of things

prime wasp
#

all i see is cookie + basic websocket setup

#

unless im missing something in your code

#

what's the Accept header for?

#

;o

#

nvm

deft jolt
#

might be for connections other than the official site

prime wasp
#

i literally don't see what i'm doing wrong

deft jolt
#

maybe you need to fetch the item

#

and it timeouts if you don;t

prime wasp
#

no, the socket closes literally instantly

arctic portal
#

Probably not the right place for this, but its relevant, What are some good extensions to use? Im using PoE Trade, PoE Procurement, and PoE Region Searcher, anything else reccomended?

prime wasp
#
-----------------------
--- response header ---
HTTP/1.1 101 Switching Protocols
Date: Thu, 02 Jan 2020 18:08:14 GMT
Connection: upgrade
Upgrade: websocket
Sec-WebSocket-Accept: VN5R/IyahZzuVhbdGswf3radlIk=
CF-Cache-Status: DYNAMIC
Server: cloudflare
CF-RAY: 54eead4538ac398c-PHX
-----------------------
Websocket #1 connected
send: b'\x88\x824d\x11\xff7\x8c'
Websocket #1 closed [Code 1008] | Reason: ""```
mortal bone
#

are you using TLS 1.2?

prime wasp
#

is what i'm using

mortal bone
#

Have you tried setting your SSL Protocol to Tls12?

#

not sure that is matters, but that is typically the first thing I check when I am getting some sort of forced disconnection

#

Also, what is that send command?

prime wasp
#

no clue, im running websocket with trace and thats what it outputs

mortal bone
#

it looks like your get connected and send something then disconnect

prime wasp
#

my output is connect/closed

#

if anything is sent it's from the lib

#

idk what it really is

mortal bone
#

Did you add the accept header?

prime wasp
#

i did and it didn't change anything

#

i removed the headers

#

i'll re-add them i guess

mortal bone
#

You need a user agent and the accept header

prime wasp
#

i'm starting to get bad gateway lmao

mortal bone
#

Also, the cookie looks like it might need some cloudeflare specfic stuff

prime wasp
#
        session = requests.Session()
        session.get('https://www.pathofexile.com/')
        self.ws = websocket.WebSocketApp(
            "wss://www.pathofexile.com/api/trade/live/{}/{}".format(
                configloader.get_league(),
                identifier
            ),
            on_message=lambda ws, msg: self.on_message(msg),
            on_error=lambda ws, err: self.on_error(ws, err),
            on_close=lambda ws, code, reason: self.on_close(ws, code, reason),
            on_open=lambda ws: self.on_open(ws),
            cookie='__cfduid={}; POESESSID={}'.format(
                session.cookies.get_dict()['__cfduid'],
                configloader.get_poesessid()
            ),
            header=[
                "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36",
                "Accept: */*"
            ]
        )
        thread = Thread(target=self.ws.run_forever, kwargs={
            'sslopt': {
                'cert_reqs': ssl.CERT_NONE,
                'check_hostname': False
            },
        })
        thread.start()```
#

yeah i set __cfduid cookie

mortal bone
#

what about cf_clearance?

prime wasp
#

huh

mortal bone
#

__cfduid=<id>; POESESSID=<id>; cf_clearance=<id>

prime wasp
#

never seen cf_clearance

mortal bone
#

that is my cookie on the websocket when connected via the browser

prime wasp
#

where do you get cf_clearance from?

#

it's nowhere in the cookies when i look at it in browser

mortal bone
#

Not sure, I just started a live search and looked at the request header

#
Host: www.pathofexile.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Sec-WebSocket-Version: 13
Origin: https://www.pathofexile.com
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Key: <key>
DNT: 1
Connection: keep-alive, Upgrade
Cookie: __cfduid=<id>; POESESSID=<id>; cf_clearance=<id>
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
#

that is what my request header looks like via the browser

#

redacted of course haha

prime wasp
#

lol why am i getting 502s now

#

yeah my request headers don't show cf_clearance

#
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cache-Control: no-cache
Connection: Upgrade
Cookie: __cfduid=<id>; POESESSID=<id>
Host: www.pathofexile.com
Origin: https://www.pathofexile.com
Pragma: no-cache
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: <key>
Sec-WebSocket-Version: 13
Upgrade: websocket
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36```
mortal bone
#

I get them too via the browser

prime wasp
#

ah

#

i get it if im on chrome

mortal bone
#

weird, I am using firefox haha

prime wasp
#

i use brave

mortal bone
#

ohh

prime wasp
#

yeah even if i set clearance im still getting code 1008

#

this is actually insane lmao

#

i've looked at so many things that use websockets and even found some that use poe's

#

and i see nothing different with mine

mortal bone
#

could be the implementation of the websocket client? Seems unlikely, but idk

prime wasp
#

im just gonna restart my pc as a fucking miracle somehow

#

brb

#

LOL

#

i'm gonna cry

mortal bone
#

maybe try it outside the context of the thread?

#

what is in your self.on_open(ws)?

prime wasp
#

nope

#
    def on_open(self, ws):
        print('Websocket #{} connected'.format(self.socket_id))```
#

just this

mortal bone
#

damn...

prime wasp
#

it literally doesn't make sense

#

i can re-run the program sometimes

#

and it'll let me connect and the socket will stay alive forever

#

but like 90% of the time, it just insta closes

#

with code 1008

#

aka policy violation

mortal bone
#

@compact isle might know a bit more, I don't know if he is around though

long edge
#

have you tried reopening the socket on your onclose?

prime wasp
#

yeah i guess that works

#

but i don't wanna get rate limited or anything through retries

long edge
#

well set up a check

#

its a pretty dirty solution

#

but i have no other ideas, sorry

prime wasp
#

yeah i got it working be reopening inside on_close

#

but

#

it's not a solution i'd like to use u know

mortal bone
#

That is pretty dirty lol but if it works for now, might as well

prime wasp
#

ideally i'd create the websocket and it works lmfao

#

but

#

yeah

long edge
#

:D

prime wasp
#

that took like 4 hrs

#

only to use a dirty solution

#

i'm very sad

long edge
#

i feel your pain

prime wasp
#

now i get to create my first gui ever

long edge
#

just put a note that you have to revise it later

prime wasp
#

and it's gonna look like shit

long edge
#

when youre done with most of your project, or when someone here is able to help you specifically (perhaps novynn), just get back to it

prime wasp
#

true

long edge
#

or you can do it like ggg and the rest of the industry and just leave it there forever

prime wasp
#

lmao

pseudo ocean
#

@fickle yew Poeninja show all button is not working

fickle yew
#

@pseudo ocean sorry fixed it earlier today. Didn't deploy yet. Thanks tho.

pseudo ocean
#

Np glad to help and thanks for the awesome site @fickle yew

fickle yew
#

@pseudo ocean Should be fixed now.

pseudo ocean
#

hmm i just tried it, its still not working

cosmic saffron
#

do a ctrl+f5

pseudo ocean
#

@fickle yew still not working. I cleared the cookies and cache and tried ctrl+f5 also

fickle yew
#

I'm flushing some more caches... Helmet enchants page is working for me now but a few others are still loading the old bundle it seems.

compact isle
#

@prime wasp we terminate your connection if you send any data

prime wasp
#

thonkang ?

cosmic saffron
#

it prevents websocket toucans

prime wasp
#

i'm not sending any data tho

pseudo ocean
#

@fickle yew seems to be working now. i checked a few just now

prime wasp
#

i make requests to /api/trade/fetch once i receive a msg through the websocket but that's it

compact isle
#

your message from earlier had:

Websocket #1 connected
send: b'\x88\x824d\x11\xff7\x8c'
Websocket #1 closed [Code 1008] | Reason: ""
#

so it's most likely the library you're using

prime wasp
#

maybe it's from the lib

#

yeah

#

fml

prime wasp
#

i can't figure out why it's sending that shit i'm going insane notlikeblob

frigid nova
#

@prime wasp what's the project you're working on?

prime wasp
#

rewriting my code for poesniper

#

implementing live searching + gui

#

if i can just, get websockets to work FeelsWeirdgaMan

mortal bone
#

So, I have noticed in all the code examples for that implementation the on_open method isn't assigned in the constructor

#

it is assign after

prime wasp
#

hm

mortal bone
#

maybe it is still using the default on_open method?

#
if __name__ == "__main__":
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("ws://echo.websocket.org/",
                              on_message = on_message,
                              on_error = on_error,
                              on_close = on_close)
    ws.on_open = on_open
    ws.run_forever()
prime wasp
#

didnt change anything

mortal bone
#

The hex string it is sending also doesn't make any sense

prime wasp
#

idk either

#

it always begins with \x88\x82

#

i looked it up on the git repo too

#

other people seemed to have the issue

#

but nobody knows the fix

#

lmao

#

i'd use create_connection and use the low level shit but there's barely any examples of that

#

would rather wait to see if i can figure it out soon before switching and having to manually write stuff to recieve data

long edge
#

there oughta be a websocket debugger out there to which you can connect and check exactly what youre sending

mortal bone
#

Yeah, it seems to be a common issue on the github

long edge
#

yeah i saw a few, but unfortunately i dont know much about python or websockets to analyze it further

#

but by what novynn said, there must be something getting sent that the server isnt expecting

mortal bone
#

Yeah, there is. It is similar to the messages in that issue

prime wasp
#

but for poe, it does

mortal bone
#

seems to be a random set of characters

prime wasp
#

after the first 2 bytes yeah

mortal bone
#

Maybe it is some sort of versioning difference or something

long edge
#

this one mentions pinging and limits, another issue shows a similar hex string for a server response

mortal bone
#

Yeah, it could be a ping

prime wasp
#

i've already tested if it was a ping

#

i set ping_interval to 0

mortal bone
#

rip

prime wasp
#

if it's 0 / False / None

#

it doesn't ping

worthy cape
#

Shouldn't it be wss: for secure ones?

prime wasp
#

it is

#

"wss://www.pathofexile.com/api/trade/live/{}/{}"

worthy cape
#

Bleh... was looking at some random example from the links above and spotted ws:/ 😄

mortal bone
#

You need to set ping_timeout and ping_interval to 0 I do believe

#

or None

prime wasp
#

they both default to that either way

#
    def run_forever(self, sockopt=None, sslopt=None,
                    ping_interval=0, ping_timeout=None,```
mortal bone
#

Yeah, from what I can tell with a high overview of the code, it would be sending a ping if those aren't None

prime wasp
#

0 isn't considered truthy

prime wasp
#

yeah on line 261?

mortal bone
#

Yeah

prime wasp
#

yeah ping interval is 0

#

by default

#

0 == false

mortal bone
#

Yeah

#

that is what is confusing

#

that has to be some sort of ping

prime wasp
#

im about to just fucking write a ton of prints in the library itself

#

LOL

#

im tired of this

frigid nova
#

@prime wasp are you using websocket-client

prime wasp
#

yeah

frigid nova
#

I have an implementation with that which connects just fine

mortal bone
#

lmfao

long edge
#

help him out he is going insane

prime wasp
frigid nova
#

Yeah sorry - just catching up with this conversation

#

do you have your source anywhere?

frigid nova
#

Btw I only pass possessid

prime wasp
#

so did i

#

but i've been trying everything

#

so i added cfduid incase

#

lmao

#

ignore that tmp stuff was for debugging

#

i committed to remove it cause forgot

frigid nova
#

I'll move to pms to help debug

long edge
#

do post the issue when done please, im quite interested

mortal bone
#

same

prime wasp
#

i'm cursed

long edge
#

aww

prime wasp
#

literally set it up in a venv and the exact same way he does it

#

still sending those bytes

worthy cape
#

Roll a flask of Warding.

prime wasp
#

i wish

frigid nova
#

still looking.

long edge
#

what are those bytes anyway? are they being sent by the lib or by the underlying python methods

prime wasp
#

by the lib 99.9999% sure

#

and i don't get why

long edge
#

this issue shows the example straight out from the github readme

frigid nova
#

I suspect the issue is a python packaging one, still looking into it.

long edge
#

yeah dont mind me, im just rambling here, never wrote a p of python anyways

#

good luck

worthy cape
#

I'm cool like Delusion:

open
send: b'\x88\x82\xca\xdc/]\xc94'
close:  1008
#

Heh, my squint at the RFC and the message was right, you're explicitly sending a close for some reason.

#
WebSocketReadResult {
    len_from: 8,
    len_to: 2,
    end_of_message: true,
    close_status: Some(
        NormalClosure,
    ),
    message_type: CloseMustReply,
}
frigid nova
#

yeah we're almost done debugging this.

frigid nova
#

Do we have any info on ratelimiting on websocket open requests?

#

(Not on the XHR requests themselves)

prime wasp
#

AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

#

@worthy cape wat

worthy cape
#

@prime wasp Pulled down your source, set up a venv, made it freestanding. Shits itself the same way.

prime wasp
#

yeah but i'm not closing the connection myself

worthy cape
#

"you" as in the lib, not meatbag you 🙂

prime wasp
#

thought so

frigid nova
#

We have a minimal repro which works sometimes now

prime wasp
#

i've had one

#

for 10 hours

worthy cape
#

Not digging much more, as you people are on it already.

prime wasp
#

the entire point of me asking was to prevent that from happening

#

but it still is

#

lol

gritty olive
long edge
#

how i wish we had ingame ux api

#

still, nice effort, hopefully dem devs notice how flawed the current representation is

worthy cape
#

Having played WoW, I hope we never get one 🙂

void schooner
#

is there a list of tools in here ?

mortal wave
#

@velvet fog I was told to make a request for poedb.tw to you.
Would it be possible to make a generator like the unique generator/gem generator, for div cards?

compact isle
#

@frigid nova are you the one giving me all these trade site bug reports on the forums? :p

frigid nova
#

@compact isle yeah 🙃 apologies for swarming you with all of them at once

#

I wrote a script to extract the values out of the extended mod information - and in the process uncovered a bunch of weird edge cases

compact isle
#

oh yeah

#

there will be a whoooooooole lot

#

there are around 10k lines of code to modify stat values to suit for search purposes

#

I wouldn't assume values are always good

velvet fog
#

@mortal wave okay, I will do it

mortal wave
#

😮 thank you so much! ❤️

compact isle
#

it was a fun journey figuring out how aura stats work, that was a clear oversight on my part

frigid nova
#

@compact isle I won't put too much stock in them, but they are the most dependable source I have! It took about 1k LOC to get this value extractor up and running.

#

Any insight you're willing to share about the aura mods? The ggpk makes it seem like there are just mods missing

compact isle
#

the majority will be fine it's just funny that you picked up on all the weird ones that look very familiar to me

#

well all I learned was that mods are linked to auras and auras have a list of stats that they "consume". I'm supposed to skip those when generating the stat list per mod

frigid nova
#

Oh very interesting - that explains a lot of these small bugs

long edge
#

@worthy cape well the current iteration of default wow interface is quite alright, but the vanilla one was quite clunky and missing a lot of qol. in comparison, it wouldnt be needed if poe interface wasnt severely 1990s

#

the biggest culprit right now is the atlas (along with stash tab interaction), but there are many other issues

frigid nova
#

@compact isle I think the most serious bugs I ran across were the local leech returning null magnitude ranges. Although I think the value plus the name is still enough to differentiate which mod it comes from (not 100% sure though)

compact isle
#

leech is awful

#

but I think those legacy stats are fixable

frigid nova
#

After digging through stat_translation to try and understand what was happening there, I can empathize. It might be solved by adding (Local) to that legacy stat. I should mention that it shows up on implicits, explicits, and crafts

compact isle
#

they should be getting stuffed into their non-legacy variants

frigid nova
#

oh xanthics I think i have you beat

compact isle
#

yeah that's a tiny table

frigid nova
#
index_handlers = {
    "negate": -1,
    "canonical_stat": 1,
    "divide_by_fifteen_0dp": 15,
    "per_minute_to_per_second_1dp": 60,
    "divide_by_twenty_then_double_0dp": 10,
    "60%_of_value": 5.0 / 3,
    "divide_by_one_hundred_2dp": 100,
    "milliseconds_to_seconds_0dp": 1000,
    "per_minute_to_per_second_2dp_if_required": 60,
    "deciseconds_to_seconds": 10,
    "divide_by_ten_0dp": 10,
    "multiplicative_damage_modifier": 1,
    "milliseconds_to_seconds": 1000,
    "mod_value_to_item_class": 1,
    "old_leech_percent": 1,
    "old_leech_permyriad": 10000,
    "30%_of_value": 10.0 / 3,
    "per_minute_to_per_second_0dp": 60,
    "per_minute_to_per_second": 60,
    "divide_by_two_0dp": 2,
    "milliseconds_to_seconds_2dp": 1000,
    "divide_by_one_hundred": 100,
    "per_minute_to_per_second_2dp": 60,
    "divide_by_twelve": 10,
    "divide_by_six": 6,
    "times_twenty": 1 / 20,
}
#

i have a favorite btw

#

"divide_by_twenty_then_double_0dp" 😉

compact isle
#

my favourite part of those is we use a second table that reverses them for the trade site to convert between variants (like leech!)

frigid nova
#

Also another thing @compact isle is there were a few inconsistent capitalization problems - but I decided those were too nitpicky to bug you about and also don't affect trade or results in any quantitative way.

#

plus you can barely tell with the font

compact isle
#

yeah like the awakened gems

frigid nova
#

oh - also I only wrote my parser for items - so currency/gems/beasts, etc. still are untapped for me and potentially contain other edge cases

compact isle
#

if you bug me with them I can figure them out with Mark

#

he's the stat man

frigid nova
#

I guessed as much 🙂

#

Oh I guess I should mention

#

that there are like 10 or so entries in stat_translation in the ggpk which seem pretty bugged from my read

#

Mark or someone else might be interested in them

#

I can email you a list of them if you think someone would be interested.

compact isle
#

yeah sure

#

I wouldn't be the one to ask that

frigid nova
#

@compact isle Is your email listed in the pins - or elsewhere?

compact isle
frigid nova
#

It is in fact there, thanks

compact isle
#

@earnest radish my unofficial opinion would be that a request as a response to a user action (ctrl + c) would not be the same as automated software / bots

long edge
#

just dont use a popsicle stick and youre gucci

compact isle
#

😠

frigid nova
#

@compact isle Would it be possible to add the tier of the essence mod in the extended info?

#
{"0":{"name":"of the Essence","tier":"S","magnitudes":[{"hash":"explicit.stat_2231156303","min":31,"max":34}]}}
ocean shoal
#

I kind of want to contribute to the PoB fork, but I never worked with lua. Basically, I wanna add a support for a mod, maybe someone here knows how it should look like?

fickle yew
#

@grave wren It should be fixed now. Ended up rewriting my mod tracking - it was written back in 2016 when I made the site. 🙂 Mods should be more stable now.. Standard league will be a bit broken sometimes but I'll find a solution for that...

grave wren
deft jolt
#

rewriting old code can be such a task 😔

mortal bone
#

I enjoy rewriting old code tbh. There is a lot to learn from how people did things and how we do things now a days

golden bane
#

I do too, especially I find it fun to search for old code that can be improved with newer language features, and how it makes you think about things.

#

Right now, I wanted to refactor PyPoE a bit, but @obtuse citrus is hard to get a hold of 😔

deft jolt
#

i envy y'all

#

since i got a the huge task of rewriting one of my poe tools

golden bane
#

Which one?

deft jolt
#

poewatch

golden bane
#

Website or app or both?

#

Kotlin has a JS target if it interests you

fickle yew
#

Why does it need a rewrite?

deft jolt
#

finished the website a few weeks ago, now doing the app

#

it wasn't really planned properly, never intended it to be what it is today

fickle yew
#

So just reworking everything to fit better or also a change of tech?

deft jolt
#

hm the first version didn't use any of the modern frameworks

#

now it's the latest angular and spring boot

#

making it easier to maintain and for others to get into as well

grave wren
#

oh no

#

not the php frontend

#

:<

deft jolt
#

don't even make me remember that eldritch horror

#

let it be buried in the past

grave wren
#

:<

#

i saw some other memey horrors in the meantime

#

a "backend" consisting of an express server with one route that just executed sql directly

#

the madlads had one shared free hosted mysql db with ads in the phpmyadmin

#

it was a true abomination

fickle yew
#

Sounds very flexible to use from the frontend...

grave wren
#

it was very fun seeing them struggle to get it working while at my place while they did not have my wifi creds

#

so it was worth it... kinda?

mortal bone
#

if it works sorta, ship it

fickle yew
#

People can contribute data easily..

golden bane
#

it doesn't randomly disintegrate by itself = stable and ready for production

long edge
#

are you talking about leagues

grave wren
#

too soon

deft jolt
#

@jade adder

#

cheers

frigid nova
#

well

#

#wiki got pretty destroyed.

mortal bone
#

the bots are on the case lol

long edge
#

how far back does the ggg tracker store posts

mortal bone
#

the rss feed?

long edge
#

umm the site itself? i presume it stores posts and links in a database? or am i wrong

frigid nova
mortal bone
#

iirc, it stores whatever it finds in a db

#

you can go back a really long time

#

it looks like it will look back 2 weeks in time for forums posts

long edge
#

might be better off scraping the data from the tracker than rescrape using the indexers

#

it irks me that there's no filtering

mortal bone
#

you can pseudo filter by account

#

grab all the posts associated with a given account

prime wasp
#

i made a proper connection retry method btw

#

now websocc work

long edge
#

yeah that seems viable, might look into rebuilding the db myself and add filtering based on time / account / subforum / threadname / postcontent

#

thanks emmitt

#

@prime wasp whats the trick

prime wasp
#

not retrying instantly and spamming it

#

like i was yesterday

#

nick told me he retries after 10sec

#

i do mine at 3 and works fine

#

most of the time that is

long edge
#

i did tell you yesterday to set up a check :P timeout works too i guess if you dont know the exact rate limit

#

glad its sorted, hopefully the rest will be smoother

prime wasp
#

yeah i still don't know the rate limit for the trade websockets

long edge
#

btw not sure if the issue is fixed, but considering its still open on github i doubt it is: if theres a network interruption the connection gets dropped but the on_whatever isnt called

#

something to consider

worthy cape
#

@simple ravine I'm sure I've asked this before, but are there any non-horrible UI libs for .NET?

simple ravine
#

UI libs?

worthy cape
#

If I have to FFI out from Rust anyway, I might as well use a language that might have a chance of having good UI.

#

WinForms seemed to not really handle DPI well at all last I looked, and XAML hurts my brain.

simple ravine
#

There are two solid choices: WPF or UWP

#

for desktop

worthy cape
#

I need a bunch of docked panels and a 3D viewport.

simple ravine
#

WPF supports Windows 7, but uses DirectX 9

#

UWP is DX 11 (or 12?), faster but is those 'modern apps' things

worthy cape
#

I'm fine with Win10 minspec.

simple ravine
#

I think you also can use Xamarin for desktop

worthy cape
#

Does UWP lock me into being an app-store-like thing?

#

That's kind of new.

simple ravine
#

If you're planning on doing 3D stuff, don't go Win Forms

#

No, you can create separate installers for UWP apps

#

msix packages, I think they're called

worthy cape
#

I kind of don't want to use D3D for my graphics, but I guess that most of these kind of won't be too friendly toward having a child window.

simple ravine
#

what do u mean?

worthy cape
#

I'd like a child window I can initialize some graphics API over in Rust land, so just an embedded HWND.

simple ravine
#

start off with WPF then

#

you have more full control there

#

you can access the handle etc there

#

actually you mgit be able to do that in UWP too

worthy cape
#

Too bad the holidays are almost over, going to take some time getting started.

#

Haven't written C# in years and years.

simple ravine
#

The good thing with WPF that you can do .NET Core 3+

velvet fog
mortal wave
#

thank you so much ❤️

prime wasp
#

anyone got a smart way to generate image links from item name?

mortal wave
#

works BEAUTIFULLY @velvet fog !

prime wasp
#

pog

#

ty

prime wasp
#

ah shit i gotta extract base types

#

yucky

#

wait no HmmChamp

#

are there no uniques in this?

golden bane
#

Uniques are server-side to prevent datamining

rapid pagoda
#

as the name suggests, it only contains "base items"

prime wasp
#

was talking about the entire repo as well when i said "in this"

#

but yeah rough

velvet fog
golden bane
#

Some of this information might be wrong though as it was all manually entered

prime wasp
#

i'm just trying to get the image link for display purposes