From 7e94a15a052837708d035cd59941c1d4f36c0568 Mon Sep 17 00:00:00 2001 From: Guilhem Lavaux Date: Tue, 20 Aug 2024 15:51:52 +0200 Subject: [PATCH] Add mentor query --- src/buguser.py | 109 +++++++++++++++++++++++++++++-------------------- 1 file changed, 64 insertions(+), 45 deletions(-) diff --git a/src/buguser.py b/src/buguser.py index d960a81..a1be508 100644 --- a/src/buguser.py +++ b/src/buguser.py @@ -27,19 +27,11 @@ Best regards, url = "https://infinity-users.projet-horizon.fr/index.php" +@click.group() +def main(): + pass -@click.command() -@click.argument("to_bug")# help="The login of the user to bug") -def main(to_bug): - """Bug a user on the Infinity platform. - - Args: - to_bug (str): The login of the user to bug. - """ - if to_bug is None: - print("Please provide the login of the user to bug") - raise SystemExit(1) - +def get_data(): with requests.session() as s: response = s.post(url, data={"authpw": "astrorizon"}) if response.status_code != 200: @@ -86,37 +78,64 @@ def main(to_bug): # Print the parsed data mapped_login = {user["login"]: user for user in users_tbl} - + return mapped_login - # Get the current unix login of the user using python os - current_login = os.getlogin() +@main.command() +@click.argument("user") +def sponsor(user): + if user is None: + print("Please provide the login of the user to bug") + raise SystemExit(1) - if not current_login in mapped_login: - print(f"User {current_login} not found") - raise SystemExit(1) - - from_user = mapped_login[current_login] - if not to_bug in mapped_login: - print(f"User {to_bug} not found") - raise SystemExit(1) - - to_user = mapped_login[to_bug] + mapped_login = get_data() + + u = mapped_login[user] - email_body = email_template.format( - name=to_user["name"], complain_name=from_user["name"] - ) + print(u["mentor"]) + print(mapped_login[u["mentor"]]["name"]) - # Create a multipart message - msg = MIMEMultipart() - msg["From"] = from_user["email"] - msg["To"] = to_user["email"] - msg["CC"] = from_user["email"] - msg["Subject"] = "Your usage of Infinity nodes" - msg.attach(MIMEText(email_body, "plain")) +@main.command() +@click.argument("to_bug")# help="The login of the user to bug") +def go(to_bug): + """Bug a user on the Infinity platform. + + Args: + to_bug (str): The login of the user to bug. + """ + if to_bug is None: + print("Please provide the login of the user to bug") + raise SystemExit(1) + mapped_login = get_data() + + # Get the current unix login of the user using python os + current_login = os.getlogin() - text = msg.as_string() - print(textwrap.dedent(f""" + if not current_login in mapped_login: + print(f"User {current_login} not found") + raise SystemExit(1) + + from_user = mapped_login[current_login] + if not to_bug in mapped_login: + print(f"User {to_bug} not found") + raise SystemExit(1) + + to_user = mapped_login[to_bug] + + email_body = email_template.format( + name=to_user["name"], complain_name=from_user["name"] + ) + + # Create a multipart message + msg = MIMEMultipart() + msg["From"] = from_user["email"] + msg["To"] = to_user["email"] + msg["CC"] = from_user["email"] + msg["Subject"] = "Your usage of Infinity nodes" + msg.attach(MIMEText(email_body, "plain")) + + text = msg.as_string() + print(textwrap.dedent(f""" Here is the draft of the email that is going to be sent: ----------------------------------------------------- {text} @@ -124,15 +143,15 @@ Here is the draft of the email that is going to be sent: If you agree with it, please enter your login name to confirm the sending of the email. """)) - - if input("Do you want to send the email? ") != current_login: - print("Email not sent") - raise SystemExit(0) - print("Sending email...") - server = smtplib.SMTP('smtp.iap.fr', 587) - server.sendmail(from_user["email"], [to_user["email"], from_user["email"]], text) - server.quit() + if input("Do you want to send the email? ") != current_login: + print("Email not sent") + raise SystemExit(0) + + print("Sending email...") + server = smtplib.SMTP('smtp.iap.fr', 587) + server.sendmail(from_user["email"], [to_user["email"], from_user["email"]], text) + server.quit() if __name__ == "__main__": main()