Giter Site home page Giter Site logo

easybuyout's Introduction

EasyBuyout for Path of Exile

EasyBuyout

What does it do

Set a buyout notes on items with right click based on prices from poe.ninja. This handy program instantly outputs a buyout note containing the average price, allowing you to price hundreds of items without the tedious work of looking them up individually.

Who is it for

Be you a labrunner or an Uber Atziri farmer, who has dozens upon dozens of gems or maps that need prices or maybe just your average player who wants to actually enjoy the game instead of playing Shoppe Keep all day long. Well, then this program is perfect for you.

Settings explained (as of v1.0.14)

  • Show overlay Displays a small TradeMacro-like box under the cursor that contains the price instead of pasting it (can be closed by moving the cursor away from the box)
  • Send note copies a buyout note (eg. ~b/o 5 chaos) to your clipboard and pastes it into the game's note field
  • Send enter automatically presses enter after pasting the note, applying the price instantly
  • Paste delay delay in milliseconds between clicking and pasting the buyout note. Required as the premium stash's price menu takes some time to open. If the buyout notes are not being pasted, try incrementing this value by 50 until you see a change.
  • Lower price by #% takes whatever price the item usually goes for and reduces its price by that percentage
  • Live update Automatically downloads fresh prices every 10 minutes
  • Price precision Rounds prices. For example, precision 2 would mean 5.43262 -> 5.43

What can it price

Armours, weapons, accessories, flasks, 6-links, 5-links, jewels, gems, divination cards, maps, currency, prophecies, essences, you name it. In short: if it's an item, this program can find a price for it.

Words of warning

  • The prices might not be always 100% accurate because they are from poe.ninja
  • PriceBoxes probably don't work well with full-screen mode
  • Prices in hardcore are generally not accurate as nobody plays there
  • There might be some issues running this program alongside TradeMacro or similar applications as they both need to access the clipboard

easybuyout's People

Contributors

jake0x48 avatar nibbydev 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

Watchers

 avatar  avatar  avatar  avatar  avatar

easybuyout's Issues

[bug] Divination cards tabs not working as expected

If you try to use Pricer on divination card tab noting happens.
You need to grab divination card to your inventory and then press right mouse click. And then put again the divination card to divination card tab :(

[bug] DownloadPoeOvhData() -> MaxJsonLength Property

File: PriceManager.cs
Method: DownloadPoeOvhData()

// Download JSON-encoded string
string jsonString = MainWindow.webClient.DownloadString("http://api.poe.ovh/get?league=" + Settings.league + "&parent=all");

The donwload seems 'ok', but when you try to deseriealize:

// Deserialize
List<PoeOvhEntry> tempDict = new JavaScriptSerializer().Deserialize<List<PoeOvhEntry>>(jsonString);

It's throws this exception:

"Error during serialization or deserialization using JSON JavaScriptSerializer.The length of the string exceeds the value set in the maxJsonLength property. \ R \ nName of the parameter: input"

Useful info about exception: https://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.maxjsonlength(v=vs.110).aspx

Maybe this is the 'problem':

The maximum length of JSON strings. The default is 2097152 characters, which is equivalent to 4 MB of Unicode string data.

How i fixed?

  1. Installing Newtonsoft.Json nuget package: https://www.nuget.org/packages/Newtonsoft.Json/11.0.2
  2. Changing this on DownloadPoeOvhData(): (using Newtonsoft.Json instead JavaScriptSerializer)
// Deserialize (Fix bug 4 MB data)
List<PoeOvhEntry> tempDict = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PoeOvhEntry>>(jsonString);

[request] change some source code lines to make source VS 2015 compatible

mainwindow.xaml.cs

Changes in https://github.com/siegrest/Pricer/blob/master/Pricer/MainWindow.xaml.cs#L189

VS 2017 method private void ClipBoard_ItemParseTask(string clipboardString)

switch(entry.value) {

VS 2015 compatible:

int entryValue = (int)entry.value;
switch (entryValue) {

pricemanager.cs

Changes in https://github.com/siegrest/Pricer/blob/master/Pricer/PriceManager.cs#L48

VS 2017 method private void DownloadPoeOvhData()

tempDict.TryGetValue(name_category, out Dictionary<string, PoeOvhEntry> category);

VS 2015 compatible:

Dictionary<string, PoeOvhEntry> category;
tempDict.TryGetValue(name_category, out category);

Changes in https://github.com/siegrest/Pricer/blob/master/Pricer/PriceManager.cs#L52

VS 2017 method private void DownloadPoeOvhData()

// Get OvhEntry from list
category.TryGetValue(name_item, out PoeOvhEntry ovhEntry);

VS 2015 compatible:

// Get OvhEntry from list
PoeOvhEntry ovhEntry;
category.TryGetValue(name_item, out ovhEntry);

Changes in https://github.com/siegrest/Pricer/blob/master/Pricer/PriceManager.cs#L107

VS 2017 method private void DownloadPoeNinjaData()

tempDict.TryGetValue("lines", out List<PoeNinjaEntry> entryList);

VS 2015 compatible:

List<PoeNinjaEntry> entryList;
tempDict.TryGetValue("lines", out entryList);

Changes in https://github.com/siegrest/Pricer/blob/master/Pricer/PriceManager.cs#L365

VS 2017 method private void SearchPoePrices()

prices.TryGetValue("Exalted Orb|5", out Entry exaltedEntry);

VS 2015 compatible:

out Entry exaltedEntry;
prices.TryGetValue("Exalted Orb|5", out exaltedEntry);

Changes in https://github.com/siegrest/Pricer/blob/master/Pricer/PriceManager.cs#L387

VS 2017 method private void Search()

// Get the database entry
prices.TryGetValue(key, out Entry tempEntry);

VS 2015 compatible:

// Get the database entry
Entry tempEntry;
prices.TryGetValue(key, out tempEntry);

settingswindow.xaml.cs

Changes in https://github.com/siegrest/Pricer/blob/master/Pricer/SettingsWindow.xaml.cs#L58

VS 2017 method private void Button_Apply_Click(object sender, RoutedEventArgs e)

// Delay box
Int32.TryParse(TextBox_Delay.Text, out int delay);

VS 2015 compatible:

// Delay box
int delay;
Int32.TryParse(TextBox_Delay.Text, out delay);

Changes in https://github.com/siegrest/Pricer/blob/master/Pricer/SettingsWindow.xaml.cs#L70

VS 2017 method private void Button_Apply_Click(object sender, RoutedEventArgs e)

// Lower price % box
Int32.TryParse(TextBox_LowerPrice.Text, out int percentage);

VS 2015 compatible:

// Lower price % box
int percentage;
Int32.TryParse(TextBox_LowerPrice.Text, out percentage);

Issue with Server Timeout

[19:49:50][ERROR] System.Net.WebException: The remote server returned an error: (504) Gateway Timeout.
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at System.Net.WebClient.DownloadString(String address)
at Pricer.PriceManager.SearchPoePrices(String rawItemData)

Been running into this today. Similar issues with PoE Trade Macro as well.

Run button not active

Run button does not activate when user presses download button and exits settings window before download has finished.

Poe.ovh changed API endpoints

New one can be found under http://api.poe.ovh/get, documentation http://poe.ovh/api, Files affected: PriceManager.cs, Item.cs.

poeprices.info re-integration?

Can you add an option to use this as a source for pricing rares again? Allow us to specify every generic option that's on the site (Machine Learning Price, Recommended Price, etc.)

Gem keys formed incorrectly

Some gem keys (eg "Glacial Cascade|4|10|20|1") are formed incorrectly. This is especially evident in lvl10 variations. Plus poeninja has no support for lvl10 gems and poeovh changed its keys recently.

[bug] GetLatestRelease() exception when using https

How to fix it:

UpdateWindow.xaml.cs Run():

public void Run() {
    // Can't be null when making calls to github
    webClient.Headers.Add("user-agent", "!null");
    // Fix for https DonwloadString bug:
    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12;

[...]

}

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.