示例#1
0
def test_ocr_pp1():
    mongo = MongoManager()
    table_dict = mongo.get_table(
        "PartyPoker 6 Players Fast Forward $1-$2 NL Hold'em")
    table_scraper = TableScraper(table_dict)
    table_scraper.screenshot = Image.open(
        os.path.join(get_dir('tests', 'screenshots'),
                     '173280759_PreFlop_0.png'))
    table_scraper.crop_from_top_left_corner()

    result = ocr(table_scraper.screenshot, 'total_pot_area',
                 table_scraper.table_dict)
    assert result == 0.09

    result = ocr(table_scraper.screenshot, 'call_value',
                 table_scraper.table_dict)
    assert result == 0.04

    result = ocr(table_scraper.screenshot, 'raise_value',
                 table_scraper.table_dict)
    assert result == 0.1

    result = ocr(table_scraper.screenshot,
                 'player_funds_area',
                 table_scraper.table_dict,
                 player='0')
    assert result == 1.32
示例#2
0
 def get_pots(self):
     """Get current and total pot"""
     self.current_round_pot = ocr(self.screenshot,
                                  'current_round_pot',
                                  self.table_dict,
                                  delta_X=self.delta_x,
                                  delta_Y=self.delta_y)
     log.info(f"Current round pot {self.current_round_pot}")
     self.total_pot = ocr(self.screenshot,
                          'total_pot_area',
                          self.table_dict,
                          delta_X=self.delta_x,
                          delta_Y=self.delta_y)
     log.info(f"Total pot {self.total_pot}")
     return True
示例#3
0
 def get_raise_value(self):
     """Read the value of the raise button"""
     self.raise_value = ocr(self.screenshot,
                            'raise_value',
                            self.table_dict,
                            delta_X=self.delta_x,
                            delta_Y=self.delta_y)
     log.info(f"Raise value: {self.raise_value}")
     return self.raise_value
示例#4
0
 def get_call_value(self):
     """Read the call value from the call button"""
     self.call_value = ocr(self.screenshot,
                           'call_value',
                           self.table_dict,
                           delta_X=self.delta_x,
                           delta_Y=self.delta_y)
     log.info(f"Call value: {self.call_value}")
     return self.call_value
示例#5
0
 def get_player_pots_nn(self, i):
     time_pots_start = datetime.datetime.utcnow()
     self.player_pots[i] = ocr(self.screenshot, 'player_pot_area',
                               self.table_dict, str(i), self.delta_x,
                               self.delta_y)
     time_pots_end = datetime.datetime.utcnow()
     log.info(
         f"Collapsed time for player {i} pot: {time_pots_end - time_pots_start}"
     )
     return True
示例#6
0
    def get_call_raise_value(self, name):
        time_value_start = datetime.datetime.utcnow()
        if name == 'raise_value':
            self.raise_value = ocr(self.screenshot,
                                   'raise_value',
                                   self.table_dict,
                                   delta_X=self.delta_x,
                                   delta_Y=self.delta_y)
            log.info(f"Raise value: {self.raise_value}")
        if name == 'call_value':
            self.call_value = ocr(self.screenshot,
                                  'call_value',
                                  self.table_dict,
                                  delta_X=self.delta_x,
                                  delta_Y=self.delta_y)
            log.info(f"Call value: {self.call_value}")

        time_value_end = datetime.datetime.utcnow()
        log.info(
            f"Collapsed time for {name}: {time_value_end - time_value_start}")
示例#7
0
 def get_pots2(self, name):
     time_pots_start = datetime.datetime.utcnow()
     if name == 'current_round_pot':
         self.current_round_pot = ocr(self.screenshot,
                                      'current_round_pot',
                                      self.table_dict,
                                      delta_X=self.delta_x,
                                      delta_Y=self.delta_y)
         log.info(f"Current round pot {self.current_round_pot}")
     if name == 'total_pot_area':
         self.total_pot = ocr(self.screenshot,
                              'total_pot_area',
                              self.table_dict,
                              delta_X=self.delta_x,
                              delta_Y=self.delta_y)
         log.info(f"Total pot {self.total_pot}")
     time_pots_end = datetime.datetime.utcnow()
     log.info(
         f"Collapsed time for {name}: {time_pots_end - time_pots_start}")
     return True
示例#8
0
    def get_player_pots(self, skip=[]):
        """Get pots of the players"""
        self.player_pots = []
        for i in range(self.total_players):
            if i in skip:
                funds = 0
            else:
                funds = ocr(self.screenshot, 'player_pot_area', self.table_dict, str(i))
            self.player_pots.append(funds)
        log.info(f"Player pots: {self.player_pots}")

        return True
示例#9
0
    def get_bot_pot(self, p):
        self.gui_signals.signal_status.emit("Get bot pot")
        from poker.scraper.screen_operations import ocr
        value = ocr(self.screenshot, 'player_pot_area', self.table_dict,
                    str(0))

        if value != "":
            self.bot_pot = float(value)
            self.value = float(value)

        if value == "":
            self.bot_pot = 0
            log.debug("Assuming bot pot is 0")

        return True
示例#10
0
    def get_player_pots(self, skip=[]):
        """Get pots of the players"""
        for i in range(self.total_players):
            if i in skip:
                self.player_pots[i] = -1.0
            else:
                self.player_pots[i] = ocr(self.screenshot,
                                          'player_pot_area', self.table_dict,
                                          str(i), self.delta_x, self.delta_y)
                log.debug(
                    f"player {i} pot coordinates: {self.table_dict['player_pot_area'][str(i)]}"
                )
        log.info(f"Player pots: {self.player_pots}")

        return True
示例#11
0
    def get_players_funds(self, my_funds_only=False, skip=[], player=None):
        """
        Get funds of players

        Returns: list of floats

        """
        self.time_funds_start = datetime.datetime.utcnow()
        if player is not None:
            self.player_funds[player] = ocr(self.screenshot,
                                            'player_funds_area',
                                            self.table_dict, str(player),
                                            self.delta_x, self.delta_y)
        else:
            if my_funds_only:
                counter = 1
            else:
                counter = self.total_players

            # self.player_funds = [None for _ in range(self.total_players)]
            for i in range(counter):
                # if i in skip:
                #     funds = 0
                # else:
                #     funds = ocr(self.screenshot, 'player_funds_area', self.table_dict, str(i))
                # self.player_funds.append(funds)
                self.player_funds[i] = ocr(self.screenshot,
                                           'player_funds_area',
                                           self.table_dict, str(i),
                                           self.delta_x, self.delta_y)
            log.info(f"Player funds: {self.player_funds}")
        self.time_funds_end = datetime.datetime.utcnow()
        log.info(
            f"Collapsed time for player funds: {self.time_funds_end - self.time_funds_start}"
        )
        return True
示例#12
0
    def get_players_funds(self, my_funds_only=False, skip=[]):
        """
        Get funds of players

        Returns: list of floats

        """
        if my_funds_only:
            counter = 1
        else:
            counter = self.total_players

        self.player_funds = []
        for i in range(counter):
            if i in skip:
                funds = 0
            else:
                funds = ocr(self.screenshot, 'player_funds_area', self.table_dict, str(i))
            self.player_funds.append(funds)
        log.info(f"Player funds: {self.player_funds}")
        return True
示例#13
0
 def get_game_number_on_screen2(self):
     """Game number"""
     self.game_number = ocr(self.screenshot, 'game_number', self.table_dict)
     log.debug(f"Game number: {self.game_number}")
     return self.game_number
示例#14
0
 def get_pots(self):
     """Get current and total pot"""
     self.current_round_pot = ocr(self.screenshot, 'current_round_pot', self.table_dict)
     log.info(f"Current round pot {self.current_round_pot}")
     self.total_pot = ocr(self.screenshot, 'total_pot_area', self.table_dict)
     log.info(f"Total pot {self.total_pot}")