notebookvb
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
"""
|
||||
01 - Přihlášení na VZP Point (Inbox)
|
||||
Otevře Chrome, přihlásí se certifikátem a naviguje na schránku zpráv.
|
||||
Okno zůstane otevřené — skript čeká na stisk Enter.
|
||||
Použití: python 01_prihlaseni.py
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
import winreg
|
||||
|
||||
INBOX_URL = "https://point.vzp.cz/Inbox/Message"
|
||||
CHROME_PROFILE = os.path.abspath(os.path.join(os.path.dirname(__file__), "chrome_profile"))
|
||||
COOKIES_FILE = os.path.abspath(os.path.join(os.path.dirname(__file__), "vzp_cookies.json"))
|
||||
|
||||
|
||||
def load_cookies(context) -> int:
|
||||
"""Načte dříve uložené cookies (včetně session-only) zpět do kontextu."""
|
||||
if not os.path.exists(COOKIES_FILE):
|
||||
return 0
|
||||
try:
|
||||
with open(COOKIES_FILE, "r", encoding="utf-8") as f:
|
||||
cookies = json.load(f)
|
||||
context.add_cookies(cookies)
|
||||
return len(cookies)
|
||||
except Exception as e:
|
||||
print(f" Chyba při načítání cookies: {e}")
|
||||
return 0
|
||||
|
||||
|
||||
def save_cookies(context) -> int:
|
||||
"""Uloží VZP cookies (i session-only) do JSON souboru."""
|
||||
try:
|
||||
all_cookies = context.cookies()
|
||||
vzp = [c for c in all_cookies if "vzp.cz" in c.get("domain", "")]
|
||||
with open(COOKIES_FILE, "w", encoding="utf-8") as f:
|
||||
json.dump(vzp, f, indent=2, ensure_ascii=False)
|
||||
return len(vzp)
|
||||
except Exception as e:
|
||||
print(f" Chyba při ukládání cookies: {e}")
|
||||
return 0
|
||||
|
||||
|
||||
def _delete_chrome_cert_policy() -> None:
|
||||
"""Smaže AutoSelectCertificateForUrls politiku — Chrome pak zobrazí dialog přirozeně."""
|
||||
key_path = r"SOFTWARE\Policies\Google\Chrome\AutoSelectCertificateForUrls"
|
||||
try:
|
||||
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, key_path, access=winreg.KEY_SET_VALUE)
|
||||
winreg.DeleteValue(key, "1")
|
||||
winreg.CloseKey(key)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
def main() -> None:
|
||||
try:
|
||||
from playwright.sync_api import sync_playwright
|
||||
except ImportError:
|
||||
print("Chybí playwright: pip install playwright && playwright install chrome")
|
||||
sys.exit(1)
|
||||
|
||||
_delete_chrome_cert_policy()
|
||||
|
||||
with sync_playwright() as p:
|
||||
context = p.chromium.launch_persistent_context(
|
||||
user_data_dir=CHROME_PROFILE,
|
||||
channel="chrome",
|
||||
headless=False,
|
||||
slow_mo=200,
|
||||
ignore_https_errors=True,
|
||||
args=["--force-renderer-accessibility"],
|
||||
)
|
||||
try:
|
||||
# Načti dříve uložené cookies (vč. session-only) z JSON
|
||||
loaded = load_cookies(context)
|
||||
startup = context.cookies()
|
||||
vzp_start = [c for c in startup if "vzp.cz" in c.get("domain", "")]
|
||||
print(f"Profil: {CHROME_PROFILE}")
|
||||
print(f"Cookies z JSON: {loaded}, VZP v kontextu: {len(vzp_start)}")
|
||||
|
||||
page = context.new_page()
|
||||
|
||||
print("Naviguji na VZP Point...")
|
||||
try:
|
||||
page.goto(INBOX_URL, wait_until="domcontentloaded", timeout=30_000)
|
||||
except Exception as e:
|
||||
print(f"Navigace: {e}")
|
||||
|
||||
if page.url.startswith("https://auth.vzp.cz/signin"):
|
||||
print("Přihlašovací stránka — klikám na 'Certifikát'...")
|
||||
cert_btn = page.locator("a, button").filter(has_text=re.compile(r"certifikát", re.I)).first
|
||||
cert_btn.wait_for(state="visible", timeout=10_000)
|
||||
cert_btn.click(no_wait_after=True)
|
||||
|
||||
print("Pokud se zobrazí dialog výběru certifikátu, vyberte ho ručně (max 60 s)...")
|
||||
time.sleep(30)
|
||||
|
||||
page = context.new_page()
|
||||
try:
|
||||
page.goto(INBOX_URL, wait_until="domcontentloaded", timeout=30_000)
|
||||
except Exception as e:
|
||||
print(f"Navigace po auth: {e}")
|
||||
|
||||
if not page.url.startswith("https://point.vzp.cz"):
|
||||
print(f"Přihlášení selhalo. URL: {page.url}")
|
||||
return
|
||||
|
||||
print(f"OK — přihlášení úspěšné. URL: {page.url}")
|
||||
|
||||
# Diagnostika: cookies po auth
|
||||
after = context.cookies()
|
||||
vzp_after = [c for c in after if "vzp.cz" in c.get("domain", "")]
|
||||
print(f"Cookies po auth: VZP: {len(vzp_after)}")
|
||||
for c in vzp_after:
|
||||
exp = c.get("expires", -1)
|
||||
persistent = "PERSISTENT" if exp > 0 else "SESSION-ONLY"
|
||||
# Zkrácený název pro přehlednost
|
||||
name = c["name"][:60]
|
||||
print(f" - {name} ({c['domain']}) [{persistent}]")
|
||||
|
||||
print("Okno zůstane otevřené. Stiskněte Enter pro zavření...")
|
||||
input()
|
||||
|
||||
finally:
|
||||
saved = save_cookies(context)
|
||||
print(f"Uloženo {saved} VZP cookies do {COOKIES_FILE}")
|
||||
context.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,298 @@
|
||||
"""
|
||||
02 - Stažení VŠECH zpráv z VZP Point schránky (jednorázová akce)
|
||||
Projde celý seznam (lazy-load), stáhne všechny soubory a pojmenuje je:
|
||||
YYYY-MM-DD Kategorie Název (původní_název).přípona
|
||||
Použití: python 02_stahuj_vse.py
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
import winreg
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
INBOX_URL = "https://point.vzp.cz/Inbox/Message"
|
||||
CHROME_PROFILE = os.path.abspath(os.path.join(os.path.dirname(__file__), "chrome_profile"))
|
||||
COOKIES_FILE = os.path.abspath(os.path.join(os.path.dirname(__file__), "vzp_cookies.json"))
|
||||
DOWNLOAD_DIR = os.path.join(os.path.dirname(__file__), "Staženo")
|
||||
|
||||
|
||||
def load_cookies(context) -> int:
|
||||
if not os.path.exists(COOKIES_FILE):
|
||||
return 0
|
||||
try:
|
||||
with open(COOKIES_FILE, "r", encoding="utf-8") as f:
|
||||
cookies = json.load(f)
|
||||
context.add_cookies(cookies)
|
||||
return len(cookies)
|
||||
except Exception:
|
||||
return 0
|
||||
|
||||
|
||||
def save_cookies(context) -> int:
|
||||
try:
|
||||
all_cookies = context.cookies()
|
||||
vzp = [c for c in all_cookies if "vzp.cz" in c.get("domain", "")]
|
||||
with open(COOKIES_FILE, "w", encoding="utf-8") as f:
|
||||
json.dump(vzp, f, indent=2, ensure_ascii=False)
|
||||
return len(vzp)
|
||||
except Exception:
|
||||
return 0
|
||||
|
||||
print(f"Chrome profil: {CHROME_PROFILE}")
|
||||
print(f"Profil existuje: {os.path.exists(CHROME_PROFILE)}")
|
||||
|
||||
|
||||
def _delete_chrome_cert_policy() -> None:
|
||||
key_path = r"SOFTWARE\Policies\Google\Chrome\AutoSelectCertificateForUrls"
|
||||
try:
|
||||
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, key_path, access=winreg.KEY_SET_VALUE)
|
||||
winreg.DeleteValue(key, "1")
|
||||
winreg.CloseKey(key)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
def parse_date(date_str: str) -> str:
|
||||
"""Převede '16. 4. 2026 09:02' na '2026-04-16'."""
|
||||
try:
|
||||
dt = datetime.strptime(date_str.strip(), "%d. %m. %Y %H:%M")
|
||||
return dt.strftime("%Y-%m-%d")
|
||||
except Exception:
|
||||
return "0000-00-00"
|
||||
|
||||
|
||||
def safe_filename(name: str) -> str:
|
||||
"""Odstraní znaky nevhodné pro název souboru."""
|
||||
return re.sub(r'[\\/:*?"<>|]', "_", name).strip()
|
||||
|
||||
|
||||
def build_filename(date_str: str, category: str, title: str, original: str) -> str:
|
||||
"""Sestaví název souboru: YYYY-MM-DD Kategorie Název (původní).ext"""
|
||||
orig_path = Path(original)
|
||||
stem = orig_path.stem
|
||||
ext = orig_path.suffix # včetně tečky
|
||||
name = f"{parse_date(date_str)} {safe_filename(category)} {safe_filename(title)} ({safe_filename(stem)}){ext}"
|
||||
# Windows limit 255 znaků
|
||||
if len(name) > 240:
|
||||
name = name[:230] + f"({safe_filename(stem)}){ext}"
|
||||
return name
|
||||
|
||||
|
||||
def load_all_messages(page, max_clicks: int = 0) -> None:
|
||||
"""Opakovaně kliká na 'Načíst další záznamy' (přes JS). max_clicks=0 = bez omezení."""
|
||||
clicks = 0
|
||||
while True:
|
||||
if max_clicks and clicks >= max_clicks:
|
||||
break
|
||||
# Hledáme tlačítko přes JS — robustnější než Playwright selektor
|
||||
before_count = page.evaluate("document.querySelectorAll('.InboxMessage').length")
|
||||
clicked = page.evaluate("""() => {
|
||||
const btn = Array.from(document.querySelectorAll('a')).find(a => a.innerText.includes('Načíst další'));
|
||||
if (btn) { btn.scrollIntoView(); btn.click(); return true; }
|
||||
return false;
|
||||
}""")
|
||||
if not clicked:
|
||||
break
|
||||
clicks += 1
|
||||
# Počkáme až se načtou nové zprávy (counter se zvýší)
|
||||
try:
|
||||
page.wait_for_function(
|
||||
f"document.querySelectorAll('.InboxMessage').length > {before_count}",
|
||||
timeout=15_000,
|
||||
)
|
||||
except Exception:
|
||||
print(f" [{clicks}] Nové zprávy nenačteny, končím.")
|
||||
break
|
||||
after_count = page.evaluate("document.querySelectorAll('.InboxMessage').length")
|
||||
print(f" [{clicks}] Načteno {after_count} zpráv (přibyly {after_count - before_count})")
|
||||
time.sleep(0.3)
|
||||
|
||||
|
||||
def collect_messages(page) -> list[dict]:
|
||||
"""Projde DOM přes JS a vrátí seznam zpráv se všemi potřebnými údaji."""
|
||||
data = page.evaluate("""() => {
|
||||
const results = [];
|
||||
for (const msg of document.querySelectorAll('.InboxMessage')) {
|
||||
// Kategorie: title atribut ikony v .InboxMessage-row--type
|
||||
const typeIcon = msg.querySelector('.InboxMessage-row--type i[title]');
|
||||
const category = typeIcon ? typeIcon.title.trim() : '';
|
||||
|
||||
// Název + název souboru: z title atributů na h3 a a.InboxMessage-title-link
|
||||
const titleEl = msg.querySelector('h3.InboxMessage-title');
|
||||
const title = titleEl ? titleEl.title.trim() : '';
|
||||
const linkEl = msg.querySelector('a.InboxMessage-title-link');
|
||||
const linkTitle = linkEl ? linkEl.title.trim() : ''; // "Stáhnout soubor xyz.pdf"
|
||||
const original = linkTitle.split(/\\s+/).pop(); // "xyz.pdf"
|
||||
|
||||
// Datum: .InboxMessage-row bez dalších modifikátorů
|
||||
let date = '';
|
||||
for (const row of msg.querySelectorAll('.InboxMessage-row')) {
|
||||
if (row.className.trim() === 'InboxMessage-row') {
|
||||
date = row.innerText.trim();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
results.push({ title, category, date, original });
|
||||
}
|
||||
return results;
|
||||
}""")
|
||||
|
||||
# Playwright locatory — každá zpráva má svůj download link uvnitř .InboxMessage
|
||||
inbox_msgs = page.locator(".InboxMessage").all()
|
||||
messages = []
|
||||
for i, item in enumerate(data):
|
||||
if i < len(inbox_msgs):
|
||||
msg_el = inbox_msgs[i]
|
||||
dl = msg_el.locator(".InboxMessage-row--download .i-l")
|
||||
if dl.count() > 0:
|
||||
item["link_locator"] = dl
|
||||
item["link_type"] = "download"
|
||||
else:
|
||||
zobrazit = msg_el.locator(".InboxMessage-row--download .i-r-1")
|
||||
item["link_locator"] = zobrazit if zobrazit.count() > 0 else None
|
||||
item["link_type"] = "zobrazit" if zobrazit.count() > 0 else None
|
||||
item["msg_locator"] = msg_el
|
||||
else:
|
||||
item["link_locator"] = None
|
||||
item["link_type"] = None
|
||||
messages.append(item)
|
||||
|
||||
return messages
|
||||
|
||||
|
||||
def main() -> None:
|
||||
try:
|
||||
from playwright.sync_api import sync_playwright
|
||||
except ImportError:
|
||||
print("Chybí playwright: pip install playwright && playwright install chrome")
|
||||
sys.exit(1)
|
||||
|
||||
os.makedirs(DOWNLOAD_DIR, exist_ok=True)
|
||||
_delete_chrome_cert_policy()
|
||||
|
||||
with sync_playwright() as p:
|
||||
context = p.chromium.launch_persistent_context(
|
||||
user_data_dir=CHROME_PROFILE,
|
||||
channel="chrome",
|
||||
headless=False,
|
||||
slow_mo=100,
|
||||
ignore_https_errors=True,
|
||||
accept_downloads=True,
|
||||
args=["--force-renderer-accessibility"],
|
||||
downloads_path=DOWNLOAD_DIR,
|
||||
)
|
||||
try:
|
||||
loaded = load_cookies(context)
|
||||
print(f"Cookies načtené z JSON: {loaded}")
|
||||
|
||||
page = context.new_page()
|
||||
|
||||
print("Naviguji na VZP Point schránku...")
|
||||
try:
|
||||
page.goto(INBOX_URL, wait_until="domcontentloaded", timeout=30_000)
|
||||
except Exception as e:
|
||||
print(f"Navigace: {e}")
|
||||
|
||||
if page.url.startswith("https://auth.vzp.cz/signin"):
|
||||
print("Přihlašovací stránka — klikám na 'Certifikát'...")
|
||||
cert_btn = page.locator("a, button").filter(has_text=re.compile(r"certifikát", re.I)).first
|
||||
cert_btn.wait_for(state="visible", timeout=10_000)
|
||||
cert_btn.click(no_wait_after=True)
|
||||
print("Pokud se zobrazí dialog výběru certifikátu, vyberte ho ručně (max 60 s)...")
|
||||
time.sleep(60)
|
||||
page = context.new_page()
|
||||
try:
|
||||
page.goto(INBOX_URL, wait_until="domcontentloaded", timeout=30_000)
|
||||
except Exception as e:
|
||||
print(f"Navigace po auth: {e}")
|
||||
if not page.url.startswith("https://point.vzp.cz"):
|
||||
print(f"Přihlášení selhalo. URL: {page.url}")
|
||||
return
|
||||
|
||||
print("Přihlášení OK. Načítám všechny zprávy (lazy-load)...")
|
||||
page.wait_for_load_state("networkidle", timeout=15_000)
|
||||
load_all_messages(page, max_clicks=0)
|
||||
|
||||
print("Sbírám seznam zpráv...")
|
||||
messages = collect_messages(page)
|
||||
print(f"Nalezeno {len(messages)} zpráv.")
|
||||
|
||||
already = set(os.listdir(DOWNLOAD_DIR))
|
||||
downloaded = 0
|
||||
skipped = 0
|
||||
|
||||
for i, msg in enumerate(messages, 1):
|
||||
filename = build_filename(msg["date"], msg["category"], msg["title"], msg["original"])
|
||||
target = os.path.join(DOWNLOAD_DIR, filename)
|
||||
|
||||
if filename in already or os.path.exists(target):
|
||||
skipped += 1
|
||||
continue
|
||||
|
||||
if msg["link_locator"] is None:
|
||||
print(f"[{i}/{len(messages)}] Přeskakuji (bez odkazu): {filename}")
|
||||
continue
|
||||
|
||||
print(f"[{i}/{len(messages)}] Stahuji: {filename}")
|
||||
|
||||
if msg["link_type"] == "download":
|
||||
try:
|
||||
with page.expect_download(timeout=30_000) as dl_info:
|
||||
msg["link_locator"].dispatch_event("click")
|
||||
dl_info.value.save_as(target)
|
||||
already.add(filename)
|
||||
downloaded += 1
|
||||
time.sleep(0.3)
|
||||
except Exception as e:
|
||||
print(f" Chyba při stahování '{filename}': {e}")
|
||||
|
||||
elif msg["link_type"] == "zobrazit":
|
||||
try:
|
||||
msg["link_locator"].click()
|
||||
# Počkej na rozbalený obsah
|
||||
footer = msg["msg_locator"].locator(".InboxMessage-footer")
|
||||
footer.wait_for(state="visible", timeout=10_000)
|
||||
time.sleep(0.5)
|
||||
|
||||
# Ulož text zprávy jako .txt (bez sekce příloh)
|
||||
text_el = footer.locator("div").first
|
||||
text = text_el.inner_text().strip()
|
||||
txt_target = Path(target).with_suffix(".txt")
|
||||
txt_target.write_text(text, encoding="utf-8")
|
||||
already.add(txt_target.name)
|
||||
downloaded += 1
|
||||
print(f" Uložen text: {txt_target.name}")
|
||||
|
||||
# Stáhni přílohy uvnitř zprávy
|
||||
attach_links = footer.locator("a.i-l").all()
|
||||
for al in attach_links:
|
||||
orig = al.get_attribute("title", timeout=2_000) or ""
|
||||
orig_name = orig.split()[-1] if orig else "priloha"
|
||||
att_filename = build_filename(msg["date"], msg["category"], msg["title"], orig_name)
|
||||
att_target = os.path.join(DOWNLOAD_DIR, att_filename)
|
||||
if not os.path.exists(att_target):
|
||||
with page.expect_download(timeout=30_000) as dl_info:
|
||||
al.dispatch_event("click")
|
||||
dl_info.value.save_as(att_target)
|
||||
already.add(att_filename)
|
||||
downloaded += 1
|
||||
print(f" Stažena příloha: {att_filename}")
|
||||
time.sleep(0.3)
|
||||
except Exception as e:
|
||||
print(f" Chyba při zobrazení '{filename}': {e}")
|
||||
|
||||
print(f"\nHotovo. Staženo: {downloaded}, přeskočeno (již existuje): {skipped}")
|
||||
|
||||
finally:
|
||||
saved = save_cookies(context)
|
||||
print(f"Uloženo {saved} VZP cookies.")
|
||||
context.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,122 @@
|
||||
[
|
||||
{
|
||||
"name": "ai_user",
|
||||
"value": "wIhK13IopJb2nNjRoWMJvz|2026-04-19T06:43:49.112Z",
|
||||
"domain": "auth.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": 1808117029.11323,
|
||||
"httpOnly": false,
|
||||
"secure": true,
|
||||
"sameSite": "None"
|
||||
},
|
||||
{
|
||||
"name": ".Idm.DSID",
|
||||
"value": "0ecc5408-424f-4c12-8363-906a5db2146b",
|
||||
"domain": "auth.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": 1808117548.882756,
|
||||
"httpOnly": true,
|
||||
"secure": false,
|
||||
"sameSite": "Lax"
|
||||
},
|
||||
{
|
||||
"name": "ai_user",
|
||||
"value": "McvWEZRk5dmTYStEe5/hwu|2026-04-19T06:43:55.622Z",
|
||||
"domain": "point.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": 1808117035.623945,
|
||||
"httpOnly": false,
|
||||
"secure": true,
|
||||
"sameSite": "None"
|
||||
},
|
||||
{
|
||||
"name": "ARRAffinity",
|
||||
"value": "e4a2ec12b67fad29b69e0e95414615d6e962fc20458e5c13ed7f203c2a1918e2",
|
||||
"domain": ".point.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": -1,
|
||||
"httpOnly": true,
|
||||
"secure": true,
|
||||
"sameSite": "Lax"
|
||||
},
|
||||
{
|
||||
"name": "ARRAffinitySameSite",
|
||||
"value": "e4a2ec12b67fad29b69e0e95414615d6e962fc20458e5c13ed7f203c2a1918e2",
|
||||
"domain": ".point.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": -1,
|
||||
"httpOnly": true,
|
||||
"secure": true,
|
||||
"sameSite": "None"
|
||||
},
|
||||
{
|
||||
"name": "ARRAffinity",
|
||||
"value": "123f0451d6e23dba3c23f29a23c095e2b0d94b97199afeda26565c8c745dfaad",
|
||||
"domain": ".auth.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": -1,
|
||||
"httpOnly": true,
|
||||
"secure": true,
|
||||
"sameSite": "Lax"
|
||||
},
|
||||
{
|
||||
"name": "ARRAffinitySameSite",
|
||||
"value": "123f0451d6e23dba3c23f29a23c095e2b0d94b97199afeda26565c8c745dfaad",
|
||||
"domain": ".auth.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": -1,
|
||||
"httpOnly": true,
|
||||
"secure": true,
|
||||
"sameSite": "None"
|
||||
},
|
||||
{
|
||||
"name": "ARRAffinity",
|
||||
"value": "e4a2ec12b67fad29b69e0e95414615d6e962fc20458e5c13ed7f203c2a1918e2",
|
||||
"domain": ".auth-cert27.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": -1,
|
||||
"httpOnly": true,
|
||||
"secure": true,
|
||||
"sameSite": "Lax"
|
||||
},
|
||||
{
|
||||
"name": "ARRAffinitySameSite",
|
||||
"value": "e4a2ec12b67fad29b69e0e95414615d6e962fc20458e5c13ed7f203c2a1918e2",
|
||||
"domain": ".auth-cert27.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": -1,
|
||||
"httpOnly": true,
|
||||
"secure": true,
|
||||
"sameSite": "None"
|
||||
},
|
||||
{
|
||||
"name": ".AspNetCore.IdmLocalAuth",
|
||||
"value": "CfDJ8NceE7GPS1hCryl8w53d2tP-WDIbKwQOm0PlEZKlhcodUJYYecsniNTkHawEjQ9PMigigH1LFBhyMF7juithdonBzehldUgN-wgWEuahycGLsUeAcTFiBMy_6h8pgbR086OAxegeBHFmiuMKXJxch88_QC_j1TeStgcgTazXIh7SpKi4fG6kyOxEr5VGMy0xlLviRmbGriAQr19-ptAJf1EGLiIDN2xx0JWapl8KPc1mVAEmwQRbXxW-WXQSDiio6TWvKVdeWy5UCk7QC-wHMfWr9CQ6UoemOFoXvmX9BmqnTtJg6_cXYyc3T1dJunc67a-JlUZJlwblj2ePi2c4KrpYAzE6gH9mheOkTgzJ9kgbEFJ4psimmWexS2SDnMCxNCRp9RFhlipc-RIMJx4NgDhvFy3nKWKP2vxkj0Y-WTiJQSkJzJSR8T_M5WaUnGPy2wTxOelTupjzsHvCad8OonqjSrzYnWBp1NdkuEbl7S3vQ_QHmpygTGGGw4mljcjJb-iFAjafrVsvmkZEdNPACHM7UG-URBhLJh_uWHxZvei8qhW_F86hqqbpraPAfBTw9ShEGCx5vkwuLANbACvIvmkvsRww4BUaHuDy3IugYqI8Xy_34k1eKpaxyNYMZY7kbParYXGy9UZXV0p0DEGAbG52dXiBwpoBXlfXDWrw9hNHpilvZ9fueTa8J2TaMA_FFqbNO8CLSrosfzj3JQ0hTD6HumaX6QircCyHPFHwlcUX",
|
||||
"domain": "auth.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": -1,
|
||||
"httpOnly": true,
|
||||
"secure": true,
|
||||
"sameSite": "Lax"
|
||||
},
|
||||
{
|
||||
"name": ".BDesk.FrontUI.IdmAuth.Cookie",
|
||||
"value": "CfDJ8COR4DcdV-9Jh-xmwD9F8p2T8-lGdNJ7_FMrxohKxLpsmMzG5wkVsVU5Z-xejDVwd_2hWYl61EWRFn2H7xzIbstM1Iu0A5eSfpu7tcvhYqOlSk3UNtHC2Z7YFXIufMqx8q5GmfItsUdDhoG1dbqsuJ_VYObJnXBKu8oSxUTYYl_di9etizSM9854nu2TzhE0i9VolXLBOIfaOrQR5__es8iCWWJ8fWgSuUUjFF8UEfxcUK2KWC9z8DIgN7R-ZD5vsJ7WXNPNzicwt5ExcK-CmOdsOeKl-O_WDbLcCWYmm12YNvyJxESmnsgyGi37HSezTRyS34MR_FpeYGw3G2CRFVCwvRLAWA2Y90TQ3uhNkSpnZbrN6mgnPUQAq5tjx5PD7Tnh2V8Emmvr2_XS4gOPP6ZB5DUvZxhC4R1Zheisr1wbj1K6wLW7POqdfPAmkxugPvgK0Vp12OGrDrBkip1_9sZt5Z5AyNfhf8_6rYRQ4ZiUNE69C4c5p3BmQET6Amd4daH4vIsTp6ilPa2Xei2QIqyIhAt87Uk0bIu3DofYQQ0gsRZ_qyo7cwLbTEZU7uGmV5lRGUqW0X0oZSYxgP4wiZmpnt9zmZh56-TRWrNGNdenAGeTEDIVqf0s2ct6Z69HRGmHwmgvKuycvew38rfpdwAmvi9gfXzkoDOqf_EaO6XvDWUbNanTJ9QyWMK2PaPdSQc6ZqyZqxzMgl7Ihg8zNZestjz0z2VL4N3iCL0slnLPJrASV3C1Ky8sstjRz5R4J4AaZgxAQTByhMV5rKlBP-Vk7tSxi2w6FyMn_5D5ENzIvfI43G0qgL72Ss3u1j_NCytlT6ROKWY-OTQDcVOwhncK3oulafxLVTIEy5zTt8EU9DGMS_3-Pf2NLVGAyuiFD2lJzEkQpzpvt0bjj-L0njVUHTmGibi8RopAu7sgu-ASVFhH7qAqalE2gv7elkyL9nGeehy3rpBQ5NnuJd5Xv2nUzsxJxfXgZooddCyE3xVAFYd5RRby6iQek264lzXWdbuEZSMNADwiqJvWgAkuMNtBOIUipf5btRZCmCGBxB3WjjnDMCsdI3LHU-7-Pvyc1iuHAijcVLu0fVR-OJMz3RdISl4svmFJO6hERBlN_abxC_i25eeck9GuEWZkVo-Hj0c0BQghZ_Jy22iILQLcgcszOLtQlPWT_szDM4BkuHMzgf3QOJg-Qdqt77MqgUyIz9eta5zTnqLCi7GkKQtvgAgCKJ_LmhEUvA2jCDkc7dW8GS-t-JjqYOOpt3hbI1drX90T72iXtFAqxVsXwYBQ6-_AzZEw7pGl9idizQOIcX7_hiOgn8cl1aQ6JO9DJ6nxM-aSCj34wb_y4wY9MBRgutjhOmR5hFP4l4gLP06po8e-nbTHHiY7Fcj2V4AessnoJZuf9zk8E5wTo--5nxQzpHFDHcuJNv_rooeZ7H7pr0qGck4uP0_RHLtTCRxWLz9dlcPFMwvRhvB4tScd5nXnRRbxoNKSZ6cFSYGTnGU2-GG1GIgwOBb3LBAUVFxFBz6kq_U4iSmcfFDmgJRATxf-AZwWN4SK_e3T1k3emxGPf7SZCk7IRjaVly4YCbZs4UmrW3XoYG9O0zU2-UTb9x-aQ7YM8gVlcyUEeUhBsmsom-7X45ZceTBbUTzdJSDeNH0rpKnKSLeHu6lHnAa2LX3gSQPUy6ah-fOePE3qAw25G6sEIvvgcfentJEWzrcpPqf7jbYe5_D6GHJiBEgWo_NC-IntOU4tcGCotCws9MbGC278vBsNfAeiaKdiPtwswl7JkOZzJJKLhjoFoArvsIHAtzEIO3h-XPuS4aprh7JjCprwMRJzq8bz0BZkn5z44u__JkfnfSlKgi2v5eemMec6_MhSPM8K5hYFAmUf5l5CbF7RM16K56V4YMIgNnIoVUue5rxO74krJ75JRzyN1h1i325fTK5y-rLvzSGNJmruwGckeoFT5D7ir1P7YTAQCzBgns53HbIEhYwBv1e4XnOiy8JozX_8bO2NupbSEKmxn-5n9DfjeUsnq8WdX1scVC4g-qWtsI83uePA64hMvdwtuCl8vRXQQ591-hHsKnrC5IGxharce74_OLY-ztmPOaeUFi22bWYr5bqSCTUT9t5AN7Pe0-pKUHw7iedjU2CF77vLg14oQfwYy12xFpy5wq_rGCWpqTsQBaQAc2cLqudgBQhL1qnEGbHX5HqGJhH2RhhWKaLWV69x2jEgdGSUIJ_qXpws2CSggcZP_3CrdeXumPm61hGzgbhBacyR5xI1xB2jYoLraPO5Fx-xxNkhESjqvdaxZ9Mhs7l3_az7byf_GVBa0dtInqXwpRIJzg1CZYGKf6VeTDKO6_CghT4V9CHB3LtAvx96Pwd3UP1-9RYsrXIUFO06MivvzI4f3i0K_kFpWyOiIGoxZo9F50gjpvM_HNAqH3TGNwoMWi03TxAScdvILQ5EeZfivPeeTDIggR4JWHIhWE75Xrum3-b4CU76PLnWNNExJCMghwruGnwZ17K1aeOUCSpaT6KZ9XXtFqLsLRRiR9Zu2h3dgyq9-PsTzOafitknWu7K17DUiq5AAnA",
|
||||
"domain": "point.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": -1,
|
||||
"httpOnly": true,
|
||||
"secure": true,
|
||||
"sameSite": "Lax"
|
||||
},
|
||||
{
|
||||
"name": "ai_session",
|
||||
"value": "BonOMZ0/OAueln06g3C+LL|1776598812296|1776598887566",
|
||||
"domain": "point.vzp.cz",
|
||||
"path": "/",
|
||||
"expires": 1776600687.567691,
|
||||
"httpOnly": false,
|
||||
"secure": true,
|
||||
"sameSite": "None"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user