setup-cockpit/dotfiles/i3/scripts/protonmail

61 lines
1.4 KiB
Python
Executable file

#!/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())