示例#1
0
文件: rooney.py 项目: sokogfb/vbet
 async def forecast(self):
     table = self.competition.table.table  # type: List[Dict]
     league_games = self.competition.league_games  # type: Dict[int, Dict]
     if self.competition.week == 3:
         self.team = table[-1].get('team')
         self.bet_flag = False
         if self.reset_flag:
             self.account.reset_lost_amount()
     if not self.team or self.competition.week not in self.required_weeks:
         return []
     if not self.bet_flag:
         return []
     week_games = league_games.get(
         self.competition.week)  # type: Dict[int, Dict]
     for event_id, event_data in week_games.items():
         player_a = event_data.get('A')
         player_b = event_data.get('B')
         if player_a == self.team or player_b == self.team:
             self.event_id = event_id
             self.event_data = event_data
             if player_a == self.team:
                 self.odd_id = 1
             else:
                 self.odd_id = 0
             self._bet = True
             break
         else:
             continue
     if not self._bet:
         return []
     odds = self.event_data.get('odds')
     participants = self.event_data.get('participants')
     ticket = Ticket(self.competition.game_id, self.name)
     event = Event(self.event_id, self.competition.league,
                   self.competition.week, participants)
     market_id, odd_name, odd_index = Player.get_market_info(
         str(self.odd_id))
     odd_value = float(odds[odd_index])
     if odd_value < 1.02:
         return []
     stake = self.account.normalize_stake(self.account.get_stake(odd_value))
     bet = Bet(self.odd_id, market_id, odd_value, odd_name, stake)
     event.add_bet(bet)
     win = round(stake * odd_value, 2)
     min_win = win
     max_win = win
     logger.info(
         f'[{self.competition.user.username}:{self.competition.game_id}] {self.name} '
         f'{event.get_formatted_participants()}[{self.odd_id} : {odd_value}]'
     )
     ticket.add_event(event)
     ticket.stake = stake
     ticket.min_winning = min_win
     ticket.max_winning = max_win
     ticket.total_won = 0
     ticket.grouping = 1
     ticket.winning_count = 1
     ticket.system_count = 1
     return [ticket]
示例#2
0
文件: ronaldo.py 项目: sokogfb/vbet
    async def forecast(self):
        table = self.competition.table.table  # type: List[Dict]
        self.team = table[0].get('team')
        league_games = self.competition.league_games  # type: Dict[int, Dict]
        week_games = league_games.get(self.competition.week)  # type: Dict[int, Dict]
        for event_id, event_data in week_games.items():
            player_a = event_data.get('A')
            player_b = event_data.get('B')
            if player_a == self.team or player_b == self.team:
                self.event_id = event_id
                self.event_data = event_data
                self._bet = True
                break
            else:
                continue

        odds = self.event_data.get('odds')
        participants = self.event_data.get('participants')
        ticket = Ticket(self.competition.game_id, self.name)
        event = Event(self.event_id, self.competition.league, self.competition.week, participants)
        ticket.add_event(event)
        min_win = 0
        max_win = 0
        total_stake = 0
        a = [i for i in range(15, 43)]
        b = []
        for _ in a:
            market_id, odd_name, odd_index = Player.get_market_info(str(_))
            b.append(1 / float(odds[odd_index]))
        target_odd_ids = secrets.SystemRandom().choices(a, b, k=20)
        for odd_id in [73, 75]:
            market_id, odd_name, odd_index = Player.get_market_info(str(odd_id))
            odd_value = float(odds[odd_index])
            if odd_value < 1.02:
                return []
            stake = self.account.normalize_stake(10)
            total_stake += stake
            bet = Bet(odd_id, market_id, odd_value, odd_name, stake)
            event.add_bet(bet)
            win = round(stake * odd_value, 2)
            min_win = win if win < min_win else min_win
            max_win = win if max_win > max_win else max_win
            logger.info(f'[{self.competition.user.username}:{self.competition.game_id}] {self.name} '
                         f'{event.get_formatted_participants()}[{odd_id} : {odd_value}]')
        ticket.stake = total_stake
        ticket.min_winning = min_win
        ticket.max_winning = max_win
        ticket.total_won = 0
        ticket.grouping = 1
        ticket.winning_count = len(target_odd_ids)
        ticket.system_count = len(target_odd_ids)
        return [ticket]
示例#3
0
文件: mbape.py 项目: sokogfb/vbet
    async def forecast(self):
        if self.team:
            pass
        else:
            self.predict(self.competition.week)
        if not self.team:
            return []
        league_games = self.competition.league_games  # type: Dict[int, Dict]
        week_games = league_games.get(
            self.competition.week)  # type: Dict[int, Dict]
        for event_id, event_data in week_games.items():
            player_a = event_data.get('A')
            player_b = event_data.get('B')
            if player_a == self.team or player_b == self.team:
                self.event_id = event_id
                self.event_data = event_data
                self._bet = True
                break
            else:
                continue

        odds = self.event_data.get('odds')
        participants = self.event_data.get('participants')
        ticket = Ticket(self.competition.game_id, self.name)
        event = Event(self.event_id, self.competition.league,
                      self.competition.week, participants)
        market_id, odd_name, odd_index = Player.get_market_info(
            str(self.odd_id))
        odd_value = float(odds[odd_index])
        if odd_value < 1.02:
            return []
        stake = self.account.normalize_stake(5)
        bet = Bet(self.odd_id, market_id, odd_value, odd_name, stake)
        event.add_bet(bet)
        win = round(stake * odd_value, 2)
        min_win = win
        max_win = win
        logger.info(
            f'[{self.competition.user.username}:{self.competition.game_id}] {self.name} '
            f'{event.get_formatted_participants()}[{self.odd_id} : {odd_value}]'
        )
        ticket.add_event(event)
        ticket.stake = stake
        ticket.min_winning = min_win
        ticket.max_winning = max_win
        ticket.total_won = 0
        ticket.grouping = 1
        ticket.winning_count = 1
        ticket.system_count = 1
        return [ticket]
示例#4
0
文件: fati.py 项目: sokogfb/vbet
 async def forecast(self):
     league_games = self.competition.league_games  # type: Dict[int, Dict]
     week_games = league_games.get(
         self.competition.week)  # type: Dict[int, Dict]
     tickets = []
     for event_id, event_data in week_games.items():
         participants = event_data.get('participants')
         odds = event_data.get('odds')
         odd_ids = [0, 1]
         _odds = []
         for odd_id in odd_ids:
             market_id, odd_name, odd_index = Player.get_market_info(
                 str(odd_id))
             _odds.append(odds[odd_index])
         odd_value = max(_odds)
         odd_id = _odds.index(odd_value)
         if odd_id == 0:
             odd_id = 207
         else:
             odd_id = 206
         market_id, odd_name, odd_index = Player.get_market_info(
             str(odd_id))
         odd_value = float(odds[odd_index])
         if odd_value < 1.3:
             continue
         ticket = Ticket(self.competition.game_id, self.name)
         event = Event(event_id, self.competition.league,
                       self.competition.week, participants)
         stake = self.account.get_stake(odd_value)
         bet = Bet(odd_id, market_id, odd_value, odd_name, stake)
         event.add_bet(bet)
         win = round(stake * odd_value, 2)
         min_win = win
         max_win = win
         ticket.add_event(event)
         ticket.stake = stake
         ticket.min_winning = min_win
         ticket.max_winning = max_win
         ticket.total_won = 0
         ticket.grouping = 1
         ticket.winning_count = 1
         ticket.system_count = 1
         tickets.append(ticket)
     return tickets
示例#5
0
 async def forecast(self):
     league_games = self.competition.league_games  # type: Dict[int, Dict]
     week_games = league_games.get(
         self.competition.week)  # type: Dict[int, Dict]
     tickets = []
     for event_id, event_data in week_games.items():
         # player_a = event_data.get('A')
         # player_b = event_data.get('B')
         participants = event_data.get('participants')
         odds = event_data.get('odds')
         odd_ids = [0, 1]
         _odds = []
         for odd_id in odd_ids:
             market_id, odd_name, odd_index = Player.get_market_info(
                 str(self.odd_id))
             _odds.append(odds[odd_index])
         all_odds = [odds[odd_index]]
         # market_id = 'FullTimeUnderOver2_5GoalGoalNoGoal'
         # odd_name = "HomeOver2_5GoalGoal"
         # all_odds = []
         for odd_value in all_odds:
             odd_value = round(odd_value, 2)
             ticket = Ticket(self.competition.game_id, self.name)
             event = Event(event_id, self.competition.league,
                           self.competition.week, participants)
             stake = 5
             bet = Bet(self.odd_id, market_id, odd_value, odd_name, stake)
             event.add_bet(bet)
             win = round(stake * odd_value, 2)
             min_win = win
             max_win = win
             # logger.info(f'[{self.competition.user.username}:{self.competition.game_id}] {self.name} '
             #              f'{event.get_formatted_participants()}[{self.odd_id} : {odd_value}]')
             ticket.add_event(event)
             ticket.stake = stake
             ticket.min_winning = min_win
             ticket.max_winning = max_win
             ticket.total_won = 0
             ticket.grouping = 1
             ticket.winning_count = 1
             ticket.system_count = 1
             tickets.append(ticket)
     return tickets
示例#6
0
文件: hazard.py 项目: sokogfb/vbet
 async def forecast(self):
     league_games = self.competition.league_games  # type: Dict[int, Dict]
     if not self.bet_enabled:
         table = self.competition.table.table  # type: List[Dict]
         targets = table[:2]
         points = []
         for target_team in targets:
             team = target_team.get('team')
             p = target_team.get('points')
             points.append((team, p))
         if points:
             first = points[0]
             second = points[1]
             f_p = first[1]
             s_p = second[1]
             if f_p - s_p > 15:
                 self.team = first[0]
                 self.bet_enabled = True
                 print(points)
             if not self.bet_enabled or self.competition.week not in self.required_weeks:
                 return []
         else:
             return []
     if not self.bet_enabled:
         return []
     week_games = league_games.get(
         self.competition.week)  # type: Dict[int, Dict]
     for event_id, event_data in week_games.items():
         player_a = event_data.get('A')
         player_b = event_data.get('B')
         if player_a == self.team or player_b == self.team:
             self.event_id = event_id
             self.event_data = event_data
             if player_a == self.team:
                 self.odd_id = 0
             else:
                 self.odd_id = 1
             self._bet = True
             break
         else:
             continue
     if not self._bet:
         return []
     odds = self.event_data.get('odds')
     participants = self.event_data.get('participants')
     ticket = Ticket(self.competition.game_id, self.name)
     event = Event(self.event_id, self.competition.league,
                   self.competition.week, participants)
     market_id, odd_name, odd_index = Player.get_market_info(
         str(self.odd_id))
     odd_value = float(odds[odd_index])
     if odd_value < 1.02:
         return []
     stake = self.account.get_stake(odd_value)
     bet = Bet(self.odd_id, market_id, odd_value, odd_name, stake)
     event.add_bet(bet)
     win = round(stake * odd_value, 2)
     min_win = win
     max_win = win
     logger.info(
         f'[{self.competition.user.username}:{self.competition.game_id}] {self.name} '
         f'{event.get_formatted_participants()}[{self.odd_id} : {odd_value}]'
     )
     ticket.add_event(event)
     ticket.stake = stake
     ticket.min_winning = min_win
     ticket.max_winning = max_win
     ticket.total_won = 0
     ticket.grouping = 1
     ticket.winning_count = 1
     ticket.system_count = 1
     return [ticket]