Use emoji.emojize instead of write emoji in code

This commit is contained in:
Alessandro Maggio
2021-01-13 21:46:08 +01:00
parent 1333db4e28
commit f1ab21a2ac
6 changed files with 38 additions and 31 deletions

View File

@@ -6,6 +6,7 @@ import time
import os import os
import uuid import uuid
import copy import copy
import emoji
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
@@ -91,7 +92,7 @@ class TwitchChannelPointsMiner:
if self.running: if self.running:
logger.error("You can't start multiple session of this istance!") logger.error("You can't start multiple session of this istance!")
else: else:
logger.info(f"Start session: {self.session_id}") logger.info(emoji.emojize(f":bomb: Start session: {self.session_id}", use_aliases=True))
self.running = True self.running = True
self.start_datetime = datetime.now() self.start_datetime = datetime.now()
@@ -104,7 +105,7 @@ class TwitchChannelPointsMiner:
streamer = Streamer(streamer_username, channel_id) streamer = Streamer(streamer_username, channel_id)
self.streamers.append(streamer) self.streamers.append(streamer)
except StreamerDoesNotExistException: except StreamerDoesNotExistException:
logger.info(f"😞 Streamer {streamer_username} does not exist") logger.info(emoji.emojize(f":cry: Streamer {streamer_username} does not exist", use_aliases=True))
for streamer in self.streamers: for streamer in self.streamers:
self.twitch.load_channel_points_context(streamer) self.twitch.load_channel_points_context(streamer)
@@ -180,17 +181,17 @@ class TwitchChannelPointsMiner:
def __print_report(self): def __print_report(self):
print("\n") print("\n")
logger.info( logger.info(
f"🔌 End session '{self.session_id}' at: {datetime.now().strftime('%d/%m/%Y %H:%M:%S')}" emoji.emojize(f":electric_plug: End session '{self.session_id}' at: {datetime.now().strftime('%d/%m/%Y %H:%M:%S')}", use_aliases=True)
) )
logger.info(f" Duration {datetime.now() - self.start_datetime}") logger.info(emoji.emojize(f":hourglass: Duration {datetime.now() - self.start_datetime}", use_aliases=True))
if self.make_predictions: if self.make_predictions:
logger.info( logger.info(
f"📊 Bet settings: Strategy={self.bet_strategy}, Percentage={self.bet_percentage}, Percentage Gap={self.bet_percentage_gap}, Max points={self.bet_max_points}" emoji.emojize(f":bar_chart: Bet settings: Strategy={self.bet_strategy}, Percentage={self.bet_percentage}, Percentage Gap={self.bet_percentage_gap}, Max points={self.bet_max_points}", use_aliases=True)
) )
print('') print('')
for streamer_index in range(0, len(self.streamers)): for streamer_index in range(0, len(self.streamers)):
logger.info( logger.info(
f"📽️ {self.streamers[streamer_index]} - Gained: {self.streamers[streamer_index].channel_points - self.original_streamers[streamer_index].channel_points}, Bonus claimed: {self.streamers[streamer_index].bonus_claimed}" emoji.emojize(f":movie_camera: {self.streamers[streamer_index]} - Gained: {self.streamers[streamer_index].channel_points - self.original_streamers[streamer_index].channel_points}, Bonus claimed: {self.streamers[streamer_index].bonus_claimed}", use_aliases=True)
) )

View File

@@ -1,5 +1,6 @@
import time import time
import logging import logging
import emoji
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -29,9 +30,9 @@ class Streamer:
def set_offline(self): def set_offline(self):
self.offline_at = time.time() self.offline_at = time.time()
self.is_online = False self.is_online = False
logger.info(f"😴 {self} is Offline!") logger.info(emoji.emojize(f":sleeping: {self} is Offline!", use_aliases=True))
def set_online(self): def set_online(self):
self.online_at = time.time() self.online_at = time.time()
self.is_online = True self.is_online = True
logger.info(f"🥳 {self} is Online!") logger.info(emoji.emojize(f":partying_face: {self} is Online!", use_aliases=True))

View File

@@ -10,6 +10,7 @@ import re
import os import os
import time import time
import logging import logging
import emoji
from base64 import b64encode from base64 import b64encode
from pathlib import Path from pathlib import Path
@@ -114,7 +115,7 @@ class Twitch:
streamer.set_online() streamer.set_online()
def claim_channel_points_bonus(self, streamer, claim_id): def claim_channel_points_bonus(self, streamer, claim_id):
logger.info(f"🎁 Claiming the bonus for {streamer}!") logger.info(emoji.emojize(f":gift: Claiming the bonus for {streamer}!", use_aliases=True))
json_data = { json_data = {
"operationName": "ClaimCommunityPoints", "operationName": "ClaimCommunityPoints",
"variables": { "variables": {
@@ -235,5 +236,5 @@ class Twitch:
) )
logger.info( logger.info(
f"⚔️ Joining raid from {streamer.username} to {raid.target_login}!" emoji.emojize(f":crossed_swords: Joining raid from {streamer.username} to {raid.target_login}!", use_aliases=True)
) )

View File

@@ -2,6 +2,7 @@ import time
import logging import logging
import random import random
import os import os
import emoji
from pathlib import Path from pathlib import Path
from datetime import datetime from datetime import datetime
@@ -74,7 +75,7 @@ class TwitchBrowser:
self.__init_twitch() self.__init_twitch()
def __init_twitch(self): def __init_twitch(self):
logger.info("⚙️ Init Twitch page - Cookie - LocalStorage items") logger.info(emoji.emojize(":wrench: Init Twitch page - Cookie - LocalStorage items", use_aliases=True))
cookie = { cookie = {
"domain": ".twitch.tv", "domain": ".twitch.tv",
"hostOnly": False, "hostOnly": False,
@@ -112,7 +113,7 @@ class TwitchBrowser:
# Private method __ - We can instantiate webdriver only with init_browser # Private method __ - We can instantiate webdriver only with init_browser
def __init_chrome(self, show): def __init_chrome(self, show):
logger.info("⚙️ Init Chrome browser") logger.info(emoji.emojize(":wrench: Init Chrome browser", use_aliases=True))
options = webdriver.ChromeOptions() options = webdriver.ChromeOptions()
options.add_argument("--mute-audio") options.add_argument("--mute-audio")
if not show: if not show:
@@ -129,7 +130,7 @@ class TwitchBrowser:
# Private method __ - We can instantiate webdriver only with init_browser # Private method __ - We can instantiate webdriver only with init_browser
def __init_firefox(self, show): def __init_firefox(self, show):
logger.info("⚙️ Init Firefox browser") logger.info(emoji.emojize(":wrench: Init Firefox browser", use_aliases=True))
options = webdriver.FirefoxOptions() options = webdriver.FirefoxOptions()
if not show: if not show:
options.headless = True options.headless = True
@@ -212,7 +213,7 @@ class TwitchBrowser:
) )
else: else:
logger.info( logger.info(
f"⚙️ Start betting at {event.streamer.chat_url} for event: {event}" emoji.emojize(f":wrench: Start betting at {event.streamer.chat_url} for event: {event}", use_aliases=True)
) )
self.browser.get(event.streamer.chat_url) self.browser.get(event.streamer.chat_url)
time.sleep(random.uniform(4, 6)) time.sleep(random.uniform(4, 6))
@@ -223,7 +224,7 @@ class TwitchBrowser:
def complete_bet(self, event: EventPrediction): def complete_bet(self, event: EventPrediction):
logger.info( logger.info(
f"⚙️ Going to complete bet for event {event}. Current url page: {self.browser.current_url}" emoji.emojize(f":wrench: Going to complete bet for event {event}. Current url page: {self.browser.current_url}", use_aliases=True)
) )
if event.box_fillable and self.currently_is_betting: if event.box_fillable and self.currently_is_betting:
decision = event.bet.calculate( decision = event.bet.calculate(
@@ -238,7 +239,7 @@ class TwitchBrowser:
try: try:
logger.info( logger.info(
f"⚙️ Going to write: {decision['amount']} on input {decision['choice']}" emoji.emojize(f":wrench: Going to write: {decision['amount']} on input {decision['choice']}", use_aliases=True)
) )
self.__send_text( self.__send_text(
streamBetVoteInput + selector_index, streamBetVoteInput + selector_index,
@@ -277,21 +278,21 @@ class TwitchBrowser:
) )
def __open_coins_menu(self, event: EventPrediction): def __open_coins_menu(self, event: EventPrediction):
logger.info(f"⚙️ Open coins menu for event: {event}") logger.info(emoji.emojize(f":wrench: Open coins menu for event: {event}", use_aliases=True))
self.__click_when_exist(streamCoinsMenu, By.XPATH) self.__click_when_exist(streamCoinsMenu, By.XPATH)
time.sleep(random.uniform(0.05, 0.1)) time.sleep(random.uniform(0.05, 0.1))
if self.do_screenshot: if self.do_screenshot:
self.screenshot(f"{event.event_id}___open_coins_menu.png".format) self.screenshot(f"{event.event_id}___open_coins_menu.png".format)
def __click_on_bet(self, event): def __click_on_bet(self, event):
logger.info(f"⚙️ Click on the bet for event: {event}") logger.info(emoji.emojize(f":wrench: Click on the bet for event: {event}", use_aliases=True))
self.__click_when_exist(streamBetTitleInBet, By.CSS_SELECTOR) self.__click_when_exist(streamBetTitleInBet, By.CSS_SELECTOR)
time.sleep(random.uniform(0.05, 0.1)) time.sleep(random.uniform(0.05, 0.1))
if self.do_screenshot: if self.do_screenshot:
self.screenshot(f"{event.event_id}___click_on_bet.png".format) self.screenshot(f"{event.event_id}___click_on_bet.png".format)
def __enable_custom_bet_value(self, event): def __enable_custom_bet_value(self, event):
logger.info(f"⚙️ Enable input of custom value for event: {event}") logger.info(emoji.emojize(f":wrench: Enable input of custom value for event: {event}", use_aliases=True))
if self.__click_when_exist(streamBetCustomVote, By.CSS_SELECTOR) is not None: if self.__click_when_exist(streamBetCustomVote, By.CSS_SELECTOR) is not None:
time.sleep(random.uniform(0.05, 0.1)) time.sleep(random.uniform(0.05, 0.1))
if self.do_screenshot: if self.do_screenshot:

View File

@@ -2,6 +2,7 @@ import logging
import threading import threading
import time import time
import json import json
import emoji
from dateutil import parser from dateutil import parser
@@ -81,14 +82,15 @@ class WebSocketsPool:
@staticmethod @staticmethod
def handle_websocket_reconnection(ws): def handle_websocket_reconnection(ws):
ws.is_closed = True if ws.keep_running:
logger.info("Reconnecting to Twitch PubSub server in 30 seconds") ws.is_closed = True
time.sleep(30) logger.info("Reconnecting to Twitch PubSub server in 30 seconds")
self = ws.parent_pool time.sleep(30)
if self.ws == ws: self = ws.parent_pool
self.ws = None if self.ws == ws:
for topic in ws.topics: self.ws = None
self.submit(topic) for topic in ws.topics:
self.submit(topic)
@staticmethod @staticmethod
def on_message(ws, message): def on_message(ws, message):
@@ -127,7 +129,7 @@ class WebSocketsPool:
"balance" "balance"
]["balance"] ]["balance"]
logger.info( logger.info(
f"🚀 +{earned}{ws.streamers[streamer_index]} - Reason: {message_data['point_gain']['reason_code']}." emoji.emojize(f":rocket: +{earned}{ws.streamers[streamer_index]} - Reason: {message_data['point_gain']['reason_code']}.", use_aliases=True)
) )
elif message_type == "claim-available": elif message_type == "claim-available":
streamer_index = get_streamer_index( streamer_index = get_streamer_index(
@@ -194,7 +196,7 @@ class WebSocketsPool:
# complete_bet_thread.start() # complete_bet_thread.start()
logger.info( logger.info(
f" A thread should start and place the bet after: {event.closing_bet_after(current_timestamp)}s for the event: {ws.events_predictions[event_id]}" emoji.emojize(f":alarm_clock: A thread should start and place the bet after: {event.closing_bet_after(current_timestamp)}s for the event: {ws.events_predictions[event_id]}", use_aliases=True)
) )
else: else:
@@ -211,7 +213,7 @@ class WebSocketsPool:
event_id = message_data["event"]["id"] event_id = message_data["event"]["id"]
if event_id in ws.events_predictions: if event_id in ws.events_predictions:
logger.info( logger.info(
f"📊 {ws.events_predictions[event_id]} - Result: {message_data['event']['result']['type']}, Points won: {message_data['event']['result']['type'] if message_data['event']['result']['type'] else 0}" emoji.emojize(f":bar_chart: {ws.events_predictions[event_id]} - Result: {message_data['event']['result']['type']}, Points won: {message_data['event']['result']['type'] if message_data['event']['result']['type'] else 0}", use_aliases=True)
) )
elif response["type"] == "RESPONSE" and len(response.get("error", "")) > 0: elif response["type"] == "RESPONSE" and len(response.get("error", "")) > 0:

View File

@@ -3,4 +3,5 @@ websocket-client
browser_cookie3 browser_cookie3
pillow pillow
selenium selenium
python-dateutil python-dateutil
emoji