Source code for redditwarp.model_loaders.wiki_ASYNC


from __future__ import annotations
from typing import TYPE_CHECKING, Any, Mapping
if TYPE_CHECKING:
    from ..client_ASYNC import Client

from ..models.wiki import WikiPageRevisionAuthorUser as BaseWikiPageRevisionAuthorUser
from ..models.wiki_ASYNC import WikiPageRevisionAuthorUser, WikiPage, WikiPageRevision, WikiPageSettings
from .wiki import (
    load_wiki_page as load_base_wiki_page,
    load_wiki_page_revision as load_base_wiki_page_revision,
    load_wiki_page_settings as load_base_wiki_page_settings,
)


[docs]def load_wiki_page_revision_author_user(d: Mapping[str, Any], client: Client) -> WikiPageRevisionAuthorUser: return WikiPageRevisionAuthorUser(d, client)
[docs]def promote_base_wiki_page_revision_author_user(base: BaseWikiPageRevisionAuthorUser, client: Client) -> WikiPageRevisionAuthorUser: return WikiPageRevisionAuthorUser(base.d, client)
[docs]def load_wiki_page(d: Mapping[str, Any], client: Client) -> WikiPage: up = load_base_wiki_page(d) return WikiPage( d=up.d, body=up.body, body_html=up.body_html, can_revise=up.can_revise, revision_uuid=up.revision_uuid, revision_unixtime=up.revision_unixtime, revision_author=promote_base_wiki_page_revision_author_user(up.revision_author, client), revision_message=up.revision_message, )
[docs]def load_wiki_page_revision(d: Mapping[str, Any], client: Client) -> WikiPageRevision: up = load_base_wiki_page_revision(d) return WikiPageRevision( d=up.d, uuid=up.uuid, unixtime=up.unixtime, author=promote_base_wiki_page_revision_author_user(up.author, client), message=up.message, hidden=up.hidden, )
[docs]def load_wiki_page_settings(d: Mapping[str, Any], client: Client) -> WikiPageSettings: up = load_base_wiki_page_settings(d) return WikiPageSettings( permlevel=up.permlevel, editors=[promote_base_wiki_page_revision_author_user(o, client) for o in up.editors], indexed=up.indexed, )