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


from __future__ import annotations
from typing import TYPE_CHECKING, Optional, Sequence, Iterable
if TYPE_CHECKING:
    from ....client_SYNC import Client

from ..listing.listing_paginator import ListingPaginator
from ....models.moderation_action_log_entry import ModerationActionLogEntry
from ....model_loaders.moderation_action_log_entry import load_moderation_action_log_entry

[docs]class ModerationActionLogPaginator(ListingPaginator[ModerationActionLogEntry]): def __init__(self, client: Client, url: str, *, limit: Optional[int] = 500, action: str = '', mod: str = '', ) -> None: cursor_extractor = lambda x: x['data']['id'] super().__init__(client, url, limit=limit, cursor_extractor=cursor_extractor) self.client: Client = client ("") self.url: str = url ("") self.action: str = action ("") self.mod: str = mod ("") def _generate_params(self) -> Iterable[tuple[str, str]]: yield from super()._generate_params() if self.action: yield ('action', self.action) if self.mod: yield ('mod', self.mod)
[docs] def fetch(self) -> Sequence[ModerationActionLogEntry]: data = self._fetch_data() return [load_moderation_action_log_entry(d['data']) for d in data['children']]