]> ToastFreeware Gitweb - philipp/winterrodeln/wrpylib.git/blob - wrpylib/lib_sledrun_wikitext_to_json.py
Create function get_sledrun_description.
[philipp/winterrodeln/wrpylib.git] / wrpylib / lib_sledrun_wikitext_to_json.py
1 from itertools import takewhile, dropwhile
2 from typing import Optional, Any
3
4 from mwparserfromhell.nodes import Template, Text, Tag
5 from mwparserfromhell.wikicode import Wikicode
6
7
8 def get_sledrun_description(sledrun: Wikicode) -> Optional[str]:
9     """Get description from sledrun"""
10     for v in sledrun.get_sections(levels=[2], matches='Allgemeines', include_headings=False):
11         dw = dropwhile(lambda n: isinstance(n, Template) or (isinstance(n, Text) and not str(n).strip()), v.nodes)
12         tw = takewhile(lambda n: not (isinstance(n, Tag) and str(n) == '*'), dw)
13         result = str(Wikicode(tw)).strip()
14         if result:
15             return result