from typing import Any, Optional
import mwparserfromhell
+from mwparserfromhell.nodes.extras import Parameter
+
import pywikibot
from mwparserfromhell.nodes import Tag, Text, ExternalLink, Template, Wikilink
from mwparserfromhell.wikicode import Wikicode
if v is not None:
sledrun_json['public_transport'] = public_transport_german_to_str(v)
+ def _button_bar():
+ bb_iter = wikicode.ifilter_templates(recursive=False, matches=lambda t: t.name.strip() == 'Buttonleiste')
+ bb = next(bb_iter, None)
+ if bb is not None:
+ video = bb.get('video', None)
+ if isinstance(video, Parameter):
+ sledrun_json['videos'] = [{'url': video.value}]
+ _button_bar()
+
for v in wikicode.get_sections(levels=[2], matches='Anreise mit öffentlichen Verkehrsmitteln',
include_headings=False):
w = next((w for w in v.nodes if isinstance(w, Tag) and w.wiki_markup == '*'), None)
|Bericht={{ allow_reports | default(true) | german_bool }}
{%- if forum_id %}|ForumId={{ forum_id }}{% endif %}
{%- if position %}|Wetter=Ja{% endif -%}
+{%- if videos %}|Video={{ videos[0].url }} {% endif -%}
|Korrektur=Seite{% if correction_email %}|Korrektur_To={{ correction_email }}{% endif -%}
{% if freizeitticket_tyrol %}|Freizeitticket=Ja{% endif -%}
{% if regio_card_tyrol %}|Regiocard=Ja{% endif -%}}}