Browse Source

Bug Fix: Old data not cleared after new Fetch. Added some Debugging.

KeyMasterOfGozer 5 months ago
parent
commit
0d799ef170
2 changed files with 25 additions and 2 deletions
  1. 24 2
      market.py
  2. 1 0
      player.py

+ 24 - 2
market.py

@@ -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:

+ 1 - 0
player.py

@@ -27,6 +27,7 @@ class Player():
         regex=re.compile('[^0-9]')
         self.rank=int(regex.sub('',userInfo.find_element(By.TAG_NAME,'span').text))
         collection=self.driver.find_element(By.CLASS_NAME, 'container-collection')
+        self.Cards=[]
         cards=collection.find_elements(By.CLASS_NAME, 'wrapper-card')
         for card in cards:
             Card={}