analytics as an option in twitch_miner

This commit is contained in:
rdavydov
2022-10-23 20:50:27 +03:00
parent b50be92ba3
commit 23c556392a
5 changed files with 12 additions and 29 deletions

View File

@@ -1,4 +0,0 @@
# Significantly reduces memory consumption and saves some disk space.
# Remove this file if you don't need Analytics. Or rename it to something different, like "DISABLE_ANALYTICS.py".
# To enable Analytics back - just create this file again. Or rename it back to "ENABLE_ANALYTICS.py".
# This file can be empty.

View File

@@ -31,17 +31,6 @@ from TwitchChannelPointsMiner.utils import (
set_default_settings,
)
DISABLE_ANALYTICS = False
try:
import ENABLE_ANALYTICS
except ImportError:
DISABLE_ANALYTICS = True
# Analytics switch
if DISABLE_ANALYTICS is False:
from TwitchChannelPointsMiner.classes.AnalyticsServer import AnalyticsServer
# Suppress:
# - chardet.charsetprober - [feed]
# - chardet.charsetprober - [get_confidence]
@@ -63,6 +52,7 @@ class TwitchChannelPointsMiner:
"username",
"twitch",
"claim_drops_startup",
"analytics",
"priority",
"streamers",
"events_predictions",
@@ -82,6 +72,7 @@ class TwitchChannelPointsMiner:
username: str,
password: str = None,
claim_drops_startup: bool = False,
analytics: bool = False,
# Settings for logging and selenium as you can see.
priority: list = [Priority.STREAK, Priority.DROPS, Priority.ORDER],
# This settings will be global shared trought Settings class
@@ -90,7 +81,10 @@ class TwitchChannelPointsMiner:
streamer_settings: StreamerSettings = StreamerSettings(),
):
# Analytics switch
if DISABLE_ANALYTICS is False:
Settings.analytics = analytics
if Settings.analytics is True:
from TwitchChannelPointsMiner.classes.AnalyticsServer import AnalyticsServer
Settings.analytics_path = os.path.join(Path().absolute(), "analytics", username)
Path(Settings.analytics_path).mkdir(parents=True, exist_ok=True)
@@ -139,7 +133,7 @@ class TwitchChannelPointsMiner:
signal.signal(sign, self.end)
# Analytics switch
if DISABLE_ANALYTICS is False:
if Settings.analytics is True:
def analytics(
self,
host: str = "127.0.0.1",

View File

@@ -20,7 +20,7 @@ class FollowersOrder(Enum):
# Empty object shared between class
class Settings(object):
__slots__ = ["logger", "streamer_settings"]
__slots__ = ["logger", "streamer_settings", "analytics"]
class Events(Enum):

View File

@@ -9,7 +9,7 @@ from dateutil import parser
from TwitchChannelPointsMiner.classes.entities.EventPrediction import EventPrediction
from TwitchChannelPointsMiner.classes.entities.Message import Message
from TwitchChannelPointsMiner.classes.entities.Raid import Raid
from TwitchChannelPointsMiner.classes.Settings import Events
from TwitchChannelPointsMiner.classes.Settings import Events, Settings
from TwitchChannelPointsMiner.classes.TwitchWebSocket import TwitchWebSocket
from TwitchChannelPointsMiner.constants import WEBSOCKET
from TwitchChannelPointsMiner.utils import (
@@ -17,16 +17,8 @@ from TwitchChannelPointsMiner.utils import (
internet_connection_available,
)
DISABLE_ANALYTICS = False
try:
import ENABLE_ANALYTICS
except ImportError:
DISABLE_ANALYTICS = True
logger = logging.getLogger(__name__)
class WebSocketsPool:
__slots__ = ["ws", "twitch", "streamers", "events_predictions"]
@@ -186,7 +178,7 @@ class WebSocketsPool:
balance = message.data["balance"]["balance"]
ws.streamers[streamer_index].channel_points = balance
# Analytics switch
if DISABLE_ANALYTICS is False:
if Settings.analytics is True:
ws.streamers[streamer_index].persistent_series(
event_type=message.data["point_gain"]["reason_code"]
if message.type == "points-earned"
@@ -208,7 +200,7 @@ class WebSocketsPool:
reason_code, earned
)
# Analytics switch
if DISABLE_ANALYTICS is False:
if Settings.analytics is True:
ws.streamers[streamer_index].persistent_annotations(
reason_code, f"+{earned} - {reason_code}"
)

View File

@@ -20,6 +20,7 @@ twitch_miner = TwitchChannelPointsMiner(
Priority.DROPS, # - When we don't have anymore watch streak to catch, wait until all drops are collected over the streamers
Priority.ORDER # - When we have all of the drops claimed and no watch-streak available, use the order priority (POINTS_ASCENDING, POINTS_DESCEDING)
],
analytics=False, # Disables Analytics if False. Disabling it significantly reduces memory consumption
logger_settings=LoggerSettings(
save=True, # If you want to save logs in a file (suggested)
console_level=logging.INFO, # Level of logs - use logging.DEBUG for more info