Merge pull request #255 from dmunozv04/fix-add-device

Fix adding devices
This commit is contained in:
David
2025-02-22 00:48:45 +01:00
committed by GitHub
4 changed files with 13 additions and 10 deletions

View File

@@ -45,9 +45,14 @@ def get_yn_input(prompt):
print("Invalid input. Please enter 'y' or 'n'.") print("Invalid input. Please enter 'y' or 'n'.")
async def pair_device(): async def create_web_session():
return aiohttp.ClientSession()
async def pair_device(web_session: aiohttp.ClientSession):
try: try:
lounge_controller = ytlounge.YtLoungeApi("iSponsorBlockTV") lounge_controller = ytlounge.YtLoungeApi()
await lounge_controller.change_web_session(web_session)
pairing_code = input(PAIRING_CODE_PROMPT) pairing_code = input(PAIRING_CODE_PROMPT)
pairing_code = int( pairing_code = int(
pairing_code.replace("-", "").replace(" ", "") pairing_code.replace("-", "").replace(" ", "")
@@ -71,7 +76,7 @@ async def pair_device():
def main(config, debug: bool) -> None: def main(config, debug: bool) -> None:
print("Welcome to the iSponsorBlockTV cli setup wizard") print("Welcome to the iSponsorBlockTV cli setup wizard")
loop = asyncio.get_event_loop_policy().get_event_loop() loop = asyncio.get_event_loop_policy().get_event_loop()
web_session = aiohttp.ClientSession() web_session = loop.run_until_complete(create_web_session())
if debug: if debug:
loop.set_debug(True) loop.set_debug(True)
asyncio.set_event_loop(loop) asyncio.set_event_loop(loop)
@@ -88,9 +93,7 @@ def main(config, debug: bool) -> None:
devices = config.devices devices = config.devices
choice = get_yn_input(ADD_MORE_DEVICES_PROMPT.format(num_devices=len(devices))) choice = get_yn_input(ADD_MORE_DEVICES_PROMPT.format(num_devices=len(devices)))
while choice == "y": while choice == "y":
task = loop.create_task(pair_device()) device = loop.run_until_complete(pair_device(web_session))
loop.run_until_complete(task)
device = task.result()
if device: if device:
devices.append(device) devices.append(device)
choice = get_yn_input(ADD_MORE_DEVICES_PROMPT.format(num_devices=len(devices))) choice = get_yn_input(ADD_MORE_DEVICES_PROMPT.format(num_devices=len(devices)))

View File

@@ -29,7 +29,7 @@ class DeviceListener:
self.logger.addHandler(sh) self.logger.addHandler(sh)
self.logger.info("Starting device") self.logger.info("Starting device")
self.lounge_controller = ytlounge.YtLoungeApi( self.lounge_controller = ytlounge.YtLoungeApi(
device.screen_id, config, api_helper, self.logger, self.web_session device.screen_id, config, api_helper, self.logger
) )
# Ensures that we have a valid auth token # Ensures that we have a valid auth token

View File

@@ -340,8 +340,9 @@ class AddDevice(ModalWithClickExit):
async def handle_add_device_pin(self) -> None: async def handle_add_device_pin(self) -> None:
self.query_one("#add-device-pin-add-button").disabled = True self.query_one("#add-device-pin-add-button").disabled = True
lounge_controller = ytlounge.YtLoungeApi( lounge_controller = ytlounge.YtLoungeApi(
"iSponsorBlockTV", web_session=self.web_session "iSponsorBlockTV",
) )
await lounge_controller.change_web_session(self.web_session)
pairing_code = self.query_one("#pairing-code-input").value pairing_code = self.query_one("#pairing-code-input").value
pairing_code = int( pairing_code = int(
pairing_code.replace("-", "").replace(" ", "") pairing_code.replace("-", "").replace(" ", "")

View File

@@ -13,11 +13,10 @@ create_task = asyncio.create_task
class YtLoungeApi(pyytlounge.YtLoungeApi): class YtLoungeApi(pyytlounge.YtLoungeApi):
def __init__( def __init__(
self, self,
screen_id, screen_id=None,
config=None, config=None,
api_helper=None, api_helper=None,
logger=None, logger=None,
web_session: ClientSession = None,
): ):
super().__init__( super().__init__(
config.join_name if config else "iSponsorBlockTV", logger=logger config.join_name if config else "iSponsorBlockTV", logger=logger