Source code for moddb.pages.engine

import logging

import bs4

from ..enums import SearchCategory
from ..utils import LOGGER, concat_docs
from .base import PageMetaClass
from .mixins import GetGamesMixin


[docs] @concat_docs class Engine(PageMetaClass, GetGamesMixin): """A subclass of Page, however, it does not have the files attribute Parameters ----------- html : bs4.BeautifulSoup The html to parse. Allows for finer control. Filtering ----------- released : :class:`.Status` The status of the engine (released, unreleased) licence : :class:`.Licence` The license of the engine timeframe : :class:`.TimeFrame` The time period this was released in (last 24hr, last week, last month) Sorting -------- * **released** - when the object was released, asc is oldest, desc is most recent * **id** - when it was added to moddb, asc is oldest, desc is most recent * **ranktoday** - order by daily ranking, asc is highest ranked, desc is lowest rank * **visitstotal** - order by most views, asc is highest views, desc is lowest views * **rating** - order by rating, asc is highest rating, desc is lowest rating * **name** - order alphabetically, asc is a-z, desc is z-a * **dateup** - order by latest update, asc is most recent update first, desc is oldest update first Attributes ----------- games : List[Thumbnail] A list of games suggested on the engine main page. """ def __init__(self, html: bs4.BeautifulSoup): super().__init__(html, SearchCategory.engines) delattr(self, "files") try: self.games = self._get_games(html) except AttributeError: LOGGER.info( "Engine '%s' has no games", self.name, exc_info=LOGGER.level >= logging.DEBUG ) self.games = []