|
@@ -0,0 +1,163 @@
|
|
|
+from rival_regions_wrapper.middleware import LocalAuthentication
|
|
|
+from rival_regions_wrapper import util
|
|
|
+from rival_regions_wrapper.wrapper.abstract_wrapper import AbstractWrapper
|
|
|
+import re
|
|
|
+from bs4 import BeautifulSoup
|
|
|
+
|
|
|
+
|
|
|
+authentication = LocalAuthentication(True)
|
|
|
+authentication.set_credentials("mail@gmail.com","password","google")
|
|
|
+
|
|
|
+
|
|
|
+class Market2(AbstractWrapper):
|
|
|
+
|
|
|
+ def info(self, resource):
|
|
|
+ """Get profile"""
|
|
|
+ if isinstance(resource, str) and resource in util.ITEM_KEYS:
|
|
|
+ resource = util.ITEM_KEYS[resource]
|
|
|
+ path = 'storage/listed/{}'.format(resource)
|
|
|
+ response = self.middleware.get(path)
|
|
|
+ soup = BeautifulSoup(response, 'html.parser')
|
|
|
+ offers_tree = soup.find_all(class_='list_link')
|
|
|
+ test = 0
|
|
|
+ i = 0
|
|
|
+ for offer_tree in offers_tree:
|
|
|
+ if int(re.sub(
|
|
|
+ r'^.*\/', '',
|
|
|
+ offer_tree.select_one('.results_date')['action'])) == 2000883512:
|
|
|
+ test = int(
|
|
|
+ offer_tree.select_one('.list_level.imp.small')['rat']
|
|
|
+ )
|
|
|
+ i = i+1
|
|
|
+ return test
|
|
|
+
|
|
|
+
|
|
|
+class Storage(AbstractWrapper):
|
|
|
+ """Wrapper class for storage"""
|
|
|
+ def info(self,resource):
|
|
|
+ """storage info"""
|
|
|
+ path = 'storage'
|
|
|
+ resource = util.ITEM_KEYS[resource]
|
|
|
+ response = self.middleware.get(path)
|
|
|
+ soup = BeautifulSoup(response, 'html.parser')
|
|
|
+ storage = int(
|
|
|
+ soup.find('span', {'urlbar': resource}).text.replace('.', ''))
|
|
|
+ return storage
|
|
|
+
|
|
|
+
|
|
|
+class Market(AbstractWrapper):
|
|
|
+ def info(self, resource):
|
|
|
+ """Get profile"""
|
|
|
+ if isinstance(resource, str) and resource in util.ITEM_KEYS:
|
|
|
+ resource = util.ITEM_KEYS[resource]
|
|
|
+ path = 'storage/listed/{}'.format(resource)
|
|
|
+ response = self.middleware.get(path)
|
|
|
+ soup = BeautifulSoup(response, 'html.parser')
|
|
|
+ offers_tree = soup.find_all(class_='list_link')
|
|
|
+ test = 0
|
|
|
+ prijs = 0
|
|
|
+ for offer_tree in offers_tree:
|
|
|
+ if test == 0:
|
|
|
+ test = 1
|
|
|
+ prijs = int(
|
|
|
+ float(offer_tree.select('.list_level')[1]['rat']) * 100)
|
|
|
+ if int(re.sub(r'^.*\/', '',offer_tree.select_one('.results_date')['action'])) == 2000883512:
|
|
|
+ prijs = 0
|
|
|
+ return prijs
|
|
|
+
|
|
|
+
|
|
|
+class MarketBot(AbstractWrapper):
|
|
|
+ def info(self,resource,minprice):
|
|
|
+ test = 0
|
|
|
+ current_price = Market(authentication).info(resource)
|
|
|
+ if current_price !=0:
|
|
|
+ op_markt = Market2(authentication).info(resource)
|
|
|
+ opslag = Storage(authentication).info(resource)
|
|
|
+ totaal = opslag + op_markt
|
|
|
+ mijn_prijs = (current_price - 10)/100
|
|
|
+ check = 0
|
|
|
+
|
|
|
+ if mijn_prijs < minprice:
|
|
|
+ mijn_prijs = minprice
|
|
|
+ if resource == "helium-3":
|
|
|
+ if totaal >= 153600:
|
|
|
+ totaal = 153600
|
|
|
+ check = 1
|
|
|
+ if resource == "liquid_oxygen":
|
|
|
+ if totaal >= 38400000:
|
|
|
+ totaal = 38400000
|
|
|
+ check = 1
|
|
|
+ if resource == "oil":
|
|
|
+ if totaal >= 614400000:
|
|
|
+ totaal = 614400000
|
|
|
+ check = 1
|
|
|
+ if resource == "ore":
|
|
|
+ if totaal >= 614400000:
|
|
|
+ totaal = 614400000
|
|
|
+ check = 1
|
|
|
+ if resource == "uranium":
|
|
|
+ if totaal >= 15360000:
|
|
|
+ totaal = 15360000
|
|
|
+ check = 1
|
|
|
+ if resource == "diamonds":
|
|
|
+ if totaal >= 153600:
|
|
|
+ totaal = 153600
|
|
|
+ check = 1
|
|
|
+ if resource == "rivalium":
|
|
|
+ if totaal >= 614400:
|
|
|
+ totaal = 614400
|
|
|
+ check = 1
|
|
|
+ if resource == "antirad":
|
|
|
+ if totaal >= 76800:
|
|
|
+ totaal = 76800
|
|
|
+ check = 1
|
|
|
+ if resource == "spacerockets":
|
|
|
+ if totaal >= 3840:
|
|
|
+ totaal = 3840
|
|
|
+ check = 1
|
|
|
+ if resource == "lss":
|
|
|
+ if totaal >= 15360000:
|
|
|
+ totaal = 15360000
|
|
|
+ check = 1
|
|
|
+ if resource == "tanks":
|
|
|
+ if totaal >= 4388571:
|
|
|
+ totaal = 4388571
|
|
|
+ check = 1
|
|
|
+ if resource == "aircrafts":
|
|
|
+ if totaal >= 640000:
|
|
|
+ totaal = 640000
|
|
|
+ check = 1
|
|
|
+ if resource == "missiles":
|
|
|
+ if totaal >= 256000:
|
|
|
+ totaal = 256000
|
|
|
+ check = 1
|
|
|
+ if resource == "bombers":
|
|
|
+ if totaal >= 128000:
|
|
|
+ totaal = 128000
|
|
|
+ check = 1
|
|
|
+ if resource == "battleships":
|
|
|
+ if totaal >= 128000:
|
|
|
+ totaal = 128000
|
|
|
+ check = 1
|
|
|
+ if resource == "laser_drones":
|
|
|
+ if totaal >= 256000:
|
|
|
+ totaal = 256000
|
|
|
+ check = 1
|
|
|
+ if resource == "moon_tanks":
|
|
|
+ if totaal >= 12800:
|
|
|
+ totaal = 12800
|
|
|
+ check = 1
|
|
|
+ if resource == "space_stations":
|
|
|
+ if totaal >= 1280:
|
|
|
+ totaal = 1280
|
|
|
+ check = 1
|
|
|
+ if (((totaal == op_markt) and (mijn_prijs == minprice)) or (minprice == 500000000)):
|
|
|
+ return True
|
|
|
+ if totaal != 0:
|
|
|
+ item = util.ITEM_KEYS[resource]
|
|
|
+ self.middleware.post(
|
|
|
+ 'storage/sell/{}'.format(item))
|
|
|
+ self.middleware.post(
|
|
|
+ 'storage/newsell/{}/{}/{}'.format(item, totaal, mijn_prijs))
|
|
|
+ return True
|
|
|
+
|