|
@@ -11,6 +11,7 @@ from config import Config
|
|
|
@dataclass
|
|
|
class Player():
|
|
|
url:str = 'https://play.boobylegends.com/player/'
|
|
|
+ driver:webdriver = None
|
|
|
Cards:List[dict] = field(default_factory=list)
|
|
|
asOf:datetime = datetime.utcnow()
|
|
|
df:pd.DataFrame = field(default_factory=pd.DataFrame)
|
|
@@ -19,17 +20,13 @@ class Player():
|
|
|
|
|
|
|
|
|
def fetchData(self):
|
|
|
- driver = webdriver.Chrome()
|
|
|
- driver.get(self.url)
|
|
|
- driver.add_cookie(Config["cookie"])
|
|
|
- driver.get(self.url)
|
|
|
- self.asOf=datetime.utcnow()
|
|
|
- driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
|
|
|
- userInfo=driver.find_element(By.CLASS_NAME, 'user-infos')
|
|
|
+ self.loadPage()
|
|
|
+ self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
|
|
|
+ userInfo=self.driver.find_element(By.CLASS_NAME, 'user-infos')
|
|
|
self.score=int(userInfo.find_element(By.CLASS_NAME,'my-score').text)
|
|
|
regex=re.compile('[^0-9]')
|
|
|
self.rank=int(regex.sub('',userInfo.find_element(By.TAG_NAME,'span').text))
|
|
|
- collection=driver.find_element(By.CLASS_NAME, 'container-collection')
|
|
|
+ collection=self.driver.find_element(By.CLASS_NAME, 'container-collection')
|
|
|
cards=collection.find_elements(By.CLASS_NAME, 'wrapper-card')
|
|
|
for card in cards:
|
|
|
Card={}
|
|
@@ -45,9 +42,21 @@ class Player():
|
|
|
except:
|
|
|
Card['stock']="Quantity Not Found"
|
|
|
self.Cards.append(Card)
|
|
|
- driver.close()
|
|
|
self.loadDF()
|
|
|
|
|
|
+ def initPage(self):
|
|
|
+ self.driver = webdriver.Chrome()
|
|
|
+ self.driver.get(self.url)
|
|
|
+ self.driver.add_cookie(Config["cookie"])
|
|
|
+
|
|
|
+ def loadPage(self):
|
|
|
+ if self.driver is None: self.initPage()
|
|
|
+ self.driver.get(self.url)
|
|
|
+ self.asOf=datetime.utcnow()
|
|
|
+
|
|
|
+ def closePage(self):
|
|
|
+ self.driver.close()
|
|
|
+
|
|
|
def loadDF(self):
|
|
|
self.df=pd.DataFrame(self.Cards)
|
|
|
self.df.sort_values(by='card-num', ascending=True, inplace=True)
|