Git Product home page Git Product logo

poe-scambot's Introduction

Name:                   PoE ScamBot
Author:                 Tony Lau
System Requirements:    Windows, Python 3.6.0
Dependencies:           requests

PoE ScamBot is a search engine (not an indexer) that maintains a live
search of the Path of Exile stash tab API. Unlike indexers, such as
poe.trade or poeapp.com, ScamBot does not track historical data and
is instead a lightweight parser. Thus, an item may show up multiple
times if the player modified other items in their stash.

Set Up:
1. Install Python 3.6.0 from https://www.python.org/. During
   installation, make sure the "Add Python to PATH" box is checked.
2. Open command prompt as an administrator
3. Run the command "pip install requests"

Usage:
1.  Run scambot.pyw
2.  Under the default settings, simply input the desired parameters
    then press "Start". The app will automatically start searching
    for items with the input parameters.
3.  Start playing Path of Exile.
4.  When the app finds a result, it will play a tone and copy a
    whisper message to your clipboard.
5.  Paste the message into chat and profit!

Fields:
League          - the league that the item should be found in
Maximum Price   - the maximum price that the item should have
Minimum Price   - the minimum price that the item should have
Sockets         - the number of sockets that the item should have
Links           - the number of links that the item should have
Rarity          - the rarity type that the item should have
Allow Corrupted - whether the item can be corrupted
Allow Crafted   - whether the item can be crafted
Search Regex    - the regular expression that should match the item's
                  text. (The item's text is made by concatenating the
                  item's name, implicit mods, and explicit mods.)

poe-scambot's People

Contributors

tonexus 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

Watchers

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

poe-scambot's Issues

Suddenly Parsing Very Slowly

I was using the ScamBot last night, and it was parsing quickly and finding the items at the prices I was looking for often. However, now that I am using it again the next day with the same min/max prices and items, it is parsing only once every 15-30 seconds and almost never finding items at my chosen price. Currently it is faster for me to manually go to poe trade/poeapp and copy and paste myself when I find something. Also today, most of the items it does find if any, are being sold by offline accounts.

Req: item stats above copied message

Hello, would it be hard to paste in item stats above copied message?
I am really new at regex and I am not sure if the items that I search for are correct, and would be nice to see all item stats above the copied message.

Also a noob Question, how can we search for socket colors? 2g1r3b for example.

Feature Request: Currency Equivalence

It appears you are only searching for currency type by name in the JSON. how about converting ex down to chaos down to alchemy/fuse/jewellers at the very least?

I don't want to bog down development with using, say, poe.ninja's most recent values.

Simple question.

I know you've abandoned. But i would like to know if it;s normal that im getting an KeyError for the sockets. Ive updated the list so it has Bestiary in but i cant get the sockets Key error fixed.

Item Level

Currently the item level is not included in the search string, it would be nice to be able to include item level in the search regex.

Not finding div card/items without price?

Tried it last night for Hardcore bringer league.For some reason it doesn't find div cards. I typed the name of the card and put price from 0 chaos to 20 chaos. At the same time I did that on poe.trade too. In about 30 min poe.trade live search came up with result, but your program didn't. I left it another 30 min running, but it never found the card.

no longer working

This was working fantastic until a few days ago, where all of a sudden it stopped working whenever you press "Start". You get this error:

Exception in Tkinter callback
Traceback (most recent call last):
File "D:\Downloads\poe-scambot-master (1)\poe-scambot-master\scambot.pyw", line 199, in start_parsing
self.queue_parse_ids.put(requests.get(constants.NEXT_API).json()['nextChangeId'])
KeyError: 'nextChangeId'

Was something changed in the API that made it so it no longer works?

3.1 not supported?

Tried using it in both Abyss (after changing LEAGUES[0] to "Abyss") and Standard testing with Div Cards and Uniques and did not work.... tested it with my own items as well... not that should make any difference

Any idea how to update?

Regex Guide

Hi all,

Not an issue with the program, but more of a request. I tried several regex searches after reading the python guide in the readme, but nothing work. Does anyone have a well written guide for how to actually look for items? Levels of gem mainly, but full guide will be god send. Thanks.

Nothing happening when running scambot.pyw

simple as the title. I tried some of the other options you suggested in another issues thread, but I can't run it from console either. it gives me [Errno 2] no such file or directory. also in windows explorer under the type of file it says "python file (no console)" not sure if that is supposed to be that way. thanks for the help

Allow Corrupted

Edit: Deleted information that would be more appropriate in other threads.

Hey, first off thanks for making this! The app is extremely quick and works nicely.

I've noticed that the "Allow Corrupted" toggle does not seem to work properly. I have searched for enlighten supports with the "Allow Corrupted" toggled to off. When I do that the app will show me both regular and corrupted enlighten gems. I've tested the toggle both on and off (using my own enlighten gem to force a response from the app). Both settings result in a beep when I update the information on my corrupted gem (by moving it around and changing zones or w/e).

On that note, do you have any idea of how much complicated regex searches will slow the app down? Here is an example of my output (if there are any errors ignore them, I'm still working on getting the excel formulas perfected).

(((Goldwyrm).+(([2][5-9])|([3][0]))% increased Quantity of Items found)|(((Andvarius).+(([6][7-9])|([7][0]))% increased Rarity of items found)|((([5][1-6])% Increased Energy Shield).+(([1][6-7])% to maximum Energy Shield))|(enlighten support)

Request

I'm interested in including the object price as part of the searchable regex. This will allow me to set up multiple searches at different price points e.g.
(Goldwyrm.+[0-5] chaos.+(2[7-9]|30)% increased Q).+(Energy From Within.+[0-10] chaos.+6% increased).

Below is what I've attempted to do, it might help clarify what I'm asking, but on the other hand you may have a simple answer to my request and not need it.

Thanks,
Tim

I've attempted to modify the code myself to accomplish this, but I have no experience in Python and limited self-taught experience in any coding (PHP, JS, SQL, HTML, VBA).

My basic attempt was to make a couple of changes to the parserthread.pyw file.

  1. I moved the code that sets the "price_regex_match" variable above the code that sets the "full_name" and "full_text" variable. I tested scambot after this step and was unable to notice any changes, it appeared to be working as intended.

  2. I changed the full_text variable from

     full_text = ' '.join([full_name] + (item['implicitMods'] if 'implicitMods' in item else []) + (item['explicitMods'] if 'explicitMods' in item else []))
    

to

    full_text = ' '.join([price_regex_match] + [full_name] + (item['implicitMods'] if 'implicitMods' in item else []) + (item['explicitMods'] if 'explicitMods' in item else []))

I've tried a few other iterations replacing "price_regex_match" with "price_regex.match", "price_regex", "price_regex_match.group(2)", etc. Always the same issue as follows.

I tested after this change and the program appeared to be working normally, but would not return any results. It loads, starts, stops, allows me to adjust settings, gives the message that it is parsing threads and moves to subsequent threads successfully.

I left the regex field blank for this search and made the other settings extremely broad. Before change #2 such an identically broad search would result in hundreds of beeps within a second or two. After the change it will go minutes with no beeps, so I appear to be doing something that makes the regex unreadable, or causes it to fail the "if not self.regex.search(full_text)" line of code.

My main guess is that I am calling the variable wrong or that I need to convert the variable to a string, but I don't know how to fix either.

Thanks again

Can't search for gem level.

I've been trying to edit my local copy and can't figure this out. I want to hit only level 3 or 4 enlighten gems. and i've added the following above the join statement.

    for props in item['properties']
        if props['name'] == 'Level':
           gemLevel = props['values'][0][0]

it won't parse :(

tkinter window closing

Your app kill function in the main scipt crashes out on my setup, I fixed this by commenting out the loop that tries to kill each thread and changing self.kill to self.destroy.

Feature Request: multiple searches.

Without spawning a 2nd parser how about creating the ability to have multiple searches going at once?

Currently with the regex you can search for (chaotic|Vivid) (crimson|viridian) jewel of (smothering|cool-thing) and this is fine for the same rarity/frameType. But what about being able to search for either this one just mentioned AND for a unique (by name) AND for a currency at a certain threshold?

This would slow down the parser for a large amount of concurrent searches. but i think it

Parser slows down

Yeah I realize its a bit of a vague issue but the parser occasionally slows down from 3 to about 1 parse a second. This means when I change something in my sell tab and leave the area to update the api, it takes ~30 second for it to show up in scambot. Now I've been monitoring the network usage of the program
and that has remained the same and a fresh restart and reinstall means hardware shouldn't be at fault. I'm just confused...

ilvl Search

Maybe it is allready possible, but i would love to have this as a filter in the search.

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.