Source code for redditwarp.pagination.paginators.moderation.pull_async1


from __future__ import annotations
from typing import TYPE_CHECKING, TypeVar, Optional, Iterable, Callable, Any, Mapping
if TYPE_CHECKING:
    from ....client_ASYNC import Client

from ..listing.listing_async_paginator import ListingAsyncPaginator
from ..listing.mixins.subreddit_detail_ASYNC import SubredditDetail
from ..listing.submission_and_comment_listing_async_paginator import SubmissionAndLooseCommentListingAsyncPaginator
from ..listing.submission_listing_async_paginator import SubmissionListingAsyncPaginator
from ..listing.comment_listing_async_paginator import LooseCommentListingAsyncPaginator
from ....models.submission_ASYNC import Submission
from ....models.comment_ASYNC import LooseComment

T = TypeVar('T')

[docs]class OnlyFilter(ListingAsyncPaginator[T]): def __init__(self, client: Client, url: str, *, limit: Optional[int] = 100, params: Optional[Mapping[str, str]] = None, cursor_extractor: Callable[[Any], str] = lambda x: x['data']['name'], ) -> None: super().__init__(client, url, limit=limit, params=params, cursor_extractor=cursor_extractor) self._only = '' def _generate_params(self) -> Iterable[tuple[str, str]]: yield from super()._generate_params() if self._only: yield ('only', self._only)
[docs]class SubmissionOnlyFilter(OnlyFilter[Submission]): def __init__(self, client: Client, url: str, *, limit: Optional[int] = 100, params: Optional[Mapping[str, str]] = None, cursor_extractor: Callable[[Any], str] = lambda x: x['data']['name'], ) -> None: super().__init__(client, url, limit=limit, params=params, cursor_extractor=cursor_extractor) self._only = 'links'
[docs]class CommentOnlyFilter(OnlyFilter[LooseComment]): def __init__(self, client: Client, url: str, *, limit: Optional[int] = 100, params: Optional[Mapping[str, str]] = None, cursor_extractor: Callable[[Any], str] = lambda x: x['data']['name'], ) -> None: super().__init__(client, url, limit=limit, params=params, cursor_extractor=cursor_extractor) self._only = 'comments'
[docs]class ModQueueListingAsyncPaginator(
SubredditDetail[object], SubmissionAndLooseCommentListingAsyncPaginator, ): pass
[docs]class ModQueueSubmissionListingAsyncPaginator(
SubredditDetail[Submission], SubmissionOnlyFilter, SubmissionListingAsyncPaginator, ): pass
[docs]class ModQueueCommentListingAsyncPaginator(
SubredditDetail[LooseComment], CommentOnlyFilter, LooseCommentListingAsyncPaginator, ): pass
[docs]class ReportsListingAsyncPaginator(
SubredditDetail[object], SubmissionAndLooseCommentListingAsyncPaginator, ): pass
[docs]class ReportsSubmissionListingAsyncPaginator(
SubredditDetail[Submission], SubmissionOnlyFilter, SubmissionListingAsyncPaginator, ): pass
[docs]class ReportsCommentListingAsyncPaginator(
SubredditDetail[LooseComment], CommentOnlyFilter, LooseCommentListingAsyncPaginator, ): pass
[docs]class SpamListingAsyncPaginator(
SubredditDetail[object], SubmissionAndLooseCommentListingAsyncPaginator, ): pass
[docs]class SpamSubmissionListingAsyncPaginator(
SubredditDetail[Submission], SubmissionOnlyFilter, SubmissionListingAsyncPaginator, ): pass
[docs]class SpamCommentListingAsyncPaginator(
SubredditDetail[LooseComment], CommentOnlyFilter, LooseCommentListingAsyncPaginator, ): pass
[docs]class EditedListingAsyncPaginator(
SubredditDetail[object], SubmissionAndLooseCommentListingAsyncPaginator, ): pass
[docs]class EditedSubmissionListingAsyncPaginator(
SubredditDetail[Submission], SubmissionOnlyFilter, SubmissionListingAsyncPaginator, ): pass
[docs]class EditedCommentListingAsyncPaginator(
SubredditDetail[LooseComment], CommentOnlyFilter, LooseCommentListingAsyncPaginator, ): pass
[docs]class UnmoderatedSubmissionListingAsyncPaginator(
SubredditDetail[Submission], SubmissionListingAsyncPaginator, ): pass