]> ToastFreeware Gitweb - philipp/winterrodeln/wrpylib.git/commitdiff
Parse video from Buttonleiste.
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Sun, 9 Jan 2022 21:42:32 +0000 (22:42 +0100)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Sun, 9 Jan 2022 21:42:32 +0000 (22:42 +0100)
bots/sledrun_wikitext_to_json.py
wrpylib/templates/sledrun_wiki.txt

index 4381d5bfcd8623c517001d89a46f62a22d9994f3..f5d0434d75db4594770d2521cb5c3b5115455012 100644 (file)
@@ -15,6 +15,8 @@ import re
 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
@@ -209,6 +211,15 @@ class SledrunWikiTextToJsonBot(
             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)
index f76260364193d45c9b9667acd8be1cbc734e4e3e..492fd2d1b2beb1719c0c553faf6235b6c5ef19fd 100644 (file)
@@ -42,6 +42,7 @@
 |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 -%}}}