Skip to content

Get notified and make instant offers when items you're looking for get listed for trading in Path of Exile without having to leave the game

Notifications You must be signed in to change notification settings

MSP-Greg/poe-sniper

 
 

Repository files navigation

Poe::Sniper

Poe::Sniper is a desktop app that notifies you in-game when items you’re looking for are listed for trading in Path of Exile. It is an alternative to keeping several browser tabs open but it consumes far less resources and you don’t have to switch between the game and your browser all the time. You can use the same custom search criteria and can even message the seller instantly.

You are viewing the README of version v0.5.0. You can find other releases here.

Branch Status
Release Build Status Build status Coverage Status
Development Build Status Build status Coverage Status Depfu

How does it work

Features

  • 100% ToS compliant
  • Queries new listsings instantly via poe.trade live mode
  • Handles any custom search created via poe.trade
  • Uses Windows notifications which:
    • don't remove focus from the game
    • have a configurable timeout
    • are easily dismissable anytime
  • Places whisper message on clipboard for faster interaction
  • Consumes far less resources than running poe.trade in browser
  • Queues listings if more than one arrives within the configured notification timeframe (alerts that there are further items)

Side effects

  • PoE needs to run in windowed or windowed fullscreen mode for the notifications to show ingame
  • Your clipboard will be altered with every new notification regardless whether you have any other content on it

Installation and usage

Download the latest release (poe-sniper.zip) from the releases page. Extract it, inside the poe-sniper folder you will find 3 files:

  • poe-sniper.exe
  • config.ini
  • input/example_input.yaml
  • input/example_input.json (deprecated)

Modify config.ini and example_input.yaml according to your needs. You can still use json format for input but it is no longer the default.

example_input.yaml contains links to the searches you want to be notified about and a custom name for each search. If you're unsure about the YAML format just follow the example. Assuming the linked example you will receive notifications like: New Tabula on BSC listed. ~b/o 10 chaos.

config.ini contains Poe::Sniper's configuration such as how long the notifications should last, where the input file is located, etc.

Run poe-sniper.exe

Certain versions of Windows might warn against running unverified apps. If prompted click More info and Run anyway.

You're all set. Enjoy your interrupt free PoE.

Additionally here's a modified version of the Lutbot AutoHotkey Macro where the 'Paste' option is added allowing you to hotkey sending messages from the clipboard. That's right. One click to set up a trade. It's awesome, I know!

Disclaimer

This tool was created to improve the trading experience. We believe in creating a fair competition by making the best tools available to everyone. This is why we're releasing it to the public.

Technical details

Written in Ruby, packaged as standalone Windows executable with OCRA.

Please be aware that we're sending anonymous data to gather app usage statistics.

Usage from source

Create .env file as described in the analytics chapter. See default tasks in Rakefile for running tests and building the executable.

Start in normal mode

bundle
bundle exec rake start

Start in offline mode with example socket data

bundle
bundle exec rake start_offline_debug

Debug

  • Test socket connection retry by providing an incorrect api_url in config.ini
  • Test HTTP connection retry by going offline

Analytics

The app is using Segment (via the analytics-ruby gem) to gather anonymous usage statistics. Open source client side key handling sucks, the current approach to maximize obscurity is to read the Base64 encoded write key from the uncommitted ANALYTICS_KEY environment variable stored in a .env file which is packaged with the build. This env var should be set when running the ocra Rake task and will be added to .env automatically during the build.

Certificates are stored in config/cacert.pem and are referenced in the SSL_CERT_FILE env var in order to fix the certificate verify failed issue on Windows (see).

Known issues / Improvements / TODO

  • Get rid of Nokogiri, find a non-native way to parse HTML
  • Use a non-EM solution for websokets
    • Run sockets on their separate threads
      • Increase retry timeout freely since other sockets are no longer blocked

Conventions

This app is developed using the following conventions:

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/thisismydesign/poe-sniper.

About

Get notified and make instant offers when items you're looking for get listed for trading in Path of Exile without having to leave the game

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 99.7%
  • Shell 0.3%