Пример #1
0
    def get_espn_data(self):
        try:
            database_obj = Database()
            link = self.obj.get_xpath("Preview_link")
            teams = database_obj.get_teams_from_db(link)
            if teams:
                import json
                self.espn_list.extend(json.loads(teams[0][0]))
                self.espn_list.extend(json.loads(teams[0][1]))
                return
            self.logger.info("Opening espn news page...")
            self.driver.get(link)
            team1 = self.obj.get_text_from_element(
                self.obj.wait_for_element(self.driver,
                                          self.obj.get_xpath("Team1")))
            team2 = self.obj.get_text_from_element(
                self.obj.wait_for_element(self.driver,
                                          self.obj.get_xpath("Team2")))
            self.logger.info("Getting team names...")
            team_name1 = self.obj.get_text_from_element(
                self.obj.wait_for_element(self.driver,
                                          self.obj.get_xpath("Team1") + "/b"))
            team_name2 = self.obj.get_text_from_element(
                self.obj.wait_for_element(self.driver,
                                          self.obj.get_xpath("Team2") + "/b"))
            self.logger.info("Formatting the text...")
            team1 = "".join(team1.split(team_name1)).strip(":").strip()
            team2 = "".join(team2.split(team_name2)).strip(":").strip()

            is_change_needed = False
            if is_change_needed:
                with open('/tmp/dream11.txt', 'w') as f:
                    f.truncate()
                with open('/tmp/dream11.txt', 'a') as f:
                    f.write(team1 + '\n')
                    f.write(team2 + '\n')
                # Since we can't rely upon espn cricnfo, it might have text formatting
                # issues, writing to a txt file, verify it, then continue
                import ipdb
                ipdb.set_trace()
                with open('/tmp/dream11.txt', 'r') as f:
                    teams = f.readlines()
                team1 = teams[0].strip("\n")
                team2 = teams[1].strip("\n")
            pt = re.compile(r'\d+\s+')
            res = re.sub(pt, '', team1)
            self.logger.info("Adding team1 players to espn_list")
            for ele in res.split(', '):
                if ele:
                    if '(wk)' in ele:
                        ele = "".join(ele.split('(wk)')).strip()
                    if '(capt)' in ele:
                        ele = "".join(ele.split('(capt)')).strip()
                    if '/' in ele:
                        for x in ele.split('/'):
                            self.espn_list.append(x.strip().strip('.').strip())
                        continue
                    if 'probable' in ele:
                        ele = ''.join(ele.split('(probable) '))
                    if 'possible' in ele:
                        ele = ''.join(ele.split('(possible) '))
                    self.espn_list.append(ele.strip().strip('.').strip())
            self.logger.info("%s Players are %s" %
                             (team_name1, self.espn_list))
            self.logger.info("Total %s Players are %d" %
                             (team_name1, len(self.espn_list)))
            self.file_logger.info("%s Players are %s" %
                                  (team_name1, self.espn_list))
            self.file_logger.info("Total %s Players are %d" %
                                  (team_name1, len(self.espn_list)))
            self.logger.info("Formatting the text...")
            res = re.sub(pt, '', team2)
            self.logger.info("Adding team2 players to espn_list")
            team1_players = deepcopy(self.espn_list)
            team2_players = []
            for ele in res.split(', '):
                if ele:
                    if '(wk)' in ele:
                        ele = "".join(ele.split('(wk)')).strip()
                    if '(capt)' in ele:
                        ele = "".join(ele.split('(capt)')).strip()
                    if '/' in ele:
                        for x in ele.split('/'):
                            self.espn_list.append(x.strip().strip('.').strip())
                            team2_players.append(x.strip().strip('.').strip())
                        continue
                    if 'probable' in ele:
                        ele = ''.join(ele.split('(probable) '))
                    if 'possible' in ele:
                        ele = ''.join(ele.split('(possible) '))
                    self.espn_list.append(ele.strip().strip('.').strip())
                    team2_players.append(ele.strip().strip('.').strip())
            self.logger.info("%s Players are %s" % (team_name2, team2_players))
            self.logger.info("Total %s Players are %d" %
                             (team_name2, len(team2_players)))
            self.file_logger.info("%s Players are %s" %
                                  (team_name2, team2_players))
            self.file_logger.info("Total %s Players are %d" %
                                  (team_name2, len(team2_players)))
            database_obj.insert_teams_into_db(link, team1_players,
                                              team2_players)

        except WebDriverException:
            self.logger.info("Exception Occurred... writing to the log file")
            self.file_logger.debug(traceback.format_exc())