|
@@ -0,0 +1,50 @@
|
|
|
+from dataclasses import dataclass, field
|
|
|
+from typing import List, Dict
|
|
|
+from selenium import webdriver
|
|
|
+from selenium.webdriver.common.keys import Keys
|
|
|
+from selenium.webdriver.common.by import By
|
|
|
+from datetime import datetime
|
|
|
+import pandas as pd
|
|
|
+from config import Config
|
|
|
+
|
|
|
+@dataclass
|
|
|
+class Player():
|
|
|
+ url:str = 'https://play.boobylegends.com/player/'
|
|
|
+ Cards:List[dict] = field(default_factory=list)
|
|
|
+ asOf:datetime = datetime.utcnow()
|
|
|
+ df:pd.DataFrame = field(default_factory=pd.DataFrame)
|
|
|
+
|
|
|
+ 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);")
|
|
|
+ collection=driver.find_element(By.CLASS_NAME, 'container-collection')
|
|
|
+ cards=collection.find_elements(By.CLASS_NAME, 'wrapper-card')
|
|
|
+ for card in cards:
|
|
|
+ Card={}
|
|
|
+ Card['card-num']=int(card.find_element(By.CLASS_NAME,'pornstar-number').text)
|
|
|
+ Card['name']=card.find_element(By.TAG_NAME,'h2').text
|
|
|
+ Card['card-id'] = int(card.get_attribute('card-id'))
|
|
|
+ Card['phid'] = card.get_attribute('phid')
|
|
|
+ Card['level'] = card.get_attribute('level')
|
|
|
+ Card['link'] = card.get_attribute('href')
|
|
|
+ Card['level']=card.find_element(By.CLASS_NAME,'pornstar-status').text
|
|
|
+ try:
|
|
|
+ Card['stock']=card.find_element(By.CLASS_NAME,'card-nb').text
|
|
|
+ except:
|
|
|
+ Card['stock']="Quantity Not Found"
|
|
|
+ self.Cards.append(Card)
|
|
|
+ driver.close()
|
|
|
+ self.loadDF()
|
|
|
+
|
|
|
+ def loadDF(self):
|
|
|
+ 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))
|
|
|
+
|