Module hdrezka.post.site.updates

Sidebar series update feed parsing.

Functions

def parse_series_updates(html: str | bs4.BeautifulSoup | bs4.element.Tag) ‑> tuple[SeriesUpdateBlock, ...]
Expand source code
def parse_series_updates(html: str | BeautifulSoup | Tag) -> tuple[SeriesUpdateBlock, ...]:
    """
    Parse ``.b-seriesupdate__block`` entries from the inline sidebar.

    Returns an empty tuple when the sidebar feed is missing.
    """
    soup = as_soup(html)
    sidebar = soup.select_one('.b-content__inline_sidebar') or soup
    blocks = []
    for block in sidebar.select('.b-seriesupdate__block'):
        date = text(block.select_one('.b-seriesupdate__block_date'))
        items = []
        for li in block.select('ul.b-seriesupdate__block_list > li.b-seriesupdate__block_list_item'):
            item = _parse_item(li)
            if item is not None:
                items.append(item)
        blocks.append(SeriesUpdateBlock(date=date, items=tuple(items)))
    return tuple(blocks)

Parse .b-seriesupdate__block entries from the inline sidebar.

Returns an empty tuple when the sidebar feed is missing.

Classes

class SeriesUpdateBlock (date: str,
items: tuple[SeriesUpdateItem, ...] = ())
Expand source code
class SeriesUpdateBlock(NamedTuple):
    """Series updates grouped under one date heading."""
    date: str
    items: tuple[SeriesUpdateItem, ...] = ()

Series updates grouped under one date heading.

Ancestors

  • builtins.tuple

Instance variables

var date : str
Expand source code
class SeriesUpdateBlock(NamedTuple):
    """Series updates grouped under one date heading."""
    date: str
    items: tuple[SeriesUpdateItem, ...] = ()

Alias for field number 0

var items : tuple[SeriesUpdateItem, ...]
Expand source code
class SeriesUpdateBlock(NamedTuple):
    """Series updates grouped under one date heading."""
    date: str
    items: tuple[SeriesUpdateItem, ...] = ()

Alias for field number 1

class SeriesUpdateItem (name: str, url: str, season: str = '', episode: str = '', translation: str = '')
Expand source code
class SeriesUpdateItem(NamedTuple):
    """One series episode update row."""
    name: str
    url: str
    season: str = ''
    episode: str = ''
    translation: str = ''

One series episode update row.

Ancestors

  • builtins.tuple

Instance variables

var episode : str
Expand source code
class SeriesUpdateItem(NamedTuple):
    """One series episode update row."""
    name: str
    url: str
    season: str = ''
    episode: str = ''
    translation: str = ''

Alias for field number 3

var name : str
Expand source code
class SeriesUpdateItem(NamedTuple):
    """One series episode update row."""
    name: str
    url: str
    season: str = ''
    episode: str = ''
    translation: str = ''

Alias for field number 0

var season : str
Expand source code
class SeriesUpdateItem(NamedTuple):
    """One series episode update row."""
    name: str
    url: str
    season: str = ''
    episode: str = ''
    translation: str = ''

Alias for field number 2

var translation : str
Expand source code
class SeriesUpdateItem(NamedTuple):
    """One series episode update row."""
    name: str
    url: str
    season: str = ''
    episode: str = ''
    translation: str = ''

Alias for field number 4

var url : str
Expand source code
class SeriesUpdateItem(NamedTuple):
    """One series episode update row."""
    name: str
    url: str
    season: str = ''
    episode: str = ''
    translation: str = ''

Alias for field number 1