From 5f2e53dc38d5c61a15c8047448617e2d57aa0f22 Mon Sep 17 00:00:00 2001 From: brostosjoined Date: Sat, 22 Jul 2023 00:54:53 +0000 Subject: [PATCH] [ci] auto-format --- plugins/utilities/discord_richpresence.py | 155 ++++++++++------------ 1 file changed, 70 insertions(+), 85 deletions(-) diff --git a/plugins/utilities/discord_richpresence.py b/plugins/utilities/discord_richpresence.py index 2dee9f0..e0042ed 100644 --- a/plugins/utilities/discord_richpresence.py +++ b/plugins/utilities/discord_richpresence.py @@ -24,7 +24,7 @@ import threading import shutil import babase import _babase -import bascenev1 as bs +import bascenev1 as bs import bascenev1lib import bauiv1 as bui @@ -64,16 +64,15 @@ if ANDROID: # !can add ios in future from websocket import WebSocketConnectionClosedException import websocket - start_time = time.time() - + class PresenceUpdate: def __init__(self): self.ws = websocket.WebSocketApp("wss://gateway.discord.gg/?encoding=json&v=10", - on_open=self.on_open, - on_message=self.on_message, - on_error=self.on_error, - on_close=self.on_close) + on_open=self.on_open, + on_message=self.on_message, + on_error=self.on_error, + on_close=self.on_close) self.heartbeat_interval = int(41250) self.resume_gateway_url: str | None = None self.session_id: str | None = None @@ -197,30 +196,27 @@ if ANDROID: # !can add ios in future identify() while True: heartbeat_payload = {"op": 1, "d": self.heartbeat_interval} - + try: self.ws.send(json.dumps(heartbeat_payload)) time.sleep(self.heartbeat_interval / 1000) except: pass - + if self.stop_heartbeat_thread.is_set(): self.stop_heartbeat_thread.clear() break - + threading.Thread(target=heartbeats, daemon=True, name="heartbeat").start() - + def start(self): if Path(f"{getcwd()}/token.txt").exists(): threading.Thread(target=self.ws.run_forever, daemon=True, name="websocket").start() - + def close(self): self.stop_heartbeat_thread.set() self.do_once = True self.ws.close() - - - if not ANDROID: @@ -241,7 +237,7 @@ if not ANDROID: remove(path) except: pass - + # Make modifications for it to work on windows if babase.app.classic.platform == "windows": with open(Path(f"{getcwd()}/ba_data/python/pypresence/utils.py"), "r") as file: @@ -265,24 +261,23 @@ def get_event_loop(force_fresh=False): return running else: return loop""" - + with open(Path(f"{getcwd()}/ba_data/python/pypresence/utils.py"), "w") as file: for number, line in enumerate(data): - if number not in range(46,56): + if number not in range(46, 56): file.write(line) get_module() - from pypresence import PipeClosed, DiscordError, DiscordNotFound from pypresence.utils import get_event_loop - import pypresence + import pypresence import socket - + DEBUG = True - + _last_server_addr = 'localhost' _last_server_port = 43210 - + def print_error(err: str, include_exception: bool = False) -> None: if DEBUG: if include_exception: @@ -313,8 +308,8 @@ def get_event_loop(force_fresh=False): old_connect(*args, **kwargs) c = kwargs.get("address") or args[0] _last_server_port = kwargs.get("port") or args[1] - - bs.connect_to_party = new_connect + + bs.connect_to_party = new_connect start_time = time.time() @@ -337,10 +332,10 @@ def get_event_loop(force_fresh=False): self._last_secret_update_time: float = 0 self._last_connect_time: float = 0 self.should_close = False - - @staticmethod + + @staticmethod def is_discord_running(): - for i in range(6463,6473): + for i in range(6463, 6473): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(0.01) try: @@ -348,11 +343,11 @@ def get_event_loop(force_fresh=False): s.close() if (conn == 0): s.close() - return(True) + return (True) except: s.close() - return(False) - + return (False) + def _generate_join_secret(self): # resp = requests.get('https://legacy.ballistica.net/bsAccessCheck').text connection_info = bs.get_connection_to_host_info() @@ -409,7 +404,7 @@ def get_event_loop(force_fresh=False): self._subscribe("ACTIVITY_JOIN") self._subscribe("ACTIVITY_JOIN_REQUEST") - # def _update_presence(self) -> None: + # def _update_presence(self) -> None: # self._last_update_time = time.time() # try: # self._do_update_presence() @@ -418,7 +413,6 @@ def get_event_loop(force_fresh=False): # self._reconnect() # except Exception: # print_error("failed to update presence", include_exception= True) - def _reconnect(self) -> None: self.rpc.connect() @@ -495,7 +489,7 @@ def get_event_loop(force_fresh=False): def _connect_to_party(self, hostname, port) -> None: babase.pushcall( babase.Call(bs.connect_to_party, hostname, port), from_other_thread=True - ) + ) def on_join_request(self, username, uid, discriminator, avatar) -> None: del uid # unused @@ -523,10 +517,7 @@ class Discordlogin(PopupWindow): self.path = Path(f"{getcwd()}/token.txt") bg_color = (0.5, 0.4, 0.6) log_btn_colour = (0.10, 0.95, 0.10) if not self.path.exists() else (1.00, 0.15, 0.15) - log_txt = "LOG IN" if not self.path.exists() else "LOG OUT" - - - + log_txt = "LOG IN" if not self.path.exists() else "LOG OUT" # creates our _root_widget PopupWindow.__init__(self, @@ -535,7 +526,6 @@ class Discordlogin(PopupWindow): scale=(2.1 if _uiscale is babase.UIScale.SMALL else 1.5 if _uiscale is babase.UIScale.MEDIUM else 1.0), bg_color=bg_color) - self._cancel_button = bui.buttonwidget( parent=self.root_widget, @@ -548,44 +538,38 @@ class Discordlogin(PopupWindow): autoselect=True, icon=bui.gettexture('crossOut'), iconscale=1.2) - - - - bui.imagewidget(parent=self.root_widget, - position=(180, self._height - 55), - size=(32 * s, 32 * s), - texture=bui.gettexture("discordLogo"), - color=(10 - 0.32, 10 - 0.39, 10 - 0.96)) - - + bui.imagewidget(parent=self.root_widget, + position=(180, self._height - 55), + size=(32 * s, 32 * s), + texture=bui.gettexture("discordLogo"), + color=(10 - 0.32, 10 - 0.39, 10 - 0.96)) + self.email_widget = bui.textwidget(parent=self.root_widget, - text="Email/Phone Number", - size=(400, 70), - position=(50, 180), - h_align='left', - v_align='center', - editable=True, - scale=0.8, - autoselect=True, - maxwidth=220) - - + text="Email/Phone Number", + size=(400, 70), + position=(50, 180), + h_align='left', + v_align='center', + editable=True, + scale=0.8, + autoselect=True, + maxwidth=220) + self.password_widget = bui.textwidget(parent=self.root_widget, - text="Password", - size=(400, 70), - position=(50, 120), - h_align='left', - v_align='center', - editable=True, - scale=0.8, - autoselect=True, - maxwidth=220) - - + text="Password", + size=(400, 70), + position=(50, 120), + h_align='left', + v_align='center', + editable=True, + scale=0.8, + autoselect=True, + maxwidth=220) + bui.containerwidget(edit=self.root_widget, - cancel_button=self._cancel_button) - + cancel_button=self._cancel_button) + bui.textwidget( parent=self.root_widget, position=(265, self._height - 37), @@ -596,7 +580,7 @@ class Discordlogin(PopupWindow): text="Discord", maxwidth=200, color=(0.80, 0.80, 0.80)) - + bui.textwidget( parent=self.root_widget, position=(265, self._height - 78), @@ -607,8 +591,7 @@ class Discordlogin(PopupWindow): text="💀Use at your own risk💀\n ⚠️discord account might get terminated⚠️", maxwidth=200, color=(1.00, 0.15, 0.15)) - - + self._login_button = bui.buttonwidget( parent=self.root_widget, position=(120, 65), @@ -673,8 +656,10 @@ class Discordlogin(PopupWindow): self.on_bascenev1libup_cancel() PresenceUpdate().ws.close() - + run_once = False + + def get_once_asset(): global run_once if run_once: @@ -702,6 +687,7 @@ def get_once_asset(): pass run_once = True + def get_class(): if ANDROID: return PresenceUpdate() @@ -722,7 +708,7 @@ class DiscordRP(babase.Plugin): def on_app_running(self) -> None: if not ANDROID: - self.rpc_thread.start() + self.rpc_thread.start() self.update_timer = bs.AppTimer( 1, bs.WeakCall(self.update_status), repeat=True ) @@ -749,15 +735,15 @@ class DiscordRP(babase.Plugin): def on_app_pause(self) -> None: self.rpc_thread.close() - + def on_app_resume(self) -> None: self.rpc_thread.start() - + def _get_current_activity_name(self) -> str | None: act = bs.get_foreground_host_activity() if isinstance(act, bs.GameActivity): return act.name - + this = "Lobby" name: str | None = ( act.__class__.__name__.replace("Activity", "") @@ -825,7 +811,7 @@ class DiscordRP(babase.Plugin): offlinename = json.loads(bs.get_game_roster()[0]["spec_string"])[ "n" ] - if len(offlinename) > 19: # Thanks Rikko + if len(offlinename) > 19: # Thanks Rikko self.rpc_thread.state = offlinename[slice(19)] + "..." else: self.rpc_thread.state = offlinename @@ -838,7 +824,7 @@ class DiscordRP(babase.Plugin): self.rpc_thread.state = servername[slice(19)] if connection_info == {}: - self.rpc_thread.details = "Local" #! replace with something like ballistica github cause + self.rpc_thread.details = "Local" # ! replace with something like ballistica github cause self.rpc_thread.state = self._get_current_activity_name() self.rpc_thread.party_size = max(1, len(roster)) self.rpc_thread.party_max = max(1, bs.get_public_party_max_size()) @@ -851,7 +837,7 @@ class DiscordRP(babase.Plugin): bs.get_foreground_host_session() .__class__.__name__.replace("MainMenuSession", "") .replace("EndSession", "") - .replace("FreeForAllSession", ": FFA") #! for session use small image key + .replace("FreeForAllSession", ": FFA") # ! for session use small image key .replace("DualTeamSession", ": Teams") .replace("CoopSession", ": Coop") ) @@ -924,4 +910,3 @@ class DiscordRP(babase.Plugin): ) if ANDROID and Path(f"{getcwd()}/token.txt").exists(): self.rpc_thread.presence() - \ No newline at end of file