#!/usr/bin/python3 """Fetch new mail notifications for i3blocks. Author: flyingscorpio """ import argparse import requests def parse_cli() -> argparse.Namespace: """Parse credentials from the command line.""" parser = argparse.ArgumentParser() parser.add_argument("username") parser.add_argument("password") return parser.parse_args() def main(args: argparse.Namespace) -> None: """Connect to ProtonMail.""" with requests.Session() as session: main_url = "https://mail.protonmail.com/login" req = session.get(main_url) req = session.post( "https://mail.protonmail.com/api/info", data={ "Username": args.username, }, headers={ "Referer": main_url, "x-pm-apiversion": "3", "x-pm-appversion": "Web_3.16.23", }, ) req_json = req.json() print(req_json) req = session.post( "https://mail.protonmail.com/api/auth", data={ "ClientEphemeral": "", "ClientProof": "", "SRPSession": req_json["SRPSession"], "Username": args.username, }, headers={ "Referer": main_url, "x-pm-apiversion": "3", "x-pm-appversion": "Web_3.16.23", }, ) if __name__ == "__main__": main(parse_cli())