Skip to content

Commit

Permalink
Little code refactoring, starting with a good code 😄 Ref #21
Browse files Browse the repository at this point in the history
  • Loading branch information
Tkd-Alex committed Jan 28, 2021
1 parent a72a327 commit f146038
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 18 deletions.
13 changes: 11 additions & 2 deletions TwitchChannelPointsMiner/classes/RequestInfo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
import json

from base64 import b64encode


class RequestInfo:
def __init__(self, url, payload):
def __init__(self, url):
self.url = url
self.payload = payload
self.payload = None

def encode_payload(self):
json_event = json.dumps(self.payload, separators=(",", ":"))
return {"data": (b64encode(json_event.encode("utf-8"))).decode("utf-8")}
32 changes: 17 additions & 15 deletions TwitchChannelPointsMiner/classes/Twitch.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import logging
import random

from base64 import b64encode
from pathlib import Path

from TwitchChannelPointsMiner.classes.RequestInfo import RequestInfo
Expand Down Expand Up @@ -47,7 +46,11 @@ def login(self):
self.twitch_login.load_cookies(self.cookies_file)
self.twitch_login.set_token(self.twitch_login.get_auth_token())

def update_minute_watched_event_request(self, streamer):
def create_minute_watched_event_request(self, streamer):
streamer.minute_watched_requests = RequestInfo(self.get_minute_watched_request_url(streamer))
self.update_payload_minute_watched_event_request(streamer)

def update_payload_minute_watched_event_request(self, streamer):
streamer_info = self.get_stream_info(streamer)
event_properties = {
"channel_id": streamer.channel_id,
Expand All @@ -67,12 +70,7 @@ def update_minute_watched_event_request(self, streamer):
logger.info(f"{streamer} - Drops are enabled for this stream! ")
event_properties["game"] = streamer_info['broadcastSettings']['game']['name']

minute_watched = [{"event": "minute-watched", "properties": event_properties}]
json_event = json.dumps(minute_watched, separators=(",", ":"))
streamer.minute_watched_requests = RequestInfo(
self.get_minute_watched_request_url(streamer),
{"data": (b64encode(json_event.encode("utf-8"))).decode("utf-8")},
)
streamer.minute_watched_requests.payload = [{"event": "minute-watched", "properties": event_properties}]

def get_minute_watched_request_url(self, streamer):
headers = {"User-Agent": self.user_agent}
Expand Down Expand Up @@ -147,14 +145,18 @@ def check_streamer_online(self, streamer):
if time.time() < streamer.offline_at + 60:
return

try:
self.update_minute_watched_event_request(streamer)
except StreamerIsOfflineException:
if streamer.is_online is True:
if streamer.is_online is False:
try:
self.create_minute_watched_event_request(streamer)
except StreamerIsOfflineException:
streamer.set_offline()
else:
if streamer.is_online is False:
else:
streamer.set_online()
else:
try:
self.update_payload_minute_watched_event_request(streamer)
except StreamerIsOfflineException:
streamer.set_offline()

def claim_bonus(self, streamer, claim_id, less_printing=False):
if less_printing is False:
Expand Down Expand Up @@ -302,7 +304,7 @@ def send_minute_watched_events(self, streamers, watch_streak=False):
try:
response = requests.post(
streamers[index].minute_watched_requests.url,
data=streamers[index].minute_watched_requests.payload,
data=streamers[index].minute_watched_requests.encode_payload(),
headers={"User-Agent": self.user_agent},
)
logger.debug(
Expand Down
2 changes: 1 addition & 1 deletion TwitchChannelPointsMiner/classes/WebSocketsPool.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ def on_message(ws, message):
ws.last_message_type_channel = message.identifier

if message.topic == "user-drop-events":
logger.info(f"Drop update: {message.strip()}")
logger.info(f"Drop update: {message}")

streamer_index = get_streamer_index(ws.streamers, message.channel_id)
if streamer_index != -1:
Expand Down

0 comments on commit f146038

Please sign in to comment.