def __post_init__(self): if isinstance(self._data, str): self._data = BeautifulSoup(self._data) div_main = self._data.find('div', class_=re.compile( 'column_main')) or BeautifulSoup() elem = div_main.find('div', class_=re.compile('league')) self.league = clr_txt(elem.get_text()) if elem else self.league div_info = div_main.find('div', class_=re.compile('info')) or BeautifulSoup() elem = div_info.a self.href = elem.get('href') if elem else self.href members = [element.string for element in elem.find_all('span')] if elem else [] self.member_1 = '' if not members or len(members) < 1 else members[0] self.member_2 = '' if not members or len(members) < 2 else members[1] elem = div_info.find('div', re.compile('total')) self._total_score = clr_txt(elem.get_text()) if elem else '' self.bets = [LigastavokBetData(self._data)]
def bets(self): if not self._bets: outcomes = self.event_raw_data.find('div', re.compile('column_outcome')) bets = [] if outcomes: for outcome in outcomes.find_all( 'div', re.compile('bui-group-outcome__wrapper')): bets.append([ clr_txt(element.string) for element in outcome.div.contents if element.name == 'div' ]) self._bets = bets return self._bets
def __post_init__(self): self._snapshot_time = datetime.datetime.now() div_main = self._data.find('div', class_=re.compile( 'column_main')) or BeautifulSoup() elem = div_main.find('div', class_=re.compile('status')) self.status = clr_txt(elem.get_text()) if elem else "" div_info = div_main.find('div', class_=re.compile('info')) or BeautifulSoup() elem = div_info.find('div', re.compile('current')) self.current_score = clr_txt(elem.get_text()) if elem else '' elem = div_info.find('div', re.compile('total')) self.total_score = clr_txt(elem.get_text()) if elem else '' div_outcomes = self._data.find('div', re.compile('column_outcome')) bets = [] if div_outcomes: for outcome in div_outcomes.find_all('div', re.compile( 'bui-group-outcome__wrapper')): bets.append( [clr_txt(element.string) for element in outcome.div.contents if element.name == 'div']) self.bets = bets
def total_score(self): if not self._total_score: total_score = self.div_info.find('div', re.compile('total')) self._total_score = clr_txt( total_score.get_text()) if total_score else '' return self._total_score
def current_score(self): if not self._current_score: current_score = self.div_info.find('div', re.compile('current')) self._current_score = clr_txt( current_score.get_text()) if current_score else '' return self._current_score
def status(self): if not self._status: elem = self.div_main.find('div', class_=re.compile('status')) self._status = clr_txt(elem.get_text()) if elem else "" return self._status
def league(self): if not self._league: elem = self.div_main.find('div', class_=re.compile("league")) self._league = clr_txt(elem.get_text()) if elem else "" return self._league