Less printing as arugments for logger. Request in Issue #10
This commit is contained in:
@@ -42,7 +42,8 @@ class TwitchChannelPointsMiner:
|
||||
browser_settings: BrowserSettings = BrowserSettings(),
|
||||
bet_settings: BetSettings = BetSettings(),
|
||||
):
|
||||
self.twitch = Twitch(username)
|
||||
self.username = username
|
||||
self.twitch = Twitch(self.username)
|
||||
self.twitch_browser = None
|
||||
self.follow_raid = follow_raid
|
||||
self.streamers = []
|
||||
@@ -60,7 +61,8 @@ class TwitchChannelPointsMiner:
|
||||
self.start_datetime = None
|
||||
self.original_streamers = []
|
||||
|
||||
self.logs_file = configure_loggers(username, logger_settings)
|
||||
self.logger_settings = logger_settings
|
||||
self.logs_file = configure_loggers(self.username, self.logger_settings)
|
||||
|
||||
signal.signal(signal.SIGINT, self.end)
|
||||
signal.signal(signal.SIGSEGV, self.end)
|
||||
@@ -104,7 +106,11 @@ class TwitchChannelPointsMiner:
|
||||
streamer_username.lower().strip()
|
||||
try:
|
||||
channel_id = self.twitch.get_channel_id(streamer_username)
|
||||
streamer = Streamer(streamer_username, channel_id)
|
||||
streamer = Streamer(
|
||||
streamer_username,
|
||||
channel_id,
|
||||
less_printing=self.logger_settings.less,
|
||||
)
|
||||
self.streamers.append(streamer)
|
||||
except StreamerDoesNotExistException:
|
||||
logger.info(
|
||||
@@ -125,6 +131,7 @@ class TwitchChannelPointsMiner:
|
||||
self.twitch.twitch_login.get_auth_token(),
|
||||
self.session_id,
|
||||
settings=self.browser_settings,
|
||||
less_printing=self.logger_settings.less,
|
||||
)
|
||||
self.twitch_browser.init()
|
||||
|
||||
@@ -207,6 +214,7 @@ class TwitchChannelPointsMiner:
|
||||
print("")
|
||||
logger.info(f"{self.bet_settings}", extra={"emoji": ":bar_chart:"})
|
||||
for event_id in self.events_predictions:
|
||||
self.events_predictions[event_id].set_less_printing(False)
|
||||
logger.info(
|
||||
f"{self.events_predictions[event_id].print_recap()}",
|
||||
extra={"emoji": ":bar_chart:"},
|
||||
@@ -214,6 +222,7 @@ class TwitchChannelPointsMiner:
|
||||
print("")
|
||||
|
||||
for streamer_index in range(0, len(self.streamers)):
|
||||
self.streamers[streamer_index].set_less_printing(False)
|
||||
logger.info(
|
||||
f"{self.streamers[streamer_index]}, Gained (end-start): {self.streamers[streamer_index].channel_points - self.original_streamers[streamer_index].channel_points}",
|
||||
extra={"emoji": ":microphone:"},
|
||||
|
||||
@@ -13,6 +13,7 @@ class EventPrediction:
|
||||
status,
|
||||
outcomes,
|
||||
bet_settings: BetSettings,
|
||||
less_printing: bool = False,
|
||||
):
|
||||
self.streamer = streamer
|
||||
|
||||
@@ -27,8 +28,21 @@ class EventPrediction:
|
||||
self.bet_placed = False
|
||||
self.bet = Bet(outcomes, bet_settings)
|
||||
|
||||
self.less_printing = less_printing
|
||||
|
||||
def __repr__(self):
|
||||
return f"EventPrediction(event_id={self.event_id}, title={self.title})"
|
||||
return (
|
||||
f"EventPrediction: {self.title}"
|
||||
if self.less_printing is True
|
||||
else f"EventPrediction(event_id={self.event_id}, title={self.title})"
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return (
|
||||
f"EventPrediction: {self.title}"
|
||||
if self.less_printing is True
|
||||
else f"EventPrediction(event_id={self.event_id}, title={self.title})"
|
||||
)
|
||||
|
||||
def elapsed(self, timestamp):
|
||||
return round(float((timestamp - self.created_at).total_seconds()), 2)
|
||||
@@ -38,3 +52,7 @@ class EventPrediction:
|
||||
|
||||
def print_recap(self):
|
||||
return f"{self}\n\t\t{self.streamer}\n\t\t{self.bet}\n\t\tResult: {self.final_result}"
|
||||
|
||||
def set_less_printing(self, value):
|
||||
self.less_printing = value
|
||||
self.streamer.less_printing = value
|
||||
|
||||
@@ -32,11 +32,13 @@ class LoggerSettings:
|
||||
def __init__(
|
||||
self,
|
||||
save: bool = True,
|
||||
less: bool = False,
|
||||
console_level: int = logging.INFO,
|
||||
file_level: int = logging.DEBUG,
|
||||
emoji: bool = platform.system() != "Windows",
|
||||
):
|
||||
self.save = save
|
||||
self.less = less
|
||||
self.console_level = console_level
|
||||
self.file_level = file_level
|
||||
self.emoji = emoji
|
||||
@@ -50,8 +52,12 @@ def configure_loggers(username, settings):
|
||||
console_handler.setLevel(settings.console_level)
|
||||
console_handler.setFormatter(
|
||||
EmojiFormatter(
|
||||
fmt="%(asctime)s - %(levelname)s - [%(funcName)s]: %(message)s",
|
||||
datefmt="%d/%m/%y %H:%M:%S",
|
||||
fmt=(
|
||||
"%(asctime)s - %(levelname)s - [%(funcName)s]: %(message)s"
|
||||
if settings.less is False
|
||||
else "%(asctime)s : %(message)s"
|
||||
),
|
||||
datefmt=("%d/%m/%y %H:%M:%S" if settings.less is False else "%d/%m %H:%M:%S"),
|
||||
print_emoji=settings.emoji,
|
||||
)
|
||||
)
|
||||
|
||||
@@ -5,11 +5,7 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Streamer:
|
||||
def __init__(
|
||||
self,
|
||||
username,
|
||||
channel_id,
|
||||
):
|
||||
def __init__(self, username, channel_id, less_printing: bool = False):
|
||||
self.username = username
|
||||
self.channel_id = channel_id
|
||||
self.is_online = False
|
||||
@@ -23,8 +19,21 @@ class Streamer:
|
||||
self.streamer_url = f"https://www.twitch.tv/{self.username}"
|
||||
self.chat_url = f"https://www.twitch.tv/popout/{self.username}/chat?popout="
|
||||
|
||||
self.less_printing = less_printing
|
||||
|
||||
def __repr__(self):
|
||||
return f"Streamer(username={self.username}, channel_id={self.channel_id}, channel_points={self.channel_points})"
|
||||
return (
|
||||
f"Streamer: {self.username}"
|
||||
if self.less_printing is True
|
||||
else f"Streamer(username={self.username}, channel_id={self.channel_id}, channel_points={self.channel_points})"
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return (
|
||||
f"Streamer: {self.username}"
|
||||
if self.less_printing is True
|
||||
else f"Streamer(username={self.username}, channel_id={self.channel_id}, channel_points={self.channel_points})"
|
||||
)
|
||||
|
||||
def set_offline(self):
|
||||
self.offline_at = time.time()
|
||||
@@ -49,3 +58,6 @@ class Streamer:
|
||||
self.history[reason_code] = {"counter": 0, "amount": 0}
|
||||
self.history[reason_code]["counter"] += 1
|
||||
self.history[reason_code]["amount"] += earned
|
||||
|
||||
def set_less_printing(self, value):
|
||||
self.less_printing = value
|
||||
@@ -392,7 +392,7 @@ class TwitchBrowser:
|
||||
|
||||
def place_bet(self, event: EventPrediction):
|
||||
logger.info(
|
||||
f"Going to complete bet for {event}. Current url page: {self.browser.current_url}",
|
||||
f"Going to complete bet for {event}", # ". Current url page: {self.browser.current_url}",
|
||||
extra={"emoji": ":wrench:"},
|
||||
)
|
||||
if event.status == "ACTIVE":
|
||||
@@ -426,7 +426,7 @@ class TwitchBrowser:
|
||||
)
|
||||
try:
|
||||
logger.info(
|
||||
f"Going to write: {decision['amount']} on input {decision['choice']}: {decision_outcome}",
|
||||
f"Going to write: {decision['amount']} on input {decision['choice']}\n\t\t{decision_outcome}",
|
||||
extra={"emoji": ":wrench:"},
|
||||
)
|
||||
if (
|
||||
|
||||
@@ -57,6 +57,7 @@ class TwitchWebSocket(WebSocketApp):
|
||||
self.streamers = parent_pool.streamers
|
||||
self.bet_settings = parent_pool.bet_settings
|
||||
self.events_predictions = parent_pool.events_predictions
|
||||
self.less_printing = parent_pool.less_printing
|
||||
|
||||
self.last_message_time = 0
|
||||
self.last_message_type = None
|
||||
|
||||
@@ -24,7 +24,13 @@ def get_streamer_index(streamers, channel_id):
|
||||
|
||||
class WebSocketsPool:
|
||||
def __init__(
|
||||
self, twitch, twitch_browser, streamers, bet_settings, events_predictions
|
||||
self,
|
||||
twitch,
|
||||
twitch_browser,
|
||||
streamers,
|
||||
bet_settings,
|
||||
events_predictions,
|
||||
less_printing: bool = False,
|
||||
):
|
||||
self.ws = None
|
||||
self.twitch = twitch
|
||||
@@ -33,6 +39,8 @@ class WebSocketsPool:
|
||||
self.events_predictions = events_predictions
|
||||
self.bet_settings = bet_settings
|
||||
|
||||
self.less_printing = less_printing
|
||||
|
||||
"""
|
||||
API Limits
|
||||
- Clients can listen on up to 50 topics per connection. Trying to listen on more topics will result in an error message.
|
||||
@@ -210,6 +218,7 @@ class WebSocketsPool:
|
||||
event_status,
|
||||
event_dict["outcomes"],
|
||||
bet_settings=ws.bet_settings,
|
||||
less_printing=ws.less_printing,
|
||||
)
|
||||
if (
|
||||
ws.streamers[streamer_index].is_online
|
||||
|
||||
Reference in New Issue
Block a user