Module hdrezka.api.search

Implementation of search on HDRezka pages (see post.page.Page).

Classes

class Search (query: str = '', *, client: HDRezkaClient)
Expand source code
class Search(Page):
    """HDRezka search listing bound to a client session."""
    __slots__ = ('_query',)

    def __init__(self, query: str = '', *, client: 'HDRezkaClient'):
        """
        :param query: Search query string.
        :param client: Session used for HTTP requests and host resolution.
        """
        self._query = (query if isinstance(query, str) else str(query)).strip()
        super().__init__(self._search_url(client, self._query), client=client)

    @staticmethod
    def _search_url(client: 'HDRezkaClient', query: str) -> str:
        return client.host_join(f'search/?do=search&subaction=search&q={query}')

    def search_url(self, query: str) -> str:
        """Return the search URL for ``query`` on this client's host."""
        return self._search_url(self.client, query)

    @property
    def query(self) -> str:
        """Current search query."""
        return self._query

    @query.setter
    def query(self, value):
        """Cast value to str and refresh the page URL."""
        self._query = value if isinstance(value, str) else str(value)
        self.page = self.search_url(self.query)

    @staticmethod
    @override
    def _concat_paginator(url: str) -> str:
        return f'{url}&page={{0}}'

    def __repr__(self):
        return f"{self.__class__.__qualname__}({repr(self.query) if self.query else ''})"

HDRezka search listing bound to a client session.

:param query: Search query string. :param client: Session used for HTTP requests and host resolution.

Ancestors

Instance variables

prop query : str
Expand source code
@property
def query(self) -> str:
    """Current search query."""
    return self._query

Current search query.

Methods

def search_url(self, query: str) ‑> str
Expand source code
def search_url(self, query: str) -> str:
    """Return the search URL for ``query`` on this client's host."""
    return self._search_url(self.client, query)

Return the search URL for query on this client's host.

Inherited members