Giter Club home page Giter Club logo

poe-sniper's Introduction

Releases

IMPORTANT! poe-rates.com has been added to the whitelisted domains, I therefore have to stop serving whole API chunks through websockets since this goes against the whitelisting idea. Since this is the current way Poe-sniper is working, this also means that I have to retire poe-sniper, at least temporarly, until I use the same serving method used on poe-rates :: live. In the mean time, please use https://poe-rates.com/live/ instead.

NEW! Use the online version of the tool at https://poe-rates.com/live/

alt text

Introduction

This tool lets you run live searches by parsing the latest item data from the Path of Exile API. The main benefit of this tool compared to poe.trade live search is the ability to centralize and save searches within a single window.

Note for Linux users: Make sure to install the xclip clipboard manager to be able to copy whisper messages to the clipboard.

Video

Here is a short 5 min video showcasing some of the features of the tool :)

Features

Here is the set of features currently supported:

  • Find underpriced items for each leagues
  • Create item filters based on various criteria:
    • type
    • Armor/Shield/Evasion values
    • Affixes
    • Number of links
    • Sockets (total and R/G/B/W)
    • Item level
    • Item tier
    • Gem XP%
    • Quality
    • Corrupted/crafted/enchanted/identified
    • Rarity (including non-unique)
    • DPS (Total, Phys)
    • League
    • Price
  • Import your poe.trade searches
  • Show price stats of similar items appearing on poe.trade
  • Search on poe.trade using your filter criteria
  • Links to poe.trade, poe-rates.com search as well as the official wiki
  • Notification support (both visual and sound)
  • Contact sellers by clicking on an item entry or toggle automatic copy to the clipboard.
  • Item price recommendation based on poe.trade
  • Blacklist support (see video)
  • Filter categories (see video)
  • Mod group support (NOT, IF, SUM, COUNT, WEIGHT, AND)

Technologies

The app is written in Node.js and packaged as a native application using the Electron framework.

How it works

The tool starts by fetching the last change_id using the http://poe-rates.com API. Chunks are then downloaded from the Path of Exile API with gzip compression into memory. Each item in the chunk is compared to the filters created by the user and, should it match the criteria, displayed in the tool.

How fast is it?

It depends on your connection speed.

Is it faster than poe.trade?

It is slightly faster for me, but that may not be the case for everyone.

Running the tool

There are two ways to run the tool, either from the sources directly or by fetching one of the releases.

From source

Within a terminal:

  • Clone the code using git clone https://github.com/licoffe/POE-sniper.git
  • Change to the cloned location and run npm install to install all dependencies
  • Finally, run npm start to start the indexer

Disclaimer

Make sure to have an unlimited connection plan and a good bandwidth since the tool downloads currently around 1.5 MB of JSON data every second.

Troubleshooting

Error on startup

alt text

If you run into this error on startup, it means that the config.json file holding your settings has been corrupted. The solution is to erase the config file, which will be rebuilt by the program on the next startup. Here are the different paths depending on your system:

  • On Windows: C:\Users\YourUser\AppData\Roaming\POE-Sniper
  • On MacOS: ~/Library/Application Support/POE-Sniper
  • On Linux: ~/.config/POE-Sniper

Stuck on a change_id / No new items in a while

The connection to the API is set to timeout after a minute. If it happens for some reason (loss of internet connection, realm restart, computer went to sleep, etc.), the program will fetch again the last known change_id from either poe.ninja/poe-rates.com and attempt to download it.

If you did not receive item updates in a while, then this is most likely an error due to your current filter setup. Feel free to contact me on Reddit or Discord if it happens.

Program freeze

Make sure not to use filters which are too broad (ie. (any Gem) or (any Map)). A filter matching too many items is not useful, will greatly increase parsing time, consume additional memory and slow down the entire program.

Contact

You can contact me on reddit or Discord, same account.

poe-sniper's People

Contributors

licoffe avatar xkomachi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

poe-sniper's Issues

"Clear Filter" button

The "Clear Filter" button resets league to "Harbinger Hardcore". I am playing Harbinger Softcore so I have to reset this any time I use the "Clear Filter" button. I think it would make most sense if the "Clear Filter" button leaves the league filter at whatever it was previously set at.

Occasionally the next_change_id times out

I frequently leave this sniper and my whoops on overnight to help verify if I have a good idea of the value of an item. I've noticed that occasionally the sniper will get caught in a loop and get stuck on the same next_change_id. It isn't a significant problem as clicking "stop" then "snipe" resets the next_change_id and it will begin working again, but sometimes I'll be playing and realize that I haven't heard a ding in an hour or so when they usually come every few minutes.

Not sure if this is at all possible, but maybe there is a way to run an error check every once in a while. If the next_change_id hasn't updated in 5 minutes maybe auto reset it?

One time it seems to always occur is on realm resets (I assume the river stops during the reset either bc nobody is posting new items or bc ggg turns it off). Not sure if re-checking every 5 minutes would work for that bc realm resets are usually > 5 mins, but if it kept checking I guess it would eventually work.

Feature Request - Option to clear certain results

I have no idea how difficult this would be to code, but if it is not very difficult...

As I said in my last request I frequently leave the sniper on overnight to collect results and calibrate my understanding of the market in the morning. Sometimes I wake up to 100+ results from one item (obviously I miscalculated on that item).

The ability to selectively clear certain items to clean up my results would be useful. Maybe after applying a filter to results I could "Clear all filtered results" instead of clearing all?

Anyways, if its too difficult don't worry, but if its an easy add it would be useful.

Thanks as always.

ChangeId not changing in filter mode

Hello,
Since the new update, i have an issue in filter mode.
The app get only one time the change id in filter Mode and after stay stuck on the change id.
In under pricemode, the change id is correctly renewed.

Not, Count, Sum, If - Feature Request

Similar to poeapp and poe.trade it would be nice if we could include additional ways to include/exclude results. Currently it is fairly difficult to search for good rares unless you have something very specific in mind.

As an example, I'm looking for two-toned boots with 30% ms and a high life roll. I would like high rolls on res, dex or int but I don't care which. In poe trade I would use the following affixes

And
(30 - 30)% increased movement speed
(90 - 124) to maximum life

Sum (60 - )
Dexterity
Intelligence
Fire Resistance
Cold Resistance
Lightning Resistance

I'm sure you already know how that all works so I won't explain any further for "Not", "Count" and "If", just wanted to make sure I gave at least one good example.

Simplify affix edition

Clicking on an affix entry in the filter section should load the values (affix name, min and max) in the fields for edition. The "Add" button would become "Update".

POE Sniper Questions

Hey Licoffe,

Very nice app, I typically play poe with about 70 poe.trade windows open (and I really only stop there because it starts to get out of hand). I've been trying to find something exactly like this for a few months now. The UI is also clean and immediately comprehensible, overall the app is phenomenal, thank you. I've had a few questions and QoL suggestions, hopefully you don't mind hearing outside perspectives/requests.

  1. I have downloaded both the source and the release. I have been able to launch and run the release successfully but not the source. I tried two ways. First I attempted to follow your directions by opening a terminal (windows start button, "cmd" and cloning the code using the git command. I received an error message that git is not a recognized command. Second I attempted to skip the git portion by downloading the code folder onto my computer, then changing to the directory where I have the code stored"cd C:\Users\Home\Desktop\POE Apps\POE-sniper-master-licoffe". The cd was successful but typing "npm install" resulted in an error message "'npm' is not recognized as an internal command, operable program or batch file."

At this point I am stuck on trying to launch the release. Perhaps "terminal" does not mean command prompt? Maybe I need some tools like a compiler or somethign to be directly running the javascript?

  1. Just a question. I see that when I close and re-open the release app my searches are being saved, but I can't figure out where (on the release or the source) the searches are being saved. I don't really have a reason besides curiosity and the fact that I haven't been able to find it for asking this.

  2. Do you have any plans to add pseudo mods? Res is probably the most challenging mod to search on without pseudo mods.

  3. A global option for clipboard would be nice. I assume that I will pretty much always want it completely on (most of the time) or completely off (running lab).

  4. Gem Experience: I know that the api provides gem experience. Being able to search on Gem Experience would be a nice sniping bonus, especially early on in the league.

  5. Is there a way for me to modify the whisper message in the release version? I found it in the source but as I mentioned earlier, I haven't been able to launch that yet.

That's all I can think of right now. Thanks for any answer you can provide.

Question - Underpriced Feature

Hey Licoffe,

Thanks for continuing to improve the sniper. I'm just wondering how the "Underpriced" option works. Is it looking at the items you have filters set up for and underpricing only those items? Or is it underpricing all items in the league. I assume its closer to the first as the second one seems impractical from a programming perspective.

Feature Request - "Fewer than 6 links"

Under Links you have 3 options

  • Fewer than 5 links
  • 5 links
  • 6 links

Can I request an option for the following?

  • Fewer than 6 links

After the first few days of a league I will typically 6l everything. As a result a 5l carries no additional value to me. I would prefer to have the ability to split items up into 6l and everything else. Of course I can do that now (by creating 3 separate filters), but having a fourth option would save on # of filters needed.

Missing Affix

The affix "% increased maximum energy shield" is missing.

Thanks,
Gdneye

Feature Request - Turn off poe.trade stats

Hi Licoffe,

I would be interested in the ability to turn off the poe.trade stats (either locally or globally). Generally speaking I have not used that feature and I am wondering if it might slow down the processing of the app (or cause timeouts) when I am attempting to run a large number of filters.

Obviously you know the program better than I do. It is possible that this function is so lightweight that it is adding little to no strain. If that Is the case then I'll trust your judgement and you can ignore this feature request.

Thanks,
Gdneye

Copy to clipboard not working - Linux

When clicking on a listed item the notification of the copied message shows in my corner as expected.
However neither CTRL + V nor middle mouse button pastes the message.
Seems like the text is not claimed at all.

Arch Linux x64
Xorg
Xfwm4 (from xfce4)

[Feature request - UI] Textbox for Item Type

  1. Open a new filter.
  2. Click on the type selectbox.
  3. Type something with the keyboard and press enter.
    Current behavior: The correct type is selected.
    Requested behavior: The scrollist starts from under the type selection box, what you type shows up in the selection box, and the list adapts and only shows matching terms (similar to the affix selection).

Issue when moving poe sniper to another window

Hi,
Currently have a issue when i move my poe sniper to my secondary screen. Works great until i restart the tool.

Error :
poesniper

Json content :

{"sound":"sound2.mp3","volume":0.5,"message":"@<account> Hi, I would like to buy your <item> listed for <price> in <league> (stash tab \"<stashTab>\"; position: left <left>, top <top>)","barter":"@<account> Hi, I would like to buy your <item> in <league> (stash tab \"<stashTab>\"; position: left <left>, top <top>)","RATES_REFRESH_INTERVAL":10000,"POE_TRADE_STATS_INTERVAL":3600000,"CHUNK_RETRY_INTERVAL":1000,"CHUNK_DOWNLOAD_INTERVAL":750,"STREAM_TOP_WAIT_INTERVAL":2000,"SCROLL_BACK_TOP_SPEED":500,"NOTIFICATION_QUEUE_INTERVAL":5000,"writeChunkStats":false,"globalClipboard":false,"leagues":["Standard","Hardcore","Legacy","Hardcore Legacy","2 Week Turmoil (JRE094)","2 Week Turmoil HC (JRE095)"],"defaultLeagueIndex":2,"showStatusBar":false,"windowWidth":1296,"windowHeight":1000,"x":1912,"y":-8,"useBeta":false,"checkUnderpriced":false}}

After investigation : one " } " is duplicated at the end of the json.

Linked filters issue

This seemed pretty straightforward. I downloaded the newest release (freshly because I had previously attempted to copy my filters.json file over and wanted to make sure I was starting 100% clean). Once I loaded it I started re-entering my filters and ran into a problem when I hit the Goldwyrm's. The only thing I can think of that I might have done was moving too quickly (prior to the video). I've noticed sometimes that if I don't wait after adding a filter for the poe.trade stats to fully load before doing my next thing it often causes issues.

https://youtu.be/jWNW874ThR4

Javascript error on startup

Whenever I try to start poe-sniper.exe, I get this error and it will not open. It was working fine for me on 8/5-8/6, but hasn't worked for the past week or so.

Thanks for the great program.

poe sniper

Remove Filter Button - Bug

The remove filter buttons have a couple of minor issues.

  1. It seems as if it is not possible to remove the very last filter. There are typically n - 1 red lines (where n is the number of filters). Each red line matches up to a filter except the last one. Clicking the general area where the red line should be results in an error message, "Windows cannot find '#!'. Make sure you typed the name correctly, and then try again."

  2. The remove filter buttons do not seem to line up well with my mouse position. It seems as if I have to be unusually high for it to hit the remove filter box and work.

poe.trade link should open in browser

Currently the poe.trade link below a filter opens in a PoE Sniper window instead of an actual browser like the other links. Please correct this as right now you cannot interact with many of the site features within that window.

GIF:
Screenshot from Gyazo

Error adding multiple filters (seems to start when adding the 4th filter)

I've started using the app and I'm having a problem every time I try to add a 4th filter. I've tried different filters and it errors each time so I don't think its an issue resulting from the specific filter I'm using.

I've uploaded a video showing the issue to youtube...

https://youtu.be/ws1RjKRDn4o

In the video you can see that my 3rd filter is a Goldwyrm and is added fine, but my 4th filter (an eye of Chayula) appeard to load, but if you look at the affixes for both the goldwyrm and the eye you can see that both of them adopt each other's affixes. Its not in the video but the price for Goldwyrm is also updated to the amount I listed for the eye.

Attempting to edit either filter (eye or Goldwyrm) removes the other filter from the filter list (although the filter list still lists 4 total filters). Deleting the remaining filter will reduce the filter list from 4 filters to 2 filters. All of this suggests to me that the two filters somehow become combined.

Spelling

Hey I'm assuming you're somewhere in the EU or Africa based on when you typically are logged on, just a head's up...

"Negociate price" should be "Negotiate price"

[Bug - UI] Filter count does not update correctly.

The following steps reproduced the problem for me:

  1. Minimize the filters section.
  2. Press 'add filter'.

Expected: The filter count goes up by 1.
Current: The filter count becomes 0.

Expanding the filter list and adding/removing any filter solves the issue.
Additionally, the console logs the following error:

GET file:///C:/static/gen/packed_dark.css?f9a65ed1 net::ERR_FILE_NOT_FOUND (from renderer.js: 1178)

Unsure if certain affixes are working

I set up some filters and ran the app overnight. When I came back this morning the results didn't seem to make sense.

Out of 8 filters only one filter (Lion's Roar) provided any responses. Responses for Lion's Roar came through consistently starting at 00:18:32 until 12:10:52. In that time period there were 25 responses, spaced fairly evenly.

In that same 12 hour time period none of the other 7 filters resulted in a single response and some of those filters were quite broad.

Lastly, if I search poeapp.com I see responses from that time frame that should have showed up.

https://youtu.be/o8UlUgldg1I

[Suggestion - UI] Rewrite the application UI with css grid

This is a long-term goal suggestion.

The current interface plays poorly in various resizing attempts. Floats are not nice to play with when things get complex and there are already a bunch of !important rules. Eventually, I fear this will hinder future feature development as getting new elements to act as requested would become a task taking a moderate amount of time.

Using a grid allows for easy insertion and re-positioning of elements, along with naming, potentially allowing future contributors help with tweaking the css (as of now, things are looking scary, and touching anything may break something else).

Grid support was supposedly added to electron recently. If this suggestion is accepted, I would suggest waiting until the next stable version of electron is released, so that the feature is tested.

Still having issues with moving to next change id

After your last update the program seemed to work better, but I started adding filters today. Eventually the program failed while attempting to get the next change id. it's possible that its getting to be too much for the program (hence my other post about potentially removing the poe.trade stats).

https://youtu.be/Mugb9-2IbD0

Thanks,
Gdneye

Copy to clipboard not working

When I click the item message pops up in the toolbar to indicate that the trade message is copied to the clipboard but it does not do that. Any ideas why this is happening? I love your project but I really can't use it if I can't message anyone...

some suggestions

Hi Licoffe,

I tried out poesniper and so far I'm really loving it, here are some features I would love to see in a future release:

-ability to make filter groups like on poe trade with the and or sum count and so on conditions and maybe some improved logic like "if condition is met use filter group 2, else use filtergroup 3"

-searching for items that are already up for trade (not only live search)

  • ability to organize my filters, the list should have an option to have expandable named folders and subfolders and the searches itself should be namable. That way instead of a giant filter name with all the conditions which are partly overlapping I could have a neat overview over what I'm searching

-update function via github

-ability to use the underpriced search in conjunction with filters, so far I can either search for my specified stuff with or without a set price, or I can search in general for underpriced stuff. What I would like would be the ability to set a filter like I do at the moment but instead of setting a buyout set the parameters of the underpriced search, so that I can search for specific Items that areunderpriced compared to the rest of the ones matching my filter.

Latest Update

It appears that the latest update may have created some issues with functions that were previously working.

I've been unable to get the "settings" or "Import filter" buttons to work. Also, previously when I moved the slider from "filters" to "underpriced" it would auto collapse the filters and it no longer does this (this last one may have been intentional).

https://youtu.be/7ddmLi6a_lc

Thanks,
Gdneye

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.