Source code for redditwarp.model_loaders.submission
from __future__ import annotations
from typing import TYPE_CHECKING, Any, Mapping
if TYPE_CHECKING:
from ..models.submission import Submission
from ..models.submission import (
LinkPost,
TextPost,
GalleryPost,
PollPost,
CrosspostSubmission,
)
[docs]def load_submission(d: Mapping[str, Any]) -> Submission:
if d.get('is_gallery', False):
return load_gallery_post(d)
if 'poll_data' in d:
return load_poll_post(d)
if 'crosspost_parent' in d:
return load_cross_post(d)
if d['is_self']:
return load_text_post(d)
if 'url_overridden_by_dest' in d:
return load_link_post(d)
raise Exception('unknown post type')
[docs]def load_crosspost_submission(d: Mapping[str, Any]) -> CrosspostSubmission:
return CrosspostSubmission(d)
[docs]def load_cross_post(d: Mapping[str, Any]) -> CrosspostSubmission:
return load_crosspost_submission(d)