Add Outlook/Soubory/Clario/Feasibility scripts and reports; ignore Incoming, Outlook downloads & profile
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
"""
|
||||
=======================================================================
|
||||
Název: outlook_login_v1.0.py
|
||||
Verze: 1.0
|
||||
Datum: 2026-06-03
|
||||
Popis: Otevře Outlook OWA (https://outlook.cloud.microsoft/mail/)
|
||||
v persistent Chromium profilu, počká na ruční přihlášení
|
||||
uživatele (včetně MFA), po potvrzení v konzoli uloží
|
||||
session (profile + storage_state) a zavře prohlížeč.
|
||||
|
||||
Další skripty mohou stejný profil znovu otevřít bez loginu.
|
||||
=======================================================================
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
from playwright.sync_api import sync_playwright
|
||||
|
||||
BASE_DIR = Path(__file__).resolve().parent
|
||||
PROFILE_DIR = BASE_DIR / "outlook_profile"
|
||||
STORAGE_STATE = BASE_DIR / "outlook_auth.json"
|
||||
START_URL = "https://outlook.cloud.microsoft/mail/"
|
||||
|
||||
|
||||
def main() -> None:
|
||||
PROFILE_DIR.mkdir(exist_ok=True)
|
||||
|
||||
with sync_playwright() as p:
|
||||
context = p.chromium.launch_persistent_context(
|
||||
user_data_dir=str(PROFILE_DIR),
|
||||
headless=False,
|
||||
no_viewport=True,
|
||||
args=[
|
||||
"--disable-blink-features=AutomationControlled",
|
||||
"--start-maximized",
|
||||
],
|
||||
)
|
||||
|
||||
page = context.pages[0] if context.pages else context.new_page()
|
||||
page.goto(START_URL)
|
||||
|
||||
print()
|
||||
print("=" * 70)
|
||||
print(" Přihlas se v otevřeném okně do Outlooku.")
|
||||
print(" Až budeš v inboxu (vidíš seznam e-mailů), vrať se sem.")
|
||||
print("=" * 70)
|
||||
answer = input(" Hotovo? Napiš 'OK' pro uložení session: ").strip().lower()
|
||||
|
||||
if answer == "ok":
|
||||
try:
|
||||
context.storage_state(path=str(STORAGE_STATE))
|
||||
print(f" Uloženo: {STORAGE_STATE}")
|
||||
except Exception as e:
|
||||
print(f" storage_state se neuložil: {e}")
|
||||
print(f" Persistent profil: {PROFILE_DIR}")
|
||||
else:
|
||||
print(" Zrušeno — session se neuloží (profil ale zůstává).")
|
||||
|
||||
context.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user