Last active
March 9, 2019 14:52
-
-
Save bukowa/f339a9416f4a50635bd9983234114ae3 to your computer and use it in GitHub Desktop.
path of exile check poe.trade
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from dataclasses import dataclass | |
from bs4 import BeautifulSoup as soup | |
import requests | |
from collections import Counter | |
import time | |
# python 3.7 | |
# installation: | |
# pip install bs4 lxml requests | |
class Bot: | |
def __init__(self, url): | |
self.url = url | |
self.parser = soup(self._get_html(), 'lxml') | |
@staticmethod | |
def _get_count(data): | |
cnt = Counter() | |
for i, v in enumerate(data): | |
cnt[v] += 1 | |
return cnt | |
def _get_html(self, url=None): | |
return requests.get(url or self.url).content | |
def _get_all_ign(self): | |
return [ | |
e.next_element.next_element.next_element.text | |
for e in | |
self.parser.findAll('span', 'success label') | |
] | |
def parse(self): | |
self._get_html() | |
return self._get_count(self._get_all_ign()) | |
@dataclass | |
class Item: | |
name: str | |
price: int | |
currency: str | |
url: str | |
description: str = '' | |
def __post_init__(self): | |
self.bot = Bot(self.url) | |
def get_message(self, seller, amount): | |
return f'@{seller} Hi, I would like to buy your {self.name} listed for {self.price} ' \ | |
f'{self.currency} in Delve. I will take all {amount} for a total of {self.price * amount} {self.currency}.' \ | |
f'Please dont add me to party, just write that u agree! Thanks!' | |
@dataclass() | |
class Search: | |
items: list | |
custom_message: str = None | |
def go(self, more_than=1): | |
for item in self.items: | |
data = item.bot.parse() | |
for nick, amount in data.most_common(): | |
if amount > more_than: | |
print(item.get_message(nick, amount)) | |
cheap_fossils = [ | |
Item('Aberrant Fossil', 1, 'chisel', 'http://poe.trade/search/kasebusititare', | |
'More Chaos modifiers, No Lightning modifiers'), | |
] | |
sidhebreath_alch = Item('Sidhebreath Paua Amulet ', 1, 'alchemy', 'http://poe.trade/search/hiyutadukasaho') | |
sidhebreath_fusing = Item('Sidhebreath Paua Amulet ', 1, 'fusing', 'http://poe.trade/search/monamorahonaut') | |
bound_fossil = Item('Bound Fossil', 1, 'chaos', 'http://poe.trade/search/ahitosiorinisi') | |
if __name__ == '__main__': | |
while True: | |
Search([bound_fossil]).go(2) | |
print('Done') | |
break | |
while True: | |
Search([ | |
Item('Bound Fossil', 1, 'chaos', 'http://poe.trade/search/ahitosiorinisi'), | |
Item('Jagged Fossil', 2, 'chaos', 'http://poe.trade/search/iyarararoazaho'), | |
Item('Bound Fossil', 1, 'chaos', 'http://poe.trade/search/ahitosiorinisi'), | |
Item('Tangled Fossil', 1, 'chaos', 'http://poe.trade/search/ahitosiorinisi'), | |
]).go() | |
time.sleep(15) | |
print('=================================================================') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment