|
@@ -7,10 +7,22 @@ from datetime import datetime
|
|
|
import pandas as pd
|
|
|
from tinydb import Query
|
|
|
import json
|
|
|
+import sys
|
|
|
from player import Player
|
|
|
from config import Config
|
|
|
from db import MarketDB
|
|
|
|
|
|
+import logging
|
|
|
+logger = logging.getLogger(__name__)
|
|
|
+stdout = logging.StreamHandler(stream=sys.stdout)
|
|
|
+fmt = logging.Formatter(
|
|
|
+ "%(asctime)s | %(levelname)s | %(message)s"
|
|
|
+)
|
|
|
+stdout.setFormatter(fmt)
|
|
|
+logger.addHandler(stdout)
|
|
|
+logger.setLevel(logging.INFO)
|
|
|
+
|
|
|
+
|
|
|
@dataclass
|
|
|
class Market():
|
|
|
url:str = 'https://play.boobylegends.com/market/'
|
|
@@ -21,7 +33,9 @@ class Market():
|
|
|
player:Player = None
|
|
|
|
|
|
def fetchData(self):
|
|
|
+ logger.debug("Market Fetching Data.")
|
|
|
self.loadPage()
|
|
|
+ self.Cards=[]
|
|
|
cards=self.driver.find_elements(By.CLASS_NAME, 'wrapper-market-card')
|
|
|
for card in cards:
|
|
|
Card={}
|
|
@@ -40,24 +54,29 @@ class Market():
|
|
|
self.loadDF()
|
|
|
|
|
|
def initPage(self):
|
|
|
+ logger.debug("Market Init Page.")
|
|
|
self.driver = webdriver.Chrome()
|
|
|
self.driver.get(self.url)
|
|
|
self.driver.add_cookie(Config["cookie"])
|
|
|
|
|
|
def loadPage(self):
|
|
|
+ logger.debug("Market Load Page.")
|
|
|
if self.driver is None: self.initPage()
|
|
|
self.driver.get(self.url)
|
|
|
self.asOf=datetime.utcnow()
|
|
|
|
|
|
def closePage(self):
|
|
|
+ logger.debug("Market Close Page.")
|
|
|
self.driver.close()
|
|
|
|
|
|
def getPlayerInfo(self):
|
|
|
+ logger.debug("Market Get Player Info")
|
|
|
if self.player is None: self.player = Player()
|
|
|
self.player.fetchData()
|
|
|
self.player.closePage()
|
|
|
|
|
|
def filterMarketCards(self):
|
|
|
+ logger.debug("Market Filter Cards.")
|
|
|
self.getPlayerInfo()
|
|
|
clist=[None]*152
|
|
|
for card in self.player.Cards: clist[card['card-num']]=card['stock']
|
|
@@ -79,14 +98,17 @@ class Market():
|
|
|
self.driver.execute_script(js)
|
|
|
|
|
|
def loadDF(self):
|
|
|
+ logger.debug("Market Load DF.")
|
|
|
self.df=pd.DataFrame(self.Cards)
|
|
|
self.df.sort_values(by='card-num', ascending=True, inplace=True)
|
|
|
|
|
|
def show(self):
|
|
|
- pdf=self.df.drop(['link','card-id','phid'], axis=1)
|
|
|
- print(pdf.to_string(index=False))
|
|
|
+ logger.debug("Market Show Data.")
|
|
|
+ pdf=self.df.drop(['link','card-id','phid'], axis=1)
|
|
|
+ print(pdf.to_string(index=False))
|
|
|
|
|
|
def commit(self):
|
|
|
+ logger.debug("Market Commit.")
|
|
|
today=self.asOf.strftime('%Y-%m-%d')
|
|
|
current=MarketDB.search(Query()['date']==today)
|
|
|
if len(current)==0:
|