From fe766c13e494977353b415300fd90190b6077f99 Mon Sep 17 00:00:00 2001 From: eneller Date: Sun, 13 Apr 2025 22:19:17 +0200 Subject: [PATCH] feat: help functions --- main.py | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/main.py b/main.py index 283789f..93e7790 100644 --- a/main.py +++ b/main.py @@ -29,7 +29,7 @@ async def run_playwright(headless: bool): @click.group() @click.option('--username','-u') @click.option('--password','-p') -@click.option('--headful', is_flag=True) +@click.option('--headful', is_flag=True, help='Show the browser window') @click.pass_context async def cli(ctx, username, password, headful): ctx.ensure_object(dict) @@ -37,18 +37,15 @@ async def cli(ctx, username, password, headful): ctx.obj['PASSWORD'] = password or await questionary.password('Enter your kiz password:').ask_async() ctx.obj['HEADLESS'] = not headful -@cli.command() +@cli.command(help='Interact with the Module Tree in Campusonline') @click.pass_context async def campusonline(ctx): - username = ctx.obj['USERNAME'] - password = ctx.obj['PASSWORD'] - headless = ctx.obj['HEADLESS'] - async for page, browser, context in run_playwright(headless): + async for page, browser, context in run_playwright(ctx.obj['HEADLESS']): click.echo("Running campusonline...") await page.goto("https://campusonline.uni-ulm.de") await page.get_by_role("textbox", name="Benutzerkennung").click() - await page.get_by_role("textbox", name="Benutzerkennung").fill(username) - await page.get_by_role("textbox", name="Passwort").fill(password) + await page.get_by_role("textbox", name="Benutzerkennung").fill(ctx.obj['USERNAME']) + await page.get_by_role("textbox", name="Passwort").fill(ctx.obj['PASSWORD']) await page.get_by_role("button", name="Anmelden").click() await page.get_by_role("link", name="Studium").click() await page.get_by_role("link", name="Modulbeschreibungen ansehen").click() @@ -58,19 +55,16 @@ async def campusonline(ctx): sleep(2) click.echo("Finished campusonline.") -@cli.command() +@cli.command(help='Automatically register for courses on CoronaNG') @click.pass_context async def coronang(ctx): - username = ctx.obj['USERNAME'] - password = ctx.obj['PASSWORD'] - headless = ctx.obj['HEADLESS'] - async for page, browser, context in run_playwright(headless): + async for page, browser, context in run_playwright(ctx.obj['HEADLESS']): click.echo("Running coronang...") await page.goto("https://campusonline.uni-ulm.de/CoronaNG/user/mycorona.html") await page.locator("input[name=\"uid\"]").click() - await page.locator("input[name=\"uid\"]").fill(username) + await page.locator("input[name=\"uid\"]").fill(ctx.obj['USERNAME']) await page.locator("input[name=\"password\"]").click() - await page.locator("input[name=\"password\"]").fill(password) + await page.locator("input[name=\"password\"]").fill(ctx.obj['PASSWORD']) await page.get_by_role("button", name="Anmelden").click() await page.get_by_role("link", name="Beobachtungen & Teilnahmen").click() await page.get_by_role("table", name="Ihre Beobachtungen. Sie kö").get_by_role("button").click()