Minimum points for the bot to place a bet #106

This commit is contained in:
Alessandro Maggio
2021-03-11 22:44:36 +01:00
parent 56a3f13cad
commit 639b6d7df3
2 changed files with 44 additions and 21 deletions

View File

@@ -253,29 +253,48 @@ class WebSocketsPool:
):
if event.streamer.viewer_is_mod is True:
logger.info(
f"Sorry, you are moderator of {event.streamer}, so you can't bet!"
)
else:
ws.events_predictions[event_id] = event
start_after = event.closing_bet_after(
current_tmsp
)
place_bet_thread = threading.Timer(
start_after,
ws.twitch.make_predictions,
(ws.events_predictions[event_id],),
)
place_bet_thread.daemon = True
place_bet_thread.start()
logger.info(
f"Place the bet after: {start_after}s for: {ws.events_predictions[event_id]}",
f"Sorry, you are moderator of {event.streamer}, so you can't bet!",
extra={
"emoji": ":alarm_clock:",
"color": Settings.logger.color_palette.BET_START,
"emoji": ":pushpin:",
"color": Settings.logger.color_palette.BET_FILTERS,
},
)
else:
streamer = ws.streamers[streamer_index]
bet_settings = streamer.settings.bet
if (
bet_settings.minimum_points is None
or streamer.channel_points
> bet_settings.minimum_points
):
ws.events_predictions[event_id] = event
start_after = event.closing_bet_after(
current_tmsp
)
place_bet_thread = threading.Timer(
start_after,
ws.twitch.make_predictions,
(ws.events_predictions[event_id],),
)
place_bet_thread.daemon = True
place_bet_thread.start()
logger.info(
f"Place the bet after: {start_after}s for: {ws.events_predictions[event_id]}",
extra={
"emoji": ":alarm_clock:",
"color": Settings.logger.color_palette.BET_START,
},
)
else:
logger.info(
f"{streamer} have only {streamer.channel_points} channel points and the minimum for bet is: {bet_settings.minimum_points}",
extra={
"emoji": ":pushpin:",
"color": Settings.logger.color_palette.BET_FILTERS,
},
)
elif (
message.type == "event-updated"

View File

@@ -63,6 +63,7 @@ class BetSettings(object):
"percentage",
"percentage_gap",
"max_points",
"minimum_points",
"stealth_mode",
"filter_condition",
]
@@ -73,6 +74,7 @@ class BetSettings(object):
percentage: int = None,
percentage_gap: int = None,
max_points: int = None,
minimum_points: int = None,
stealth_mode: bool = None,
filter_condition: FilterCondition = None,
):
@@ -80,6 +82,7 @@ class BetSettings(object):
self.percentage = percentage
self.percentage_gap = percentage_gap
self.max_points = max_points
self.minimum_points = minimum_points
self.stealth_mode = stealth_mode
self.filter_condition = filter_condition
@@ -88,10 +91,11 @@ class BetSettings(object):
self.percentage = self.percentage if not None else 5
self.percentage_gap = self.percentage_gap if not None else 20
self.max_points = self.max_points if not None else 50000
self.minimum_points = self.minimum_points if not None else 0
self.stealth_mode = self.stealth_mode if not None else False
def __repr__(self):
return f"BetSettings(strategy={self.strategy}, percentage={self.percentage}, percentage_gap={self.percentage_gap}, max_points={self.max_points}, stealth_mode={self.stealth_mode})"
return f"BetSettings(strategy={self.strategy}, percentage={self.percentage}, percentage_gap={self.percentage_gap}, max_points={self.max_points}, minimum_points={self.minimum_points}, stealth_mode={self.stealth_mode})"
class Bet(object):