Kam na západě · Wiki

CHANGELOG

Historie změn specifikace XML feedu.

Všechny významné změny specifikace XML feedu KNZ Integrations jsou zdokumentovány v tomto souboru.

Upřesnění – říjen 2026

Formát feedu se nemění a stávající feedy fungují dál. Přibyla jedna hodnota výčtu a upřesňujeme, jak platforma s daty zachází.

Nová hodnota

  • voluntary v <ticket><status> — dobrovolné vstupné; price_min je nepovinná a znamená doporučenou částku (Vstupenky).

Upřesnění

  • User-Agent: crawler se při stahování feedu, obrázků i příloh identifikuje řetězcem KamNaZapade/1.0 (+https://kamnazapade.cz), ne KNZCrawler/1.0, jak uvádělo vydání 1.1.0 (Přehled).
  • Vstupenky: událost bez <ticket> se ukáže bez ceny, ne jako vstup zdarma. Položky programu bez vlastního <ticket> přebírají vstupenku události.
  • facebook_url se načítá a web ho ukazuje na stránce akce.
  • end_date: vícedenní událost bez <recurrence> je v kalendáři každý den; od 14 dní je dlouhodobá. U opakování se end_date počítá včetně posledního dne.
  • start_date může mít posun (+02:00) i UTC (Z); posílá-li váš systém místní čas jako UTC, nastavíme u zdroje časové pásmo.
  • Program: položky <nested_event> aktualizujeme podle jejich id, i u zveřejněné akce; položka, která zmizí před konáním, se skryje.
  • Položky programu — vlastní <ticket>, preview_url, duration a <location> jako objekt ukládáme od 15. 10. 2026; bez end_date dopočítáme konec z duration. duration události se na stránce akce ukáže jako „Trvá …“.
  • Zmizelé události archivujeme při nejbližší synchronizaci, s pojistkou proti neúplné odpovědi feedu (Přehled, bod 4).
  • Úpravy redakce zamykají jen změněné části události; zámek skončí, když feed pošle stejnou hodnotu. Nově popsáno předání akce pořadateli a výchozí pořadatel zdroje (bod 2).
  • Obrázky delší než 2400 px nebo větší než 1 MB ukládáme zmenšené ve formátu WebP.

\[1.1.0\] - 2026-07-20

Toto vydání předělává způsob popisu médií, zpřísňuje prodej vstupenek a zavádí nepovinné pole duration. Přidává rovněž jedno povinné pole (preview_url), které partneři musí ve svých feedech uvádět.


⚠️ Zásadní změny (Breaking changes)

Média už nejsou jedno pole <media> - nyní jsou to čtyři samostatná pole.

v1.0

v1.1

Poznámky

<media><item type="image"> (první položka)

<preview_url>

Nyní povinné samostatně, neodvozuje se z pozice v poli

<media><item type="image"> (jakákoli další položka)

<gallery><item type="image">

Přesunuto do bloku galerie

–

<banner_url>

Nové - nepovinný široký banner pro stránku s detaily akce

<media><item type="document">

<attachment_url>

Jedna URL; více souborů sloučte do jednoho ZIP archivu

–

<gallery><item type="video">

Nový typ položky galerie pro přímé video odkazy (YouTube/Vimeo), odlišný od embed

Původní obecné pravidlo vyžadující „alespoň jeden obrázek" bylo nahrazeno jediným přísným požadavkem: musí být přítomno pole preview_url. Pole galerie je nepovinné a lze jej vynechat nebo předat jako prázdný seznam.

Změna HTTP User-Agenta (crawleru):

Původní User-Agent KamNaZapade/1.0 byl nahrazen novým KNZCrawler/1.0.

Upozornění pro partnery: Pokud na svých webových serverech (Nginx, Cloudflare, WAF) filtrujte přístup na základě User-Agenta, je nutné přidat KNZCrawler/1.0 na whitelist, jinak budou požadavky na stahování feedu odmítnuty.


✨ Nová pole

  • duration: Přidán nepovinný podřízený element <duration> přímo pod <event> pro určení délky trvání akce v minutách (např. <duration>90</duration>).
  • Vylepšení vnořených událostí (<nested_event>):
  • Přidána podpora bloku <ticket> přímo uvnitř vnořených událostí.
  • Přidána podpora pole <preview_url> pro náhledový obrázek vnořené události.

Změny v prodeji vstupenek

Struktura elementu <ticket> byla aktualizována pro lepší konzistenci se zbytkem schématu:

  1. status přesunut do podřízeného elementu: Stav se již nepředává jako atribut XML.
  2. Aktualizované hodnoty výčtu (enum): Hodnoty status jsou nyní striktně on_sale, sold_out, not_yet_available nebo free (pozn.: at_door bylo přesunuto).
  3. Nové pole sales_channel: Přidán nepovinný podřízený element <sales_channel> pro určení distribučního kanálu (online nebo at_door).

Porovnání struktury XML:

- <ticket status="on_sale">
-     <price_min>450</price_min>
- </ticket>
+ <ticket>
+     <status>on_sale</status>
+     <sales_channel>online</sales_channel>
+     <price_min>450</price_min>
+ </ticket>

Aktualizováno 16. října 2026

Na této stránce